summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2012-05-04 08:45:54 +0200
committerDenys Dmytriyenko <denys@ti.com>2012-05-10 15:29:12 -0400
commit0b2c5e6de9be82d6f8362d61c52a76d504fea9d3 (patch)
treeff94ed128875af9531a75d542607e6229a0501c7
parentab56c86b96efdea799438b437d7faa139a407fe3 (diff)
downloadmeta-ti-0b2c5e6de9be82d6f8362d61c52a76d504fea9d3.tar.gz
linux-mainline 3.2: add ASoC fixes for beagleboard
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
-rw-r--r--recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch37
-rw-r--r--recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch1119
-rw-r--r--recipes-kernel/linux/linux-mainline_3.2.bb4
3 files changed, 1159 insertions, 1 deletions
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch
new file mode 100644
index 00000000..cffdeb90
--- /dev/null
+++ b/recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch
@@ -0,0 +1,37 @@
1From d36c69551d168b2860cd216a8554740157a606f7 Mon Sep 17 00:00:00 2001
2From: Robert Nelson <robertcnelson@gmail.com>
3Date: Tue, 3 Jan 2012 11:06:07 -0600
4Subject: [PATCH 15/16] ASoC: omap: add MODULE_ALIAS to mcbsp and pcm drivers
5
6This adds MODULE_ALIAS directives to the omap-mcbsp-dai and
7omap-pcm-audio drivers so they can be auto-loaded when platform
8devices are scanned.
9
10Signed-off-by: Mans Rullgard <mans.rullgard at linaro.org>
11Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
12---
13 sound/soc/omap/omap-mcbsp.c | 1 +
14 sound/soc/omap/omap-pcm.c | 1 +
15 2 files changed, 2 insertions(+)
16
17diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
18index 4314647..a13eb34 100644
19--- a/sound/soc/omap/omap-mcbsp.c
20+++ b/sound/soc/omap/omap-mcbsp.c
21@@ -800,3 +800,4 @@ module_exit(snd_omap_mcbsp_exit);
22 MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@bitmer.com>");
23 MODULE_DESCRIPTION("OMAP I2S SoC Interface");
24 MODULE_LICENSE("GPL");
25+MODULE_ALIAS("platform:omap-mcbsp-dai");
26diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
27index 6ede7dc..d5cffcf 100644
28--- a/sound/soc/omap/omap-pcm.c
29+++ b/sound/soc/omap/omap-pcm.c
30@@ -448,3 +448,4 @@ module_exit(snd_omap_pcm_exit);
31 MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@bitmer.com>");
32 MODULE_DESCRIPTION("OMAP PCM DMA module");
33 MODULE_LICENSE("GPL");
34+MODULE_ALIAS("platform:omap-pcm-audio");
35--
361.7.10
37
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch
new file mode 100644
index 00000000..78657349
--- /dev/null
+++ b/recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch
@@ -0,0 +1,1119 @@
1From c5ae7182911a49960d2b7775c941244ac41c105c Mon Sep 17 00:00:00 2001
2From: Robert Nelson <robertcnelson@gmail.com>
3Date: Tue, 3 Jan 2012 11:03:32 -0600
4Subject: [PATCH 16/16] ASoC: omap: convert per-board modules to platform
5 drivers
6
7This converts the per-board modules to platform drivers for a
8device created by in main platform setup. These drivers call
9snd_soc_register_card() directly instead of going via a "soc-audio"
10device and the corresponding driver in soc-core.
11
12Signed-off-by: Mans Rullgard <mans.rullgard at linaro.org>
13Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
14---
15 arch/arm/mach-omap2/devices.c | 34 ++++++++++++++++++++
16 sound/soc/omap/am3517evm.c | 52 ++++++++++++++++++------------
17 sound/soc/omap/igep0020.c | 49 ++++++++++++++++++-----------
18 sound/soc/omap/n810.c | 70 +++++++++++++++++++++++++----------------
19 sound/soc/omap/omap3beagle.c | 52 ++++++++++++++++++------------
20 sound/soc/omap/omap3evm.c | 53 +++++++++++++++++++------------
21 sound/soc/omap/omap3pandora.c | 67 +++++++++++++++++++++++----------------
22 sound/soc/omap/overo.c | 53 ++++++++++++++++++-------------
23 sound/soc/omap/rx51.c | 52 +++++++++++++++++++-----------
24 sound/soc/omap/sdp3430.c | 62 +++++++++++++++++++++---------------
25 sound/soc/omap/sdp4430.c | 53 +++++++++++++++++++------------
26 sound/soc/omap/zoom2.c | 65 ++++++++++++++++++++++++--------------
27 12 files changed, 423 insertions(+), 239 deletions(-)
28
29diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
30index c15cfad..0f0b320 100644
31--- a/arch/arm/mach-omap2/devices.c
32+++ b/arch/arm/mach-omap2/devices.c
33@@ -285,6 +285,10 @@ static struct platform_device omap_pcm = {
34 .id = -1,
35 };
36
37+static struct platform_device omap_soc_audio = {
38+ .id = -1,
39+};
40+
41 /*
42 * OMAP2420 has 2 McBSP ports
43 * OMAP2430 has 5 McBSP ports
44@@ -297,8 +301,30 @@ OMAP_MCBSP_PLATFORM_DEVICE(3);
45 OMAP_MCBSP_PLATFORM_DEVICE(4);
46 OMAP_MCBSP_PLATFORM_DEVICE(5);
47
48+static struct {
49+ int machine;
50+ const char *name;
51+} soc_device_names[] = {
52+ { MACH_TYPE_OMAP3517EVM, "am3517evm-soc-audio" },
53+ { MACH_TYPE_IGEP0020, "igep2-soc-audio" },
54+ { MACH_TYPE_NOKIA_N810, "n8x1-soc-audio" },
55+ { MACH_TYPE_NOKIA_N810_WIMAX, "n8x1-soc-audio" },
56+ { MACH_TYPE_OMAP3_BEAGLE, "omap3beagle-soc-audio" },
57+ { MACH_TYPE_DEVKIT8000, "omap3beagle-soc-audio" },
58+ { MACH_TYPE_OMAP3EVM, "omap3evm-soc-audio" },
59+ { MACH_TYPE_OMAP3_PANDORA, "pandora-soc-audio" },
60+ { MACH_TYPE_OVERO, "overo-soc-audio", },
61+ { MACH_TYPE_CM_T35, "overo-soc-audio", },
62+ { MACH_TYPE_NOKIA_RX51, "rx51-soc-audio", },
63+ { MACH_TYPE_OMAP_3430SDP, "sdp3430-soc-audio", },
64+ { MACH_TYPE_OMAP_4430SDP, "sdp4430-soc-audio", },
65+ { MACH_TYPE_OMAP_ZOOM2, "zoom2-soc-audio", },
66+};
67+
68 static void omap_init_audio(void)
69 {
70+ int i;
71+
72 platform_device_register(&omap_mcbsp1);
73 platform_device_register(&omap_mcbsp2);
74 if (cpu_is_omap243x() || cpu_is_omap34xx() || cpu_is_omap44xx()) {
75@@ -309,6 +335,14 @@ static void omap_init_audio(void)
76 platform_device_register(&omap_mcbsp5);
77
78 platform_device_register(&omap_pcm);
79+
80+ for (i = 0; i < ARRAY_SIZE(soc_device_names); i++) {
81+ if (machine_arch_type == soc_device_names[i].machine) {
82+ omap_soc_audio.name = soc_device_names[i].name;
83+ platform_device_register(&omap_soc_audio);
84+ break;
85+ }
86+ }
87 }
88
89 #else
90diff --git a/sound/soc/omap/am3517evm.c b/sound/soc/omap/am3517evm.c
91index c1cd4a0..df8f795 100644
92--- a/sound/soc/omap/am3517evm.c
93+++ b/sound/soc/omap/am3517evm.c
94@@ -116,45 +116,57 @@ static struct snd_soc_card snd_soc_am3517evm = {
95 .num_dapm_routes = ARRAY_SIZE(audio_map),
96 };
97
98-static struct platform_device *am3517evm_snd_device;
99-
100-static int __init am3517evm_soc_init(void)
101+static int __devinit am3517evm_soc_probe(struct platform_device *pdev)
102 {
103+ struct snd_soc_card *card = &snd_soc_am3517evm;
104 int ret;
105
106- if (!machine_is_omap3517evm())
107- return -ENODEV;
108 pr_info("OMAP3517 / AM3517 EVM SoC init\n");
109
110- am3517evm_snd_device = platform_device_alloc("soc-audio", -1);
111- if (!am3517evm_snd_device) {
112- printk(KERN_ERR "Platform device allocation failed\n");
113- return -ENOMEM;
114+ card->dev = &pdev->dev;
115+
116+ ret = snd_soc_register_card(card);
117+ if (ret) {
118+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
119+ ret);
120+ return ret;
121 }
122
123- platform_set_drvdata(am3517evm_snd_device, &snd_soc_am3517evm);
124+ return 0;
125+}
126+
127+static int __devexit am3517evm_soc_remove(struct platform_device *pdev)
128+{
129+ struct snd_soc_card *card = platform_get_drvdata(pdev);
130
131- ret = platform_device_add(am3517evm_snd_device);
132- if (ret)
133- goto err1;
134+ snd_soc_unregister_card(card);
135
136 return 0;
137+}
138+
139+static struct platform_driver am3517evm_driver = {
140+ .driver = {
141+ .name = "am3517evm-soc-audio",
142+ .owner = THIS_MODULE,
143+ },
144
145-err1:
146- printk(KERN_ERR "Unable to add platform device\n");
147- platform_device_put(am3517evm_snd_device);
148+ .probe = am3517evm_soc_probe,
149+ .remove = __devexit_p(am3517evm_soc_remove),
150+};
151
152- return ret;
153+static int __init am3517evm_soc_init(void)
154+{
155+ return platform_driver_register(&am3517evm_driver);
156 }
157+module_init(am3517evm_soc_init);
158
159 static void __exit am3517evm_soc_exit(void)
160 {
161- platform_device_unregister(am3517evm_snd_device);
162+ platform_driver_unregister(&am3517evm_driver);
163 }
164-
165-module_init(am3517evm_soc_init);
166 module_exit(am3517evm_soc_exit);
167
168 MODULE_AUTHOR("Anuj Aggarwal <anuj.aggarwal@ti.com>");
169 MODULE_DESCRIPTION("ALSA SoC OMAP3517 / AM3517 EVM");
170 MODULE_LICENSE("GPL v2");
171+MODULE_ALIAS("platform:am3517evm-soc-audio");
172diff --git a/sound/soc/omap/igep0020.c b/sound/soc/omap/igep0020.c
173index 591fbf8..6446532 100644
174--- a/sound/soc/omap/igep0020.c
175+++ b/sound/soc/omap/igep0020.c
176@@ -76,44 +76,57 @@ static struct snd_soc_card snd_soc_card_igep2 = {
177 .num_links = 1,
178 };
179
180-static struct platform_device *igep2_snd_device;
181-
182-static int __init igep2_soc_init(void)
183+static int __devinit igep2_soc_probe(struct platform_device *pdev)
184 {
185+ struct snd_soc_card *card = &snd_soc_card_igep2;
186 int ret;
187
188- if (!machine_is_igep0020())
189- return -ENODEV;
190 printk(KERN_INFO "IGEP v2 SoC init\n");
191
192- igep2_snd_device = platform_device_alloc("soc-audio", -1);
193- if (!igep2_snd_device) {
194- printk(KERN_ERR "Platform device allocation failed\n");
195- return -ENOMEM;
196+ card->dev = &pdev->dev;
197+
198+ ret = snd_soc_register_card(card);
199+ if (ret) {
200+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
201+ ret);
202+ return ret;
203 }
204
205- platform_set_drvdata(igep2_snd_device, &snd_soc_card_igep2);
206+ return 0;
207+}
208
209- ret = platform_device_add(igep2_snd_device);
210- if (ret)
211- goto err1;
212+static int __devexit igep2_soc_remove(struct platform_device *pdev)
213+{
214+ struct snd_soc_card *card = platform_get_drvdata(pdev);
215+
216+ snd_soc_unregister_card(card);
217
218 return 0;
219+}
220+
221+static struct platform_driver igep2_driver = {
222+ .driver = {
223+ .name = "igep2-soc-audio",
224+ .owner = THIS_MODULE,
225+ },
226
227-err1:
228- printk(KERN_ERR "Unable to add platform device\n");
229- platform_device_put(igep2_snd_device);
230+ .probe = igep2_soc_probe,
231+ .remove = __devexit_p(igep2_soc_remove),
232+};
233
234- return ret;
235+static int __init igep2_soc_init(void)
236+{
237+ return platform_driver_register(&igep2_driver);
238 }
239 module_init(igep2_soc_init);
240
241 static void __exit igep2_soc_exit(void)
242 {
243- platform_device_unregister(igep2_snd_device);
244+ platform_driver_unregister(&igep2_driver);
245 }
246 module_exit(igep2_soc_exit);
247
248 MODULE_AUTHOR("Enric Balletbo i Serra <eballetbo@iseebcn.com>");
249 MODULE_DESCRIPTION("ALSA SoC IGEP v2");
250 MODULE_LICENSE("GPL");
251+MODULE_ALIAS("platform:igep2-soc-audio");
252diff --git a/sound/soc/omap/n810.c b/sound/soc/omap/n810.c
253index fc6209b..1db768c 100644
254--- a/sound/soc/omap/n810.c
255+++ b/sound/soc/omap/n810.c
256@@ -300,38 +300,25 @@ static struct snd_soc_card snd_soc_n810 = {
257 .num_dapm_routes = ARRAY_SIZE(audio_map),
258 };
259
260-static struct platform_device *n810_snd_device;
261-
262-static int __init n810_soc_init(void)
263+static int __devinit n810_soc_probe(struct platform_device *pdev)
264 {
265+ struct snd_soc_card *card = &snd_soc_n810;
266+ struct device *dev = &pdev->dev;
267 int err;
268- struct device *dev;
269-
270- if (!(machine_is_nokia_n810() || machine_is_nokia_n810_wimax()))
271- return -ENODEV;
272-
273- n810_snd_device = platform_device_alloc("soc-audio", -1);
274- if (!n810_snd_device)
275- return -ENOMEM;
276
277- platform_set_drvdata(n810_snd_device, &snd_soc_n810);
278- err = platform_device_add(n810_snd_device);
279- if (err)
280- goto err1;
281-
282- dev = &n810_snd_device->dev;
283+ card->dev = dev;
284
285 sys_clkout2_src = clk_get(dev, "sys_clkout2_src");
286 if (IS_ERR(sys_clkout2_src)) {
287 dev_err(dev, "Could not get sys_clkout2_src clock\n");
288 err = PTR_ERR(sys_clkout2_src);
289- goto err2;
290+ return err;
291 }
292 sys_clkout2 = clk_get(dev, "sys_clkout2");
293 if (IS_ERR(sys_clkout2)) {
294 dev_err(dev, "Could not get sys_clkout2\n");
295 err = PTR_ERR(sys_clkout2);
296- goto err3;
297+ goto err1;
298 }
299 /*
300 * Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use
301@@ -341,7 +328,7 @@ static int __init n810_soc_init(void)
302 if (IS_ERR(func96m_clk)) {
303 dev_err(dev, "Could not get func 96M clock\n");
304 err = PTR_ERR(func96m_clk);
305- goto err4;
306+ goto err2;
307 }
308 clk_set_parent(sys_clkout2_src, func96m_clk);
309 clk_set_rate(sys_clkout2, 12000000);
310@@ -352,33 +339,62 @@ static int __init n810_soc_init(void)
311 gpio_direction_output(N810_HEADSET_AMP_GPIO, 0);
312 gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);
313
314+ err = snd_soc_register_card(card);
315+ if (err) {
316+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
317+ err);
318+ goto err3;
319+ }
320+
321 return 0;
322-err4:
323- clk_put(sys_clkout2);
324 err3:
325- clk_put(sys_clkout2_src);
326+ clk_put(func96m_clk);
327 err2:
328- platform_device_del(n810_snd_device);
329+ clk_put(sys_clkout2);
330 err1:
331- platform_device_put(n810_snd_device);
332+ clk_put(sys_clkout2_src);
333
334 return err;
335 }
336
337-static void __exit n810_soc_exit(void)
338+static int __devexit n810_soc_remove(struct platform_device *pdev)
339 {
340+ struct snd_soc_card *card = platform_get_drvdata(pdev);
341+
342 gpio_free(N810_SPEAKER_AMP_GPIO);
343 gpio_free(N810_HEADSET_AMP_GPIO);
344 clk_put(sys_clkout2_src);
345 clk_put(sys_clkout2);
346 clk_put(func96m_clk);
347
348- platform_device_unregister(n810_snd_device);
349+ snd_soc_unregister_card(card);
350+
351+ return 0;
352 }
353
354+static struct platform_driver n810_driver = {
355+ .driver = {
356+ .name = "n8x0-soc-audio",
357+ .owner = THIS_MODULE,
358+ },
359+
360+ .probe = n810_soc_probe,
361+ .remove = __devexit_p(n810_soc_remove),
362+};
363+
364+static int __init n810_soc_init(void)
365+{
366+ return platform_driver_register(&n810_driver);
367+}
368 module_init(n810_soc_init);
369+
370+static void __exit n810_soc_exit(void)
371+{
372+ platform_driver_unregister(&n810_driver);
373+}
374 module_exit(n810_soc_exit);
375
376 MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@bitmer.com>");
377 MODULE_DESCRIPTION("ALSA SoC Nokia N810");
378 MODULE_LICENSE("GPL");
379+MODULE_ALIAS("platform:n8x0-soc-audio");
380diff --git a/sound/soc/omap/omap3beagle.c b/sound/soc/omap/omap3beagle.c
381index 3357dcc..10b51d8 100644
382--- a/sound/soc/omap/omap3beagle.c
383+++ b/sound/soc/omap/omap3beagle.c
384@@ -106,45 +106,57 @@ static struct snd_soc_card snd_soc_omap3beagle = {
385 .num_links = 1,
386 };
387
388-static struct platform_device *omap3beagle_snd_device;
389-
390-static int __init omap3beagle_soc_init(void)
391+static int __devinit omap3beagle_soc_probe(struct platform_device *pdev)
392 {
393+ struct snd_soc_card *card = &snd_soc_omap3beagle;
394 int ret;
395
396- if (!(machine_is_omap3_beagle() || machine_is_devkit8000()))
397- return -ENODEV;
398 pr_info("OMAP3 Beagle/Devkit8000 SoC init\n");
399
400- omap3beagle_snd_device = platform_device_alloc("soc-audio", -1);
401- if (!omap3beagle_snd_device) {
402- printk(KERN_ERR "Platform device allocation failed\n");
403- return -ENOMEM;
404+ card->dev = &pdev->dev;
405+
406+ ret = snd_soc_register_card(card);
407+ if (ret) {
408+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
409+ ret);
410+ return ret;
411 }
412
413- platform_set_drvdata(omap3beagle_snd_device, &snd_soc_omap3beagle);
414+ return 0;
415+}
416+
417+static int __devexit omap3beagle_soc_remove(struct platform_device *pdev)
418+{
419+ struct snd_soc_card *card = platform_get_drvdata(pdev);
420
421- ret = platform_device_add(omap3beagle_snd_device);
422- if (ret)
423- goto err1;
424+ snd_soc_unregister_card(card);
425
426 return 0;
427+}
428+
429+static struct platform_driver omap3beagle_driver = {
430+ .driver = {
431+ .name = "omap3beagle-soc-audio",
432+ .owner = THIS_MODULE,
433+ },
434
435-err1:
436- printk(KERN_ERR "Unable to add platform device\n");
437- platform_device_put(omap3beagle_snd_device);
438+ .probe = omap3beagle_soc_probe,
439+ .remove = __devexit_p(omap3beagle_soc_remove),
440+};
441
442- return ret;
443+static int __init omap3beagle_soc_init(void)
444+{
445+ return platform_driver_register(&omap3beagle_driver);
446 }
447+module_init(omap3beagle_soc_init);
448
449 static void __exit omap3beagle_soc_exit(void)
450 {
451- platform_device_unregister(omap3beagle_snd_device);
452+ platform_driver_unregister(&omap3beagle_driver);
453 }
454-
455-module_init(omap3beagle_soc_init);
456 module_exit(omap3beagle_soc_exit);
457
458 MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>");
459 MODULE_DESCRIPTION("ALSA SoC OMAP3 Beagle");
460 MODULE_LICENSE("GPL");
461+MODULE_ALIAS("platform:omap3beagle-soc-audio");
462diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c
463index 6857895..3b95cea 100644
464--- a/sound/soc/omap/omap3evm.c
465+++ b/sound/soc/omap/omap3evm.c
466@@ -74,44 +74,57 @@ static struct snd_soc_card snd_soc_omap3evm = {
467 .num_links = 1,
468 };
469
470-static struct platform_device *omap3evm_snd_device;
471-
472-static int __init omap3evm_soc_init(void)
473+static int __devinit omap3evm_soc_probe(struct platform_device *pdev)
474 {
475+ struct snd_soc_card *card = &snd_soc_omap3evm;
476 int ret;
477
478- if (!machine_is_omap3evm())
479- return -ENODEV;
480 pr_info("OMAP3 EVM SoC init\n");
481
482- omap3evm_snd_device = platform_device_alloc("soc-audio", -1);
483- if (!omap3evm_snd_device) {
484- printk(KERN_ERR "Platform device allocation failed\n");
485- return -ENOMEM;
486+ card->dev = &pdev->dev;
487+
488+ ret = snd_soc_register_card(card);
489+ if (ret) {
490+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
491+ ret);
492+ return ret;
493 }
494
495- platform_set_drvdata(omap3evm_snd_device, &snd_soc_omap3evm);
496- ret = platform_device_add(omap3evm_snd_device);
497- if (ret)
498- goto err1;
499+ return 0;
500+}
501+
502+static int __devexit omap3evm_soc_remove(struct platform_device *pdev)
503+{
504+ struct snd_soc_card *card = platform_get_drvdata(pdev);
505+
506+ snd_soc_unregister_card(card);
507
508 return 0;
509+}
510+
511+static struct platform_driver omap3evm_driver = {
512+ .driver = {
513+ .name = "omap3evm-soc-audio",
514+ .owner = THIS_MODULE,
515+ },
516
517-err1:
518- printk(KERN_ERR "Unable to add platform device\n");
519- platform_device_put(omap3evm_snd_device);
520+ .probe = omap3evm_soc_probe,
521+ .remove = __devexit_p(omap3evm_soc_remove),
522+};
523
524- return ret;
525+static int __init omap3evm_soc_init(void)
526+{
527+ return platform_driver_register(&omap3evm_driver);
528 }
529+module_init(omap3evm_soc_init);
530
531 static void __exit omap3evm_soc_exit(void)
532 {
533- platform_device_unregister(omap3evm_snd_device);
534+ platform_driver_unregister(&omap3evm_driver);
535 }
536-
537-module_init(omap3evm_soc_init);
538 module_exit(omap3evm_soc_exit);
539
540 MODULE_AUTHOR("Anuj Aggarwal <anuj.aggarwal@ti.com>");
541 MODULE_DESCRIPTION("ALSA SoC OMAP3 EVM");
542 MODULE_LICENSE("GPL v2");
543+MODULE_ALIAS("platform:omap3evm-soc-audio");
544diff --git a/sound/soc/omap/omap3pandora.c b/sound/soc/omap/omap3pandora.c
545index 7605c37..fd289a4 100644
546--- a/sound/soc/omap/omap3pandora.c
547+++ b/sound/soc/omap/omap3pandora.c
548@@ -237,17 +237,15 @@ static struct snd_soc_card snd_soc_card_omap3pandora = {
549 .num_links = ARRAY_SIZE(omap3pandora_dai),
550 };
551
552-static struct platform_device *omap3pandora_snd_device;
553-
554-static int __init omap3pandora_soc_init(void)
555+static int __devinit omap3pandora_soc_probe(struct platform_device *pdev)
556 {
557+ struct snd_soc_card *card = &snd_soc_card_omap3pandora;
558 int ret;
559
560- if (!machine_is_omap3_pandora())
561- return -ENODEV;
562-
563 pr_info("OMAP3 Pandora SoC init\n");
564
565+ card->dev = &pdev->dev;
566+
567 ret = gpio_request(OMAP3_PANDORA_DAC_POWER_GPIO, "dac_power");
568 if (ret) {
569 pr_err(PREFIX "Failed to get DAC power GPIO\n");
570@@ -272,53 +270,68 @@ static int __init omap3pandora_soc_init(void)
571 goto fail1;
572 }
573
574- omap3pandora_snd_device = platform_device_alloc("soc-audio", -1);
575- if (omap3pandora_snd_device == NULL) {
576- pr_err(PREFIX "Platform device allocation failed\n");
577- ret = -ENOMEM;
578- goto fail1;
579- }
580-
581- platform_set_drvdata(omap3pandora_snd_device, &snd_soc_card_omap3pandora);
582-
583- ret = platform_device_add(omap3pandora_snd_device);
584+ ret = snd_soc_register_card(card);
585 if (ret) {
586- pr_err(PREFIX "Unable to add platform device\n");
587- goto fail2;
588+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
589+ ret);
590+ goto fail1;
591 }
592
593- omap3pandora_dac_reg = regulator_get(&omap3pandora_snd_device->dev, "vcc");
594+ omap3pandora_dac_reg = regulator_get(card->dev, "vcc");
595 if (IS_ERR(omap3pandora_dac_reg)) {
596 pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n",
597- dev_name(&omap3pandora_snd_device->dev),
598+ dev_name(card->dev),
599 PTR_ERR(omap3pandora_dac_reg));
600 ret = PTR_ERR(omap3pandora_dac_reg);
601- goto fail3;
602+ goto fail2;
603 }
604
605 return 0;
606
607-fail3:
608- platform_device_del(omap3pandora_snd_device);
609 fail2:
610- platform_device_put(omap3pandora_snd_device);
611+ snd_soc_unregister_card(card);
612 fail1:
613 gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
614 fail0:
615 gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
616 return ret;
617 }
618-module_init(omap3pandora_soc_init);
619
620-static void __exit omap3pandora_soc_exit(void)
621+static int __devexit omap3pandora_soc_remove(struct platform_device *pdev)
622 {
623+ struct snd_soc_card *card = platform_get_drvdata(pdev);
624+
625 regulator_put(omap3pandora_dac_reg);
626- platform_device_unregister(omap3pandora_snd_device);
627+ snd_soc_unregister_card(card);
628 gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
629 gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
630+
631+ return 0;
632+}
633+
634+static struct platform_driver omap3pandora_driver = {
635+ .driver = {
636+ .name = "pandora-soc-audio",
637+ .owner = THIS_MODULE,
638+ },
639+
640+ .probe = omap3pandora_soc_probe,
641+ .remove = __devexit_p(omap3pandora_soc_remove),
642+};
643+
644+static int __init omap3pandora_soc_init(void)
645+{
646+ return platform_driver_register(&omap3pandora_driver);
647+}
648+module_init(omap3pandora_soc_init);
649+
650+static void __exit omap3pandora_soc_exit(void)
651+{
652+ platform_driver_unregister(&omap3pandora_driver);
653 }
654 module_exit(omap3pandora_soc_exit);
655
656 MODULE_AUTHOR("Grazvydas Ignotas <notasas@gmail.com>");
657 MODULE_DESCRIPTION("ALSA SoC OMAP3 Pandora");
658 MODULE_LICENSE("GPL");
659+MODULE_ALIAS("platform:pandora-soc-audio");
660diff --git a/sound/soc/omap/overo.c b/sound/soc/omap/overo.c
661index c3550ae..fe8fd5e 100644
662--- a/sound/soc/omap/overo.c
663+++ b/sound/soc/omap/overo.c
664@@ -76,46 +76,57 @@ static struct snd_soc_card snd_soc_card_overo = {
665 .num_links = 1,
666 };
667
668-static struct platform_device *overo_snd_device;
669-
670-static int __init overo_soc_init(void)
671+static int __devinit overo_soc_probe(struct platform_device *pdev)
672 {
673+ struct snd_soc_card *card = &snd_soc_card_overo;
674 int ret;
675
676- if (!(machine_is_overo() || machine_is_cm_t35())) {
677- pr_debug("Incomatible machine!\n");
678- return -ENODEV;
679- }
680- printk(KERN_INFO "overo SoC init\n");
681+ pr_info("overo SoC init\n");
682+
683+ card->dev = &pdev->dev;
684
685- overo_snd_device = platform_device_alloc("soc-audio", -1);
686- if (!overo_snd_device) {
687- printk(KERN_ERR "Platform device allocation failed\n");
688- return -ENOMEM;
689+ ret = snd_soc_register_card(card);
690+ if (ret) {
691+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
692+ ret);
693+ return ret;
694 }
695
696- platform_set_drvdata(overo_snd_device, &snd_soc_card_overo);
697+ return 0;
698+}
699+
700+static int __devexit overo_soc_remove(struct platform_device *pdev)
701+{
702+ struct snd_soc_card *card = platform_get_drvdata(pdev);
703
704- ret = platform_device_add(overo_snd_device);
705- if (ret)
706- goto err1;
707+ snd_soc_unregister_card(card);
708
709 return 0;
710+}
711
712-err1:
713- printk(KERN_ERR "Unable to add platform device\n");
714- platform_device_put(overo_snd_device);
715+static struct platform_driver overo_driver = {
716+ .driver = {
717+ .name = "overo-soc-audio",
718+ .owner = THIS_MODULE,
719+ },
720
721- return ret;
722+ .probe = overo_soc_probe,
723+ .remove = __devexit_p(overo_soc_remove),
724+};
725+
726+static int __init overo_soc_init(void)
727+{
728+ return platform_driver_register(&overo_driver);
729 }
730 module_init(overo_soc_init);
731
732 static void __exit overo_soc_exit(void)
733 {
734- platform_device_unregister(overo_snd_device);
735+ platform_driver_unregister(&overo_driver);
736 }
737 module_exit(overo_soc_exit);
738
739 MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>");
740 MODULE_DESCRIPTION("ALSA SoC overo");
741 MODULE_LICENSE("GPL");
742+MODULE_ALIAS("platform:overo-soc-audio");
743diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c
744index 4cabb74..aca084d 100644
745--- a/sound/soc/omap/rx51.c
746+++ b/sound/soc/omap/rx51.c
747@@ -391,14 +391,12 @@ static struct snd_soc_card rx51_sound_card = {
748 .num_configs = ARRAY_SIZE(rx51_codec_conf),
749 };
750
751-static struct platform_device *rx51_snd_device;
752-
753-static int __init rx51_soc_init(void)
754+static int __devinit rx51_soc_probe(struct platform_device *pdev)
755 {
756+ struct snd_soc_card *card = &rx51_sound_card;
757 int err;
758
759- if (!machine_is_nokia_rx51())
760- return -ENODEV;
761+ card->dev = &pdev->dev;
762
763 err = gpio_request_one(RX51_TVOUT_SEL_GPIO,
764 GPIOF_DIR_OUT | GPIOF_INIT_LOW, "tvout_sel");
765@@ -409,21 +407,14 @@ static int __init rx51_soc_init(void)
766 if (err)
767 goto err_gpio_eci_sw;
768
769- rx51_snd_device = platform_device_alloc("soc-audio", -1);
770- if (!rx51_snd_device) {
771- err = -ENOMEM;
772+ err = snd_soc_register_card(card);
773+ if (err) {
774+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
775+ err);
776 goto err1;
777 }
778
779- platform_set_drvdata(rx51_snd_device, &rx51_sound_card);
780-
781- err = platform_device_add(rx51_snd_device);
782- if (err)
783- goto err2;
784-
785 return 0;
786-err2:
787- platform_device_put(rx51_snd_device);
788 err1:
789 gpio_free(RX51_ECI_SW_GPIO);
790 err_gpio_eci_sw:
791@@ -433,19 +424,44 @@ err_gpio_tvout_sel:
792 return err;
793 }
794
795-static void __exit rx51_soc_exit(void)
796+static int __devexit rx51_soc_remove(struct platform_device *pdev)
797 {
798+ struct snd_soc_card *card = platform_get_drvdata(pdev);
799+
800 snd_soc_jack_free_gpios(&rx51_av_jack, ARRAY_SIZE(rx51_av_jack_gpios),
801 rx51_av_jack_gpios);
802
803- platform_device_unregister(rx51_snd_device);
804+ snd_soc_unregister_card(card);
805+
806 gpio_free(RX51_ECI_SW_GPIO);
807 gpio_free(RX51_TVOUT_SEL_GPIO);
808+
809+ return 0;
810 }
811
812+static struct platform_driver rx51_driver = {
813+ .driver = {
814+ .name = "rx51-soc-audio",
815+ .owner = THIS_MODULE,
816+ },
817+
818+ .probe = rx51_soc_probe,
819+ .remove = __devexit_p(rx51_soc_remove),
820+};
821+
822+static int __init rx51_soc_init(void)
823+{
824+ return platform_driver_register(&rx51_driver);
825+}
826 module_init(rx51_soc_init);
827+
828+static void __exit rx51_soc_exit(void)
829+{
830+ platform_driver_unregister(&rx51_driver);
831+}
832 module_exit(rx51_soc_exit);
833
834 MODULE_AUTHOR("Nokia Corporation");
835 MODULE_DESCRIPTION("ALSA SoC Nokia RX-51");
836 MODULE_LICENSE("GPL");
837+MODULE_ALIAS("platform:rx51-soc-audio");
838diff --git a/sound/soc/omap/sdp3430.c b/sound/soc/omap/sdp3430.c
839index e8fbf8e..09fd5bd 100644
840--- a/sound/soc/omap/sdp3430.c
841+++ b/sound/soc/omap/sdp3430.c
842@@ -222,24 +222,15 @@ static struct snd_soc_card snd_soc_sdp3430 = {
843 .num_dapm_routes = ARRAY_SIZE(audio_map),
844 };
845
846-static struct platform_device *sdp3430_snd_device;
847-
848-static int __init sdp3430_soc_init(void)
849+static int __devinit sdp3430_soc_probe(struct platform_device *pdev)
850 {
851+ struct snd_soc_card *card = &snd_soc_sdp3430;
852 int ret;
853 u8 pin_mux;
854
855- if (!machine_is_omap_3430sdp())
856- return -ENODEV;
857- printk(KERN_INFO "SDP3430 SoC init\n");
858-
859- sdp3430_snd_device = platform_device_alloc("soc-audio", -1);
860- if (!sdp3430_snd_device) {
861- printk(KERN_ERR "Platform device allocation failed\n");
862- return -ENOMEM;
863- }
864+ pr_info("SDP3430 SoC init\n");
865
866- platform_set_drvdata(sdp3430_snd_device, &snd_soc_sdp3430);
867+ card->dev = &pdev->dev;
868
869 /* Set TWL4030 GPIO6 as EXTMUTE signal */
870 twl_i2c_read_u8(TWL4030_MODULE_INTBR, &pin_mux,
871@@ -249,30 +240,51 @@ static int __init sdp3430_soc_init(void)
872 twl_i2c_write_u8(TWL4030_MODULE_INTBR, pin_mux,
873 TWL4030_INTBR_PMBR1);
874
875- ret = platform_device_add(sdp3430_snd_device);
876- if (ret)
877- goto err1;
878+ ret = snd_soc_register_card(card);
879+ if (ret) {
880+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
881+ ret);
882+ return ret;
883+ }
884
885 return 0;
886+}
887
888-err1:
889- printk(KERN_ERR "Unable to add platform device\n");
890- platform_device_put(sdp3430_snd_device);
891+static int __devexit sdp3430_soc_remove(struct platform_device *pdev)
892+{
893+ struct snd_soc_card *card = platform_get_drvdata(pdev);
894
895- return ret;
896+ snd_soc_jack_free_gpios(&hs_jack, ARRAY_SIZE(hs_jack_gpios),
897+ hs_jack_gpios);
898+
899+ snd_soc_unregister_card(card);
900+
901+ return 0;
902+}
903+
904+static struct platform_driver sdp3430_driver = {
905+ .driver = {
906+ .name = "sdp3430-soc-audio",
907+ .owner = THIS_MODULE,
908+ },
909+
910+ .probe = sdp3430_soc_probe,
911+ .remove = __devexit_p(sdp3430_soc_remove),
912+};
913+
914+static int __init sdp3430_soc_init(void)
915+{
916+ return platform_driver_register(&sdp3430_driver);
917 }
918 module_init(sdp3430_soc_init);
919
920 static void __exit sdp3430_soc_exit(void)
921 {
922- snd_soc_jack_free_gpios(&hs_jack, ARRAY_SIZE(hs_jack_gpios),
923- hs_jack_gpios);
924-
925- platform_device_unregister(sdp3430_snd_device);
926+ platform_driver_unregister(&sdp3430_driver);
927 }
928 module_exit(sdp3430_soc_exit);
929
930 MODULE_AUTHOR("Misael Lopez Cruz <x0052729@ti.com>");
931 MODULE_DESCRIPTION("ALSA SoC SDP3430");
932 MODULE_LICENSE("GPL");
933-
934+MODULE_ALIAS("platform:sdp3430-soc-audio");
935diff --git a/sound/soc/omap/sdp4430.c b/sound/soc/omap/sdp4430.c
936index 03d9fa4..b3a05b1 100644
937--- a/sound/soc/omap/sdp4430.c
938+++ b/sound/soc/omap/sdp4430.c
939@@ -172,44 +172,57 @@ static struct snd_soc_card snd_soc_sdp4430 = {
940 .num_dapm_routes = ARRAY_SIZE(audio_map),
941 };
942
943-static struct platform_device *sdp4430_snd_device;
944-
945-static int __init sdp4430_soc_init(void)
946+static int __devinit sdp4430_soc_probe(struct platform_device *pdev)
947 {
948+ struct snd_soc_card *card = &snd_soc_sdp4430;
949 int ret;
950
951- if (!machine_is_omap_4430sdp())
952- return -ENODEV;
953- printk(KERN_INFO "SDP4430 SoC init\n");
954+ pr_info("SDP4430 SoC init\n");
955+
956+ card->dev = &pdev->dev;
957
958- sdp4430_snd_device = platform_device_alloc("soc-audio", -1);
959- if (!sdp4430_snd_device) {
960- printk(KERN_ERR "Platform device allocation failed\n");
961- return -ENOMEM;
962+ ret = snd_soc_register_card(card);
963+ if (ret) {
964+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
965+ ret);
966+ return ret;
967 }
968
969- platform_set_drvdata(sdp4430_snd_device, &snd_soc_sdp4430);
970+ return 0;
971+}
972
973- ret = platform_device_add(sdp4430_snd_device);
974- if (ret)
975- goto err;
976+static int __devexit sdp4430_soc_remove(struct platform_device *pdev)
977+{
978+ struct snd_soc_card *card = platform_get_drvdata(pdev);
979+
980+ snd_soc_unregister_card(card);
981
982 return 0;
983+}
984
985-err:
986- printk(KERN_ERR "Unable to add platform device\n");
987- platform_device_put(sdp4430_snd_device);
988- return ret;
989+static struct platform_driver sdp4430_driver = {
990+ .driver = {
991+ .name = "sdp4430-soc-audio",
992+ .owner = THIS_MODULE,
993+ },
994+
995+ .probe = sdp4430_soc_probe,
996+ .remove = __devexit_p(sdp4430_soc_remove),
997+};
998+
999+static int __init sdp4430_soc_init(void)
1000+{
1001+ return platform_driver_register(&sdp4430_driver);
1002 }
1003 module_init(sdp4430_soc_init);
1004
1005 static void __exit sdp4430_soc_exit(void)
1006 {
1007- platform_device_unregister(sdp4430_snd_device);
1008+ platform_driver_unregister(&sdp4430_driver);
1009 }
1010 module_exit(sdp4430_soc_exit);
1011
1012 MODULE_AUTHOR("Misael Lopez Cruz <x0052729@ti.com>");
1013 MODULE_DESCRIPTION("ALSA SoC SDP4430");
1014 MODULE_LICENSE("GPL");
1015-
1016+MODULE_ALIAS("platform:sdp4430-soc-audio");
1017diff --git a/sound/soc/omap/zoom2.c b/sound/soc/omap/zoom2.c
1018index 7641a7f..8db8e10 100644
1019--- a/sound/soc/omap/zoom2.c
1020+++ b/sound/soc/omap/zoom2.c
1021@@ -166,26 +166,14 @@ static struct snd_soc_card snd_soc_zoom2 = {
1022 .num_dapm_routes = ARRAY_SIZE(audio_map),
1023 };
1024
1025-static struct platform_device *zoom2_snd_device;
1026-
1027-static int __init zoom2_soc_init(void)
1028+static int __devinit zoom2_soc_probe(struct platform_device *pdev)
1029 {
1030+ struct snd_soc_card *card = &snd_soc_zoom2;
1031 int ret;
1032
1033- if (!machine_is_omap_zoom2())
1034- return -ENODEV;
1035- printk(KERN_INFO "Zoom2 SoC init\n");
1036-
1037- zoom2_snd_device = platform_device_alloc("soc-audio", -1);
1038- if (!zoom2_snd_device) {
1039- printk(KERN_ERR "Platform device allocation failed\n");
1040- return -ENOMEM;
1041- }
1042+ pr_info("Zoom2 SoC init\n");
1043
1044- platform_set_drvdata(zoom2_snd_device, &snd_soc_zoom2);
1045- ret = platform_device_add(zoom2_snd_device);
1046- if (ret)
1047- goto err1;
1048+ card->dev = &pdev->dev;
1049
1050 BUG_ON(gpio_request(ZOOM2_HEADSET_MUX_GPIO, "hs_mux") < 0);
1051 gpio_direction_output(ZOOM2_HEADSET_MUX_GPIO, 0);
1052@@ -193,26 +181,57 @@ static int __init zoom2_soc_init(void)
1053 BUG_ON(gpio_request(ZOOM2_HEADSET_EXTMUTE_GPIO, "ext_mute") < 0);
1054 gpio_direction_output(ZOOM2_HEADSET_EXTMUTE_GPIO, 0);
1055
1056+ ret = snd_soc_register_card(card);
1057+ if (ret) {
1058+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
1059+ ret);
1060+ goto err;
1061+ }
1062+
1063 return 0;
1064
1065-err1:
1066- printk(KERN_ERR "Unable to add platform device\n");
1067- platform_device_put(zoom2_snd_device);
1068+err:
1069+ gpio_free(ZOOM2_HEADSET_MUX_GPIO);
1070+ gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO);
1071
1072 return ret;
1073 }
1074-module_init(zoom2_soc_init);
1075
1076-static void __exit zoom2_soc_exit(void)
1077+static int __devexit zoom2_soc_remove(struct platform_device *pdev)
1078 {
1079+ struct snd_soc_card *card = platform_get_drvdata(pdev);
1080+
1081+ snd_soc_unregister_card(card);
1082+
1083 gpio_free(ZOOM2_HEADSET_MUX_GPIO);
1084 gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO);
1085
1086- platform_device_unregister(zoom2_snd_device);
1087+ return 0;
1088+}
1089+
1090+static struct platform_driver zoom2_driver = {
1091+ .driver = {
1092+ .name = "zoom2-soc-audio",
1093+ .owner = THIS_MODULE,
1094+ },
1095+
1096+ .probe = zoom2_soc_probe,
1097+ .remove = __devexit_p(zoom2_soc_remove),
1098+};
1099+
1100+static int __init zoom2_soc_init(void)
1101+{
1102+ return platform_driver_register(&zoom2_driver);
1103+}
1104+module_init(zoom2_soc_init);
1105+
1106+static void __exit zoom2_soc_exit(void)
1107+{
1108+ platform_driver_unregister(&zoom2_driver);
1109 }
1110 module_exit(zoom2_soc_exit);
1111
1112 MODULE_AUTHOR("Misael Lopez Cruz <x0052729@ti.com>");
1113 MODULE_DESCRIPTION("ALSA SoC Zoom2");
1114 MODULE_LICENSE("GPL");
1115-
1116+MODULE_ALIAS("platform:zoom2-soc-audio");
1117--
11181.7.10
1119
diff --git a/recipes-kernel/linux/linux-mainline_3.2.bb b/recipes-kernel/linux/linux-mainline_3.2.bb
index 3e57ccf2..72a06e32 100644
--- a/recipes-kernel/linux/linux-mainline_3.2.bb
+++ b/recipes-kernel/linux/linux-mainline_3.2.bb
@@ -10,7 +10,7 @@ PV = "3.2.16"
10SRCREV_pn-${PN} = "b1be7dd1ec231ae751d0ce3acd0d2e5760704a6f" 10SRCREV_pn-${PN} = "b1be7dd1ec231ae751d0ce3acd0d2e5760704a6f"
11 11
12# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc 12# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
13MACHINE_KERNEL_PR_append = "b" 13MACHINE_KERNEL_PR_append = "c"
14 14
15FILESPATH =. "${FILE_DIRNAME}/linux-mainline-3.2:${FILE_DIRNAME}/linux-mainline-3.2/${MACHINE}:" 15FILESPATH =. "${FILE_DIRNAME}/linux-mainline-3.2:${FILE_DIRNAME}/linux-mainline-3.2/${MACHINE}:"
16 16
@@ -58,6 +58,8 @@ SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gi
58 file://beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch \ 58 file://beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch \
59 file://beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch \ 59 file://beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch \
60 file://beagle/0014-expansion-add-wifi.patch \ 60 file://beagle/0014-expansion-add-wifi.patch \
61 file://beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch \
62 file://beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch \
61 file://devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch \ 63 file://devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch \
62 file://touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch \ 64 file://touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch \
63 file://touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch \ 65 file://touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch \