diff options
Diffstat (limited to 'drivers/net/ethernet/myricom/myri10ge/myri10ge.c')
-rw-r--r-- | drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index fa85cf1353fd..83516e3369c9 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c | |||
@@ -1078,22 +1078,16 @@ static int myri10ge_reset(struct myri10ge_priv *mgp) | |||
1078 | #ifdef CONFIG_MYRI10GE_DCA | 1078 | #ifdef CONFIG_MYRI10GE_DCA |
1079 | static int myri10ge_toggle_relaxed(struct pci_dev *pdev, int on) | 1079 | static int myri10ge_toggle_relaxed(struct pci_dev *pdev, int on) |
1080 | { | 1080 | { |
1081 | int ret, cap, err; | 1081 | int ret; |
1082 | u16 ctl; | 1082 | u16 ctl; |
1083 | 1083 | ||
1084 | cap = pci_pcie_cap(pdev); | 1084 | pcie_capability_read_word(pdev, PCI_EXP_DEVCTL, &ctl); |
1085 | if (!cap) | ||
1086 | return 0; | ||
1087 | |||
1088 | err = pci_read_config_word(pdev, cap + PCI_EXP_DEVCTL, &ctl); | ||
1089 | if (err) | ||
1090 | return 0; | ||
1091 | 1085 | ||
1092 | ret = (ctl & PCI_EXP_DEVCTL_RELAX_EN) >> 4; | 1086 | ret = (ctl & PCI_EXP_DEVCTL_RELAX_EN) >> 4; |
1093 | if (ret != on) { | 1087 | if (ret != on) { |
1094 | ctl &= ~PCI_EXP_DEVCTL_RELAX_EN; | 1088 | ctl &= ~PCI_EXP_DEVCTL_RELAX_EN; |
1095 | ctl |= (on << 4); | 1089 | ctl |= (on << 4); |
1096 | pci_write_config_word(pdev, cap + PCI_EXP_DEVCTL, ctl); | 1090 | pcie_capability_write_word(pdev, PCI_EXP_DEVCTL, ctl); |
1097 | } | 1091 | } |
1098 | return ret; | 1092 | return ret; |
1099 | } | 1093 | } |
@@ -3192,18 +3186,13 @@ static void myri10ge_enable_ecrc(struct myri10ge_priv *mgp) | |||
3192 | struct device *dev = &mgp->pdev->dev; | 3186 | struct device *dev = &mgp->pdev->dev; |
3193 | int cap; | 3187 | int cap; |
3194 | unsigned err_cap; | 3188 | unsigned err_cap; |
3195 | u16 val; | ||
3196 | u8 ext_type; | ||
3197 | int ret; | 3189 | int ret; |
3198 | 3190 | ||
3199 | if (!myri10ge_ecrc_enable || !bridge) | 3191 | if (!myri10ge_ecrc_enable || !bridge) |
3200 | return; | 3192 | return; |
3201 | 3193 | ||
3202 | /* check that the bridge is a root port */ | 3194 | /* check that the bridge is a root port */ |
3203 | cap = pci_pcie_cap(bridge); | 3195 | if (pci_pcie_type(bridge) != PCI_EXP_TYPE_ROOT_PORT) { |
3204 | pci_read_config_word(bridge, cap + PCI_CAP_FLAGS, &val); | ||
3205 | ext_type = (val & PCI_EXP_FLAGS_TYPE) >> 4; | ||
3206 | if (ext_type != PCI_EXP_TYPE_ROOT_PORT) { | ||
3207 | if (myri10ge_ecrc_enable > 1) { | 3196 | if (myri10ge_ecrc_enable > 1) { |
3208 | struct pci_dev *prev_bridge, *old_bridge = bridge; | 3197 | struct pci_dev *prev_bridge, *old_bridge = bridge; |
3209 | 3198 | ||
@@ -3218,11 +3207,8 @@ static void myri10ge_enable_ecrc(struct myri10ge_priv *mgp) | |||
3218 | " to force ECRC\n"); | 3207 | " to force ECRC\n"); |
3219 | return; | 3208 | return; |
3220 | } | 3209 | } |
3221 | cap = pci_pcie_cap(bridge); | 3210 | } while (pci_pcie_type(bridge) != |
3222 | pci_read_config_word(bridge, | 3211 | PCI_EXP_TYPE_ROOT_PORT); |
3223 | cap + PCI_CAP_FLAGS, &val); | ||
3224 | ext_type = (val & PCI_EXP_FLAGS_TYPE) >> 4; | ||
3225 | } while (ext_type != PCI_EXP_TYPE_ROOT_PORT); | ||
3226 | 3212 | ||
3227 | dev_info(dev, | 3213 | dev_info(dev, |
3228 | "Forcing ECRC on non-root port %s" | 3214 | "Forcing ECRC on non-root port %s" |
@@ -3335,11 +3321,10 @@ static void myri10ge_select_firmware(struct myri10ge_priv *mgp) | |||
3335 | int overridden = 0; | 3321 | int overridden = 0; |
3336 | 3322 | ||
3337 | if (myri10ge_force_firmware == 0) { | 3323 | if (myri10ge_force_firmware == 0) { |
3338 | int link_width, exp_cap; | 3324 | int link_width; |
3339 | u16 lnk; | 3325 | u16 lnk; |
3340 | 3326 | ||
3341 | exp_cap = pci_pcie_cap(mgp->pdev); | 3327 | pcie_capability_read_word(mgp->pdev, PCI_EXP_LNKSTA, &lnk); |
3342 | pci_read_config_word(mgp->pdev, exp_cap + PCI_EXP_LNKSTA, &lnk); | ||
3343 | link_width = (lnk >> 4) & 0x3f; | 3328 | link_width = (lnk >> 4) & 0x3f; |
3344 | 3329 | ||
3345 | /* Check to see if Link is less than 8 or if the | 3330 | /* Check to see if Link is less than 8 or if the |