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

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

From: Ben Hutchings <hidden>
Date: 2008-08-31 20:36:10

Stephen Hemminger wrote:
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.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help