Ignore:
Timestamp:
Aug 7, 2022, 6:11:12 PM (3 years ago)
Author:
David Azarewicz
Message:

Merge changes from next branch.

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/pci/ymfpci/ymfpci.c

    r703 r717  
    110110
    111111        if (!r) {
    112                 r = request_region(io_port, 1, "YMFPCI gameport");
     112                r = devm_request_region(&chip->pci->dev, io_port, 1,
     113                                        "YMFPCI gameport");
    113114                if (!r) {
    114115                        dev_err(chip->card->dev,
     
    122123                dev_err(chip->card->dev,
    123124                        "cannot allocate memory for gameport\n");
    124                 release_and_free_resource(r);
    125125                return -ENOMEM;
    126126        }
     
    131131        gameport_set_dev_parent(gp, &chip->pci->dev);
    132132        gp->io = io_port;
    133         gameport_set_port_data(gp, r);
    134133
    135134        if (chip->pci->device >= 0x0010) /* YMF 744/754 */
     
    147146{
    148147        if (chip->gameport) {
    149                 struct resource *r = gameport_get_port_data(chip->gameport);
    150 
    151148                gameport_unregister_port(chip->gameport);
    152149                chip->gameport = NULL;
    153 
    154                 release_and_free_resource(r);
    155150        }
    156151}
     
    181176
    182177        err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
    183                            0, &card);
    184         if (err < 0)
    185                 return err;
     178                           sizeof(*chip), &card);
     179        if (err < 0)
     180                return err;
     181        chip = card->private_data;
    186182
    187183        switch (pci_id->device) {
     
    204200                }
    205201                if (fm_port[dev] > 0)
    206                         fm_res = request_region(fm_port[dev], 4, "YMFPCI OPL3");
     202                        fm_res = devm_request_region(&pci->dev, fm_port[dev],
     203                                                     4, "YMFPCI OPL3");
    207204                if (fm_res) {
    208205                        legacy_ctrl |= YMFPCI_LEGACY_FMEN;
     
    214211                }
    215212                if (mpu_port[dev] > 0)
    216                         mpu_res = request_region(mpu_port[dev], 2, "YMFPCI MPU401");
     213                        mpu_res = devm_request_region(&pci->dev, mpu_port[dev],
     214                                                      2, "YMFPCI MPU401");
    217215                if (mpu_res) {
    218216                        legacy_ctrl |= YMFPCI_LEGACY_MEN;
     
    228226                }
    229227                if (fm_port[dev] > 0)
    230                         fm_res = request_region(fm_port[dev], 4, "YMFPCI OPL3");
     228                        fm_res = devm_request_region(&pci->dev, fm_port[dev],
     229                                                     4, "YMFPCI OPL3");
    231230                if (fm_res) {
    232231                        legacy_ctrl |= YMFPCI_LEGACY_FMEN;
     
    243242                }
    244243                if (mpu_port[dev] > 0)
    245                         mpu_res = request_region(mpu_port[dev], 2, "YMFPCI MPU401");
     244                        mpu_res = devm_request_region(&pci->dev, mpu_port[dev],
     245                                                      2, "YMFPCI MPU401");
    246246                if (mpu_res) {
    247247                        legacy_ctrl |= YMFPCI_LEGACY_MEN;
     
    258258        pci_write_config_word(pci, PCIR_DSXG_LEGACY, legacy_ctrl);
    259259        pci_write_config_word(pci, PCIR_DSXG_ELEGACY, legacy_ctrl2);
    260         err = snd_ymfpci_create(card, pci, old_legacy_ctrl, &chip);
    261         if (err  < 0) {
    262                 release_and_free_resource(mpu_res);
    263                 release_and_free_resource(fm_res);
    264                 goto free_card;
    265         }
    266         chip->fm_res = fm_res;
    267         chip->mpu_res = mpu_res;
    268         card->private_data = chip;
     260        err = snd_ymfpci_create(card, pci, old_legacy_ctrl);
     261        if (err  < 0)
     262                return err;
    269263
    270264        strcpy(card->driver, str);
     
    276270        err = snd_ymfpci_pcm(chip, 0);
    277271        if (err < 0)
    278                 goto free_card;
     272                return err;
    279273
    280274        err = snd_ymfpci_pcm_spdif(chip, 1);
    281275        if (err < 0)
    282                 goto free_card;
     276                return err;
    283277
    284278        err = snd_ymfpci_mixer(chip, rear_switch[dev]);
    285279        if (err < 0)
    286                 goto free_card;
     280                return err;
    287281
    288282        if (chip->ac97->ext_id & AC97_EI_SDAC) {
    289283                err = snd_ymfpci_pcm_4ch(chip, 2);
    290284                if (err < 0)
    291                         goto free_card;
     285                        return err;
    292286
    293287                err = snd_ymfpci_pcm2(chip, 3);
    294288                if (err < 0)
    295                         goto free_card;
     289                        return err;
    296290        }
    297291        err = snd_ymfpci_timer(chip, 0);
    298292        if (err < 0)
    299                 goto free_card;
    300 
    301         if (chip->mpu_res) {
     293                return err;
     294
     295        if (mpu_res) {
    302296                err = snd_mpu401_uart_new(card, 0, MPU401_HW_YMFPCI,
    303297                                          mpu_port[dev],
     
    313307                }
    314308        }
    315         if (chip->fm_res) {
     309        if (fm_res) {
    316310                err = snd_opl3_create(card,
    317311                                      fm_port[dev],
     
    328322                        if (err < 0) {
    329323                                dev_err(card->dev, "cannot create opl3 hwdep\n");
    330                                 goto free_card;
     324                                return err;
    331325                        }
    332326                }
     
    337331        err = snd_card_register(card);
    338332        if (err < 0)
    339                 goto free_card;
     333                return err;
    340334
    341335        pci_set_drvdata(pci, card);
    342336        dev++;
    343337        return 0;
    344 
    345 free_card:
    346         snd_card_free(card);
    347         return err;
    348 }
    349 
    350 static void snd_card_ymfpci_remove(struct pci_dev *pci)
    351 {
    352         snd_card_free(pci_get_drvdata(pci));
    353338}
    354339
     
    357342        .id_table = snd_ymfpci_ids,
    358343        .probe = snd_card_ymfpci_probe,
    359         .remove = snd_card_ymfpci_remove,
    360344#ifdef CONFIG_PM_SLEEP
    361345        .driver = {
Note: See TracChangeset for help on using the changeset viewer.