Skip to content

Commit

Permalink
m68k: amiga - Sound platform device conversion
Browse files Browse the repository at this point in the history
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
  • Loading branch information
Geert Uytterhoeven committed May 17, 2010
1 parent fa6688e commit ff2db7c
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 20 deletions.
5 changes: 5 additions & 0 deletions arch/m68k/amiga/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ static int __init amiga_init_devices(void)
if (AMIGAHW_PRESENT(AMI_VIDEO))
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;
}

Expand Down
51 changes: 31 additions & 20 deletions sound/oss/dmasound/dmasound_paula.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <linux/ioport.h>
#include <linux/soundcard.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>

#include <asm/uaccess.h>
#include <asm/setup.h>
Expand Down Expand Up @@ -710,31 +711,41 @@ static MACHINE machAmiga = {
/*** 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.default_hard = def_hard ;
dmasound.mach.default_soft = def_soft ;
err = dmasound_init();
if (err)
release_mem_region(CUSTOM_PHYSADDR+0xa0, 0x40);
return err;
} else
return -ENODEV;
dmasound.mach = machAmiga;
dmasound.mach.default_hard = def_hard ;
dmasound.mach.default_soft = def_soft ;
return dmasound_init();
}

static void __exit dmasound_paula_cleanup(void)
static int __exit amiga_audio_remove(struct platform_device *pdev)
{
dmasound_deinit();
release_mem_region(CUSTOM_PHYSADDR+0xa0, 0x40);
return 0;
}

static struct platform_driver amiga_audio_driver = {
.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(dmasound_paula_init);
module_exit(dmasound_paula_cleanup);
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_ALIAS("platform:amiga-audio");

0 comments on commit ff2db7c

Please sign in to comment.