Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2f45592 authored by Mark Brown's avatar Mark Brown
Browse files

Merge tag 'asoc-v3.14-rc3' into asoc-linus

ASoC: Fixes for v3.14

A few fixes, all driver speccific ones.  The DaVinci ones aren't as
clear as they should be from the subject lines on the commits but they
fix issues which will prevent correct operation in some use cases and
only affect that particular driver so are reasonably safe.

# gpg: Signature made Wed 19 Feb 2014 13:23:13 KST using RSA key ID 7EA229BD
# gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
# gpg:                 aka "Mark Brown <broonie@debian.org>"
# gpg:                 aka "Mark Brown <broonie@kernel.org>"
# gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
# gpg:                 aka "Mark Brown <broonie@linaro.org>"
# gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"
parents 6d0abeca 895be5b3
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -53,17 +53,25 @@ static int da9055_i2c_remove(struct i2c_client *i2c)
	return 0;
}

/*
 * DO NOT change the device Ids. The naming is intentionally specific as both
 * the PMIC and CODEC parts of this chip are instantiated separately as I2C
 * devices (both have configurable I2C addresses, and are to all intents and
 * purposes separate). As a result there are specific DA9055 ids for PMIC
 * and CODEC, which must be different to operate together.
 */
static struct i2c_device_id da9055_i2c_id[] = {
	{"da9055", 0},
	{"da9055-pmic", 0},
	{ }
};
MODULE_DEVICE_TABLE(i2c, da9055_i2c_id);

static struct i2c_driver da9055_i2c_driver = {
	.probe = da9055_i2c_probe,
	.remove = da9055_i2c_remove,
	.id_table = da9055_i2c_id,
	.driver = {
		.name = "da9055",
		.name = "da9055-pmic",
		.owner = THIS_MODULE,
	},
};
+5 −6
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ config SND_BF5XX_I2S

config SND_BF5XX_SOC_SSM2602
	tristate "SoC SSM2602 Audio Codec Add-On Card support"
	depends on SND_BF5XX_I2S && (SPI_MASTER || I2C)
	depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI
	select SND_BF5XX_SOC_I2S if !BF60x
	select SND_BF6XX_SOC_I2S if BF60x
	select SND_SOC_SSM2602
@@ -21,10 +21,9 @@ config SND_BF5XX_SOC_SSM2602

config SND_SOC_BFIN_EVAL_ADAU1701
	tristate "Support for the EVAL-ADAU1701MINIZ board on Blackfin eval boards"
	depends on SND_BF5XX_I2S
	depends on SND_BF5XX_I2S && I2C
	select SND_BF5XX_SOC_I2S
	select SND_SOC_ADAU1701
	select I2C
	help
	  Say Y if you want to add support for the Analog Devices EVAL-ADAU1701MINIZ
	  board connected to one of the Blackfin evaluation boards like the
@@ -45,7 +44,7 @@ config SND_SOC_BFIN_EVAL_ADAU1373

config SND_SOC_BFIN_EVAL_ADAV80X
	tristate "Support for the EVAL-ADAV80X boards on Blackfin eval boards"
	depends on SND_BF5XX_I2S && (SPI_MASTER || I2C)
	depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI
	select SND_BF5XX_SOC_I2S
	select SND_SOC_ADAV80X
	help
@@ -58,7 +57,7 @@ config SND_SOC_BFIN_EVAL_ADAV80X

config SND_BF5XX_SOC_AD1836
	tristate "SoC AD1836 Audio support for BF5xx"
	depends on SND_BF5XX_I2S
	depends on SND_BF5XX_I2S && SPI_MASTER
	select SND_BF5XX_SOC_I2S
	select SND_SOC_AD1836
	help
@@ -66,7 +65,7 @@ config SND_BF5XX_SOC_AD1836

config SND_BF5XX_SOC_AD193X
	tristate "SoC AD193X Audio support for Blackfin"
	depends on SND_BF5XX_I2S
	depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI
	select SND_BF5XX_SOC_I2S
	select SND_SOC_AD193X
	help
+9 −2
Original line number Diff line number Diff line
@@ -1523,8 +1523,15 @@ static int da9055_remove(struct i2c_client *client)
	return 0;
}

/*
 * DO NOT change the device Ids. The naming is intentionally specific as both
 * the CODEC and PMIC parts of this chip are instantiated separately as I2C
 * devices (both have configurable I2C addresses, and are to all intents and
 * purposes separate). As a result there are specific DA9055 Ids for CODEC
 * and PMIC, which must be different to operate together.
 */
static const struct i2c_device_id da9055_i2c_id[] = {
	{ "da9055", 0 },
	{ "da9055-codec", 0 },
	{ }
};
MODULE_DEVICE_TABLE(i2c, da9055_i2c_id);
@@ -1532,7 +1539,7 @@ MODULE_DEVICE_TABLE(i2c, da9055_i2c_id);
/* I2C codec control layer */
static struct i2c_driver da9055_i2c_driver = {
	.driver = {
		.name = "da9055",
		.name = "da9055-codec",
		.owner = THIS_MODULE,
	},
	.probe		= da9055_i2c_probe,
+11 −10
Original line number Diff line number Diff line
@@ -336,6 +336,7 @@ static bool max98090_readable_register(struct device *dev, unsigned int reg)
	case M98090_REG_RECORD_TDM_SLOT:
	case M98090_REG_SAMPLE_RATE:
	case M98090_REG_DMIC34_BIQUAD_BASE ... M98090_REG_DMIC34_BIQUAD_BASE + 0x0E:
	case M98090_REG_REVISION_ID:
		return true;
	default:
		return false;
@@ -1769,16 +1770,6 @@ static int max98090_set_bias_level(struct snd_soc_codec *codec,

	switch (level) {
	case SND_SOC_BIAS_ON:
		if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
			ret = regcache_sync(max98090->regmap);

			if (ret != 0) {
				dev_err(codec->dev,
					"Failed to sync cache: %d\n", ret);
				return ret;
			}
		}

		if (max98090->jack_state == M98090_JACK_STATE_HEADSET) {
			/*
			 * Set to normal bias level.
@@ -1792,6 +1783,16 @@ static int max98090_set_bias_level(struct snd_soc_codec *codec,
		break;

	case SND_SOC_BIAS_STANDBY:
		if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
			ret = regcache_sync(max98090->regmap);
			if (ret != 0) {
				dev_err(codec->dev,
					"Failed to sync cache: %d\n", ret);
				return ret;
			}
		}
		break;

	case SND_SOC_BIAS_OFF:
		/* Set internal pull-up to lowest power mode */
		snd_soc_update_bits(codec, M98090_REG_JACK_DETECT,
+1 −0
Original line number Diff line number Diff line
@@ -2093,6 +2093,7 @@ MODULE_DEVICE_TABLE(i2c, rt5640_i2c_id);
#ifdef CONFIG_ACPI
static struct acpi_device_id rt5640_acpi_match[] = {
	{ "INT33CA", 0 },
	{ "10EC5640", 0 },
	{ },
};
MODULE_DEVICE_TABLE(acpi, rt5640_acpi_match);
Loading