Date: | 2012-01-06 04:30:10 (11 years 8 months ago) |
---|---|
Author: | Axel Lin |
Commit: | c80c63ae314c7afe22dfc74ac55b2c4879c064b9 |
Message: | ASoC: jz4740: Convert qi_lb60 to use snd_soc_register_card() Use snd_soc_register_card() instead of creating a "soc-audio" platform device. Signed-off-by: Axel Lin <axel.lin@gmail.com> |
Files: |
arch/mips/jz4740/board-qi_lb60.c (2 diffs) sound/soc/jz4740/qi_lb60.c (1 diff) |
Change Details
arch/mips/jz4740/board-qi_lb60.c | ||
---|---|---|
418 | 418 | }, |
419 | 419 | }; |
420 | 420 | |
421 | /* audio */ | |
422 | static struct platform_device qi_lb60_audio_device = { | |
423 | .name = "qi-lb60-audio", | |
424 | .id = -1, | |
425 | }; | |
421 | 426 | |
422 | 427 | static struct platform_device *jz_platform_devices[] __initdata = { |
423 | 428 | &jz4740_udc_device, |
... | ... | |
434 | 439 | &qi_lb60_gpio_keys, |
435 | 440 | &qi_lb60_pwm_beeper, |
436 | 441 | &qi_lb60_charger_device, |
442 | &qi_lb60_audio_device, | |
437 | 443 | }; |
438 | 444 | |
439 | 445 | static void __init board_gpio_setup(void) |
sound/soc/jz4740/qi_lb60.c | ||
---|---|---|
90 | 90 | .num_dapm_routes = ARRAY_SIZE(qi_lb60_routes), |
91 | 91 | }; |
92 | 92 | |
93 | static struct platform_device *qi_lb60_snd_device; | |
94 | ||
95 | 93 | static const struct gpio qi_lb60_gpios[] = { |
96 | 94 | { QI_LB60_SND_GPIO, GPIOF_OUT_INIT_LOW, "SND" }, |
97 | 95 | { QI_LB60_AMP_GPIO, GPIOF_OUT_INIT_LOW, "AMP" }, |
98 | 96 | }; |
99 | 97 | |
100 | static int __init qi_lb60_init(void) | |
98 | static int __devinit qi_lb60_probe(struct platform_device *pdev) | |
101 | 99 | { |
100 | struct snd_soc_card *card = &qi_lb60; | |
102 | 101 | int ret; |
103 | 102 | |
104 | qi_lb60_snd_device = platform_device_alloc("soc-audio", -1); | |
105 | ||
106 | if (!qi_lb60_snd_device) | |
107 | return -ENOMEM; | |
108 | ||
109 | 103 | ret = gpio_request_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios)); |
110 | if (ret) { | |
111 | pr_err("qi_lb60 snd: Failed to request gpios: %d\n", ret); | |
112 | goto err_device_put; | |
113 | } | |
104 | if (ret) | |
105 | return ret; | |
114 | 106 | |
115 | platform_set_drvdata(qi_lb60_snd_device, &qi_lb60); | |
107 | card->dev = &pdev->dev; | |
116 | 108 | |
117 | ret = platform_device_add(qi_lb60_snd_device); | |
109 | ret = snd_soc_register_card(card); | |
118 | 110 | if (ret) { |
119 | pr_err("qi_lb60 snd: Failed to add snd soc device: %d\n", ret); | |
120 | goto err_unset_pdata; | |
111 | dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", | |
112 | ret); | |
113 | gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios)); | |
121 | 114 | } |
122 | ||
123 | return 0; | |
124 | ||
125 | err_unset_pdata: | |
126 | platform_set_drvdata(qi_lb60_snd_device, NULL); | |
127 | /*err_gpio_free_array:*/ | |
128 | gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios)); | |
129 | err_device_put: | |
130 | platform_device_put(qi_lb60_snd_device); | |
131 | ||
132 | 115 | return ret; |
133 | 116 | } |
134 | module_init(qi_lb60_init); | |
135 | 117 | |
136 | static void __exit qi_lb60_exit(void) | |
118 | static int __devexit qi_lb60_remove(struct platform_device *pdev) | |
137 | 119 | { |
138 | platform_device_unregister(qi_lb60_snd_device); | |
120 | struct snd_soc_card *card = platform_get_drvdata(pdev); | |
121 | ||
122 | snd_soc_unregister_card(card); | |
139 | 123 | gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios)); |
124 | return 0; | |
140 | 125 | } |
141 | module_exit(qi_lb60_exit); | |
126 | ||
127 | static struct platform_driver qi_lb60_driver = { | |
128 | .driver = { | |
129 | .name = "qi-lb60-audio", | |
130 | .owner = THIS_MODULE, | |
131 | }, | |
132 | .probe = qi_lb60_probe, | |
133 | .remove = __devexit_p(qi_lb60_remove), | |
134 | }; | |
135 | ||
136 | module_platform_driver(qi_lb60_driver); | |
142 | 137 | |
143 | 138 | MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>"); |
144 | 139 | MODULE_DESCRIPTION("ALSA SoC QI LB60 Audio support"); |
145 | 140 | MODULE_LICENSE("GPL v2"); |
141 | MODULE_ALIAS("platform:qi-lb60-audio"); |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9