One-liner fix for i2c-velleman (and problems with i2c-tsunami)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Here's a snippet of my current patch to give you an idea:
> 
>  static struct i2c_algo_bit_data tsunami_i2c_bit_data = {
> -
> -       bit_tsunami_setsda,
> -       bit_tsunami_setscl,
> -       bit_tsunami_getsda,
> -       bit_tsunami_getscl,
> -       10, 10, HZ/2    /* delays/timeout */
> +       .setsda         = bit_tsunami_setsda,
> +       .setscl         = bit_tsunami_setscl,
> +       .getsda         = bit_tsunami_getsda,
> +       .getscl         = bit_tsunami_getscl,
> +       .udelay         = 10,
> +       .mdelay         = 10,
> +       .timeout        = HZ/2,
>  };
> 
> Apparently gcc-3.2.3/alpha doesn't grok the original method of 
> static initialization.  It choked on it badly until I switched 
> it.  gcc-2.95.3/x86 seems to like either way just fine.
> 
> Maybe the C standard has changed, or maybe gcc3 is just being a 
> fruitcake.  But as the other static structs use a different form 
> of initialization, I decided to accomodate gcc3 and introduce 
> proper consistency in one fell swoop.

The new way complies with C99 (yes, the standard has evolved, if not
changed) and we try to make all our drivers comply with that. This makes
struct changes less painful (although it's still tough). Everything in
i2c should be that way now, but we haven't finished cleaning lm_sensors
yet.


> Hmmm...well, part of the tsunami_driver struct requires a PCI ID 
> table (tsunami_ids).  I'm not sure what's supposed to go in that 
> table?
> 
> Could it be that someone tried to port the driver to the new API, 
> half-finished it, and left it for dead?  lm_sensors-2.7.0 makes 
> no mention of the tsunami_driver struct or the tsunami_ids 
> table.  Maybe that little struct arrangement isn't supposed to 
> be there?

This is really possible (not to say probable). As said in an earlier
e-mail, the last changes on this driver back in January 2003 were part
of a bulk change that affected almost all of our drivers. I remember
there were many thread on this list about PCI drivers needing updates. I
guess this one has been left over in an unstable state (again due to a
lack of hardware for testing).

You should go and read this one:
http://archives.andrew.net.au/lm-sensors/msg02718.html

I think this matches what you suspected pretty good. Maybe Mark will be
able to tell you what should be done (it's over my own knowledge).

-- 
Jean Delvare
http://www.ensicaen.ismra.fr/~delvare/



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux