Alsa-devel
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 9 participants
- 51200 discussions

28 Nov '22
If the user space is frozen, we cannot wait for it to complete.
This fixes:
[ 84.943749] Freezing user space processes ... (elapsed 0.111 seconds) done.
[ 246.784446] INFO: task kexec-lite:5123 blocked for more than 122 seconds.
[ 246.819035] Call Trace:
[ 246.821782] <TASK>
[ 246.824186] __schedule+0x5f9/0x1263
[ 246.828231] schedule+0x87/0xc5
[ 246.831779] snd_card_disconnect_sync+0xb5/0x127
...
[ 246.889249] snd_sof_device_shutdown+0xb4/0x150
[ 246.899317] pci_device_shutdown+0x37/0x61
[ 246.903990] device_shutdown+0x14c/0x1d6
[ 246.908391] kernel_kexec+0x45/0xb9
And
[ 246.893222] INFO: task kexec-lite:4891 blocked for more than 122 seconds.
[ 246.927709] Call Trace:
[ 246.930461] <TASK>
[ 246.932819] __schedule+0x5f9/0x1263
[ 246.936855] ? fsnotify_grab_connector+0x5c/0x70
[ 246.942045] schedule+0x87/0xc5
[ 246.945567] schedule_timeout+0x49/0xf3
[ 246.949877] wait_for_completion+0x86/0xe8
[ 246.954463] snd_card_free+0x68/0x89
...
[ 247.001080] platform_device_unregister+0x12/0x35
Signed-off-by: Ricardo Ribalda <ribalda(a)chromium.org>
---
To: Jaroslav Kysela <perex(a)perex.cz>
To: Takashi Iwai <tiwai(a)suse.com>
Cc: alsa-devel(a)alsa-project.org
Cc: linux-kernel(a)vger.kernel.org
Cc: "Joel Fernandes (Google)" <joel(a)joelfernandes.org>
---
sound/core/init.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/sound/core/init.c b/sound/core/init.c
index 5377f94eb211..f614a2cdea3d 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -9,6 +9,7 @@
#include <linux/module.h>
#include <linux/device.h>
#include <linux/file.h>
+#include <linux/freezer.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/ctype.h>
@@ -573,6 +574,11 @@ void snd_card_disconnect_sync(struct snd_card *card)
return;
}
+ if (pm_freezing) {
+ dev_err(card->dev, "Userspace is frozen, skipping sync\n");
+ return;
+ }
+
spin_lock_irq(&card->files_lock);
wait_event_lock_irq(card->remove_sleep,
list_empty(&card->files_list),
@@ -658,6 +664,13 @@ int snd_card_free(struct snd_card *card)
ret = snd_card_free_when_closed(card);
if (ret)
return ret;
+
+ /*
+ * If userspace is frozen the wait from completion will never end.
+ */
+ if (pm_freezing)
+ return 0;
+
/* wait, until all devices are ready for the free operation */
wait_for_completion(&released);
---
base-commit: 4312098baf37ee17a8350725e6e0d0e8590252d4
change-id: 20221127-snd-freeze-1ee143228326
Best regards,
--
Ricardo Ribalda <ribalda(a)chromium.org>
2
1

27 Nov '22
There's some setup we need to do in order to get the DSP initialized,
and this can't be done until a bit-clock is ready. In an earlier version
of this driver, this work was done in a DAPM callback.
The DAPM callback doesn't guarantee that the bit-clock is running, so
the work was moved instead to the trigger callback. Unfortunately this
callback runs in atomic context, and the setup code needs to do I2C
transactions.
Here we use a work_struct to kick off the setup in a thread instead.
Fixes: ec45268467f4 ("ASoC: add support for TAS5805M digital amplifier")
Signed-off-by: Daniel Beer <daniel.beer(a)igorinstitute.com>
---
sound/soc/codecs/tas5805m.c | 126 ++++++++++++++++++++++++------------
1 file changed, 86 insertions(+), 40 deletions(-)
diff --git a/sound/soc/codecs/tas5805m.c b/sound/soc/codecs/tas5805m.c
index beb4ec629a03..d720c67b9675 100644
--- a/sound/soc/codecs/tas5805m.c
+++ b/sound/soc/codecs/tas5805m.c
@@ -154,6 +154,7 @@ static const uint32_t tas5805m_volume[] = {
#define TAS5805M_VOLUME_MIN 0
struct tas5805m_priv {
+ struct i2c_client *i2c;
struct regulator *pvdd;
struct gpio_desc *gpio_pdn_n;
@@ -165,6 +166,9 @@ struct tas5805m_priv {
int vol[2];
bool is_powered;
bool is_muted;
+
+ struct work_struct work;
+ struct mutex lock;
};
static void set_dsp_scale(struct regmap *rm, int offset, int vol)
@@ -181,13 +185,11 @@ static void set_dsp_scale(struct regmap *rm, int offset, int vol)
regmap_bulk_write(rm, offset, v, ARRAY_SIZE(v));
}
-static void tas5805m_refresh(struct snd_soc_component *component)
+static void tas5805m_refresh(struct tas5805m_priv *tas5805m)
{
- struct tas5805m_priv *tas5805m =
- snd_soc_component_get_drvdata(component);
struct regmap *rm = tas5805m->regmap;
- dev_dbg(component->dev, "refresh: is_muted=%d, vol=%d/%d\n",
+ dev_dbg(&tas5805m->i2c->dev, "refresh: is_muted=%d, vol=%d/%d\n",
tas5805m->is_muted, tas5805m->vol[0], tas5805m->vol[1]);
regmap_write(rm, REG_PAGE, 0x00);
@@ -226,8 +228,11 @@ static int tas5805m_vol_get(struct snd_kcontrol *kcontrol,
struct tas5805m_priv *tas5805m =
snd_soc_component_get_drvdata(component);
+ mutex_lock(&tas5805m->lock);
ucontrol->value.integer.value[0] = tas5805m->vol[0];
ucontrol->value.integer.value[1] = tas5805m->vol[1];
+ mutex_unlock(&tas5805m->lock);
+
return 0;
}
@@ -243,11 +248,13 @@ static int tas5805m_vol_put(struct snd_kcontrol *kcontrol,
snd_soc_kcontrol_component(kcontrol);
struct tas5805m_priv *tas5805m =
snd_soc_component_get_drvdata(component);
+ int ret = 0;
if (!(volume_is_valid(ucontrol->value.integer.value[0]) &&
volume_is_valid(ucontrol->value.integer.value[1])))
return -EINVAL;
+ mutex_lock(&tas5805m->lock);
if (tas5805m->vol[0] != ucontrol->value.integer.value[0] ||
tas5805m->vol[1] != ucontrol->value.integer.value[1]) {
tas5805m->vol[0] = ucontrol->value.integer.value[0];
@@ -256,9 +263,10 @@ static int tas5805m_vol_put(struct snd_kcontrol *kcontrol,
tas5805m->vol[0], tas5805m->vol[1],
tas5805m->is_powered);
if (tas5805m->is_powered)
- tas5805m_refresh(component);
- return 1;
+ tas5805m_refresh(tas5805m);
+ ret = 1;
}
+ mutex_unlock(&tas5805m->lock);
return 0;
}
@@ -294,54 +302,83 @@ static int tas5805m_trigger(struct snd_pcm_substream *substream, int cmd,
struct snd_soc_component *component = dai->component;
struct tas5805m_priv *tas5805m =
snd_soc_component_get_drvdata(component);
- struct regmap *rm = tas5805m->regmap;
- unsigned int chan, global1, global2;
switch (cmd) {
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- dev_dbg(component->dev, "DSP startup\n");
-
- /* We mustn't issue any I2C transactions until the I2S
- * clock is stable. Furthermore, we must allow a 5ms
- * delay after the first set of register writes to
- * allow the DSP to boot before configuring it.
- */
- usleep_range(5000, 10000);
- send_cfg(rm, dsp_cfg_preboot,
- ARRAY_SIZE(dsp_cfg_preboot));
- usleep_range(5000, 15000);
- send_cfg(rm, tas5805m->dsp_cfg_data,
- tas5805m->dsp_cfg_len);
-
- tas5805m->is_powered = true;
- tas5805m_refresh(component);
+ dev_dbg(component->dev, "clock start\n");
+ schedule_work(&tas5805m->work);
break;
case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
- dev_dbg(component->dev, "DSP shutdown\n");
+ break;
- tas5805m->is_powered = false;
+ default:
+ return -EINVAL;
+ }
- regmap_write(rm, REG_PAGE, 0x00);
- regmap_write(rm, REG_BOOK, 0x00);
+ return 0;
+}
- regmap_read(rm, REG_CHAN_FAULT, &chan);
- regmap_read(rm, REG_GLOBAL_FAULT1, &global1);
- regmap_read(rm, REG_GLOBAL_FAULT2, &global2);
+static void do_work(struct work_struct *work)
+{
+ struct tas5805m_priv *tas5805m =
+ container_of(work, struct tas5805m_priv, work);
+ struct regmap *rm = tas5805m->regmap;
- dev_dbg(component->dev,
- "fault regs: CHAN=%02x, GLOBAL1=%02x, GLOBAL2=%02x\n",
- chan, global1, global2);
+ dev_dbg(&tas5805m->i2c->dev, "DSP startup\n");
- regmap_write(rm, REG_DEVICE_CTRL_2, DCTRL2_MODE_HIZ);
- break;
+ mutex_lock(&tas5805m->lock);
+ /* We mustn't issue any I2C transactions until the I2S
+ * clock is stable. Furthermore, we must allow a 5ms
+ * delay after the first set of register writes to
+ * allow the DSP to boot before configuring it.
+ */
+ usleep_range(5000, 10000);
+ send_cfg(rm, dsp_cfg_preboot, ARRAY_SIZE(dsp_cfg_preboot));
+ usleep_range(5000, 15000);
+ send_cfg(rm, tas5805m->dsp_cfg_data, tas5805m->dsp_cfg_len);
+
+ tas5805m->is_powered = true;
+ tas5805m_refresh(tas5805m);
+ mutex_unlock(&tas5805m->lock);
+}
- default:
- return -EINVAL;
+static int tas5805m_dac_event(struct snd_soc_dapm_widget *w,
+ struct snd_kcontrol *kcontrol, int event)
+{
+ struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+ struct regmap *rm = tas5805m->regmap;
+
+ if (event & SND_SOC_DAPM_PRE_PMD) {
+ unsigned int chan, global1, global2;
+
+ dev_dbg(component->dev, "DSP shutdown\n");
+ cancel_work_sync(&tas5805m->work);
+
+ mutex_lock(&tas5805m->lock);
+ if (tas5805m->is_powered) {
+ tas5805m->is_powered = false;
+
+ regmap_write(rm, REG_PAGE, 0x00);
+ regmap_write(rm, REG_BOOK, 0x00);
+
+ regmap_read(rm, REG_CHAN_FAULT, &chan);
+ regmap_read(rm, REG_GLOBAL_FAULT1, &global1);
+ regmap_read(rm, REG_GLOBAL_FAULT2, &global2);
+
+ dev_dbg(component->dev, "fault regs: CHAN=%02x, "
+ "GLOBAL1=%02x, GLOBAL2=%02x\n",
+ chan, global1, global2);
+
+ regmap_write(rm, REG_DEVICE_CTRL_2, DCTRL2_MODE_HIZ);
+ }
+ mutex_unlock(&tas5805m->lock);
}
return 0;
@@ -354,7 +391,8 @@ static const struct snd_soc_dapm_route tas5805m_audio_map[] = {
static const struct snd_soc_dapm_widget tas5805m_dapm_widgets[] = {
SND_SOC_DAPM_AIF_IN("DAC IN", "Playback", 0, SND_SOC_NOPM, 0, 0),
- SND_SOC_DAPM_DAC("DAC", NULL, SND_SOC_NOPM, 0, 0),
+ SND_SOC_DAPM_DAC_E("DAC", NULL, SND_SOC_NOPM, 0, 0,
+ tas5805m_dac_event, SND_SOC_DAPM_PRE_PMD),
SND_SOC_DAPM_OUTPUT("OUT")
};
@@ -375,11 +413,14 @@ static int tas5805m_mute(struct snd_soc_dai *dai, int mute, int direction)
struct tas5805m_priv *tas5805m =
snd_soc_component_get_drvdata(component);
+ mutex_lock(&tas5805m->lock);
dev_dbg(component->dev, "set mute=%d (is_powered=%d)\n",
mute, tas5805m->is_powered);
+
tas5805m->is_muted = mute;
if (tas5805m->is_powered)
- tas5805m_refresh(component);
+ tas5805m_refresh(tas5805m);
+ mutex_unlock(&tas5805m->lock);
return 0;
}
@@ -434,6 +475,7 @@ static int tas5805m_i2c_probe(struct i2c_client *i2c)
if (!tas5805m)
return -ENOMEM;
+ tas5805m->i2c = i2c;
tas5805m->pvdd = devm_regulator_get(dev, "pvdd");
if (IS_ERR(tas5805m->pvdd)) {
dev_err(dev, "failed to get pvdd supply: %ld\n",
@@ -507,6 +549,9 @@ static int tas5805m_i2c_probe(struct i2c_client *i2c)
gpiod_set_value(tas5805m->gpio_pdn_n, 1);
usleep_range(10000, 15000);
+ INIT_WORK(&tas5805m->work, do_work);
+ mutex_init(&tas5805m->lock);
+
/* Don't register through devm. We need to be able to unregister
* the component prior to deasserting PDN#
*/
@@ -527,6 +572,7 @@ static void tas5805m_i2c_remove(struct i2c_client *i2c)
struct device *dev = &i2c->dev;
struct tas5805m_priv *tas5805m = dev_get_drvdata(dev);
+ cancel_work_sync(&tas5805m->work);
snd_soc_unregister_component(dev);
gpiod_set_value(tas5805m->gpio_pdn_n, 0);
usleep_range(10000, 15000);
--
2.38.1
2
1
In tas5805m_refresh, we switch pages to update the DSP volume control,
but we need to switch back to page 0 before trying to alter the
soft-mute control. This latter page-switch was missing.
Fixes: ec45268467f4 ("ASoC: add support for TAS5805M digital amplifier")
Signed-off-by: Daniel Beer <daniel.beer(a)igorinstitute.com>
---
sound/soc/codecs/tas5805m.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/codecs/tas5805m.c b/sound/soc/codecs/tas5805m.c
index d720c67b9675..5cf7726904c2 100644
--- a/sound/soc/codecs/tas5805m.c
+++ b/sound/soc/codecs/tas5805m.c
@@ -203,6 +203,9 @@ static void tas5805m_refresh(struct tas5805m_priv *tas5805m)
set_dsp_scale(rm, 0x24, tas5805m->vol[0]);
set_dsp_scale(rm, 0x28, tas5805m->vol[1]);
+ regmap_write(rm, REG_PAGE, 0x00);
+ regmap_write(rm, REG_BOOK, 0x00);
+
/* Set/clear digital soft-mute */
regmap_write(rm, REG_DEVICE_CTRL_2,
(tas5805m->is_muted ? DCTRL2_MUTE : 0) |
--
2.38.1
1
0

26 Nov '22
Hello,
since commit b8a1a4cd5a98 ("i2c: Provide a temporary .probe_new()
call-back type") from 2016 there is a "temporary" alternative probe
callback for i2c drivers.
This series completes all drivers to this new callback (unless I missed
something). It's based on current next/master.
A part of the patches depend on commit 662233731d66 ("i2c: core:
Introduce i2c_client_get_device_id helper function"), there is a branch that
you can pull into your tree to get it:
https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/client_device_id_helper-immutable
I don't think it's feasable to apply this series in one go, so I ask the
maintainers of the changed files to apply via their tree. I guess it
will take a few kernel release iterations until all patch are in, but I
think a single tree creates too much conflicts.
The last patch changes i2c_driver::probe, all non-converted drivers will
fail to compile then. So I hope the build bots will tell me about any
driver I missed to convert. This patch is obviously not for application
now.
I dropped most individuals from the recipents of this mail to not
challenge the mail servers and mailing list filters too much. Sorry if
you had extra efforts to find this mail.
Best regards
Uwe
Uwe Kleine-König (606):
tpm: st33zp24: Convert to Convert to i2c's .probe_new()
tpm: tpm_i2c_atmel: Convert to i2c's .probe_new()
tpm: tpm_i2c_infineon: Convert to i2c's .probe_new()
tpm: tpm_i2c_nuvoton: Convert to i2c's .probe_new()
tpm: tis_i2c: Convert to i2c's .probe_new()
crypto: atmel-ecc - Convert to i2c's .probe_new()
crypto: atmel-sha204a - Convert to i2c's .probe_new()
extcon: fsa9480: Convert to i2c's .probe_new()
extcon: rt8973: Convert to i2c's .probe_new()
extcon: usbc-tusb320: Convert to i2c's .probe_new()
gpio: max732x: Convert to i2c's .probe_new()
gpio: pca953x: Convert to i2c's .probe_new()
gpio: pcf857x: Convert to i2c's .probe_new()
drm/bridge: adv7511: Convert to i2c's .probe_new()
drm/bridge/analogix/anx6345: Convert to i2c's .probe_new()
drm/bridge/analogix/anx78xx: Convert to i2c's .probe_new()
drm/bridge: anx7625: Convert to i2c's .probe_new()
drm/bridge: icn6211: Convert to i2c's .probe_new()
drm/bridge: chrontel-ch7033: Convert to i2c's .probe_new()
drm/bridge: it6505: Convert to i2c's .probe_new()
drm/bridge: it66121: Convert to i2c's .probe_new()
drm/bridge: lt8912b: Convert to i2c's .probe_new()
drm/bridge: lt9211: Convert to i2c's .probe_new()
drm/bridge: lt9611: Convert to i2c's .probe_new()
drm/bridge: lt9611uxc: Convert to i2c's .probe_new()
drm/bridge: megachips: Convert to i2c's .probe_new()
drm/bridge: nxp-ptn3460: Convert to i2c's .probe_new()
drm/bridge: parade-ps8622: Convert to i2c's .probe_new()
drm/bridge: sii902x: Convert to i2c's .probe_new()
drm/bridge: sii9234: Convert to i2c's .probe_new()
drm/bridge: sii8620: Convert to i2c's .probe_new()
drm/bridge: tc358767: Convert to i2c's .probe_new()
drm/bridge: tc358768: Convert to i2c's .probe_new()
drm/bridge/tc358775: Convert to i2c's .probe_new()
drm/bridge: ti-sn65dsi83: Convert to i2c's .probe_new()
drm/bridge: ti-sn65dsi86: Convert to i2c's .probe_new()
drm/bridge: tfp410: Convert to i2c's .probe_new()
drm/i2c/ch7006: Convert to i2c's .probe_new()
drm/i2c/sil164: Convert to i2c's .probe_new()
drm/i2c/tda9950: Convert to i2c's .probe_new()
drm/i2c/tda998x: Convert to i2c's .probe_new()
drm/panel: olimex-lcd-olinuxino: Convert to i2c's .probe_new()
drm/panel: raspberrypi-touchscreen: Convert to i2c's .probe_new()
i2c: core: Convert to i2c's .probe_new()
i2c: slave-eeprom: Convert to i2c's .probe_new()
i2c: smbus: Convert to i2c's .probe_new()
i2c: mux: pca9541: Convert to i2c's .probe_new()
i2c: mux: pca954x: Convert to i2c's .probe_new()
iio: accel: adxl372_i2c: Convert to i2c's .probe_new()
iio: accel: bma180: Convert to i2c's .probe_new()
iio: accel: bma400: Convert to i2c's .probe_new()
iio: accel: bmc150: Convert to i2c's .probe_new()
iio: accel: da280: Convert to i2c's .probe_new()
iio: accel: kxcjk-1013: Convert to i2c's .probe_new()
iio: accel: mma7455_i2c: Convert to i2c's .probe_new()
iio: accel: mma8452: Convert to i2c's .probe_new()
iio: accel: mma9551: Convert to i2c's .probe_new()
iio: accel: mma9553: Convert to i2c's .probe_new()
iio: adc: ad7091r5: Convert to i2c's .probe_new()
iio: adc: ad7291: Convert to i2c's .probe_new()
iio: adc: ad799x: Convert to i2c's .probe_new()
iio: adc: ina2xx-adc: Convert to i2c's .probe_new()
iio: adc: ltc2471: Convert to i2c's .probe_new()
iio: adc: ltc2485: Convert to i2c's .probe_new()
iio: adc: ltc2497: Convert to i2c's .probe_new()
iio: adc: max1363: Convert to i2c's .probe_new()
iio: adc: max9611: Convert to i2c's .probe_new()
iio: adc: mcp3422: Convert to i2c's .probe_new()
iio: adc: ti-adc081c: Convert to i2c's .probe_new()
iio: adc: ti-ads1015: Convert to i2c's .probe_new()
iio: cdc: ad7150: Convert to i2c's .probe_new()
iio: cdc: ad7746: Convert to i2c's .probe_new()
iio: chemical: ams-iaq-core: Convert to i2c's .probe_new()
iio: chemical: atlas-ezo-sensor: Convert to i2c's .probe_new()
iio: chemical: atlas-sensor: Convert to i2c's .probe_new()
iio: chemical: bme680_i2c: Convert to i2c's .probe_new()
iio: chemical: ccs811: Convert to i2c's .probe_new()
iio: chemical: scd4x: Convert to i2c's .probe_new()
iio: chemical: sgp30: Convert to i2c's .probe_new()
iio: chemical: sgp40: Convert to i2c's .probe_new()
iio: chemical: vz89x: Convert to i2c's .probe_new()
iio: dac: ad5064: Convert to i2c's .probe_new()
iio: dac: ad5380: Convert to i2c's .probe_new()
iio: dac: ad5446: Convert to i2c's .probe_new()
iio: dac: ad5593r: Convert to i2c's .probe_new()
iio: dac: ad5696-i2c: Convert to i2c's .probe_new()
iio: dac: ds4424: Convert to i2c's .probe_new()
iio: dac: m62332: Convert to i2c's .probe_new()
iio: dac: max517: Convert to i2c's .probe_new()
iio: dac: max5821: Convert to i2c's .probe_new()
iio: dac: mcp4725: Convert to i2c's .probe_new()
iio: dac: ti-dac5571: Convert to i2c's .probe_new()
iio: gyro: bmg160_i2c: Convert to i2c's .probe_new()
iio: gyro: itg3200_core: Convert to i2c's .probe_new()
iio: gyro: mpu3050-i2c: Convert to i2c's .probe_new()
iio: gyro: st_gyro_i2c: Convert to i2c's .probe_new()
iio: health: afe4404: Convert to i2c's .probe_new()
iio: health: max30100: Convert to i2c's .probe_new()
iio: health: max30102: Convert to i2c's .probe_new()
iio: humidity: am2315: Convert to i2c's .probe_new()
iio: humidity: hdc100x: Convert to i2c's .probe_new()
iio: humidity: hdc2010: Convert to i2c's .probe_new()
iio: humidity: hts221_i2c: Convert to i2c's .probe_new()
iio: humidity: htu21: Convert to i2c's .probe_new()
iio: humidity: si7005: Convert to i2c's .probe_new()
iio: humidity: si7020: Convert to i2c's .probe_new()
iio: imu: bmi160/bmi160_i2c: Convert to i2c's .probe_new()
iio: imu: fxos8700_i2c: Convert to i2c's .probe_new()
iio: imu: inv_mpu6050: Convert to i2c's .probe_new()
iio: imu: kmx61: Convert to i2c's .probe_new()
iio: imu: st_lsm6dsx: Convert to i2c's .probe_new()
iio: light: adjd_s311: Convert to i2c's .probe_new()
iio: light: adux1020: Convert to i2c's .probe_new()
iio: light: al3010: Convert to i2c's .probe_new()
iio: light: al3320a: Convert to i2c's .probe_new()
iio: light: apds9300: Convert to i2c's .probe_new()
iio: light: apds9960: Convert to i2c's .probe_new()
iio: light: bh1750: Convert to i2c's .probe_new()
iio: light: bh1780: Convert to i2c's .probe_new()
iio: light: cm3232: Convert to i2c's .probe_new()
iio: light: cm3323: Convert to i2c's .probe_new()
iio: light: cm36651: Convert to i2c's .probe_new()
iio: light: gp2ap002: Convert to i2c's .probe_new()
iio: light: gp2ap020a00f: Convert to i2c's .probe_new()
iio: light: isl29018: Convert to i2c's .probe_new()
iio: light: isl29028: Convert to i2c's .probe_new()
iio: light: isl29125: Convert to i2c's .probe_new()
iio: light: jsa1212: Convert to i2c's .probe_new()
iio: light: ltr501: Convert to i2c's .probe_new()
iio: light: lv0104cs: Convert to i2c's .probe_new()
iio: light: max44000: Convert to i2c's .probe_new()
iio: light: max44009: Convert to i2c's .probe_new()
iio: light: noa1305: Convert to i2c's .probe_new()
iio: light: opt3001: Convert to i2c's .probe_new()
iio: light: pa12203001: Convert to i2c's .probe_new()
iio: light: rpr0521: Convert to i2c's .probe_new()
iio: light: si1133: Convert to i2c's .probe_new()
iio: light: si1145: Convert to i2c's .probe_new()
iio: light: st_uvis25_i2c: Convert to i2c's .probe_new()
iio: light: stk3310: Convert to i2c's .probe_new()
iio: light: tcs3414: Convert to i2c's .probe_new()
iio: light: tcs3472: Convert to i2c's .probe_new()
iio: light: tsl2563: Convert to i2c's .probe_new()
iio: light: tsl2583: Convert to i2c's .probe_new()
iio: light: tsl2772: Convert to i2c's .probe_new()
iio: light: tsl4531: Convert to i2c's .probe_new()
iio: light: us5182d: Convert to i2c's .probe_new()
iio: light: vcnl4000: Convert to i2c's .probe_new()
iio: light: vcnl4035: Convert to i2c's .probe_new()
iio: light: veml6030: Convert to i2c's .probe_new()
iio: light: veml6070: Convert to i2c's .probe_new()
iio: light: zopt2201: Convert to i2c's .probe_new()
iio: magnetometer: ak8974: Convert to i2c's .probe_new()
iio: magnetometer: ak8975: Convert to i2c's .probe_new()
iio: magnetometer: bmc150_magn_i2c: Convert to i2c's .probe_new()
iio: magnetometer: hmc5843: Convert to i2c's .probe_new()
iio: magnetometer: mag3110: Convert to i2c's .probe_new()
iio: magnetometer: mmc35240: Convert to i2c's .probe_new()
iio: magnetometer: yamaha-yas530: Convert to i2c's .probe_new()
iio: potentiometer: ad5272: Convert to i2c's .probe_new()
iio: potentiometer: ds1803: Convert to i2c's .probe_new()
iio: potentiometer: max5432: Convert to i2c's .probe_new()
iio: potentiometer: tpl0102: Convert to i2c's .probe_new()
iio: potentiostat: lmp91000: Convert to i2c's .probe_new()
iio: pressure: abp060mg: Convert to i2c's .probe_new()
iio: pressure: bmp280-i2c: Convert to i2c's .probe_new()
iio: pressure: dlhl60d: Convert to i2c's .probe_new()
iio: pressure: dps310: Convert to i2c's .probe_new()
iio: pressure: hp03: Convert to i2c's .probe_new()
iio: pressure: hp206c: Convert to i2c's .probe_new()
iio: pressure: icp10100: Convert to i2c's .probe_new()
iio: pressure: mpl115_i2c: Convert to i2c's .probe_new()
iio: pressure: mpl3115: Convert to i2c's .probe_new()
iio: pressure: ms5611_i2c: Convert to i2c's .probe_new()
iio: pressure: ms5637: Convert to i2c's .probe_new()
iio: pressure: st_pressure_i2c: Convert to i2c's .probe_new()
iio: pressure: t5403: Convert to i2c's .probe_new()
iio: pressure: zpa2326_i2c: Convert to i2c's .probe_new()
iio: proximity: isl29501: Convert to i2c's .probe_new()
iio: proximity: mb1232: Convert to i2c's .probe_new()
iio: proximity: pulsedlight-lidar-lite-v2: Convert to i2c's
.probe_new()
iio: proximity: rfd77402: Convert to i2c's .probe_new()
iio: proximity: srf08: Convert to i2c's .probe_new()
iio: proximity: sx9500: Convert to i2c's .probe_new()
iio: temperature: mlx90614: Convert to i2c's .probe_new()
iio: temperature: mlx90632: Convert to i2c's .probe_new()
iio: temperature: tmp006: Convert to i2c's .probe_new()
iio: temperature: tmp007: Convert to i2c's .probe_new()
iio: temperature: tsys01: Convert to i2c's .probe_new()
iio: temperature: tsys02d: Convert to i2c's .probe_new()
Input: as5011 - Convert to i2c's .probe_new()
Input: adp5588-keys - Convert to i2c's .probe_new()
Input: adp5589-keys - Convert to i2c's .probe_new()
Input: cap11xx - Convert to i2c's .probe_new()
Input: dlink-dir685-touchkeys - Convert to i2c's .probe_new()
Input: lm8323 - Convert to i2c's .probe_new()
Input: lm8333 - Convert to i2c's .probe_new()
Input: max7359_keypad - Convert to i2c's .probe_new()
Input: mcs_touchkey - Convert to i2c's .probe_new()
Input: mpr121_touchkey - Convert to i2c's .probe_new()
Input: qt1070 - Convert to i2c's .probe_new()
Input: qt2160 - Convert to i2c's .probe_new()
Input: tca6416-keypad - Convert to i2c's .probe_new()
Input: tca8418_keypad - Convert to i2c's .probe_new()
Input: tm2-touchkey - Convert to i2c's .probe_new()
Input: ad714x-i2c - Convert to i2c's .probe_new()
Input: adxl34x-i2c - Convert to i2c's .probe_new()
Input: apanel - Convert to i2c's .probe_new()
Input: atmel_captouch - Convert to i2c's .probe_new()
Input: bma150 - Convert to i2c's .probe_new()
Input: cma3000_d0x_i2c - Convert to i2c's .probe_new()
Input: da7280 - Convert to i2c's .probe_new()
Input: drv260x - Convert to i2c's .probe_new()
Input: drv2665 - Convert to i2c's .probe_new()
Input: drv2667 - Convert to i2c's .probe_new()
Input: ibm-panel - Convert to i2c's .probe_new()
Input: kxtj9 - Convert to i2c's .probe_new()
Input: mma8450 - Convert to i2c's .probe_new()
Input: pcf8574_keypad - Convert to i2c's .probe_new()
Input: cyapa - Convert to i2c's .probe_new()
Input: elan_i2c_core - Convert to i2c's .probe_new()
Input: synaptics_i2c - Convert to i2c's .probe_new()
Input: rmi_i2c - Convert to i2c's .probe_new()
Input: rmi_smbus - Convert to i2c's .probe_new()
Input: ad7879-i2c - Convert to i2c's .probe_new()
Input: ar1021_i2c - Convert to i2c's .probe_new()
Input: atmel_mxt_ts - Convert to i2c's .probe_new()
Input: auo-pixcir-ts - Convert to i2c's .probe_new()
Input: bu21013_ts - Convert to i2c's .probe_new()
Input: bu21029_ts - Convert to i2c's .probe_new()
Input: chipone_icn8318 - Convert to i2c's .probe_new()
Input: cy8ctma140 - Convert to i2c's .probe_new()
Input: cy8ctmg110_ts - Convert to i2c's .probe_new()
Input: cyttsp4 - Convert to i2c's .probe_new()
Input: cyttsp5: Convert to i2c's .probe_new()
Input: cyttsp_i2c - Convert to i2c's .probe_new()
Input: edt-ft5x06 - Convert to i2c's .probe_new()
Input: eeti_ts - Convert to i2c's .probe_new()
Input: egalax_ts - Convert to i2c's .probe_new()
Input: ektf2127 - Convert to i2c's .probe_new()
Input: goodix - Convert to i2c's .probe_new()
Input: hideep - Convert to i2c's .probe_new()
Input: hx83112b: Convert to i2c's .probe_new()
Input: hycon-hy46xx - Convert to i2c's .probe_new()
Input: ili210x - Convert to i2c's .probe_new()
Input: ilitek_ts_i2c - Convert to i2c's .probe_new()
Input: iqs5xx - Convert to i2c's .probe_new()
Input: max11801_ts - Convert to i2c's .probe_new()
Input: mcs5000_ts - Convert to i2c's .probe_new()
Input: melfas_mip4 - Convert to i2c's .probe_new()
Input: migor_ts - Convert to i2c's .probe_new()
Input: mms114 - Convert to i2c's .probe_new()
Input: pixcir_i2c_ts - Convert to i2c's .probe_new()
Input: raydium_i2c_ts - Convert to i2c's .probe_new()
Input: rohm_bu21023 - Convert to i2c's .probe_new()
Input: s6sy761 - Convert to i2c's .probe_new()
Input: silead - Convert to i2c's .probe_new()
Input: sis_i2c - Convert to i2c's .probe_new()
Input: st1232 - Convert to i2c's .probe_new()
Input: stmfts - Convert to i2c's .probe_new()
Input: sx8654 - Convert to i2c's .probe_new()
Input: tsc2004 - Convert to i2c's .probe_new()
Input: tsc2007_core - Convert to i2c's .probe_new()
Input: wacom_i2c - Convert to i2c's .probe_new()
Input: wdt87xx_i2c - Convert to i2c's .probe_new()
Input: zet6223 - Convert to i2c's .probe_new()
Input: zforce_ts - Convert to i2c's .probe_new()
leds: bd2802: Convert to i2c's .probe_new()
leds: blinkm: Convert to i2c's .probe_new()
leds: is31fl32xx: Convert to i2c's .probe_new()
leds: lm3530: Convert to i2c's .probe_new()
leds: lm3532: Convert to i2c's .probe_new()
leds: lm355x: Convert to i2c's .probe_new()
leds: lm3642: Convert to i2c's .probe_new()
leds: lm3692x: Convert to i2c's .probe_new()
leds: lm3697: Convert to i2c's .probe_new()
leds: lp3944: Convert to i2c's .probe_new()
leds: lp3952: Convert to i2c's .probe_new()
leds: lp5521: Convert to i2c's .probe_new()
leds: lp5523: Convert to i2c's .probe_new()
leds: lp5562: Convert to i2c's .probe_new()
leds: lp8501: Convert to i2c's .probe_new()
leds: lp8860: Convert to i2c's .probe_new()
leds: pca9532: Convert to i2c's .probe_new()
leds: pca963x: Convert to i2c's .probe_new()
leds: tca6507: Convert to i2c's .probe_new()
leds: tlc591xx: Convert to i2c's .probe_new()
leds: turris-omnia: Convert to i2c's .probe_new()
macintosh: ams/ams-i2c: Convert to i2c's .probe_new()
macintosh: therm_adt746x: Convert to i2c's .probe_new()
macintosh: therm_windtunnel: Convert to i2c's .probe_new()
macintosh: windfarm_ad7417_sensor: Convert to i2c's .probe_new()
macintosh: windfarm_fcu_controls: Convert to i2c's .probe_new()
macintosh: windfarm_lm75_sensor: Convert to i2c's .probe_new()
macintosh: windfarm_lm87_sensor: Convert to i2c's .probe_new()
macintosh: windfarm_max6690_sensor: Convert to i2c's .probe_new()
macintosh: windfarm_smu_sat: Convert to i2c's .probe_new()
media: dvb-frontends/a8293: Convert to i2c's .probe_new()
media: dvb-frontends/af9013: Convert to i2c's .probe_new()
media: dvb-frontends/af9033: Convert to i2c's .probe_new()
media: dvb-frontends/au8522_decoder: Convert to i2c's .probe_new()
media: dvb-frontends/cxd2099: Convert to i2c's .probe_new()
media: dvb-frontends/cxd2820r_core: Convert to i2c's .probe_new()
media: dvb-frontends/dvb-pll: Convert to i2c's .probe_new()
media: dvb-frontends/helene: Convert to i2c's .probe_new()
media: dvb-frontends/lgdt3306a: Convert to i2c's .probe_new()
media: dvb-frontends/lgdt330x: Convert to i2c's .probe_new()
media: dvb-frontends/m88ds3103: Convert to i2c's .probe_new()
media: dvb-frontends/mn88443x: Convert to i2c's .probe_new()
media: dvb-frontends/mn88472: Convert to i2c's .probe_new()
media: dvb-frontends/mn88473: Convert to i2c's .probe_new()
media: dvb-frontends/mxl692: Convert to i2c's .probe_new()
media: dvb-frontends/rtl2830: Convert to i2c's .probe_new()
media: dvb-frontends/rtl2832: Convert to i2c's .probe_new()
media: dvb-frontends/si2165: Convert to i2c's .probe_new()
media: dvb-frontends/si2168: Convert to i2c's .probe_new()
media: dvb-frontends/sp2: Convert to i2c's .probe_new()
media: dvb-frontends/stv090x: Convert to i2c's .probe_new()
media: dvb-frontends/stv6110x: Convert to i2c's .probe_new()
media: dvb-frontends/tc90522: Convert to i2c's .probe_new()
media: dvb-frontends/tda10071: Convert to i2c's .probe_new()
media: dvb-frontends/ts2020: Convert to i2c's .probe_new()
media: i2c/ad5820: Convert to i2c's .probe_new()
media: i2c/ad9389b: Convert to i2c's .probe_new()
media: i2c/adp1653: Convert to i2c's .probe_new()
media: i2c/adv7170: Convert to i2c's .probe_new()
media: i2c/adv7175: Convert to i2c's .probe_new()
media: i2c/adv7180: Convert to i2c's .probe_new()
media: i2c/adv7183: Convert to i2c's .probe_new()
media: i2c/adv7393: Convert to i2c's .probe_new()
media: i2c/adv7511-v4l2: Convert to i2c's .probe_new()
media: i2c/adv7604: Convert to i2c's .probe_new()
media: i2c/adv7842: Convert to i2c's .probe_new()
media: i2c/ak881x: Convert to i2c's .probe_new()
media: i2c/bt819: Convert to i2c's .probe_new()
media: i2c/bt856: Convert to i2c's .probe_new()
media: i2c/bt866: Convert to i2c's .probe_new()
media: i2c/cs3308: Convert to i2c's .probe_new()
media: i2c/cs5345: Convert to i2c's .probe_new()
media: i2c/cs53l32a: Convert to i2c's .probe_new()
media: cx25840: Convert to i2c's .probe_new()
media: i2c/ir-kbd-i2c: Convert to i2c's .probe_new()
media: i2c/ks0127: Convert to i2c's .probe_new()
media: i2c/lm3560: Convert to i2c's .probe_new()
media: i2c/lm3646: Convert to i2c's .probe_new()
media: i2c/m52790: Convert to i2c's .probe_new()
media: m5mols: Convert to i2c's .probe_new()
media: i2c/ml86v7667: Convert to i2c's .probe_new()
media: i2c/msp3400-driver: Convert to i2c's .probe_new()
media: i2c/mt9m032: Convert to i2c's .probe_new()
media: i2c/mt9p031: Convert to i2c's .probe_new()
media: i2c/mt9t001: Convert to i2c's .probe_new()
media: i2c/mt9t112: Convert to i2c's .probe_new()
media: i2c/mt9v011: Convert to i2c's .probe_new()
media: i2c/mt9v032: Convert to i2c's .probe_new()
media: i2c/noon010pc30: Convert to i2c's .probe_new()
media: i2c/ov13858: Convert to i2c's .probe_new()
media: i2c/ov6650: Convert to i2c's .probe_new()
media: i2c/ov7640: Convert to i2c's .probe_new()
media: i2c/ov7670: Convert to i2c's .probe_new()
media: i2c/ov9640: Convert to i2c's .probe_new()
media: i2c/rj54n1cb0c: Convert to i2c's .probe_new()
media: i2c/s5k4ecgx: Convert to i2c's .probe_new()
media: i2c/s5k6aa: Convert to i2c's .probe_new()
media: i2c/saa6588: Convert to i2c's .probe_new()
media: i2c/saa6752hs: Convert to i2c's .probe_new()
media: i2c/saa7110: Convert to i2c's .probe_new()
media: i2c/saa7115: Convert to i2c's .probe_new()
media: i2c/saa7127: Convert to i2c's .probe_new()
media: i2c/saa717x: Convert to i2c's .probe_new()
media: i2c/saa7185: Convert to i2c's .probe_new()
media: i2c/sony-btf-mpx: Convert to i2c's .probe_new()
media: i2c/sr030pc30: Convert to i2c's .probe_new()
media: i2c/tda1997x: Convert to i2c's .probe_new()
media: i2c/tda7432: Convert to i2c's .probe_new()
media: i2c/tda9840: Convert to i2c's .probe_new()
media: i2c/tea6415c: Convert to i2c's .probe_new()
media: i2c/tea6420: Convert to i2c's .probe_new()
media: i2c/ths7303: Convert to i2c's .probe_new()
media: i2c/tlv320aic23b: Convert to i2c's .probe_new()
media: i2c/tvaudio: Convert to i2c's .probe_new()
media: i2c/tvp514x: Convert to i2c's .probe_new()
media: i2c/tw2804: Convert to i2c's .probe_new()
media: i2c/tw9903: Convert to i2c's .probe_new()
media: i2c/tw9906: Convert to i2c's .probe_new()
media: i2c/tw9910: Convert to i2c's .probe_new()
media: i2c/uda1342: Convert to i2c's .probe_new()
media: i2c/upd64031a: Convert to i2c's .probe_new()
media: i2c/upd64083: Convert to i2c's .probe_new()
media: i2c/video-i2c: Convert to i2c's .probe_new()
media: i2c/vp27smpx: Convert to i2c's .probe_new()
media: i2c/vpx3220: Convert to i2c's .probe_new()
media: i2c/vs6624: Convert to i2c's .probe_new()
media: i2c/wm8739: Convert to i2c's .probe_new()
media: i2c/wm8775: Convert to i2c's .probe_new()
media: radio/radio-tea5764: Convert to i2c's .probe_new()
media: radio/saa7706h: Convert to i2c's .probe_new()
media: radio/tef6862: Convert to i2c's .probe_new()
media: vidtv: Convert to i2c's .probe_new()
media: tuners/e4000: Convert to i2c's .probe_new()
media: tuners/fc2580: Convert to i2c's .probe_new()
media: tuners/m88rs6000t: Convert to i2c's .probe_new()
media: tuners/mt2060: Convert to i2c's .probe_new()
media: tuners/mxl301rf: Convert to i2c's .probe_new()
media: tuners/qm1d1b0004: Convert to i2c's .probe_new()
media: tuners/qm1d1c0042: Convert to i2c's .probe_new()
media: tuners/si2157: Convert to i2c's .probe_new()
media: tuners/tda18212: Convert to i2c's .probe_new()
media: tuners/tda18250: Convert to i2c's .probe_new()
media: tuners/tua9001: Convert to i2c's .probe_new()
media: usb: go7007: s2250-board: Convert to i2c's .probe_new()
media: v4l2-core/tuner-core: Convert to i2c's .probe_new()
mfd: 88pm800: Convert to i2c's .probe_new()
mfd: 88pm805: Convert to i2c's .probe_new()
mfd: aat2870-core: Convert to i2c's .probe_new()
mfd: act8945a: Convert to i2c's .probe_new()
mfd: adp5520: Convert to i2c's .probe_new()
mfd: arizona-i2c: Convert to i2c's .probe_new()
mfd: as3711: Convert to i2c's .probe_new()
mfd: as3722: Convert to i2c's .probe_new()
mfd: atc260x-i2c: Convert to i2c's .probe_new()
mfd: axp20x-i2c: Convert to i2c's .probe_new()
mfd: bcm590xx: Convert to i2c's .probe_new()
mfd: bd9571mwv: Convert to i2c's .probe_new()
mfd: da903x: Convert to i2c's .probe_new()
mfd: da9052-i2c: Convert to i2c's .probe_new()
mfd: da9055-i2c: Convert to i2c's .probe_new()
mfd: da9062-core: Convert to i2c's .probe_new()
mfd: da9063-i2c: Convert to i2c's .probe_new()
mfd: da9150-core: Convert to i2c's .probe_new()
mfd: khadas-mcu: Convert to i2c's .probe_new()
mfd: lm3533-core: Convert to i2c's .probe_new()
mfd: lp3943: Convert to i2c's .probe_new()
mfd: lp873x: Convert to i2c's .probe_new()
mfd: lp87565: Convert to i2c's .probe_new()
mfd: lp8788: Convert to i2c's .probe_new()
mfd: madera-i2c: Convert to i2c's .probe_new()
mfd: max14577: Convert to i2c's .probe_new()
mfd: max77620: Convert to i2c's .probe_new()
mfd: max77693: Convert to i2c's .probe_new()
mfd: max77843: Convert to i2c's .probe_new()
mfd: max8907: Convert to i2c's .probe_new()
mfd: max8925-i2c: Convert to i2c's .probe_new()
mfd: max8997: Convert to i2c's .probe_new()
mfd: max8998: Convert to i2c's .probe_new()
mfd: mc13xxx-i2c: Convert to i2c's .probe_new()
mfd: menelaus: Convert to i2c's .probe_new()
mfd: menf21bmc: Convert to i2c's .probe_new()
mfd: palmas: Convert to i2c's .probe_new()
mfd: pcf50633-core: Convert to i2c's .probe_new()
mfd: rc5t583: Convert to i2c's .probe_new()
mfd: retu-mfd: Convert to i2c's .probe_new()
mfd: rk808: Convert to i2c's .probe_new()
mfd: rohm-bd718x7: Convert to i2c's .probe_new()
mfd: rsmu_i2c: Convert to i2c's .probe_new()
mfd: rt5033: Convert to i2c's .probe_new()
mfd: sec-core: Convert to i2c's .probe_new()
mfd: si476x-i2c: Convert to i2c's .probe_new()
mfd: sky81452: Convert to i2c's .probe_new()
mfd: stmfx: Convert to i2c's .probe_new()
mfd: stmpe-i2c: Convert to i2c's .probe_new()
mfd: stpmic1: Convert to i2c's .probe_new()
mfd: stw481x: Convert to i2c's .probe_new()
mfd: tc3589x: Convert to i2c's .probe_new()
mfd: ti-lmu: Convert to i2c's .probe_new()
mfd: tps6105x: Convert to i2c's .probe_new()
mfd: tps65010: Convert to i2c's .probe_new()
mfd: tps6507x: Convert to i2c's .probe_new()
mfd: tps65086: Convert to i2c's .probe_new()
mfd: tps65090: Convert to i2c's .probe_new()
mfd: tps65218: Convert to i2c's .probe_new()
mfd: tps6586x: Convert to i2c's .probe_new()
mfd: tps65910: Convert to i2c's .probe_new()
mfd: tps65912-i2c: Convert to i2c's .probe_new()
mfd: twl-core: Convert to i2c's .probe_new()
mfd: twl6040: Convert to i2c's .probe_new()
mfd: wl1273-core: Convert to i2c's .probe_new()
mfd: wm831x-i2c: Convert to i2c's .probe_new()
mfd: wm8350-i2c: Convert to i2c's .probe_new()
mfd: wm8400-core: Convert to i2c's .probe_new()
mfd: wm8994-core: Convert to i2c's .probe_new()
misc: ad525x_dpot-i2c: Convert to i2c's .probe_new()
misc: apds9802als: Convert to i2c's .probe_new()
misc: apds990x: Convert to i2c's .probe_new()
misc: bh1770glc: Convert to i2c's .probe_new()
misc: ds1682: Convert to i2c's .probe_new()
misc: eeprom/eeprom: Convert to i2c's .probe_new()
misc: eeprom/idt_89hpesx: Convert to i2c's .probe_new()
misc: eeprom/max6875: Convert to i2c's .probe_new()
misc: hmc6352: Convert to i2c's .probe_new()
misc: ics932s401: Convert to i2c's .probe_new()
misc: isl29003: Convert to i2c's .probe_new()
misc: isl29020: Convert to i2c's .probe_new()
misc: lis3lv02d/lis3lv02d_i2c: Convert to i2c's .probe_new()
misc: tsl2550: Convert to i2c's .probe_new()
mtd: maps: pismo: Convert to i2c's .probe_new()
net: dsa: lan9303: Convert to i2c's .probe_new()
net: dsa: microchip: ksz9477: Convert to i2c's .probe_new()
net: dsa: xrs700x: Convert to i2c's .probe_new()
net/mlx5: Convert to i2c's .probe_new()
nfc: microread: Convert to i2c's .probe_new()
nfc: mrvl: Convert to i2c's .probe_new()
NFC: nxp-nci: Convert to i2c's .probe_new()
nfc: pn533: Convert to i2c's .probe_new()
nfc: pn544: Convert to i2c's .probe_new()
nfc: s3fwrn5: Convert to i2c's .probe_new()
nfc: st-nci: Convert to i2c's .probe_new()
nfc: st21nfca: i2c: Convert to i2c's .probe_new()
of: unittest: Convert to i2c's .probe_new()
pinctrl: mcp23s08: Convert to i2c's .probe_new()
pinctrl: sx150x: Convert to i2c's .probe_new()
platform/chrome: cros_ec: Convert to i2c's .probe_new()
power: supply: adp5061: Convert to i2c's .probe_new()
power: supply: bq2415x: Convert to i2c's .probe_new()
power: supply: bq24190: Convert to i2c's .probe_new()
power: supply: bq24257: Convert to i2c's .probe_new()
power: supply: bq24735: Convert to i2c's .probe_new()
power: supply: bq2515x: Convert to i2c's .probe_new()
power: supply: bq256xx: Convert to i2c's .probe_new()
power: supply: bq25890: Convert to i2c's .probe_new()
power: supply: bq25980: Convert to i2c's .probe_new()
power: supply: bq27xxx: Convert to i2c's .probe_new()
power: supply: ds2782: Convert to i2c's .probe_new()
power: supply: lp8727: Convert to i2c's .probe_new()
power: supply: ltc2941: Convert to i2c's .probe_new()
power: supply: ltc4162-l: Convert to i2c's .probe_new()
power: supply: max14656: Convert to i2c's .probe_new()
power: supply: max17040: Convert to i2c's .probe_new()
power: supply: max17042_battery: Convert to i2c's .probe_new()
power: supply: rt5033_battery: Convert to i2c's .probe_new()
power: supply: rt9455: Convert to i2c's .probe_new()
power: supply: sbs: Convert to i2c's .probe_new()
power: supply: sbs-manager: Convert to i2c's .probe_new()
power: supply: smb347: Convert to i2c's .probe_new()
power: supply: ucs1002: Convert to i2c's .probe_new()
power: supply: z2_battery: Convert to i2c's .probe_new()
pwm: pca9685: Convert to i2c's .probe_new()
regulator: act8865-regulator: Convert to i2c's .probe_new()
regulator: ad5398: Convert to i2c's .probe_new()
regulator: da9121-regulator: Convert to i2c's .probe_new()
regulator: fan53555: Convert to i2c's .probe_new()
regulator: isl6271a-regulator: Convert to i2c's .probe_new()
regulator: lp3972: Convert to i2c's .probe_new()
regulator: lp872x: Convert to i2c's .probe_new()
regulator: lp8755: Convert to i2c's .probe_new()
regulator: ltc3589: Convert to i2c's .probe_new()
regulator: max1586: Convert to i2c's .probe_new()
regulator: max8649: Convert to i2c's .probe_new()
regulator: max8660: Convert to i2c's .probe_new()
regulator: max8952: Convert to i2c's .probe_new()
regulator: max8973-regulator: Convert to i2c's .probe_new()
regulator: pca9450-regulator: Convert to i2c's .probe_new()
regulator: pfuze100-regulator: Convert to i2c's .probe_new()
regulator: pv88080-regulator: Convert to i2c's .probe_new()
regulator: rpi-panel-attiny-regulator: Convert to i2c's .probe_new()
regulator: tps51632-regulator: Convert to i2c's .probe_new()
regulator: tps62360-regulator: Convert to i2c's .probe_new()
regulator: tps6286x-regulator: Convert to i2c's .probe_new()
regulator: tps65023-regulator: Convert to i2c's .probe_new()
rtc: ds1307: Convert to i2c's .probe_new()
rtc: isl1208: Convert to i2c's .probe_new()
rtc: m41t80: Convert to i2c's .probe_new()
rtc: rs5c372: Convert to i2c's .probe_new()
spi: sc18is602: Convert to i2c's .probe_new()
spi: xcomm: Convert to i2c's .probe_new()
staging: iio: adt7316: Convert to i2c's .probe_new()
staging: iio: ad5933: Convert to i2c's .probe_new()
staging: iio: ade7854: Convert to i2c's .probe_new()
staging: most: i2c: Convert to i2c's .probe_new()
staging: olpc_dcon: Convert to i2c's .probe_new()
serial: sc16is7xx: Convert to i2c's .probe_new()
usb: usb251xb: Convert to i2c's .probe_new()
usb: misc: usb3503: Convert to i2c's .probe_new()
usb: usb4604: Convert to i2c's .probe_new()
usb: isp1301-omap: Convert to i2c's .probe_new()
usb: phy: isp1301: Convert to i2c's .probe_new()
usb: typec: anx7411: Convert to i2c's .probe_new()
usb: typec: hd3ss3220: Convert to i2c's .probe_new()
usb: typec: tcpm/fusb302: Convert to i2c's .probe_new()
usb: typec: tcpm/tcpci: Convert to i2c's .probe_new()
usb: typec: tcpm/tcpci_maxim: Convert to i2c's .probe_new()
usb: typec: tcpm/tcpci_rt1711h: Convert to i2c's .probe_new()
usb: typec: ucsi/ucsi_ccg: Convert to i2c's .probe_new()
usb: typec: ucsi: stm32g0: Convert to i2c's .probe_new()
backlight: adp8860: Convert to i2c's .probe_new()
backlight: adp8870: Convert to i2c's .probe_new()
backlight: arcxcnn: Convert to i2c's .probe_new()
backlight: bd6107: Convert to i2c's .probe_new()
backlight: lm3630a: Convert to i2c's .probe_new()
backlight: lm3639: Convert to i2c's .probe_new()
backlight: lp855x: Convert to i2c's .probe_new()
backlight: lv5207lp: Convert to i2c's .probe_new()
backlight: tosa: Convert to i2c's .probe_new()
video: fbdev: matrox: Convert to i2c's .probe_new()
w1: ds2482: Convert to i2c's .probe_new()
watchdog: ziirave_wdt: Convert to i2c's .probe_new()
ALSA: aoa: onyx: Convert to i2c's .probe_new()
ALSA: aoa: tas: Convert to i2c's .probe_new()
ALSA: hda: cs35l41: Convert to i2c's .probe_new()
ALSA: ppc: keywest: Convert to i2c's .probe_new()
ASoC: codecs: es8326: Convert to i2c's .probe_new()
ASoC: max98396: Convert to i2c's .probe_new()
ASoC: codecs: src4xxx-i2c: Convert to i2c's .probe_new()
ASoC: codecs: tas2780: Convert to i2c's .probe_new()
ipmi: ssif_bmc: Convert to i2c's .probe_new()
[DON'T APPLY] i2c: Switch .probe() to not take an id parameter
drivers/char/ipmi/ssif_bmc.c | 4 ++--
drivers/char/tpm/st33zp24/i2c.c | 5 ++---
drivers/char/tpm/tpm_i2c_atmel.c | 5 ++---
drivers/char/tpm/tpm_i2c_infineon.c | 5 ++---
drivers/char/tpm/tpm_i2c_nuvoton.c | 6 +++---
drivers/char/tpm/tpm_tis_i2c.c | 5 ++---
drivers/crypto/atmel-ecc.c | 6 +++---
drivers/crypto/atmel-sha204a.c | 6 +++---
drivers/extcon/extcon-fsa9480.c | 5 ++---
drivers/extcon/extcon-rt8973a.c | 5 ++---
drivers/extcon/extcon-usbc-tusb320.c | 5 ++---
drivers/gpio/gpio-max732x.c | 6 +++---
drivers/gpio/gpio-pca953x.c | 6 +++---
drivers/gpio/gpio-pcf857x.c | 6 +++---
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 5 +++--
.../gpu/drm/bridge/analogix/analogix-anx6345.c | 5 ++---
.../gpu/drm/bridge/analogix/analogix-anx78xx.c | 5 ++---
drivers/gpu/drm/bridge/analogix/anx7625.c | 5 ++---
drivers/gpu/drm/bridge/chipone-icn6211.c | 5 ++---
drivers/gpu/drm/bridge/chrontel-ch7033.c | 5 ++---
drivers/gpu/drm/bridge/ite-it6505.c | 5 ++---
drivers/gpu/drm/bridge/ite-it66121.c | 5 ++---
drivers/gpu/drm/bridge/lontium-lt8912b.c | 5 ++---
drivers/gpu/drm/bridge/lontium-lt9211.c | 5 ++---
drivers/gpu/drm/bridge/lontium-lt9611.c | 5 ++---
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 5 ++---
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 10 ++++------
drivers/gpu/drm/bridge/nxp-ptn3460.c | 5 ++---
drivers/gpu/drm/bridge/parade-ps8622.c | 6 +++---
drivers/gpu/drm/bridge/sii902x.c | 5 ++---
drivers/gpu/drm/bridge/sii9234.c | 5 ++---
drivers/gpu/drm/bridge/sil-sii8620.c | 5 ++---
drivers/gpu/drm/bridge/tc358767.c | 4 ++--
drivers/gpu/drm/bridge/tc358768.c | 5 ++---
drivers/gpu/drm/bridge/tc358775.c | 4 ++--
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 6 +++---
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 5 ++---
drivers/gpu/drm/bridge/ti-tfp410.c | 5 ++---
drivers/gpu/drm/i2c/ch7006_drv.c | 4 ++--
drivers/gpu/drm/i2c/sil164_drv.c | 4 ++--
drivers/gpu/drm/i2c/tda9950.c | 5 ++---
drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++--
.../gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 5 ++---
.../drm/panel/panel-raspberrypi-touchscreen.c | 5 ++---
drivers/i2c/i2c-core-base.c | 16 ++++------------
drivers/i2c/i2c-slave-eeprom.c | 5 +++--
drivers/i2c/i2c-smbus.c | 5 ++---
drivers/i2c/muxes/i2c-mux-pca9541.c | 5 ++---
drivers/i2c/muxes/i2c-mux-pca954x.c | 6 +++---
drivers/iio/accel/adxl372_i2c.c | 6 +++---
drivers/iio/accel/bma180.c | 6 +++---
drivers/iio/accel/bma400_i2c.c | 6 +++---
drivers/iio/accel/bmc150-accel-i2c.c | 6 +++---
drivers/iio/accel/da280.c | 6 +++---
drivers/iio/accel/kxcjk-1013.c | 6 +++---
drivers/iio/accel/mma7455_i2c.c | 6 +++---
drivers/iio/accel/mma8452.c | 6 +++---
drivers/iio/accel/mma9551.c | 6 +++---
drivers/iio/accel/mma9553.c | 6 +++---
drivers/iio/adc/ad7091r5.c | 6 +++---
drivers/iio/adc/ad7291.c | 6 +++---
drivers/iio/adc/ad799x.c | 6 +++---
drivers/iio/adc/ina2xx-adc.c | 6 +++---
drivers/iio/adc/ltc2471.c | 6 +++---
drivers/iio/adc/ltc2485.c | 6 +++---
drivers/iio/adc/ltc2497.c | 6 +++---
drivers/iio/adc/max1363.c | 6 +++---
drivers/iio/adc/max9611.c | 5 ++---
drivers/iio/adc/mcp3422.c | 6 +++---
drivers/iio/adc/ti-adc081c.c | 6 +++---
drivers/iio/adc/ti-ads1015.c | 6 +++---
drivers/iio/cdc/ad7150.c | 6 +++---
drivers/iio/cdc/ad7746.c | 6 +++---
drivers/iio/chemical/ams-iaq-core.c | 5 ++---
drivers/iio/chemical/atlas-ezo-sensor.c | 6 +++---
drivers/iio/chemical/atlas-sensor.c | 6 +++---
drivers/iio/chemical/bme680_i2c.c | 6 +++---
drivers/iio/chemical/ccs811.c | 6 +++---
drivers/iio/chemical/scd4x.c | 4 ++--
drivers/iio/chemical/sgp30.c | 6 +++---
drivers/iio/chemical/sgp40.c | 6 +++---
drivers/iio/chemical/vz89x.c | 6 +++---
drivers/iio/dac/ad5064.c | 6 +++---
drivers/iio/dac/ad5380.c | 6 +++---
drivers/iio/dac/ad5446.c | 6 +++---
drivers/iio/dac/ad5593r.c | 6 +++---
drivers/iio/dac/ad5696-i2c.c | 6 +++---
drivers/iio/dac/ds4424.c | 6 +++---
drivers/iio/dac/m62332.c | 5 ++---
drivers/iio/dac/max517.c | 6 +++---
drivers/iio/dac/max5821.c | 6 +++---
drivers/iio/dac/mcp4725.c | 6 +++---
drivers/iio/dac/ti-dac5571.c | 6 +++---
drivers/iio/gyro/bmg160_i2c.c | 6 +++---
drivers/iio/gyro/itg3200_core.c | 5 ++---
drivers/iio/gyro/mpu3050-i2c.c | 6 +++---
drivers/iio/gyro/st_gyro_i2c.c | 5 ++---
drivers/iio/health/afe4404.c | 5 ++---
drivers/iio/health/max30100.c | 5 ++---
drivers/iio/health/max30102.c | 6 +++---
drivers/iio/humidity/am2315.c | 5 ++---
drivers/iio/humidity/hdc100x.c | 5 ++---
drivers/iio/humidity/hdc2010.c | 5 ++---
drivers/iio/humidity/hts221_i2c.c | 5 ++---
drivers/iio/humidity/htu21.c | 6 +++---
drivers/iio/humidity/si7005.c | 5 ++---
drivers/iio/humidity/si7020.c | 5 ++---
drivers/iio/imu/bmi160/bmi160_i2c.c | 6 +++---
drivers/iio/imu/fxos8700_i2c.c | 6 +++---
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 6 +++---
drivers/iio/imu/kmx61.c | 6 +++---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 6 +++---
drivers/iio/light/adjd_s311.c | 5 ++---
drivers/iio/light/adux1020.c | 5 ++---
drivers/iio/light/al3010.c | 5 ++---
drivers/iio/light/al3320a.c | 5 ++---
drivers/iio/light/apds9300.c | 5 ++---
drivers/iio/light/apds9960.c | 5 ++---
drivers/iio/light/bh1750.c | 6 +++---
drivers/iio/light/bh1780.c | 5 ++---
drivers/iio/light/cm3232.c | 6 +++---
drivers/iio/light/cm3323.c | 5 ++---
drivers/iio/light/cm36651.c | 6 +++---
drivers/iio/light/gp2ap002.c | 5 ++---
drivers/iio/light/gp2ap020a00f.c | 6 +++---
drivers/iio/light/isl29018.c | 6 +++---
drivers/iio/light/isl29028.c | 6 +++---
drivers/iio/light/isl29125.c | 5 ++---
drivers/iio/light/jsa1212.c | 5 ++---
drivers/iio/light/ltr501.c | 6 +++---
drivers/iio/light/lv0104cs.c | 5 ++---
drivers/iio/light/max44000.c | 5 ++---
drivers/iio/light/max44009.c | 5 ++---
drivers/iio/light/noa1305.c | 5 ++---
drivers/iio/light/opt3001.c | 5 ++---
drivers/iio/light/pa12203001.c | 5 ++---
drivers/iio/light/rpr0521.c | 5 ++---
drivers/iio/light/si1133.c | 6 +++---
drivers/iio/light/si1145.c | 6 +++---
drivers/iio/light/st_uvis25_i2c.c | 5 ++---
drivers/iio/light/stk3310.c | 5 ++---
drivers/iio/light/tcs3414.c | 5 ++---
drivers/iio/light/tcs3472.c | 5 ++---
drivers/iio/light/tsl2563.c | 5 ++---
drivers/iio/light/tsl2583.c | 5 ++---
drivers/iio/light/tsl2772.c | 6 +++---
drivers/iio/light/tsl4531.c | 5 ++---
drivers/iio/light/us5182d.c | 5 ++---
drivers/iio/light/vcnl4000.c | 6 +++---
drivers/iio/light/vcnl4035.c | 5 ++---
drivers/iio/light/veml6030.c | 5 ++---
drivers/iio/light/veml6070.c | 5 ++---
drivers/iio/light/zopt2201.c | 5 ++---
drivers/iio/magnetometer/ak8974.c | 5 ++---
drivers/iio/magnetometer/ak8975.c | 6 +++---
drivers/iio/magnetometer/bmc150_magn_i2c.c | 6 +++---
drivers/iio/magnetometer/hmc5843_i2c.c | 6 +++---
drivers/iio/magnetometer/mag3110.c | 6 +++---
drivers/iio/magnetometer/mmc35240.c | 5 ++---
drivers/iio/magnetometer/yamaha-yas530.c | 6 +++---
drivers/iio/potentiometer/ad5272.c | 6 +++---
drivers/iio/potentiometer/ds1803.c | 5 +++--
drivers/iio/potentiometer/max5432.c | 5 ++---
drivers/iio/potentiometer/tpl0102.c | 6 +++---
drivers/iio/potentiostat/lmp91000.c | 5 ++---
drivers/iio/pressure/abp060mg.c | 6 +++---
drivers/iio/pressure/bmp280-i2c.c | 1 +
drivers/iio/pressure/dlhl60d.c | 6 +++---
drivers/iio/pressure/dps310.c | 6 +++---
drivers/iio/pressure/hp03.c | 6 +++---
drivers/iio/pressure/hp206c.c | 6 +++---
drivers/iio/pressure/icp10100.c | 5 ++---
drivers/iio/pressure/mpl115_i2c.c | 6 +++---
drivers/iio/pressure/mpl3115.c | 6 +++---
drivers/iio/pressure/ms5611_i2c.c | 6 +++---
drivers/iio/pressure/ms5637.c | 6 +++---
drivers/iio/pressure/st_pressure_i2c.c | 5 ++---
drivers/iio/pressure/t5403.c | 6 +++---
drivers/iio/pressure/zpa2326_i2c.c | 6 +++---
drivers/iio/proximity/isl29501.c | 5 ++---
drivers/iio/proximity/mb1232.c | 6 +++---
.../iio/proximity/pulsedlight-lidar-lite-v2.c | 5 ++---
drivers/iio/proximity/rfd77402.c | 5 ++---
drivers/iio/proximity/srf08.c | 6 +++---
drivers/iio/proximity/sx9500.c | 5 ++---
drivers/iio/temperature/mlx90614.c | 6 +++---
drivers/iio/temperature/mlx90632.c | 12 ++++++++++--
drivers/iio/temperature/tmp006.c | 5 ++---
drivers/iio/temperature/tmp007.c | 6 +++---
drivers/iio/temperature/tsys01.c | 5 ++---
drivers/iio/temperature/tsys02d.c | 6 +++---
drivers/input/joystick/as5011.c | 5 ++---
drivers/input/keyboard/adp5588-keys.c | 5 ++---
drivers/input/keyboard/adp5589-keys.c | 6 +++---
drivers/input/keyboard/cap11xx.c | 6 +++---
drivers/input/keyboard/dlink-dir685-touchkeys.c | 5 ++---
drivers/input/keyboard/lm8323.c | 5 ++---
drivers/input/keyboard/lm8333.c | 5 ++---
drivers/input/keyboard/max7359_keypad.c | 5 ++---
drivers/input/keyboard/mcs_touchkey.c | 6 +++---
drivers/input/keyboard/mpr121_touchkey.c | 5 ++---
drivers/input/keyboard/qt1070.c | 5 ++---
drivers/input/keyboard/qt2160.c | 5 ++---
drivers/input/keyboard/tca6416-keypad.c | 6 +++---
drivers/input/keyboard/tca8418_keypad.c | 5 ++---
drivers/input/keyboard/tm2-touchkey.c | 5 ++---
drivers/input/misc/ad714x-i2c.c | 5 ++---
drivers/input/misc/adxl34x-i2c.c | 5 ++---
drivers/input/misc/apanel.c | 5 ++---
drivers/input/misc/atmel_captouch.c | 5 ++---
drivers/input/misc/bma150.c | 5 ++---
drivers/input/misc/cma3000_d0x_i2c.c | 5 ++---
drivers/input/misc/da7280.c | 5 ++---
drivers/input/misc/drv260x.c | 5 ++---
drivers/input/misc/drv2665.c | 5 ++---
drivers/input/misc/drv2667.c | 5 ++---
drivers/input/misc/ibm-panel.c | 5 ++---
drivers/input/misc/kxtj9.c | 5 ++---
drivers/input/misc/mma8450.c | 5 ++---
drivers/input/misc/pcf8574_keypad.c | 4 ++--
drivers/input/mouse/cyapa.c | 5 ++---
drivers/input/mouse/elan_i2c_core.c | 5 ++---
drivers/input/mouse/synaptics_i2c.c | 5 ++---
drivers/input/rmi4/rmi_i2c.c | 5 ++---
drivers/input/rmi4/rmi_smbus.c | 5 ++---
drivers/input/touchscreen/ad7879-i2c.c | 5 ++---
drivers/input/touchscreen/ar1021_i2c.c | 5 ++---
drivers/input/touchscreen/atmel_mxt_ts.c | 4 ++--
drivers/input/touchscreen/auo-pixcir-ts.c | 5 ++---
drivers/input/touchscreen/bu21013_ts.c | 5 ++---
drivers/input/touchscreen/bu21029_ts.c | 5 ++---
drivers/input/touchscreen/chipone_icn8318.c | 5 ++---
drivers/input/touchscreen/cy8ctma140.c | 5 ++---
drivers/input/touchscreen/cy8ctmg110_ts.c | 5 ++---
drivers/input/touchscreen/cyttsp4_i2c.c | 5 ++---
drivers/input/touchscreen/cyttsp5.c | 5 ++---
drivers/input/touchscreen/cyttsp_i2c.c | 5 ++---
drivers/input/touchscreen/edt-ft5x06.c | 6 +++---
drivers/input/touchscreen/eeti_ts.c | 5 ++---
drivers/input/touchscreen/egalax_ts.c | 5 ++---
drivers/input/touchscreen/ektf2127.c | 5 ++---
drivers/input/touchscreen/goodix.c | 5 ++---
drivers/input/touchscreen/hideep.c | 5 ++---
drivers/input/touchscreen/himax_hx83112b.c | 5 ++---
drivers/input/touchscreen/hycon-hy46xx.c | 5 ++---
drivers/input/touchscreen/ili210x.c | 6 +++---
drivers/input/touchscreen/ilitek_ts_i2c.c | 5 ++---
drivers/input/touchscreen/iqs5xx.c | 5 ++---
drivers/input/touchscreen/max11801_ts.c | 5 ++---
drivers/input/touchscreen/mcs5000_ts.c | 5 ++---
drivers/input/touchscreen/melfas_mip4.c | 4 ++--
drivers/input/touchscreen/migor_ts.c | 5 ++---
drivers/input/touchscreen/mms114.c | 5 ++---
drivers/input/touchscreen/pixcir_i2c_ts.c | 6 +++---
drivers/input/touchscreen/raydium_i2c_ts.c | 5 ++---
drivers/input/touchscreen/rohm_bu21023.c | 5 ++---
drivers/input/touchscreen/s6sy761.c | 5 ++---
drivers/input/touchscreen/silead.c | 6 +++---
drivers/input/touchscreen/sis_i2c.c | 5 ++---
drivers/input/touchscreen/st1232.c | 6 +++---
drivers/input/touchscreen/stmfts.c | 5 ++---
drivers/input/touchscreen/sx8654.c | 6 +++---
drivers/input/touchscreen/tsc2004.c | 5 ++---
drivers/input/touchscreen/tsc2007_core.c | 6 +++---
drivers/input/touchscreen/wacom_i2c.c | 5 ++---
drivers/input/touchscreen/wdt87xx_i2c.c | 5 ++---
drivers/input/touchscreen/zet6223.c | 5 ++---
drivers/input/touchscreen/zforce_ts.c | 5 ++---
drivers/leds/leds-bd2802.c | 5 ++---
drivers/leds/leds-blinkm.c | 5 ++---
drivers/leds/leds-is31fl32xx.c | 5 ++---
drivers/leds/leds-lm3530.c | 5 ++---
drivers/leds/leds-lm3532.c | 5 ++---
drivers/leds/leds-lm355x.c | 6 +++---
drivers/leds/leds-lm3642.c | 5 ++---
drivers/leds/leds-lm3692x.c | 6 +++---
drivers/leds/leds-lm3697.c | 5 ++---
drivers/leds/leds-lp3944.c | 5 ++---
drivers/leds/leds-lp3952.c | 5 ++---
drivers/leds/leds-lp5521.c | 6 +++---
drivers/leds/leds-lp5523.c | 6 +++---
drivers/leds/leds-lp5562.c | 5 ++---
drivers/leds/leds-lp8501.c | 6 +++---
drivers/leds/leds-lp8860.c | 5 ++---
drivers/leds/leds-pca9532.c | 9 ++++-----
drivers/leds/leds-pca963x.c | 6 +++---
drivers/leds/leds-tca6507.c | 5 ++---
drivers/leds/leds-tlc591xx.c | 5 ++---
drivers/leds/leds-turris-omnia.c | 5 ++---
drivers/macintosh/ams/ams-i2c.c | 8 +++-----
drivers/macintosh/therm_adt746x.c | 6 +++---
drivers/macintosh/therm_windtunnel.c | 5 +++--
drivers/macintosh/windfarm_ad7417_sensor.c | 5 ++---
drivers/macintosh/windfarm_fcu_controls.c | 5 ++---
drivers/macintosh/windfarm_lm75_sensor.c | 8 ++++----
drivers/macintosh/windfarm_lm87_sensor.c | 5 ++---
drivers/macintosh/windfarm_max6690_sensor.c | 5 ++---
drivers/macintosh/windfarm_smu_sat.c | 5 ++---
drivers/media/dvb-frontends/a8293.c | 5 ++---
drivers/media/dvb-frontends/af9013.c | 5 ++---
drivers/media/dvb-frontends/af9033.c | 5 ++---
drivers/media/dvb-frontends/au8522_decoder.c | 5 ++---
drivers/media/dvb-frontends/cxd2099.c | 5 ++---
drivers/media/dvb-frontends/cxd2820r_core.c | 5 ++---
drivers/media/dvb-frontends/dvb-pll.c | 5 +++--
drivers/media/dvb-frontends/helene.c | 5 ++---
drivers/media/dvb-frontends/lgdt3306a.c | 5 ++---
drivers/media/dvb-frontends/lgdt330x.c | 5 ++---
drivers/media/dvb-frontends/m88ds3103.c | 6 +++---
drivers/media/dvb-frontends/mn88443x.c | 6 +++---
drivers/media/dvb-frontends/mn88472.c | 5 ++---
drivers/media/dvb-frontends/mn88473.c | 5 ++---
drivers/media/dvb-frontends/mxl692.c | 5 ++---
drivers/media/dvb-frontends/rtl2830.c | 5 ++---
drivers/media/dvb-frontends/rtl2832.c | 5 ++---
drivers/media/dvb-frontends/si2165.c | 5 ++---
drivers/media/dvb-frontends/si2168.c | 5 ++---
drivers/media/dvb-frontends/sp2.c | 5 ++---
drivers/media/dvb-frontends/stv090x.c | 5 ++---
drivers/media/dvb-frontends/stv6110x.c | 5 ++---
drivers/media/dvb-frontends/tc90522.c | 6 +++---
drivers/media/dvb-frontends/tda10071.c | 5 ++---
drivers/media/dvb-frontends/ts2020.c | 5 ++---
drivers/media/i2c/ad5820.c | 5 ++---
drivers/media/i2c/ad9389b.c | 4 ++--
drivers/media/i2c/adp1653.c | 5 ++---
drivers/media/i2c/adv7170.c | 5 ++---
drivers/media/i2c/adv7175.c | 5 ++---
drivers/media/i2c/adv7180.c | 6 +++---
drivers/media/i2c/adv7183.c | 5 ++---
drivers/media/i2c/adv7393.c | 5 ++---
drivers/media/i2c/adv7511-v4l2.c | 4 ++--
drivers/media/i2c/adv7604.c | 6 +++---
drivers/media/i2c/adv7842.c | 5 ++---
drivers/media/i2c/ak881x.c | 5 ++---
drivers/media/i2c/bt819.c | 5 ++---
drivers/media/i2c/bt856.c | 5 ++---
drivers/media/i2c/bt866.c | 5 ++---
drivers/media/i2c/cs3308.c | 5 ++---
drivers/media/i2c/cs5345.c | 5 ++---
drivers/media/i2c/cs53l32a.c | 6 +++---
drivers/media/i2c/cx25840/cx25840-core.c | 5 ++---
drivers/media/i2c/ir-kbd-i2c.c | 5 +++--
drivers/media/i2c/ks0127.c | 4 ++--
drivers/media/i2c/lm3560.c | 5 ++---
drivers/media/i2c/lm3646.c | 5 ++---
drivers/media/i2c/m52790.c | 5 ++---
drivers/media/i2c/m5mols/m5mols_core.c | 5 ++---
drivers/media/i2c/ml86v7667.c | 5 ++---
drivers/media/i2c/msp3400-driver.c | 5 +++--
drivers/media/i2c/mt9m032.c | 5 ++---
drivers/media/i2c/mt9p031.c | 6 +++---
drivers/media/i2c/mt9t001.c | 5 ++---
drivers/media/i2c/mt9t112.c | 5 ++---
drivers/media/i2c/mt9v011.c | 5 ++---
drivers/media/i2c/mt9v032.c | 6 +++---
drivers/media/i2c/noon010pc30.c | 5 ++---
drivers/media/i2c/ov13858.c | 5 ++---
drivers/media/i2c/ov6650.c | 5 ++---
drivers/media/i2c/ov7640.c | 5 ++---
drivers/media/i2c/ov7670.c | 6 +++---
drivers/media/i2c/ov9640.c | 5 ++---
drivers/media/i2c/rj54n1cb0c.c | 5 ++---
drivers/media/i2c/s5k4ecgx.c | 5 ++---
drivers/media/i2c/s5k6aa.c | 5 ++---
drivers/media/i2c/saa6588.c | 5 ++---
drivers/media/i2c/saa6752hs.c | 5 ++---
drivers/media/i2c/saa7110.c | 5 ++---
drivers/media/i2c/saa7115.c | 6 +++---
drivers/media/i2c/saa7127.c | 6 +++---
drivers/media/i2c/saa717x.c | 5 ++---
drivers/media/i2c/saa7185.c | 5 ++---
drivers/media/i2c/sony-btf-mpx.c | 5 ++---
drivers/media/i2c/sr030pc30.c | 5 ++---
drivers/media/i2c/tda1997x.c | 6 +++---
drivers/media/i2c/tda7432.c | 5 ++---
drivers/media/i2c/tda9840.c | 5 ++---
drivers/media/i2c/tea6415c.c | 5 ++---
drivers/media/i2c/tea6420.c | 5 ++---
drivers/media/i2c/ths7303.c | 5 ++---
drivers/media/i2c/tlv320aic23b.c | 5 ++---
drivers/media/i2c/tvaudio.c | 5 +++--
drivers/media/i2c/tvp514x.c | 5 +++--
drivers/media/i2c/tw2804.c | 5 ++---
drivers/media/i2c/tw9903.c | 5 ++---
drivers/media/i2c/tw9906.c | 5 ++---
drivers/media/i2c/tw9910.c | 5 ++---
drivers/media/i2c/uda1342.c | 5 ++---
drivers/media/i2c/upd64031a.c | 5 ++---
drivers/media/i2c/upd64083.c | 5 ++---
drivers/media/i2c/video-i2c.c | 6 +++---
drivers/media/i2c/vp27smpx.c | 5 ++---
drivers/media/i2c/vpx3220.c | 5 ++---
drivers/media/i2c/vs6624.c | 5 ++---
drivers/media/i2c/wm8739.c | 5 ++---
drivers/media/i2c/wm8775.c | 5 ++---
drivers/media/radio/radio-tea5764.c | 5 ++---
drivers/media/radio/saa7706h.c | 5 ++---
drivers/media/radio/tef6862.c | 5 ++---
drivers/media/test-drivers/vidtv/vidtv_demod.c | 5 ++---
drivers/media/test-drivers/vidtv/vidtv_tuner.c | 5 ++---
drivers/media/tuners/e4000.c | 5 ++---
drivers/media/tuners/fc2580.c | 5 ++---
drivers/media/tuners/m88rs6000t.c | 5 ++---
drivers/media/tuners/mt2060.c | 5 ++---
drivers/media/tuners/mxl301rf.c | 5 ++---
drivers/media/tuners/qm1d1b0004.c | 4 ++--
drivers/media/tuners/qm1d1c0042.c | 5 ++---
drivers/media/tuners/si2157.c | 6 +++---
drivers/media/tuners/tda18212.c | 5 ++---
drivers/media/tuners/tda18250.c | 5 ++---
drivers/media/tuners/tua9001.c | 5 ++---
drivers/media/usb/go7007/s2250-board.c | 5 ++---
drivers/media/v4l2-core/tuner-core.c | 5 ++---
drivers/mfd/88pm800.c | 5 ++---
drivers/mfd/88pm805.c | 5 ++---
drivers/mfd/aat2870-core.c | 5 ++---
drivers/mfd/act8945a.c | 5 ++---
drivers/mfd/adp5520.c | 6 +++---
drivers/mfd/arizona-i2c.c | 6 +++---
drivers/mfd/as3711.c | 5 ++---
drivers/mfd/as3722.c | 5 ++---
drivers/mfd/atc260x-i2c.c | 5 ++---
drivers/mfd/axp20x-i2c.c | 5 ++---
drivers/mfd/bcm590xx.c | 5 ++---
drivers/mfd/bd9571mwv.c | 5 ++---
drivers/mfd/da903x.c | 6 +++---
drivers/mfd/da9052-i2c.c | 6 +++---
drivers/mfd/da9055-i2c.c | 5 ++---
drivers/mfd/da9062-core.c | 6 +++---
drivers/mfd/da9063-i2c.c | 6 +++---
drivers/mfd/da9150-core.c | 5 ++---
drivers/mfd/khadas-mcu.c | 5 ++---
drivers/mfd/lm3533-core.c | 5 ++---
drivers/mfd/lp3943.c | 4 ++--
drivers/mfd/lp873x.c | 5 ++---
drivers/mfd/lp87565.c | 5 ++---
drivers/mfd/lp8788.c | 4 ++--
drivers/mfd/madera-i2c.c | 6 +++---
drivers/mfd/max14577.c | 6 +++---
drivers/mfd/max77620.c | 6 +++---
drivers/mfd/max77693.c | 6 +++---
drivers/mfd/max77843.c | 6 +++---
drivers/mfd/max8907.c | 5 ++---
drivers/mfd/max8925-i2c.c | 5 ++---
drivers/mfd/max8997.c | 6 +++---
drivers/mfd/max8998.c | 6 +++---
drivers/mfd/mc13xxx-i2c.c | 6 +++---
drivers/mfd/menelaus.c | 5 ++---
drivers/mfd/menf21bmc.c | 4 ++--
drivers/mfd/palmas.c | 5 ++---
drivers/mfd/pcf50633-core.c | 5 ++---
drivers/mfd/rc5t583.c | 5 ++---
drivers/mfd/retu-mfd.c | 4 ++--
drivers/mfd/rk808.c | 5 ++---
drivers/mfd/rohm-bd718x7.c | 5 ++---
drivers/mfd/rsmu_i2c.c | 6 +++---
drivers/mfd/rt5033.c | 5 ++---
drivers/mfd/sec-core.c | 5 ++---
drivers/mfd/si476x-i2c.c | 6 +++---
drivers/mfd/sky81452.c | 5 ++---
drivers/mfd/stmfx.c | 5 ++---
drivers/mfd/stmpe-i2c.c | 5 +++--
drivers/mfd/stpmic1.c | 5 ++---
drivers/mfd/stw481x.c | 5 ++---
drivers/mfd/tc3589x.c | 6 +++---
drivers/mfd/ti-lmu.c | 5 +++--
drivers/mfd/tps6105x.c | 5 ++---
drivers/mfd/tps65010.c | 6 +++---
drivers/mfd/tps6507x.c | 5 ++---
drivers/mfd/tps65086.c | 5 ++---
drivers/mfd/tps65090.c | 5 ++---
drivers/mfd/tps65218.c | 5 ++---
drivers/mfd/tps6586x.c | 5 ++---
drivers/mfd/tps65910.c | 6 +++---
drivers/mfd/tps65912-i2c.c | 5 ++---
drivers/mfd/twl-core.c | 5 +++--
drivers/mfd/twl6040.c | 5 ++---
drivers/mfd/wl1273-core.c | 5 ++---
drivers/mfd/wm831x-i2c.c | 6 +++---
drivers/mfd/wm8350-i2c.c | 5 ++---
drivers/mfd/wm8400-core.c | 5 ++---
drivers/mfd/wm8994-core.c | 6 +++---
drivers/misc/ad525x_dpot-i2c.c | 6 +++---
drivers/misc/apds9802als.c | 5 ++---
drivers/misc/apds990x.c | 5 ++---
drivers/misc/bh1770glc.c | 5 ++---
drivers/misc/ds1682.c | 5 ++---
drivers/misc/eeprom/eeprom.c | 5 ++---
drivers/misc/eeprom/idt_89hpesx.c | 4 ++--
drivers/misc/eeprom/max6875.c | 5 ++---
drivers/misc/hmc6352.c | 5 ++---
drivers/misc/ics932s401.c | 8 +++-----
drivers/misc/isl29003.c | 5 ++---
drivers/misc/isl29020.c | 5 ++---
drivers/misc/lis3lv02d/lis3lv02d_i2c.c | 5 ++---
drivers/misc/tsl2550.c | 5 ++---
drivers/mtd/maps/pismo.c | 5 ++---
drivers/net/dsa/lan9303_i2c.c | 5 ++---
drivers/net/dsa/microchip/ksz9477_i2c.c | 5 ++---
drivers/net/dsa/xrs700x/xrs700x_i2c.c | 5 ++---
drivers/net/ethernet/mellanox/mlxsw/i2c.c | 6 +++---
drivers/nfc/microread/i2c.c | 5 ++---
drivers/nfc/nfcmrvl/i2c.c | 5 ++---
drivers/nfc/nxp-nci/i2c.c | 5 ++---
drivers/nfc/pn533/i2c.c | 5 ++---
drivers/nfc/pn544/i2c.c | 5 ++---
drivers/nfc/s3fwrn5/i2c.c | 5 ++---
drivers/nfc/st-nci/i2c.c | 5 ++---
drivers/nfc/st21nfca/i2c.c | 5 ++---
drivers/of/unittest.c | 10 ++++------
drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 5 +++--
drivers/pinctrl/pinctrl-sx150x.c | 6 +++---
drivers/platform/chrome/cros_ec_i2c.c | 5 ++---
drivers/power/supply/adp5061.c | 5 ++---
drivers/power/supply/bq2415x_charger.c | 6 +++---
drivers/power/supply/bq24190_charger.c | 6 +++---
drivers/power/supply/bq24257_charger.c | 6 +++---
drivers/power/supply/bq24735-charger.c | 5 ++---
drivers/power/supply/bq2515x_charger.c | 6 +++---
drivers/power/supply/bq256xx_charger.c | 6 +++---
drivers/power/supply/bq25890_charger.c | 5 ++---
drivers/power/supply/bq25980_charger.c | 6 +++---
drivers/power/supply/bq27xxx_battery_i2c.c | 6 +++---
drivers/power/supply/ds2782_battery.c | 6 +++---
drivers/power/supply/lp8727_charger.c | 4 ++--
drivers/power/supply/ltc2941-battery-gauge.c | 5 ++---
drivers/power/supply/ltc4162-l-charger.c | 5 ++---
drivers/power/supply/max14656_charger_detector.c | 5 ++---
drivers/power/supply/max17040_battery.c | 6 +++---
drivers/power/supply/max17042_battery.c | 6 +++---
drivers/power/supply/rt5033_battery.c | 5 ++---
drivers/power/supply/rt9455_charger.c | 5 ++---
drivers/power/supply/sbs-charger.c | 5 ++---
drivers/power/supply/sbs-manager.c | 6 +++---
drivers/power/supply/smb347-charger.c | 6 +++---
drivers/power/supply/ucs1002_power.c | 5 ++---
drivers/power/supply/z2_battery.c | 5 ++---
drivers/pwm/pwm-pca9685.c | 5 ++---
drivers/regulator/act8865-regulator.c | 6 +++---
drivers/regulator/ad5398.c | 6 +++---
drivers/regulator/da9121-regulator.c | 5 ++---
drivers/regulator/fan53555.c | 6 +++---
drivers/regulator/isl6271a-regulator.c | 6 +++---
drivers/regulator/lp3972.c | 5 ++---
drivers/regulator/lp872x.c | 5 +++--
drivers/regulator/lp8755.c | 5 ++---
drivers/regulator/ltc3589.c | 6 +++---
drivers/regulator/max1586.c | 5 ++---
drivers/regulator/max8649.c | 5 ++---
drivers/regulator/max8660.c | 6 +++---
drivers/regulator/max8952.c | 5 ++---
drivers/regulator/max8973-regulator.c | 6 +++---
drivers/regulator/pca9450-regulator.c | 5 ++---
drivers/regulator/pfuze100-regulator.c | 6 +++---
drivers/regulator/pv88080-regulator.c | 6 +++---
drivers/regulator/rpi-panel-attiny-regulator.c | 5 ++---
drivers/regulator/tps51632-regulator.c | 5 ++---
drivers/regulator/tps62360-regulator.c | 6 +++---
drivers/regulator/tps6286x-regulator.c | 5 ++---
drivers/regulator/tps65023-regulator.c | 6 +++---
drivers/rtc/rtc-ds1307.c | 6 +++---
drivers/rtc/rtc-isl1208.c | 1 +
drivers/rtc/rtc-m41t80.c | 1 +
drivers/rtc/rtc-rs5c372.c | 1 +
drivers/spi/spi-sc18is602.c | 6 +++---
drivers/spi/spi-xcomm.c | 5 ++---
drivers/staging/iio/addac/adt7316-i2c.c | 6 +++---
drivers/staging/iio/impedance-analyzer/ad5933.c | 6 +++---
drivers/staging/iio/meter/ade7854-i2c.c | 5 ++---
drivers/staging/most/i2c/i2c.c | 4 ++--
drivers/staging/olpc_dcon/olpc_dcon.c | 4 ++--
drivers/tty/serial/sc16is7xx.c | 6 +++---
drivers/usb/misc/usb251xb.c | 5 ++---
drivers/usb/misc/usb3503.c | 5 ++---
drivers/usb/misc/usb4604.c | 5 ++---
drivers/usb/phy/phy-isp1301-omap.c | 4 ++--
drivers/usb/phy/phy-isp1301.c | 5 ++---
drivers/usb/typec/anx7411.c | 5 ++---
drivers/usb/typec/hd3ss3220.c | 5 ++---
drivers/usb/typec/tcpm/fusb302.c | 5 ++---
drivers/usb/typec/tcpm/tcpci.c | 5 ++---
drivers/usb/typec/tcpm/tcpci_maxim.c | 4 ++--
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 5 ++---
drivers/usb/typec/ucsi/ucsi_ccg.c | 5 ++---
drivers/usb/typec/ucsi/ucsi_stm32g0.c | 4 ++--
drivers/video/backlight/adp8860_bl.c | 6 +++---
drivers/video/backlight/adp8870_bl.c | 6 +++---
drivers/video/backlight/arcxcnn_bl.c | 4 ++--
drivers/video/backlight/bd6107.c | 5 ++---
drivers/video/backlight/lm3630a_bl.c | 5 ++---
drivers/video/backlight/lm3639_bl.c | 5 ++---
drivers/video/backlight/lp855x_bl.c | 5 +++--
drivers/video/backlight/lv5207lp.c | 5 ++---
drivers/video/backlight/tosa_bl.c | 5 ++---
drivers/video/fbdev/matrox/matroxfb_maven.c | 5 ++---
drivers/w1/masters/ds2482.c | 5 ++---
drivers/watchdog/ziirave_wdt.c | 5 ++---
include/linux/i2c.h | 12 +++++++-----
sound/aoa/codecs/onyx.c | 5 ++---
sound/aoa/codecs/tas.c | 5 ++---
sound/pci/hda/cs35l41_hda_i2c.c | 4 ++--
sound/ppc/keywest.c | 5 ++---
sound/soc/codecs/es8326.c | 5 ++---
sound/soc/codecs/max98396.c | 6 +++---
sound/soc/codecs/src4xxx-i2c.c | 5 ++---
sound/soc/codecs/tas2780.c | 5 ++---
607 files changed, 1429 insertions(+), 1790 deletions(-)
base-commit: 147307c69ba4441ee90c1f8ce8edf5df4ea60f67
--
2.38.1
12
36
This patchset refactors the Rockchip I2S/TDM driver in order to
support the RK3588 SoC, and then adds the necessary compatible
string to load the driver for it.
Patch 1 rectifies a problem with the bindings where we were too
strict about requiring the rockchip,grf property. Most features
of this audio device don't need access to the GRF to function.
Patch 2 modifies the driver to adjust its behaviour to what the
changed bindings now allow, namely using most things without the
GRF.
Patch 3 and 4 are boring compatible string stuff that enables
RK3588 support. No special data is needed to initialise the
driver for this instance of the I2S/TDM IP.
Nicolas Frattaroli (4):
ASoC: dt-bindings: rockchip: i2s-tdm: Make grf property optional
ASoC: rockchip: i2s_tdm: Make the grf property optional
ASoC: dt-bindings: rockchip: i2s-tdm: Add RK3588 compatible
ASoC: rockchip: i2s_tdm: Add support for RK3588
.../bindings/sound/rockchip,i2s-tdm.yaml | 2 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 19 ++++++++++++++-----
2 files changed, 15 insertions(+), 6 deletions(-)
--
2.38.1
3
8

25 Nov '22
Maarten Zanders (3):
ASoC: adau1372: fix mclk
ASoC: adau1372: add support for S24_LE mode
ASoC: adau1372: correct PGA enable & mute bit
sound/soc/codecs/adau1372.c | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
base-commit: ef6747add3ad08a23a94b20db0b62688efb9ccd9
--
2.37.3
3
9

Re: [PATCH] ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd
by Mark Brown 25 Nov '22
by Mark Brown 25 Nov '22
25 Nov '22
On Wed, 16 Nov 2022 11:07:50 +0800, Jiasheng Jiang wrote:
> As the mtk_btcvsd_snd_write and mtk_btcvsd_snd_read may return error,
> it should be better to catch the exception.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd
commit: d067b3378a78c9c3048ac535e31c171b6f5b5846
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
1
0

[PATCH 1/2] ASoC: ops: Correct bounds check for second channel on SX controls
by Charles Keepax 25 Nov '22
by Charles Keepax 25 Nov '22
25 Nov '22
Currently the check against the max value for the control is being
applied after the value has had the minimum applied and been masked. But
the max value simply indicates the number of volume levels on an SX
control, and as such should just be applied on the raw value.
Fixes: e9b397afabb8 ("ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()")
Signed-off-by: Charles Keepax <ckeepax(a)opensource.cirrus.com>
---
sound/soc/soc-ops.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c
index 1970bda074d8a..55b009d3c6815 100644
--- a/sound/soc/soc-ops.c
+++ b/sound/soc/soc-ops.c
@@ -464,16 +464,15 @@ int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol,
ret = err;
if (snd_soc_volsw_is_stereo(mc)) {
- unsigned int val2;
-
- val_mask = mask << rshift;
- val2 = (ucontrol->value.integer.value[1] + min) & mask;
+ unsigned int val2 = ucontrol->value.integer.value[1];
if (mc->platform_max && val2 > mc->platform_max)
return -EINVAL;
if (val2 > max)
return -EINVAL;
+ val_mask = mask << rshift;
+ val2 = (val2 + min) & mask;
val2 = val2 << rshift;
err = snd_soc_component_update_bits(component, reg2, val_mask,
--
2.30.2
2
5

Unable to open hostless PCM device after introduction of commit - ASoC: Stop dummy from overriding hwparams
by Patrick Lai 25 Nov '22
by Patrick Lai 25 Nov '22
25 Nov '22
Hi Amadeusz,
On the product I am working on, a hostless PCM device is defined for
purpose of activating CODEC driver to setup the path inside CODEC. So,
CPU DAI and PCM Platform are defined to use dummy dai & DMA supplied by
sound/soc/soc-utils.c.
After upgrading to newer kernel, hostless PCM device failed to open.
After doing a bit of digging, the root cause is that dummy_dma_hardware
is not set in dummy_dma_open() due to new conditional check logic
introduced in this commit - 6c504663ba2ee2abeaf5622e27082819326c1bd4.
In order to fix problem I am encountering properly without regressing
your scenario, I would like to get a better understanding of problem you
were addressing. My understanding, from looking through other drivers
under sound/soc, is that pcm hardware info is usually set by PCM
platform/DMA drivers. For your scenario, do you have other component e.g
CPU/CODEC DAI, set PCM hardware definition? I am not sure conditional
check logic from 6c504663ba2ee2abeaf5622e27082819326c1bd4 guarantees
that other component would be setting pcm hardware info. Appreciate if
you can provide more insight to your scenario?
Thanks
Patrick
3
2

25 Nov '22
Hi all,
I am using a dev board with a Cirrus Logic cs24l51 codec.
This used to work fine prior to kernel version 5.x, however after 5.x
it is not possible to set certain values for ALSA controls from
userspace.
I believe this is related to the input validation that is mentioned in
this thread: https://lore.kernel.org/all/Yph8C3bRxcr6ogW7@sirena.org.uk/T/,
and possibly in this commit: 4f1e50d6a9cf9c1b8c859d449b5031cacfa8404e
("ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()")
For the cs24l51, all the controls that fail are using the
SOC_DOUBLE_R_SX_TLV macro.
I have traced this to the checks in snd_soc_put_volsw_sx, specifically
the (val > max - min) check:
pr_warn("Max: %d, Min: %d, Value: %d", max, min, val);
pr_warn("platform_max: %d", mc->platform_max);
if (mc->platform_max && val > mc->platform_max)
{
return -EINVAL;
}
if (val > max - min){
pr_warn("(val > max - min) check failed");
return -EINVAL;
}
if (val < 0)
return -EINVAL;
According to the datasheet of the CS24L51, section 6.13, page 61, the
PCMMIXX_VOL registers accept the following range of values:
Binary Code / Volume Setting
001 1000 / +12.0 dB
··· ···
000 0000 / 0 dB
111 1111 / -0.5 dB
111 1110 / -1.0 dB
··· ···
001 1001 / -51.5 dB
Minimum value is 0x19 (001 1001) corresponding to -51.5 dB, then there
are 127 possible gain settings from -51.5 dB to +12.0 dB, in 0.5 dB
steps.
This is declared in the driver as follows:
SOC_DOUBLE_R_SX_TLV("PCM Playback Volume",
CS42L51_PCMA_VOL, CS42L51_PCMB_VOL,
0, 0x19, 0x7F, adc_pcm_tlv),
0x19 = min value
0x7F = number of gain settings
This seems to be correct according to the semantics of the
SOC_DOUBLE_R_SX_TLV macro as described in commit
34198710f55b5f359f43e67d9a08fe5aadfbca1b ("ASoC: Add info callback for
SX_TLV controls").
However, the (val > max - min) check in snd_soc_put_volsw_sx fails in
the above example because val = 127, max - min = 127 - 25 = 102.
So I am not sure how this should be fixed. Is the SX_TLV macro being
used incorrectly here? Is the check in snd_soc_put_volsw_sx wrong?
Any pointers are welcome.
Thanks,
(If possible, please CC me in any replies)
Guillermo Rodriguez Garcia
guille.rodriguez(a)gmail.com
3
4