2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-08-31 14:25:39 +00:00

Added recognition of SiS746 host bridge.

(mmh) Addressed some trivial compiler warnings.
(mmh) Updated documentation.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1793 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark M. Hoffman
2003-06-17 05:17:02 +00:00
parent 9f5e11adc7
commit d78cd69dd7
2 changed files with 14 additions and 12 deletions

View File

@@ -4,12 +4,10 @@ Status: Beta
Supported adapters:
* Silicon Integrated Systems Corp (SiS)
645/961 chipset
645DX/961 chipset
645DX/962 chipset
648/961 chipset
650/961 chipset
735 chipset
Any combination of these host bridges:
645, 645DX (aka 646), 648, 650, 651, 735, 745, 746
and these south bridges:
961, 962, 963(L)
Author: Mark M. Hoffman <mhoffman@lightlink.com>
@@ -54,7 +52,7 @@ running "make config" or equivalent on your kernel, otherwise the i2c-sis645
driver will not build in this support.
I suspect that this driver could be made to work for the following SiS chipsets
as well: 648/963, 651/962, 635, and 635T.
as well: 635, and 635T.
If anyone owns a board with those chips AND is willing to risk crashing &
burning an otherwise well-behaved kernel in the name of progress... please
contact me at <mhoffman@lightlink.com> or via the project's mailing list:

View File

@@ -34,6 +34,8 @@
Note: we assume there can only be one SiS645 with one SMBus interface
*/
/* #define DEBUG 1 */
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/kernel.h>
@@ -257,7 +259,9 @@ static int __devinit sis645_probe(struct pci_dev *dev, const struct pci_device_i
&& (NULL == pci_find_device(PCI_VENDOR_ID_SI,
PCI_DEVICE_ID_SI_735, NULL))
&& (NULL == pci_find_device(PCI_VENDOR_ID_SI,
PCI_DEVICE_ID_SI_745, NULL))) {
PCI_DEVICE_ID_SI_745, NULL))
&& (NULL == pci_find_device(PCI_VENDOR_ID_SI,
PCI_DEVICE_ID_SI_746, NULL))) {
printk(KERN_ERR DRV_NAME ": Can't find suitable host bridge!\n");
return -ENODEV;
}
@@ -280,15 +284,15 @@ static int __devinit sis645_probe(struct pci_dev *dev, const struct pci_device_i
return -ENODEV;
#else /* CONFIG_HOTPLUG */
if (ret = sis645_enable_smbus(dev)) {
if ((ret = sis645_enable_smbus(dev))) {
return ret;
}
if (ret = sis645_build_dev(&SIS645_SMBUS_dev, dev)) {
if ((ret = sis645_build_dev(&SIS645_SMBUS_dev, dev))) {
return ret;
}
if (ret = pci_enable_device(SIS645_SMBUS_dev)) {
if ((ret = pci_enable_device(SIS645_SMBUS_dev))) {
printk(KERN_ERR DRV_NAME ": Can't pci_enable SMBus device!"
" (0x%08x)\n", ret);
return ret;
@@ -406,7 +410,7 @@ static int sis645_transaction(int size)
/* Finish up by resetting the bus */
sis645_write(SMB_STS, temp);
if (temp = sis645_read(SMB_STS)) {
if ((temp = sis645_read(SMB_STS))) {
#ifdef DEBUG
printk(KERN_DEBUG DRV_NAME ": Failed reset at end of transaction!"
" (0x%02x)\n", temp);