Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 193964
b: refs/heads/master
c: 184b890
h: refs/heads/master
v: v3
  • Loading branch information
Matt Carlson authored and David S. Miller committed Apr 6, 2010
1 parent 4e92398 commit 64766b3
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 75f9936e1150be739a9f6577a9d34de120ea35f1
refs/heads/master: 184b89044fb6e2a74611dafa69b1dce0d98612c6
34 changes: 30 additions & 4 deletions trunk/drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -12563,11 +12563,11 @@ static int __devinit tg3_phy_probe(struct tg3 *tp)
return err;
}

static void __devinit tg3_read_partno(struct tg3 *tp)
static void __devinit tg3_read_vpd(struct tg3 *tp)
{
unsigned char vpd_data[TG3_NVM_VPD_LEN]; /* in little-endian format */
u8 vpd_data[TG3_NVM_VPD_LEN];
unsigned int block_end, rosize, len;
int i = 0;
int j, i = 0;
u32 magic;

if ((tp->tg3_flags3 & TG3_FLG3_NO_NVRAM) ||
Expand Down Expand Up @@ -12616,6 +12616,32 @@ static void __devinit tg3_read_partno(struct tg3 *tp)
if (block_end > TG3_NVM_VPD_LEN)
goto out_not_found;

j = pci_vpd_find_info_keyword(vpd_data, i, rosize,
PCI_VPD_RO_KEYWORD_MFR_ID);
if (j > 0) {
len = pci_vpd_info_field_size(&vpd_data[j]);

j += PCI_VPD_INFO_FLD_HDR_SIZE;
if (j + len > block_end || len != 4 ||
memcmp(&vpd_data[j], "1028", 4))
goto partno;

j = pci_vpd_find_info_keyword(vpd_data, i, rosize,
PCI_VPD_RO_KEYWORD_VENDOR0);
if (j < 0)
goto partno;

len = pci_vpd_info_field_size(&vpd_data[j]);

j += PCI_VPD_INFO_FLD_HDR_SIZE;
if (j + len > block_end)
goto partno;

memcpy(tp->fw_ver, &vpd_data[j], len);
strncat(tp->fw_ver, " bc ", TG3_NVM_VPD_LEN - len - 1);
}

partno:
i = pci_vpd_find_info_keyword(vpd_data, i, rosize,
PCI_VPD_RO_KEYWORD_PARTNO);
if (i < 0)
Expand Down Expand Up @@ -13626,7 +13652,7 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
tg3_mdio_fini(tp);
}

tg3_read_partno(tp);
tg3_read_vpd(tp);
tg3_read_fw_ver(tp);

if (tp->tg3_flags2 & TG3_FLG2_PHY_SERDES) {
Expand Down

0 comments on commit 64766b3

Please sign in to comment.