mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-09 16:21:51 +00:00
PIIX4 update
It compiles now for 2.0 kernels; I hope it still compiles for 2.1 kernels :-) Changes: * The non-BIOS PCI interface was introduced in kernel 2.1.54, so I changed all #ifdef statements to use that kernel as starting point * I integrated everything in piix4.h into piix4.c; as no other module will ever need to know about anything PIIX4-specific, we do not need a separate header file (same went for lm78.c and lm75.c) * In piix4_setup, both the 2.0 and 2.1 versions continue seeking for PCI devices until they have found 'function 3' of the PIIX4. This is the 'function' we need for SMBus access. * At some places in piix4_setup, even for 2.1 kernels the PCI BIOS code was used. This was seemingly needed, probably because the wrong 'function' was accessed. I have removed this; if there are troubles with the PIIX4 on kernels newer than 2.1.53, we need to introduce it again. * Renamed global things to start uniformly with piix4_ * Changed printk statements to start with piix4.o: * Pasted in missing part of piix4_access * No need to lock the adapter on access; this is already done by the smbus_access function in smbus.c. I corrected a locking bug there too, by the way. * Added a few include files needed by 2.0 at least * Replaced the call to schedule_timeout() in piix4_do_pause with the old code; schedule_timeout seems to be defined nowhere?!? Phil, was this your addition, and if so, what should it read? git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@34 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
831fd5e911
commit
f18d210815
10 files changed
+430
-322
No files matched your search
@@ -49,5 +49,31 @@
|
||||
#define get_user_data(to,from) get_user(to,from)
|
||||
#endif
|
||||
|
||||
/* If the new PCI interface is not present, fall back on the old PCI BIOS
|
||||
interface. We also define some things to unite both interfaces. Not
|
||||
very nice, but it works like a charm.
|
||||
device is the 2.1 struct pci_dev, bus is the 2.0 bus number, dev is the
|
||||
2.0 device/function code, com is the PCI command, and res is the result. */
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,1,54))
|
||||
#define pci_present pcibios_present
|
||||
#define pci_read_config_byte_united(device,bus,dev,com,res) \
|
||||
pcibios_read_config_byte(bus,dev,com,res);
|
||||
#define pci_read_config_word_united(device,bus,dev,com,res) \
|
||||
pcibios_read_config_word(bus,dev,com,res);
|
||||
#define pci_write_config_byte_united(device,bus,dev,com,res) \
|
||||
pcibios_write_config_byte(bus,dev,com,res);
|
||||
#define pci_write_config_word_united(device,bus,dev,com,res) \
|
||||
pcibios_write_config_word(bus,dev,com,res);
|
||||
#else
|
||||
#define pci_read_config_byte_united(device,bus,dev,com,res) \
|
||||
pci_read_config_byte(device,com,res);
|
||||
#define pci_read_config_word_united(device,bus,dev,com,res) \
|
||||
pci_read_config_word(device,com,res);
|
||||
#define pci_write_config_byte_united(device,bus,dev,com,res) \
|
||||
pci_write_config_byte(device,com,res);
|
||||
#define pci_write_config_word_united(device,bus,dev,com,res) \
|
||||
pci_write_config_byte(device,com,res);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* SENSORS_COMPAT_H */
|
||||
Reference in new issue
Block a user