Current-Users archive

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

Re: adt7xxx drivers (Was Re: Device name length restriction?)



On Tue, 9 Sep 2008, Paul Goyette wrote:

Having looked more at both the adt7463 and adt7467 drivers, as well as writing a new(ish) driver for the adt7475, it occurs to me that all of these drivers are for a single chip family and that the drivers are (or can be) nearly identical, save for the specific set of sensors supported. It seems to me that we could rather easily merge all of these drivers into a single addbc (for "Analog Devices dbCool") driver, detect the specific chip based on on-chip register contents (location is common to all of these drivers), and select the appropriate set of sensors from a chip-specific table. There are a number of additional chips in the dbCool family, and having a single driver would make it easier to support more of them, at a small cost of some table space in the kernel.

While I'm at it, I noticed that the adt7467 driver has a sysctl node to enable read/write of the Tmin registers (used to set the threshold of when fans should be sped up). Currently this sysctl lives under the machdep top-level node; I'm assuming this is because the original 7467 driver was intended only for the MacBook on which it was found. I suspect that a more appropriate place for this sysctl is under the hw top-level node.

Comments? Is it worthwhile to merge these drivers? Worth the cost of the tables? And should the sysctl be moved to hw.<dev_name>.xxx or leave it at machdep.<dev_name>.xxx ?

        For a GENERIC kernel the table size is amost certainly offset by
        reducing duplication, and if someone is that size crazy then they
        can have an ifdef to disable some table entries. Merged driver
        definitely seems like a good idea to me...

--
                David/absolute       -- www.NetBSD.org: No hype required --


Home | Main Index | Thread Index | Old Index