linux-davinci-git : Update recipe so it builds for sffsdr board.
[vuplus_openembedded] / packages / linux / linux-davinci / davinci-sffsdr / 0009-sound-ASoC-Fix-DaVinci-module-unload-error.patch
1 From 8d9e736833e9e765098353117e022b96ccc72ab1 Mon Sep 17 00:00:00 2001
2 From: Kevin Hilman <khilman@deeprootsystems.com>
3 Date: Fri, 13 Feb 2009 19:36:37 -0800
4 Subject: [PATCH 09/12] sound: ASoC: Fix DaVinci module unload error
5
6 sound: ASoC: Fix DaVinci module unload error
7
8 Fix for the error when the audio module is unloaded.  On unregistering
9 the platform_device, platform_device_release will free the platform
10 data.If platform data is static the kernel panics when it is freed.
11 Instead use the platform device helper function to add data.
12
13 This change has been tested on DM644x EVM, DM644x SFFSDR and DM355 EVM.
14
15 Signed-off-by: Chaithrika U S <chaithrika@ti.com>
16 Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
17 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
18 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
19 ---
20  sound/soc/davinci/davinci-evm.c    |    3 ++-
21  sound/soc/davinci/davinci-sffsdr.c |    3 ++-
22  2 files changed, 4 insertions(+), 2 deletions(-)
23
24 diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
25 index 9420c96..0297703 100644
26 --- a/sound/soc/davinci/davinci-evm.c
27 +++ b/sound/soc/davinci/davinci-evm.c
28 @@ -225,7 +225,8 @@ static int __init evm_init(void)
29  
30         platform_set_drvdata(evm_snd_device, &evm_snd_devdata);
31         evm_snd_devdata.dev = &evm_snd_device->dev;
32 -       evm_snd_device->dev.platform_data = data;
33 +       platform_device_add_data(evm_snd_device, &evm_snd_data,
34 +                                sizeof(evm_snd_data));
35  
36         ret = platform_device_add_resources(evm_snd_device, resources, 1);
37         if (ret) {
38 diff --git a/sound/soc/davinci/davinci-sffsdr.c b/sound/soc/davinci/davinci-sffsdr.c
39 index b20e36c..f3c3185 100644
40 --- a/sound/soc/davinci/davinci-sffsdr.c
41 +++ b/sound/soc/davinci/davinci-sffsdr.c
42 @@ -140,7 +140,8 @@ static int __init sffsdr_init(void)
43  
44         platform_set_drvdata(sffsdr_snd_device, &sffsdr_snd_devdata);
45         sffsdr_snd_devdata.dev = &sffsdr_snd_device->dev;
46 -       sffsdr_snd_device->dev.platform_data = &sffsdr_snd_data;
47 +       platform_device_add_data(sffsdr_snd_device, &sffsdr_snd_data,
48 +                                sizeof(sffsdr_snd_data));
49  
50         ret = platform_device_add_resources(sffsdr_snd_device,
51                                             sffsdr_snd_resources,
52 -- 
53 1.5.4.5
54