From b0b1ce58469c079fa2e298cb249dc2449116d535 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Fri, 6 Mar 2009 15:15:37 -0500 Subject: linux-davinci-git : Update recipe so it builds for sffsdr board. * Rename recipe. --- ...ound-ASoC-Fix-DaVinci-module-unload-error.patch | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 packages/linux/linux-davinci/davinci-sffsdr/0009-sound-ASoC-Fix-DaVinci-module-unload-error.patch (limited to 'packages/linux/linux-davinci/davinci-sffsdr/0009-sound-ASoC-Fix-DaVinci-module-unload-error.patch') diff --git a/packages/linux/linux-davinci/davinci-sffsdr/0009-sound-ASoC-Fix-DaVinci-module-unload-error.patch b/packages/linux/linux-davinci/davinci-sffsdr/0009-sound-ASoC-Fix-DaVinci-module-unload-error.patch new file mode 100644 index 0000000000..79a89bfa44 --- /dev/null +++ b/packages/linux/linux-davinci/davinci-sffsdr/0009-sound-ASoC-Fix-DaVinci-module-unload-error.patch @@ -0,0 +1,54 @@ +From 8d9e736833e9e765098353117e022b96ccc72ab1 Mon Sep 17 00:00:00 2001 +From: Kevin Hilman +Date: Fri, 13 Feb 2009 19:36:37 -0800 +Subject: [PATCH 09/12] sound: ASoC: Fix DaVinci module unload error + +sound: 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 +Signed-off-by: Kevin Hilman +Signed-off-by: Mark Brown +Signed-off-by: Jaroslav Kysela +--- + sound/soc/davinci/davinci-evm.c | 3 ++- + 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 9420c96..0297703 100644 +--- a/sound/soc/davinci/davinci-evm.c ++++ b/sound/soc/davinci/davinci-evm.c +@@ -225,7 +225,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 = data; ++ platform_device_add_data(evm_snd_device, &evm_snd_data, ++ sizeof(evm_snd_data)); + + ret = platform_device_add_resources(evm_snd_device, resources, 1); + if (ret) { +diff --git a/sound/soc/davinci/davinci-sffsdr.c b/sound/soc/davinci/davinci-sffsdr.c +index b20e36c..f3c3185 100644 +--- a/sound/soc/davinci/davinci-sffsdr.c ++++ b/sound/soc/davinci/davinci-sffsdr.c +@@ -140,7 +140,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, +-- +1.5.4.5 + -- cgit v1.2.3