[alsa-devel] ASoC legacy i2c client driver probing issue
fye at broadcom.com
Wed May 4 07:52:36 CEST 2011
I didn't call i2c_attach_client(), it's called from i2c_add_numbered_adapter().
I think the problem is in I2C side: i2c_add_numbered_adapter() is a new interface while attach_adapter() is legacy interface, these two can not work together.
I am trying to port the kernel to newer version so the drivers in sound/soc/codecs uses the new interface (probe()).
From: rajeev [mailto:rajeev-dlh.kumar at st.com]
Sent: Tuesday, May 03, 2011 9:56 PM
To: Feng Ye
Cc: alsa-devel at alsa-project.org
Subject: Re: [alsa-devel] ASoC legacy i2c client driver probing issue
On 5/2/2011 11:48 PM, Feng Ye wrote:
> I have a legacy i2c client driver probing issue.
> I use kernel version 2.6.27, and wm8750 external codec. The wm8750.c in sound/soc/codecs has a legacy i2c interface (e.g. use attach_adapter() callback). The callback just calls to i2c_probe(). Inside i2c_probe() it checks if the i2c address already been used, and fails there.
> In our i2c bus driver, we used i2c_register_board_info() with a static i2c_board_info structure. And then i2c_add_numbered_adapter() is called.
>>From code trace, it eventually calls i2c_attach_client(). So I think the probe function will for sure to fail.
How does these two related ? You are calling i2c_attach_client() then why your probe function will fail.
In fact it will never called.
> I wonder how this would work? How can i2c_probe() succeed if it checks for address in use?
If it is not called then how can you decide whether it succeeded or not?
> This question is more related to i2c instead of alsa soc. I am sure the SoC part is good, the i2c address is passed to wm8750 through snd_soc_codec_device.
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
More information about the Alsa-devel