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:
Frodo Looijaard committed 1998-12-05 00:47:22 +00:00
1 parent 831fd5e911
commit f18d210815
10 files changed
+430 -322

No files matched your search

+26
View File
@@ -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 */