diff options
author | Kevin Hilman <khilman@deeprootsystems.com> | 2009-02-13 22:36:37 +0300 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-02-13 23:21:30 +0300 |
commit | bf3dbe5c8c4b85f98c36d35432efa6573b75e6d3 (patch) | |
tree | aabfddb8276b8ea3ab0653633716d8ad395870fe | |
parent | f1464ede550b8fda75086cb9bacf8d60fc9f6780 (diff) | |
download | linux-bf3dbe5c8c4b85f98c36d35432efa6573b75e6d3.tar.xz |
ASoC: Fix DaVinci module unload error
Fix for the error when the audio module is unloaded. On unregistering
the platform_device, platform_device_release will free the platform
data.If platform data is static the kernel panics when it is freed.
Instead use the platform device helper function to add data.
This change has been tested on DM644x EVM, DM644x SFFSDR and DM355 EVM.
Signed-off-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | sound/soc/davinci/davinci-evm.c | 3 | ||||
-rw-r--r-- | sound/soc/davinci/davinci-sffsdr.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c index 54851f318568..9b90b347007c 100644 --- a/sound/soc/davinci/davinci-evm.c +++ b/sound/soc/davinci/davinci-evm.c @@ -186,7 +186,8 @@ static int __init evm_init(void) platform_set_drvdata(evm_snd_device, &evm_snd_devdata); evm_snd_devdata.dev = &evm_snd_device->dev; - evm_snd_device->dev.platform_data = &evm_snd_data; + platform_device_add_data(evm_snd_device, &evm_snd_data, + sizeof(evm_snd_data)); ret = platform_device_add_resources(evm_snd_device, evm_snd_resources, ARRAY_SIZE(evm_snd_resources)); diff --git a/sound/soc/davinci/davinci-sffsdr.c b/sound/soc/davinci/davinci-sffsdr.c index 50baef1fe5b4..0bf81abba8c7 100644 --- a/sound/soc/davinci/davinci-sffsdr.c +++ b/sound/soc/davinci/davinci-sffsdr.c @@ -141,7 +141,8 @@ static int __init sffsdr_init(void) platform_set_drvdata(sffsdr_snd_device, &sffsdr_snd_devdata); sffsdr_snd_devdata.dev = &sffsdr_snd_device->dev; - sffsdr_snd_device->dev.platform_data = &sffsdr_snd_data; + platform_device_add_data(sffsdr_snd_device, &sffsdr_snd_data, + sizeof(sffsdr_snd_data)); ret = platform_device_add_resources(sffsdr_snd_device, sffsdr_snd_resources, |