One-liner fix for i2c-velleman (and problems with i2c-tsunami)
Kelledin
kelledin at users.sourceforge.net
Fri Jul 25 10:40:14 CEST 2003
On Friday 25 July 2003 03:00 am, you wrote:
> > i2c-tsunami does not compile, and its fix is more than just
> > a one-liner. It requires the <linux/slab.h> include, plus
> > the <linux/pci.h> include, plus some changes in static
> > struct initialization to accomodate recent gcc versions.
>
> Hm... And that's the problem exactly? I'm currently not
> suscribed to the list, but will try to recompile this code...
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.
(Other lm_sensors drivers have small problems compiling on alpha,
mostly one-liner fixes that I've been able to handle on my end.
I was planning to finish it out and send the full patch
upstream, but I hit a stumbling block on i2c-tsunami.)
> > Its biggest problem, though, is that it's missing a
> > tsunami_ids struct (list of PCI IDs), and this is REALLY a
> > problem. I have no clue what the Tsunami/Typhoon (2127x)
> > PCI IDs are. I know that they're the core logic controller
> > chips on such motherboards as the DP264 and the UP2000
> > series. I also looked in the <linux/pci_ids.h> header for
> > 2.4.2[01], and the closest macro I could find for this PCI
> > device ID is
> > PCI_DEVICE_ID_DEC_21285. I'm fairly certain that won't do
> > at all.
>
> Tsunami/Typhoon chips are not PCI devices. They are core
> logic which is transparent to PCI stuff. The only visible
> parts on the UP2000/DS20 boards is the "real" hardware stuff:
> -----------
> 00:05.0 ISA bridge: Contaq Microsystems 82c693
> 00:05.1 IDE interface: Contaq Microsystems 82c693
> 00:05.2 IDE interface: Contaq Microsystems 82c693
> 00:05.3 USB Controller: Contaq Microsystems 82c693
> 00:06.0 SCSI storage controller: Adaptec AHA-2940U2/W / 7890
> (rev 01) ----------
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?
> > CVS, as of 20030724, is no better. Last entry for this
> > driver was apparently back in January.
> >
> > This is especially annoying, as the Tsunami driver is the
> > primary driver that makes lm_sensors useful at all on Alpha.
>
> Just FYI. Tsunami i2c bus provides an access to a SPD
> chips only. Other stuff (such as lm75, adm9240) are accessed
> via i2c-elektor module. So, in fact UP2000 has to different
> i2c buses.
Ah, I never knew about that. Good info to have, thanks.
What Alpha motherboards support sensors like that, btw?
> > Unfortunately, I have no such motherboard with this chipset.
> > I'd like to make the driver work anyways. Can people with
> > Typhoon/Tsunami motherboards please volunteer the PCI IDs
> > for these chips? I'd prefer to merge them with the
> > <linux/pci_ids.h> file, then add some #ifdefs to
> > i2c-tsunami.c to make sure the PCI ID macros get defined
> > even on older kernel versions.
>
> Wrong way. ;-))
Eh? Wrong way how? I suppose I'm missing something about
contributing kernel macros for PCI IDs?
(Wouldn't surprise me if I was. I'm not all _that_ much of a
kernel hacker.)
> > Also, the i2c-tsunami driver itself
> > looks...well...unmaintained. Does anyone maintain it now?
> > If it's been abandoned, I can happily take over maintenance,
> > assuming someone can loan or donate enough to build a
> > sufficiently-working Typhoon/Tsunami motherboard setup.
>
> Yes. It's unmaintained due to the fact we have used
> kernels 2.2.x on our site, but now we are moving to 2.4
> series.
Ah, so that's where you've been. ;) How's the upgrade going so
far?
--
Kelledin
"If a server crashes in a server farm and no one pings it, does
it still cost four figures to fix?"
More information about the lm-sensors
mailing list