[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-i2c
Subject: Re: [PATCH] i2c: mpc: Define unique I2C adapter names
From: Guenter Roeck <linux () roeck-us ! net>
Date: 2013-07-18 21:34:24
Message-ID: 20130718213424.GB6237 () roeck-us ! net
[Download RAW message or body]
On Wed, Jul 10, 2013 at 12:03:21PM -0700, Guenter Roeck wrote:
> The I2C adapters on Freescale MPC107/824x/85xx/512x/52xx/83xx/86xx all
> have the same name "MPC adapter". Since I2C adapter numbers can change
> across reboots and even after loading/unloading an I2C bus master driver,
> adapter names have to be used to identify adapters and thus should be
> unique and well defined. Since this is not the case with this driver,
> it is difficult if not impossible to identify a specific adapter from
> user space on affected platforms.
>
> To remedy the problem, use the adapter memory address as part of the
> adapter name.
>
ping ... any comments on this patch ?
Thanks,
Guenter
> With this patch, adapter names are:
> On P2020:
> MPC adapter at 0xfff703000
> MPC adapter at 0xfff703100
>
> On P5040:
> MPC adapter at 0xffe118000
> MPC adapter at 0xffe118100
> MPC adapter at 0xffe119000
> MPC adapter at 0xffe119100
>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> drivers/i2c/busses/i2c-mpc.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
> index 7607dc0..99acf63 100644
> --- a/drivers/i2c/busses/i2c-mpc.c
> +++ b/drivers/i2c/busses/i2c-mpc.c
> @@ -609,7 +609,6 @@ static const struct i2c_algorithm mpc_algo = {
>
> static struct i2c_adapter mpc_ops = {
> .owner = THIS_MODULE,
> - .name = "MPC adapter",
> .algo = &mpc_algo,
> .timeout = HZ,
> };
> @@ -623,6 +622,7 @@ static int fsl_i2c_probe(struct platform_device *op)
> u32 clock = MPC_I2C_CLOCK_LEGACY;
> int result = 0;
> int plen;
> + struct resource res;
>
> match = of_match_device(mpc_i2c_of_match, &op->dev);
> if (!match)
> @@ -682,6 +682,9 @@ static int fsl_i2c_probe(struct platform_device *op)
> platform_set_drvdata(op, i2c);
>
> i2c->adap = mpc_ops;
> + of_address_to_resource(op->dev.of_node, 0, &res);
> + scnprintf(i2c->adap.name, sizeof(i2c->adap.name),
> + "MPC adapter at 0x%llx", (unsigned long long)res.start);
> i2c_set_adapdata(&i2c->adap, i2c);
> i2c->adap.dev.parent = &op->dev;
> i2c->adap.dev.of_node = of_node_get(op->dev.of_node);
> --
> 1.7.9.7
>
>
--
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic