I2C block reads with i2c-viapro: testers wanted

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

 



Hi Mark,

> > 	if ((pci_read_config_word(pdev, id->driver_data, &vt596_smba))
> > 	 || !(vt596_smba & 0x1)) {
> > 		/* try 2nd address and config reg. for 596 */
> > 		if (id->device == PCI_DEVICE_ID_VIA_82C596_3 &&
> > 		    !pci_read_config_word(pdev, SMBBA2, &vt596_smba) &&
> > 		    (vt596_smba & 0x1)) {
> > 			smb_cf_hstcfg = 0x84;
> > 
> > It looks like a hack to me, and I was wondering if we could clean it
> > up (possibly by using pci quirks). I've not studied the problem in
> > details yet, but comments and help would be welcome, and the fact
> > that you do have a chip for testing will help anyway :)
> 
> I'm not sure what you don't like about it.  I can't see what a PCI
> quirk would have to do with it, either.

The base address is read from a given PCI config word, and if it doesn't
*seem* correct, a different config word is used. First of all, only
testing for the evenness of the value doesn't look like a reliable test
to me, I'd expect the last 3 bits to be tested - as this is the address
of a 8-byte I/O range. Even then, I don't see what prevent the location
from not being correct and the value read from it to still pass the
test. So I would really hope that there is a real way to know which is
the correct location even before reading from the first one. Maybe we
can deduce the location from the PCI device revision. I'll study the
datasheet when I get some time, but most likely we will need two
real-world testers, one with each possible configuration, in order to
come up with a solution.

The reason why I am mentioning PCI quirks is this recent post on the
LKML:
  http://lkml.org/lkml/2005/8/8/32

This makes me believe that the config word the i2c-viapro driver reads
from are at non-standard locations. We could use quirks similar to the
patch in that post to copy the config words to standard locations, and
then i2c-viapro could use the standard PCI API functions to get the
values. I have not yet verified what the exact benefits would be, I need
to ask some PCI expert I guess, it's only random thoughts at the moment.

-- 
Jean Delvare




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux