Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 293193
b: refs/heads/master
c: b33005f
h: refs/heads/master
i:
  293191: 9b1c684
v: v3
  • Loading branch information
Axel Lin authored and Mark Brown committed Jan 20, 2012
1 parent 1c515df commit 18baa31
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cef6d1d450ba217dc173a83a50d12de9aaa32bb6
refs/heads/master: b33005f3ef6a85be3202ee1b8a2513ed1ef4019d
6 changes: 6 additions & 0 deletions trunk/arch/mips/jz4740/board-qi_lb60.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,11 @@ static struct platform_device qi_lb60_charger_device = {
},
};

/* audio */
static struct platform_device qi_lb60_audio_device = {
.name = "qi-lb60-audio",
.id = -1,
};

static struct platform_device *jz_platform_devices[] __initdata = {
&jz4740_udc_device,
Expand All @@ -434,6 +439,7 @@ static struct platform_device *jz_platform_devices[] __initdata = {
&qi_lb60_gpio_keys,
&qi_lb60_pwm_beeper,
&qi_lb60_charger_device,
&qi_lb60_audio_device,
};

static void __init board_gpio_setup(void)
Expand Down
56 changes: 26 additions & 30 deletions trunk/sound/soc/jz4740/qi_lb60.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,56 +91,52 @@ static struct snd_soc_card qi_lb60 = {
.num_dapm_routes = ARRAY_SIZE(qi_lb60_routes),
};

static struct platform_device *qi_lb60_snd_device;

static const struct gpio qi_lb60_gpios[] = {
{ QI_LB60_SND_GPIO, GPIOF_OUT_INIT_LOW, "SND" },
{ QI_LB60_AMP_GPIO, GPIOF_OUT_INIT_LOW, "AMP" },
};

static int __init qi_lb60_init(void)
static int __devinit qi_lb60_probe(struct platform_device *pdev)
{
struct snd_soc_card *card = &qi_lb60;
int ret;

qi_lb60_snd_device = platform_device_alloc("soc-audio", -1);

if (!qi_lb60_snd_device)
return -ENOMEM;

ret = gpio_request_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
if (ret) {
pr_err("qi_lb60 snd: Failed to request gpios: %d\n", ret);
goto err_device_put;
}
if (ret)
return ret;

platform_set_drvdata(qi_lb60_snd_device, &qi_lb60);
card->dev = &pdev->dev;

ret = platform_device_add(qi_lb60_snd_device);
ret = snd_soc_register_card(card);
if (ret) {
pr_err("qi_lb60 snd: Failed to add snd soc device: %d\n", ret);
goto err_unset_pdata;
dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
ret);
gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
}

return 0;

err_unset_pdata:
platform_set_drvdata(qi_lb60_snd_device, NULL);
/*err_gpio_free_array:*/
gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
err_device_put:
platform_device_put(qi_lb60_snd_device);

return ret;
}
module_init(qi_lb60_init);

static void __exit qi_lb60_exit(void)
static int __devexit qi_lb60_remove(struct platform_device *pdev)
{
platform_device_unregister(qi_lb60_snd_device);
struct snd_soc_card *card = platform_get_drvdata(pdev);

snd_soc_unregister_card(card);
gpio_free_array(qi_lb60_gpios, ARRAY_SIZE(qi_lb60_gpios));
return 0;
}
module_exit(qi_lb60_exit);

static struct platform_driver qi_lb60_driver = {
.driver = {
.name = "qi-lb60-audio",
.owner = THIS_MODULE,
},
.probe = qi_lb60_probe,
.remove = __devexit_p(qi_lb60_remove),
};

module_platform_driver(qi_lb60_driver);

MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
MODULE_DESCRIPTION("ALSA SoC QI LB60 Audio support");
MODULE_LICENSE("GPL v2");
MODULE_ALIAS("platform:qi-lb60-audio");

0 comments on commit 18baa31

Please sign in to comment.