Re: [RFC] I2C: Remove the i2c_client id field
From: Philip Pokorny
Date: Tue Dec 28 2004 - 11:48:00 EST
Jean Delvare wrote:
Hi Philip,
So only the drives I wrote use the ID in a meaningful way?
True, providing we limit our consideration to the hardware monitoring
drivers. Even in your drivers, the meaningfulness is discussable.
The lm85 driver simply displays the assigned id once (at the time it
assigns it). Since the id is then never used, I would consider the lm85
driver similar to the other hardware monitoring drivers.
Oops. I probably should have used the ID in the debug messages... I
guess it doesn't matter now.
The adm1026 driver, OTOH, does use the id value in all debug messages,
and it also only reconfigures the GPIO pins for the first client only
(id == 0). Although this is a real use of the id, it only matters if you
use the module parameters for GPIO pins reconfiguration and actually
have more than one ADM1026 chip (a quite rare chip if you remember).
Not for me. We ship hundreds of systems each month with a motherboard
with that chip on it. I think it's actually on two different
motherboards we sell.
You
don't necessarily know which ADM1026 will get id 0 anyway (if the chips
are on different busses it depends on the order the bus drivers were
loaded in),
Wouldn't a force_xxx parameter cause a specific bus/id to be probed and
assigned first?
and I am not sure why one would want to reprogram only the
first chip. Unless someone comes with such a specific hardware setup so
that we can examine what is really needed,
Well, that's exactly the problem that I had. The motherboard vendor's
BIOS didn't set the chip up and I had to program it myself. I got the
schematics from the vendor for the part of the motherboard attached to
the chip so that I could program it correctly.
I think we can get rid of the
"id == 0" test and reconfigure "all" ADM1026 chips (which really is only
one for the two known boards using an ADM1026).
I think that would be a bad idea. Reprogramming any chip is generally a
bad idea (as we can see from the recent removal of all the init code)
and forcing any specified config to apply to all chips found in the
system would be an even worse idea.
I think a better idea that addresses your concerns about bus ordering
would be to add an additional parameter that is a bus/chip number pair
which is the chip to initialize. Something like:
static int gpio_target[2] = { -1, -1 }
MODULE_PARM(gpio_target, "2i");
MODULE_PARM_DESC(gpio_target,"Address of chip to whose GPIO is to be
programmed");
This would be similar to the bus/address pairs used in the
force_subclient parameters to the w83781d driver.
BTW, does anyone really use the GPIO pins reconfiguration parameters?
Not anymore, but I did as I mention above.
:v)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/