Loading arch/arm/mach-omap1/board-ams-delta.c +6 −4 Original line number Diff line number Diff line Loading @@ -246,8 +246,8 @@ static struct platform_device latch2_gpio_device = { #define LATCH2_PIN_SCARD_CMDVCC 11 #define LATCH2_PIN_MODEM_NRESET 12 #define LATCH2_PIN_MODEM_CODEC 13 #define LATCH2_PIN_AUDIO_MUTE 14 #define LATCH2_PIN_HOOKFLASH 15 #define LATCH2_PIN_HANDSFREE_MUTE 14 #define LATCH2_PIN_HANDSET_MUTE 15 static struct regulator_consumer_supply modem_nreset_consumers[] = { REGULATOR_SUPPLY("RESET#", "serial8250.1"), Loading Loading @@ -476,6 +476,10 @@ static struct gpiod_lookup_table ams_delta_audio_gpio_table = { "hook_switch", 0), GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_MODEM_CODEC, "modem_codec", 0), GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_HANDSFREE_MUTE, "handsfree_mute", 0), GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_HANDSET_MUTE, "handset_mute", 0), { }, }, }; Loading Loading @@ -590,8 +594,6 @@ static int gpiochip_match_by_label(struct gpio_chip *chip, void *data) static struct gpiod_hog ams_delta_gpio_hogs[] = { GPIO_HOG(LATCH2_LABEL, LATCH2_PIN_KEYBRD_DATAOUT, "keybrd_dataout", GPIO_ACTIVE_HIGH, GPIOD_OUT_LOW), GPIO_HOG(LATCH2_LABEL, LATCH2_PIN_AUDIO_MUTE, "audio_mute", GPIO_ACTIVE_HIGH, GPIOD_OUT_LOW), {}, }; Loading include/sound/soc-dapm.h +3 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,9 @@ int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, struct snd_soc_dapm_widget *snd_soc_dapm_new_control( struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget); struct snd_soc_dapm_widget *snd_soc_dapm_new_control_unlocked( struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget); int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai); int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card); Loading sound/soc/amd/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ config SND_SOC_AMD_CZ_DA7219MX98357_MACH select SND_SOC_MAX98357A select SND_SOC_ADAU7002 select REGULATOR depends on SND_SOC_AMD_ACP && I2C depends on SND_SOC_AMD_ACP && I2C && GPIOLIB help This option enables machine driver for DA7219 and MAX9835. Loading sound/soc/atmel/mchp-i2s-mcc.c +27 −14 Original line number Diff line number Diff line Loading @@ -670,8 +670,13 @@ static int mchp_i2s_mcc_hw_params(struct snd_pcm_substream *substream, } ret = regmap_write(dev->regmap, MCHP_I2SMCC_MRA, mra); if (ret < 0) if (ret < 0) { if (dev->gclk_use) { clk_unprepare(dev->gclk); dev->gclk_use = 0; } return ret; } return regmap_write(dev->regmap, MCHP_I2SMCC_MRB, mrb); } Loading @@ -686,31 +691,37 @@ static int mchp_i2s_mcc_hw_free(struct snd_pcm_substream *substream, err = wait_event_interruptible_timeout(dev->wq_txrdy, dev->tx_rdy, msecs_to_jiffies(500)); if (err == 0) { dev_warn_once(dev->dev, "Timeout waiting for Tx ready\n"); regmap_write(dev->regmap, MCHP_I2SMCC_IDRA, MCHP_I2SMCC_INT_TXRDY_MASK(dev->channels)); dev->tx_rdy = 1; } } else { err = wait_event_interruptible_timeout(dev->wq_rxrdy, dev->rx_rdy, msecs_to_jiffies(500)); } if (err == 0) { u32 idra; dev_warn_once(dev->dev, "Timeout waiting for %s\n", is_playback ? "Tx ready" : "Rx ready"); if (is_playback) idra = MCHP_I2SMCC_INT_TXRDY_MASK(dev->channels); else idra = MCHP_I2SMCC_INT_RXRDY_MASK(dev->channels); regmap_write(dev->regmap, MCHP_I2SMCC_IDRA, idra); dev_warn_once(dev->dev, "Timeout waiting for Rx ready\n"); regmap_write(dev->regmap, MCHP_I2SMCC_IDRA, MCHP_I2SMCC_INT_RXRDY_MASK(dev->channels)); dev->rx_rdy = 1; } } if (!mchp_i2s_mcc_is_running(dev)) { regmap_write(dev->regmap, MCHP_I2SMCC_CR, MCHP_I2SMCC_CR_CKDIS); if (dev->gclk_running) { clk_disable_unprepare(dev->gclk); clk_disable(dev->gclk); dev->gclk_running = 0; } if (dev->gclk_use) { clk_unprepare(dev->gclk); dev->gclk_use = 0; } } return 0; Loading Loading @@ -809,6 +820,8 @@ static int mchp_i2s_mcc_dai_probe(struct snd_soc_dai *dai) init_waitqueue_head(&dev->wq_txrdy); init_waitqueue_head(&dev->wq_rxrdy); dev->tx_rdy = 1; dev->rx_rdy = 1; snd_soc_dai_init_dma_data(dai, &dev->playback, &dev->capture); Loading sound/soc/codecs/cs4349.c +1 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ static struct i2c_driver cs4349_i2c_driver = { .driver = { .name = "cs4349", .of_match_table = cs4349_of_match, .pm = &cs4349_runtime_pm, }, .id_table = cs4349_i2c_id, .probe = cs4349_i2c_probe, Loading Loading
arch/arm/mach-omap1/board-ams-delta.c +6 −4 Original line number Diff line number Diff line Loading @@ -246,8 +246,8 @@ static struct platform_device latch2_gpio_device = { #define LATCH2_PIN_SCARD_CMDVCC 11 #define LATCH2_PIN_MODEM_NRESET 12 #define LATCH2_PIN_MODEM_CODEC 13 #define LATCH2_PIN_AUDIO_MUTE 14 #define LATCH2_PIN_HOOKFLASH 15 #define LATCH2_PIN_HANDSFREE_MUTE 14 #define LATCH2_PIN_HANDSET_MUTE 15 static struct regulator_consumer_supply modem_nreset_consumers[] = { REGULATOR_SUPPLY("RESET#", "serial8250.1"), Loading Loading @@ -476,6 +476,10 @@ static struct gpiod_lookup_table ams_delta_audio_gpio_table = { "hook_switch", 0), GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_MODEM_CODEC, "modem_codec", 0), GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_HANDSFREE_MUTE, "handsfree_mute", 0), GPIO_LOOKUP(LATCH2_LABEL, LATCH2_PIN_HANDSET_MUTE, "handset_mute", 0), { }, }, }; Loading Loading @@ -590,8 +594,6 @@ static int gpiochip_match_by_label(struct gpio_chip *chip, void *data) static struct gpiod_hog ams_delta_gpio_hogs[] = { GPIO_HOG(LATCH2_LABEL, LATCH2_PIN_KEYBRD_DATAOUT, "keybrd_dataout", GPIO_ACTIVE_HIGH, GPIOD_OUT_LOW), GPIO_HOG(LATCH2_LABEL, LATCH2_PIN_AUDIO_MUTE, "audio_mute", GPIO_ACTIVE_HIGH, GPIOD_OUT_LOW), {}, }; Loading
include/sound/soc-dapm.h +3 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,9 @@ int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, struct snd_soc_dapm_widget *snd_soc_dapm_new_control( struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget); struct snd_soc_dapm_widget *snd_soc_dapm_new_control_unlocked( struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget); int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai); int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card); Loading
sound/soc/amd/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ config SND_SOC_AMD_CZ_DA7219MX98357_MACH select SND_SOC_MAX98357A select SND_SOC_ADAU7002 select REGULATOR depends on SND_SOC_AMD_ACP && I2C depends on SND_SOC_AMD_ACP && I2C && GPIOLIB help This option enables machine driver for DA7219 and MAX9835. Loading
sound/soc/atmel/mchp-i2s-mcc.c +27 −14 Original line number Diff line number Diff line Loading @@ -670,8 +670,13 @@ static int mchp_i2s_mcc_hw_params(struct snd_pcm_substream *substream, } ret = regmap_write(dev->regmap, MCHP_I2SMCC_MRA, mra); if (ret < 0) if (ret < 0) { if (dev->gclk_use) { clk_unprepare(dev->gclk); dev->gclk_use = 0; } return ret; } return regmap_write(dev->regmap, MCHP_I2SMCC_MRB, mrb); } Loading @@ -686,31 +691,37 @@ static int mchp_i2s_mcc_hw_free(struct snd_pcm_substream *substream, err = wait_event_interruptible_timeout(dev->wq_txrdy, dev->tx_rdy, msecs_to_jiffies(500)); if (err == 0) { dev_warn_once(dev->dev, "Timeout waiting for Tx ready\n"); regmap_write(dev->regmap, MCHP_I2SMCC_IDRA, MCHP_I2SMCC_INT_TXRDY_MASK(dev->channels)); dev->tx_rdy = 1; } } else { err = wait_event_interruptible_timeout(dev->wq_rxrdy, dev->rx_rdy, msecs_to_jiffies(500)); } if (err == 0) { u32 idra; dev_warn_once(dev->dev, "Timeout waiting for %s\n", is_playback ? "Tx ready" : "Rx ready"); if (is_playback) idra = MCHP_I2SMCC_INT_TXRDY_MASK(dev->channels); else idra = MCHP_I2SMCC_INT_RXRDY_MASK(dev->channels); regmap_write(dev->regmap, MCHP_I2SMCC_IDRA, idra); dev_warn_once(dev->dev, "Timeout waiting for Rx ready\n"); regmap_write(dev->regmap, MCHP_I2SMCC_IDRA, MCHP_I2SMCC_INT_RXRDY_MASK(dev->channels)); dev->rx_rdy = 1; } } if (!mchp_i2s_mcc_is_running(dev)) { regmap_write(dev->regmap, MCHP_I2SMCC_CR, MCHP_I2SMCC_CR_CKDIS); if (dev->gclk_running) { clk_disable_unprepare(dev->gclk); clk_disable(dev->gclk); dev->gclk_running = 0; } if (dev->gclk_use) { clk_unprepare(dev->gclk); dev->gclk_use = 0; } } return 0; Loading Loading @@ -809,6 +820,8 @@ static int mchp_i2s_mcc_dai_probe(struct snd_soc_dai *dai) init_waitqueue_head(&dev->wq_txrdy); init_waitqueue_head(&dev->wq_rxrdy); dev->tx_rdy = 1; dev->rx_rdy = 1; snd_soc_dai_init_dma_data(dai, &dev->playback, &dev->capture); Loading
sound/soc/codecs/cs4349.c +1 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ static struct i2c_driver cs4349_i2c_driver = { .driver = { .name = "cs4349", .of_match_table = cs4349_of_match, .pm = &cs4349_runtime_pm, }, .id_table = cs4349_i2c_id, .probe = cs4349_i2c_probe, Loading