[ALSA] unregister platform device again if probe was unsuccessful
This second one unregisters the platform device again when the probe is unsuccesful for sound/drivers, sound/arm/sa11xx-uda1341.c and sound/ppc/powermac.c. This gets them all. Signed-off-by: Rene Herman <rene.herman@keyaccess.nl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
79ca4f3f62
commit
7152447df9
|
@ -984,11 +984,15 @@ static int __init sa11xx_uda1341_init(void)
|
||||||
if ((err = platform_driver_register(&sa11xx_uda1341_driver)) < 0)
|
if ((err = platform_driver_register(&sa11xx_uda1341_driver)) < 0)
|
||||||
return err;
|
return err;
|
||||||
device = platform_device_register_simple(SA11XX_UDA1341_DRIVER, -1, NULL, 0);
|
device = platform_device_register_simple(SA11XX_UDA1341_DRIVER, -1, NULL, 0);
|
||||||
if (IS_ERR(device)) {
|
if (!IS_ERR(device)) {
|
||||||
platform_driver_unregister(&sa11xx_uda1341_driver);
|
if (platform_get_drvdata(device))
|
||||||
return PTR_ERR(device);
|
return 0;
|
||||||
}
|
platform_device_unregister(device);
|
||||||
return 0;
|
err = -ENODEV
|
||||||
|
} else
|
||||||
|
err = PTR_ERR(device);
|
||||||
|
platform_driver_unregister(&sa11xx_uda1341_driver);
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit sa11xx_uda1341_exit(void)
|
static void __exit sa11xx_uda1341_exit(void)
|
||||||
|
|
|
@ -677,6 +677,10 @@ static int __init alsa_card_dummy_init(void)
|
||||||
i, NULL, 0);
|
i, NULL, 0);
|
||||||
if (IS_ERR(device))
|
if (IS_ERR(device))
|
||||||
continue;
|
continue;
|
||||||
|
if (!platform_get_drvdata(device)) {
|
||||||
|
platform_device_unregister(device);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
devices[i] = device;
|
devices[i] = device;
|
||||||
cards++;
|
cards++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,6 +253,10 @@ static int __init alsa_card_mpu401_init(void)
|
||||||
i, NULL, 0);
|
i, NULL, 0);
|
||||||
if (IS_ERR(device))
|
if (IS_ERR(device))
|
||||||
continue;
|
continue;
|
||||||
|
if (!platform_get_drvdata(device)) {
|
||||||
|
platform_device_unregister(device);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
platform_devices[i] = device;
|
platform_devices[i] = device;
|
||||||
snd_mpu401_devices++;
|
snd_mpu401_devices++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -770,11 +770,15 @@ static int __init alsa_card_mtpav_init(void)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
device = platform_device_register_simple(SND_MTPAV_DRIVER, -1, NULL, 0);
|
device = platform_device_register_simple(SND_MTPAV_DRIVER, -1, NULL, 0);
|
||||||
if (IS_ERR(device)) {
|
if (!IS_ERR(device)) {
|
||||||
platform_driver_unregister(&snd_mtpav_driver);
|
if (platform_get_drvdata(device))
|
||||||
return PTR_ERR(device);
|
return 0;
|
||||||
}
|
platform_device_unregister(device);
|
||||||
return 0;
|
err = -ENODEV;
|
||||||
|
} else
|
||||||
|
err = PTR_ERR(device);
|
||||||
|
platform_driver_unregister(&snd_mtpav_driver);
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit alsa_card_mtpav_exit(void)
|
static void __exit alsa_card_mtpav_exit(void)
|
||||||
|
|
|
@ -998,6 +998,10 @@ static int __init alsa_card_serial_init(void)
|
||||||
i, NULL, 0);
|
i, NULL, 0);
|
||||||
if (IS_ERR(device))
|
if (IS_ERR(device))
|
||||||
continue;
|
continue;
|
||||||
|
if (!platform_get_drvdata(device)) {
|
||||||
|
platform_device_unregister(device);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
devices[i] = device;
|
devices[i] = device;
|
||||||
cards++;
|
cards++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,6 +171,10 @@ static int __init alsa_card_virmidi_init(void)
|
||||||
i, NULL, 0);
|
i, NULL, 0);
|
||||||
if (IS_ERR(device))
|
if (IS_ERR(device))
|
||||||
continue;
|
continue;
|
||||||
|
if (!platform_get_drvdata(device)) {
|
||||||
|
platform_device_unregister(device);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
devices[i] = device;
|
devices[i] = device;
|
||||||
cards++;
|
cards++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,11 +188,15 @@ static int __init alsa_card_pmac_init(void)
|
||||||
if ((err = platform_driver_register(&snd_pmac_driver)) < 0)
|
if ((err = platform_driver_register(&snd_pmac_driver)) < 0)
|
||||||
return err;
|
return err;
|
||||||
device = platform_device_register_simple(SND_PMAC_DRIVER, -1, NULL, 0);
|
device = platform_device_register_simple(SND_PMAC_DRIVER, -1, NULL, 0);
|
||||||
if (IS_ERR(device)) {
|
if (!IS_ERR(device)) {
|
||||||
platform_driver_unregister(&snd_pmac_driver);
|
if (platform_get_drvdata(device))
|
||||||
return PTR_ERR(device);
|
return 0;
|
||||||
}
|
platform_device_unregister(device);
|
||||||
return 0;
|
err = -ENODEV;
|
||||||
|
} else
|
||||||
|
err = PTR_ERR(device);
|
||||||
|
platform_driver_unregister(&snd_pmac_driver);
|
||||||
|
return err;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user