This patch converts the pcm030-audio-fabric driver to a platform-driver and adds a remove function.
Signed-off-by: Eric Millbrandt <emillbra...@dekaresearch.com> diff --git a/sound/soc/fsl/pcm030-audio-fabric.c b/sound/soc/fsl/pcm030-audio-fabric.c index 1353e8f..5c8e2d6 100644 --- a/sound/soc/fsl/pcm030-audio-fabric.c +++ b/sound/soc/fsl/pcm030-audio-fabric.c @@ -48,7 +48,7 @@ static struct snd_soc_card card = { .num_links = ARRAY_SIZE(pcm030_fabric_dai), }; -static __init int pcm030_fabric_init(void) +static int __init pcm030_fabric_probe(struct platform_device *op) { struct platform_device *pdev; int rc; @@ -62,6 +62,7 @@ static __init int pcm030_fabric_init(void) return -ENODEV; } + platform_set_drvdata(op, pdev); platform_set_drvdata(pdev, &card); rc = platform_device_add(pdev); @@ -73,7 +74,32 @@ static __init int pcm030_fabric_init(void) return 0; } -module_init(pcm030_fabric_init); +static int __devexit pcm030_fabric_remove(struct platform_device *op) +{ + struct platform_device *pdev = platform_get_drvdata(op); + + platform_device_unregister(pdev); + + return 0; +} + +static struct of_device_id pcm030_audio_match[] = { + { .compatible = "phytec,pcm030-audio-fabric", }, + {} +}; +MODULE_DEVICE_TABLE(of, pcm030_audio_match); + +static struct platform_driver pcm030_fabric_driver = { + .probe = pcm030_fabric_probe, + .remove = __devexit_p(pcm030_fabric_remove), + .driver = { + .name = DRV_NAME, + .owner = THIS_MODULE, + .of_match_table = pcm030_audio_match, + }, +}; + +module_platform_driver(pcm030_fabric_driver); MODULE_AUTHOR("Jon Smirl <jonsm...@gmail.com>"); -- 1.7.2.5 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev