diff mbox

[RFC] sound: ppc: keywest: check if DEQ was already instantiated

Message ID 1432397711-3186-1-git-send-email-wsa@the-dreams.de
State Awaiting Upstream
Headers show

Commit Message

Wolfram Sang May 23, 2015, 4:15 p.m. UTC
Due to changes in i2c-powermac, for some Macs the DEQ is instantiated
now in i2c-powermac while some need the instantiation here in the
keywest sound driver. The proper fix is to convert this driver to AOA.
Until then support both ways of instantiation. Before this patch, some
Macs lost sound because the sound driver failed when instantiating the
DEQ for the second time.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
---

Dan, Mark: I hope I found a generic but not too intrusive solution to the
doubled instantiation problem. Can you please test this patch on top of this
one "sound: ppc: keywest: drop using attach adapter" from last time? Check if
you have sound and send the dmesg output, please. I hope it compiles even,
couldn't test that this time.

 sound/ppc/keywest.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Wolfram Sang May 29, 2015, 10:50 a.m. UTC | #1
On Thu, May 28, 2015 at 09:33:27AM +0200, Takashi Iwai wrote:
> At Tue, 26 May 2015 02:19:34 -0700,
> Dan DeVoto wrote:
> > 
> > Hi,
> > 
> > I applied this patch ("check if DEQ was already instantiated") on top of 
> > "sound: ppc: keywest: drop using attach adapter" and sound works great.
> > Everything works as expected.  Below is my dmesg output.
> 
> Very well, shall I merge the patch as is?

Yes, with Dan's tested-by. This patch should get its testing cycle via
linux-next. If no regressions, then it could be considered to send this
patch (and the one it depends on) to stable. They will fix missing sound
issues which regressed ~3 years ago. I'll leave this to you, of course.
Takashi Iwai May 29, 2015, 10:57 a.m. UTC | #2
At Fri, 29 May 2015 19:50:22 +0900,
Wolfram Sang wrote:
> 
> On Thu, May 28, 2015 at 09:33:27AM +0200, Takashi Iwai wrote:
> > At Tue, 26 May 2015 02:19:34 -0700,
> > Dan DeVoto wrote:
> > > 
> > > Hi,
> > > 
> > > I applied this patch ("check if DEQ was already instantiated") on top of 
> > > "sound: ppc: keywest: drop using attach adapter" and sound works great.
> > > Everything works as expected.  Below is my dmesg output.
> > 
> > Very well, shall I merge the patch as is?
> 
> Yes, with Dan's tested-by. This patch should get its testing cycle via
> linux-next. If no regressions, then it could be considered to send this
> patch (and the one it depends on) to stable. They will fix missing sound
> issues which regressed ~3 years ago. I'll leave this to you, of course.

OK, I queued it to for-next branch.  Since these are for 4.2 material,
I'll give stable requests once when merged to Linus tree.

Do you think from which stable kernel version can this be applied?


thanks,

Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wolfram Sang May 29, 2015, 11:06 a.m. UTC | #3
> Do you think from which stable kernel version can this be applied?

The offending commit is 3a3dd0186f619b74e61e6f29dddcaf59af7d3cac
("i2c/powermac: Improve detection of devices from device-tree") which
came in with v3.6 if I read correctly.
Takashi Iwai May 29, 2015, 11:44 a.m. UTC | #4
At Fri, 29 May 2015 20:06:09 +0900,
Wolfram Sang wrote:
> 
> > Do you think from which stable kernel version can this be applied?
> 
> The offending commit is 3a3dd0186f619b74e61e6f29dddcaf59af7d3cac
> ("i2c/powermac: Improve detection of devices from device-tree") which
> came in with v3.6 if I read correctly.

OK, thanks!


Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wolfram Sang May 31, 2015, 11:30 p.m. UTC | #5
On Fri, May 29, 2015 at 01:44:38PM +0200, Takashi Iwai wrote:
> At Fri, 29 May 2015 20:06:09 +0900,
> Wolfram Sang wrote:
> > 
> > > Do you think from which stable kernel version can this be applied?
> > 
> > The offending commit is 3a3dd0186f619b74e61e6f29dddcaf59af7d3cac
> > ("i2c/powermac: Improve detection of devices from device-tree") which
> > came in with v3.6 if I read correctly.
> 
> OK, thanks!

Just to make sure: Keep in mind that it depends on "sound: ppc: keywest:
drop using attach adapter" which needs to go to stable, then, too.

--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/sound/ppc/keywest.c b/sound/ppc/keywest.c
index d7627bae08362e..6120a067494a44 100644
--- a/sound/ppc/keywest.c
+++ b/sound/ppc/keywest.c
@@ -31,10 +31,15 @@ 
  */
 static struct pmac_keywest *keywest_ctx;
 
+static bool keywest_probed;
 
 static int keywest_probe(struct i2c_client *client,
 			 const struct i2c_device_id *id)
 {
+	keywest_probed = true;
+	/* If instantiated via i2c-powermac, we still need to set the client */
+	if (!keywest_ctx->client)
+		keywest_ctx->client = client;
 	i2c_set_clientdata(client, keywest_ctx);
 	return 0;
 }
@@ -92,7 +97,8 @@  static int keywest_remove(struct i2c_client *client)
 
 
 static const struct i2c_device_id keywest_i2c_id[] = {
-	{ "keywest", 0 },
+	{ "MAC,tas3004", 0 },		/* instantiated by i2c-powermac */
+	{ "keywest", 0 },		/* instantiated by us if needed */
 	{ }
 };
 
@@ -149,8 +155,13 @@  int snd_pmac_keywest_init(struct pmac_keywest *i2c)
 		return err;
 	}
 
+	/* There was already a device from i2c-powermac. Great, let's return */
+	if (keywest_probed)
+		return 0;
+
 	/* We assume Macs have consecutive I2C bus numbers starting at 0 */
 	while (adap) {
+		/* Scan for devices to be bound to */
 		err = keywest_attach_adapter(adap);
 		if (!err)
 			return 0;