m68k: amiga - Sound platform device conversion
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
parent
fa6688e1c7
commit
ff2db7c5ab
2 changed files with 36 additions and 20 deletions
|
@ -67,6 +67,11 @@ static int __init amiga_init_devices(void)
|
||||||
if (AMIGAHW_PRESENT(AMI_VIDEO))
|
if (AMIGAHW_PRESENT(AMI_VIDEO))
|
||||||
platform_device_register_simple("amiga-video", -1, NULL, 0);
|
platform_device_register_simple("amiga-video", -1, NULL, 0);
|
||||||
|
|
||||||
|
|
||||||
|
/* sound hardware */
|
||||||
|
if (AMIGAHW_PRESENT(AMI_AUDIO))
|
||||||
|
platform_device_register_simple("amiga-audio", -1, NULL, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/soundcard.h>
|
#include <linux/soundcard.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
|
@ -710,31 +711,41 @@ static MACHINE machAmiga = {
|
||||||
/*** Config & Setup **********************************************************/
|
/*** Config & Setup **********************************************************/
|
||||||
|
|
||||||
|
|
||||||
static int __init dmasound_paula_init(void)
|
static int __init amiga_audio_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int err;
|
|
||||||
|
|
||||||
if (MACH_IS_AMIGA && AMIGAHW_PRESENT(AMI_AUDIO)) {
|
|
||||||
if (!request_mem_region(CUSTOM_PHYSADDR+0xa0, 0x40,
|
|
||||||
"dmasound [Paula]"))
|
|
||||||
return -EBUSY;
|
|
||||||
dmasound.mach = machAmiga;
|
dmasound.mach = machAmiga;
|
||||||
dmasound.mach.default_hard = def_hard ;
|
dmasound.mach.default_hard = def_hard ;
|
||||||
dmasound.mach.default_soft = def_soft ;
|
dmasound.mach.default_soft = def_soft ;
|
||||||
err = dmasound_init();
|
return dmasound_init();
|
||||||
if (err)
|
|
||||||
release_mem_region(CUSTOM_PHYSADDR+0xa0, 0x40);
|
|
||||||
return err;
|
|
||||||
} else
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit dmasound_paula_cleanup(void)
|
static int __exit amiga_audio_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
dmasound_deinit();
|
dmasound_deinit();
|
||||||
release_mem_region(CUSTOM_PHYSADDR+0xa0, 0x40);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(dmasound_paula_init);
|
static struct platform_driver amiga_audio_driver = {
|
||||||
module_exit(dmasound_paula_cleanup);
|
.remove = __exit_p(amiga_audio_remove),
|
||||||
|
.driver = {
|
||||||
|
.name = "amiga-audio",
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init amiga_audio_init(void)
|
||||||
|
{
|
||||||
|
return platform_driver_probe(&amiga_audio_driver, amiga_audio_probe);
|
||||||
|
}
|
||||||
|
|
||||||
|
module_init(amiga_audio_init);
|
||||||
|
|
||||||
|
static void __exit amiga_audio_exit(void)
|
||||||
|
{
|
||||||
|
platform_driver_unregister(&amiga_audio_driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
module_exit(amiga_audio_exit);
|
||||||
|
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
MODULE_ALIAS("platform:amiga-audio");
|
||||||
|
|
Loading…
Reference in a new issue