In certain cases we need a variant of pci_read_vpd()/pci_write_vpd() that
does not check against dev->vpd.len. Such cases are:
- reading VPD if dev->vpd.len isn't set yet (in pci_vpd_size())
- devices that map non-VPD information to arbitrary places in VPD address
space (example: Chelsio T3 EEPROM write-protect flag)
Therefore add function variants that check against PCI_VPD_MAX_SIZE only.
Make the cxgb3 driver the first user of the new functions.
Preferably this series should go through the PCI tree.
Heiner Kallweit (5):
PCI/VPD: Add pci_read/write_vpd_any()
PCI/VPD: Use pci_read_vpd_any() in pci_vpd_size()
cxgb3: Remove t3_seeprom_read and use VPD API
cxgb3: Use VPD API in t3_seeprom_wp()
cxgb3: Remove seeprom_write and user VPD API
drivers/net/ethernet/chelsio/cxgb3/common.h | 2 -
.../net/ethernet/chelsio/cxgb3/cxgb3_main.c | 38 +++----
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 98 +++----------------
drivers/pci/vpd.c | 79 ++++++++++-----
include/linux/pci.h | 2 +
5 files changed, 83 insertions(+), 136 deletions(-)
--
2.33.0