Thread (20 messages) 20 messages, 9 authors, 2008-09-05

Re: [PATCH 1/2] sky2: EEPROM read/write bug fixes

From: Stephen Hemminger <hidden>
Date: 2008-08-31 23:23:58

Ben Hutchings wrote:
Stephen Hemminger wrote:
  
quoted
On Thu, 28 Aug 2008 08:30:35 -0700
Stephen Hemminger [off-list ref] wrote:

    
quoted
On Thu, 28 Aug 2008 12:13:25 +0100
Ben Hutchings [off-list ref] wrote:

      
quoted
Stephen Hemminger wrote:
        
quoted
Cleanup and harden the routines accessing the EEPROM.
  1. Prevent spin forever waiting for the TWSI bus
  2. Fix write eeprom to write full words rather than only 16 bits 
    Luckly the vendor doesn't provide EEPROM in Linux format so it must never
    have been used.
  3. Don't allow partial eeprom writes, not needed, not safe.
          
[...]

You should be able to replace the VPD access code with calls through
pci_dev->vpd->ops - though you'd need to remove some declarations from
drivers/pci/pci.h to include/linux/pci.h.

Ben.

        
Generically a good idea, but it won't work for this device.
It turns out that the read/write timeouts in pci/access.c are too
short. Since the pci vpd code spins under spin lock with irq's disabled,
it really can't wait for up to 10ms!
      
You can show that the pci->vpd code won't work because any access to
/sys/class/net/eth0/device/vpd gets ETIMEDOUT.
    
Then please change the time limit.  There is no time limit for VPD in the
PCI spec so I started with a value that I knew was enough for our devices.

Ben.

  
The time limit is part of the generic pci vpd ops reading code. Maybe if 
I have time, I'll have sky2 driver
overload the vpd->ops with its own ops, but not sure if it is really 
worth it.  What besides device/vpd uses
or plans to use vpd ops?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help