Re: [alsa-devel] [PATCH] ASoC: rt5677: Reintroduce I2C device IDs

From: Takashi Iwai
Date: Thu Aug 24 2017 - 12:06:27 EST


On Thu, 24 Aug 2017 17:54:37 +0200,
Tom Rini wrote:
>
> On Thu, Aug 24, 2017 at 04:52:35PM +0100, Mark Brown wrote:
> > On Thu, Aug 24, 2017 at 05:42:11PM +0200, Takashi Iwai wrote:
> >
> > > OK, so the fix for 4.13 would be either to cherry-pick this commit, or
> > > just to re-add "RT5677CE:00" to i2c_id temporarily as a quick band-aid
> > > fix (and remove again in 4.14).
> >
> > > The former is cleaner, but it's bigger, while the latter is a safer
> > > oneliner at the late RC stage.
> >
> > > I leave the decision to Mark.
> >
> > I'm happier with the oneline change TBH, like you say it's pretty late
> > in the release cycle. Can you just apply the patch directly and send it
> > to Linus with my ack or should I put together a pull request?
>
> FWIW, I'd be happy to give the change a quick spin and Tested-by it.

Well, it's your patch, after all :)
Below is the patch I'm going to queue.


Takashi

-- 8< --
From: Tom Rini <trini@xxxxxxxxxxxx>
Subject: [PATCH] ASoC: rt5677: Reintroduce I2C device IDs

Not all devices with ACPI and this combination of sound devices will
have the required information provided via ACPI. Reintroduce the I2C
device ID to restore sound functionality on on the Chromebook 'Samus'
model.

[ More background note:
the commit a36afb0ab648 ("ASoC: rt5677: Introduce proper table...")
moved the i2c ID probed via ACPI ("RT5677CE:00") to a proper
acpi_device_id table. Although the action itself is correct per se,
the overseen issue is the reference id->driver_data at
rt5677_i2c_probe() for retrieving the corresponding chip model for
the given id. Since id=NULL is passed for ACPI matching case, we get
an Oops now.

We already have queued more fixes for 4.14 and they already address
the issue, but they are bigger changes that aren't preferable for the
late 4.13-rc stage. So, this patch just papers over the bug as a
once-off quick fix for a particular ACPI matching. -- tiwai ]

Fixes: a36afb0ab648 ("ASoC: rt5677: Introduce proper table for ACPI enumeration")
Signed-off-by: Tom Rini <trini@xxxxxxxxxxxx>
Acked-by: Mark Brown <broonie@xxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
---
sound/soc/codecs/rt5677.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c
index 36e530a36c82..6f629278d982 100644
--- a/sound/soc/codecs/rt5677.c
+++ b/sound/soc/codecs/rt5677.c
@@ -5021,6 +5021,7 @@ static const struct regmap_config rt5677_regmap = {
static const struct i2c_device_id rt5677_i2c_id[] = {
{ "rt5677", RT5677 },
{ "rt5676", RT5676 },
+ { "RT5677CE:00", RT5677 },
{ }
};
MODULE_DEVICE_TABLE(i2c, rt5677_i2c_id);
--
2.14.0