The i2c-ali1563 initialization looks quite broken to me:
* If the I/O space isn't enabled, we forcibly set 3 bits in
the PCI configuration space instead of just the one enabling
the I/O space.
* After that we pretend to check if the write worked, but we
don't actually read the new value from the register.
* It's probably not a good idea to enable the I/O space if no
base address has been set.
So I propose the following changes to that part of the driver:
* Merge ali1563_enable() into ali1563_setup().
* Check the base address before the I/O space enabled bit.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4324 7894878c-1315-0410-8ee3-d5d059ff63e0
* Add an explicit mask when writing the low byte of a word.
* Use I2C_SMBUS_BLOCK_MAX instead of hardcoding 32.
* Use boolean not instead of bitwise not for bit tests, it's clearer.
* Return proper error values rather than -1.
* Fix a race on device registration, initialization should be done
before the bus is registered.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4318 7894878c-1315-0410-8ee3-d5d059ff63e0
* Fix self file name reference.
* i801_setup can be marked __devinit.
* Drop useless error local variable and label in i801_setup.
* Use symbolic names for SMBHSTCFG bits.
* Transmit the error code returned by i801_setup instead of forcing it
to an arbitrary value.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4061 7894878c-1315-0410-8ee3-d5d059ff63e0
Remove the PCI function number check when probing devices.
This check is redundant, each function has a separate PCI device
ID, so checking for that ID is sufficient.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4060 7894878c-1315-0410-8ee3-d5d059ff63e0
Two of the three poll loops have the poll and sleep swapped,
causing an extra sleep to occur after the polled condition is
fulfilled. In practice, this doubles the amount of sleep time for
every block transaction.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4059 7894878c-1315-0410-8ee3-d5d059ff63e0
430) and nForce4 MCP55 to the i2c-nforce2 driver. Some code changes
were required because the base I/O address registers have changed in
these versions. Standard BARs are now being used, while the original
nForce2 chips used non-standard ones. (2.6 backport)
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4054 7894878c-1315-0410-8ee3-d5d059ff63e0
refuse to load. Hopefully this will make it clearer for users, which
were often wondering why their destop or server systems were detected
as laptops.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4053 7894878c-1315-0410-8ee3-d5d059ff63e0
This fixes compilation with old kernels (2.4.20 and earlier). Thanks
to Yuan Mu for reporting.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4039 7894878c-1315-0410-8ee3-d5d059ff63e0
explicitly before each transaction. Backport from Linux 2.6, original
patch from Mark M. Hoffman.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3221 7894878c-1315-0410-8ee3-d5d059ff63e0
The new SMBus PEC implementation doesn't support PEC emulation on
non-PEC non-I2C SMBus masters, so we can drop all related code.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3177 7894878c-1315-0410-8ee3-d5d059ff63e0
Discard I2C_FUNC_SMBUS_*_PEC defines. i2c clients are not supposed to
check for PEC support of i2c bus drivers on individual SMBus
transactions, and i2c bus drivers are not supposed to advertise them.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3176 7894878c-1315-0410-8ee3-d5d059ff63e0
Clean up name string usage in 11 i2c bus drivers:
* Use the pci_driver name for requesting the I/O region rather than
redefining a new string.
* Do not initialize the i2c_adapter name to "unset".
This should save a few data bytes here and there.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3149 7894878c-1315-0410-8ee3-d5d059ff63e0