Unverified Commit 7e0d8442 authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'asoc-5.3' into asoc-linus

parents f74c2bb9 48118a93
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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"),
@@ -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),
		{ },
	},
};
@@ -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),
	{},
};

+3 −0
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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.

+27 −14
Original line number Diff line number Diff line
@@ -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);
}

@@ -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;
@@ -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);

+1 −0
Original line number Diff line number Diff line
@@ -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