diff options
Diffstat (limited to 'sound/soc/codecs/wm8753.c')
-rw-r--r-- | sound/soc/codecs/wm8753.c | 58 |
1 files changed, 3 insertions, 55 deletions
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index 5ad677ce80da..613199a0f799 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/i2c.h> | 40 | #include <linux/i2c.h> |
41 | #include <linux/platform_device.h> | 41 | #include <linux/platform_device.h> |
42 | #include <linux/spi/spi.h> | 42 | #include <linux/spi/spi.h> |
43 | #include <linux/slab.h> | ||
43 | #include <sound/core.h> | 44 | #include <sound/core.h> |
44 | #include <sound/pcm.h> | 45 | #include <sound/pcm.h> |
45 | #include <sound/pcm_params.h> | 46 | #include <sound/pcm_params.h> |
@@ -673,7 +674,6 @@ static int wm8753_add_widgets(struct snd_soc_codec *codec) | |||
673 | 674 | ||
674 | snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); | 675 | snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); |
675 | 676 | ||
676 | snd_soc_dapm_new_widgets(codec); | ||
677 | return 0; | 677 | return 0; |
678 | } | 678 | } |
679 | 679 | ||
@@ -724,8 +724,8 @@ static void pll_factors(struct _pll_div *pll_div, unsigned int target, | |||
724 | pll_div->k = K; | 724 | pll_div->k = K; |
725 | } | 725 | } |
726 | 726 | ||
727 | static int wm8753_set_dai_pll(struct snd_soc_dai *codec_dai, | 727 | static int wm8753_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id, |
728 | int pll_id, unsigned int freq_in, unsigned int freq_out) | 728 | int source, unsigned int freq_in, unsigned int freq_out) |
729 | { | 729 | { |
730 | u16 reg, enable; | 730 | u16 reg, enable; |
731 | int offset; | 731 | int offset; |
@@ -1508,10 +1508,6 @@ static int wm8753_suspend(struct platform_device *pdev, pm_message_t state) | |||
1508 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); | 1508 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); |
1509 | struct snd_soc_codec *codec = socdev->card->codec; | 1509 | struct snd_soc_codec *codec = socdev->card->codec; |
1510 | 1510 | ||
1511 | /* we only need to suspend if we are a valid card */ | ||
1512 | if (!codec->card) | ||
1513 | return 0; | ||
1514 | |||
1515 | wm8753_set_bias_level(codec, SND_SOC_BIAS_OFF); | 1511 | wm8753_set_bias_level(codec, SND_SOC_BIAS_OFF); |
1516 | return 0; | 1512 | return 0; |
1517 | } | 1513 | } |
@@ -1524,10 +1520,6 @@ static int wm8753_resume(struct platform_device *pdev) | |||
1524 | u8 data[2]; | 1520 | u8 data[2]; |
1525 | u16 *cache = codec->reg_cache; | 1521 | u16 *cache = codec->reg_cache; |
1526 | 1522 | ||
1527 | /* we only need to resume if we are a valid card */ | ||
1528 | if (!codec->card) | ||
1529 | return 0; | ||
1530 | |||
1531 | /* Sync reg_cache with the hardware */ | 1523 | /* Sync reg_cache with the hardware */ |
1532 | for (i = 0; i < ARRAY_SIZE(wm8753_reg); i++) { | 1524 | for (i = 0; i < ARRAY_SIZE(wm8753_reg); i++) { |
1533 | if (i + 1 == WM8753_RESET) | 1525 | if (i + 1 == WM8753_RESET) |
@@ -1583,18 +1575,9 @@ static int wm8753_probe(struct platform_device *pdev) | |||
1583 | snd_soc_add_controls(codec, wm8753_snd_controls, | 1575 | snd_soc_add_controls(codec, wm8753_snd_controls, |
1584 | ARRAY_SIZE(wm8753_snd_controls)); | 1576 | ARRAY_SIZE(wm8753_snd_controls)); |
1585 | wm8753_add_widgets(codec); | 1577 | wm8753_add_widgets(codec); |
1586 | ret = snd_soc_init_card(socdev); | ||
1587 | if (ret < 0) { | ||
1588 | printk(KERN_ERR "wm8753: failed to register card\n"); | ||
1589 | goto card_err; | ||
1590 | } | ||
1591 | 1578 | ||
1592 | return 0; | 1579 | return 0; |
1593 | 1580 | ||
1594 | card_err: | ||
1595 | snd_soc_free_pcms(socdev); | ||
1596 | snd_soc_dapm_free(socdev); | ||
1597 | |||
1598 | pcm_err: | 1581 | pcm_err: |
1599 | return ret; | 1582 | return ret; |
1600 | } | 1583 | } |
@@ -1767,21 +1750,6 @@ static int wm8753_i2c_remove(struct i2c_client *client) | |||
1767 | return 0; | 1750 | return 0; |
1768 | } | 1751 | } |
1769 | 1752 | ||
1770 | #ifdef CONFIG_PM | ||
1771 | static int wm8753_i2c_suspend(struct i2c_client *client, pm_message_t msg) | ||
1772 | { | ||
1773 | return snd_soc_suspend_device(&client->dev); | ||
1774 | } | ||
1775 | |||
1776 | static int wm8753_i2c_resume(struct i2c_client *client) | ||
1777 | { | ||
1778 | return snd_soc_resume_device(&client->dev); | ||
1779 | } | ||
1780 | #else | ||
1781 | #define wm8753_i2c_suspend NULL | ||
1782 | #define wm8753_i2c_resume NULL | ||
1783 | #endif | ||
1784 | |||
1785 | static const struct i2c_device_id wm8753_i2c_id[] = { | 1753 | static const struct i2c_device_id wm8753_i2c_id[] = { |
1786 | { "wm8753", 0 }, | 1754 | { "wm8753", 0 }, |
1787 | { } | 1755 | { } |
@@ -1795,8 +1763,6 @@ static struct i2c_driver wm8753_i2c_driver = { | |||
1795 | }, | 1763 | }, |
1796 | .probe = wm8753_i2c_probe, | 1764 | .probe = wm8753_i2c_probe, |
1797 | .remove = wm8753_i2c_remove, | 1765 | .remove = wm8753_i2c_remove, |
1798 | .suspend = wm8753_i2c_suspend, | ||
1799 | .resume = wm8753_i2c_resume, | ||
1800 | .id_table = wm8753_i2c_id, | 1766 | .id_table = wm8753_i2c_id, |
1801 | }; | 1767 | }; |
1802 | #endif | 1768 | #endif |
@@ -1852,22 +1818,6 @@ static int __devexit wm8753_spi_remove(struct spi_device *spi) | |||
1852 | return 0; | 1818 | return 0; |
1853 | } | 1819 | } |
1854 | 1820 | ||
1855 | #ifdef CONFIG_PM | ||
1856 | static int wm8753_spi_suspend(struct spi_device *spi, pm_message_t msg) | ||
1857 | { | ||
1858 | return snd_soc_suspend_device(&spi->dev); | ||
1859 | } | ||
1860 | |||
1861 | static int wm8753_spi_resume(struct spi_device *spi) | ||
1862 | { | ||
1863 | return snd_soc_resume_device(&spi->dev); | ||
1864 | } | ||
1865 | |||
1866 | #else | ||
1867 | #define wm8753_spi_suspend NULL | ||
1868 | #define wm8753_spi_resume NULL | ||
1869 | #endif | ||
1870 | |||
1871 | static struct spi_driver wm8753_spi_driver = { | 1821 | static struct spi_driver wm8753_spi_driver = { |
1872 | .driver = { | 1822 | .driver = { |
1873 | .name = "wm8753", | 1823 | .name = "wm8753", |
@@ -1876,8 +1826,6 @@ static struct spi_driver wm8753_spi_driver = { | |||
1876 | }, | 1826 | }, |
1877 | .probe = wm8753_spi_probe, | 1827 | .probe = wm8753_spi_probe, |
1878 | .remove = __devexit_p(wm8753_spi_remove), | 1828 | .remove = __devexit_p(wm8753_spi_remove), |
1879 | .suspend = wm8753_spi_suspend, | ||
1880 | .resume = wm8753_spi_resume, | ||
1881 | }; | 1829 | }; |
1882 | #endif | 1830 | #endif |
1883 | 1831 | ||