On Tue, 26 Aug 2008 21:20:43 +0200, Manuel Lauss wrote:
Hi Jean,
On Tue, Aug 26, 2008 at 06:24:37PM +0200, Jean Delvare wrote:
Convert the wm8731 codec driver to the new (standard) device driver binding model.
Signed-off-by: Jean Delvare khali@linux-fr.org Cc: Mark Brown broonie@opensource.wolfsonmicro.com
Warning: this assumes that the corgi, poodle and eti_b1 have their codec chips on I2C bus 0, which may or may not be the case. Someone with these machines please test and report.
Note that you can safely ignore patch failures in i2c-id.h.
include/linux/i2c-id.h | 1 sound/soc/at91/eti_b1_wm8731.c | 1 sound/soc/codecs/wm8731.c | 111 +++++++++++++++++++--------------------- sound/soc/codecs/wm8731.h | 1 sound/soc/pxa/corgi.c | 1 sound/soc/pxa/poodle.c | 1 6 files changed, 59 insertions(+), 57 deletions(-)
static struct wm8731_setup_data eti_b1_wm8731_setup = {
- .i2c_bus = 0, .i2c_address = 0x1a,
};
[...]
--- linux-2.6.27-rc4.orig/sound/soc/codecs/wm8731.c 2008-08-26 16:40:44.000000000 +0200 +++ linux-2.6.27-rc4/sound/soc/codecs/wm8731.c 2008-08-26 17:11:50.000000000 +0200
[...]
+static int wm8731_add_i2c_device(struct platform_device *pdev,
const struct wm8731_setup_data *setup)
+{
- struct snd_soc_device *socdev = platform_get_drvdata(pdev);
- struct i2c_board_info info;
- struct i2c_adapter *adapter;
- struct i2c_client *client;
- int ret;
- ret = i2c_add_driver(&wm8731_i2c_driver);
- if (ret != 0) {
dev_err(&pdev->dev, "can't add i2c driver\n");
return ret;
- }
- memset(&info, 0, sizeof(struct i2c_board_info));
- info.addr = setup->i2c_address;
- strlcpy(info.type, "wm8731", I2C_NAME_SIZE);
I don't know about other wm8731 users, but I'd prefer to let the board code register the codec i2c device. Then you could also get rid of "struct wm8731_setup_data" altogether.
Yes, I agree, and I think that Mark has plans for changes in this direction. But for now my personal goal was to move the drivers away from i2c_attach_client and friends as this old API is going away soon. Moving the place where the i2c device is created can happen later as platforms maintainers and/or ASoC maintainers see fit.
The patch works on a MIPS testboard.
Great, thanks for testing and reporting!