Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 189115
b: refs/heads/master
c: 7c9e2b1
h: refs/heads/master
i:
  189113: 6fa5c31
  189111: bf07775
v: v3
  • Loading branch information
Dean Nelson authored and Jesse Barnes committed Mar 19, 2010
1 parent a386154 commit a0a9dc7
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 21 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: bdc2bda7c4dd253026cc1fce45fc939304749029
refs/heads/master: 7c9e2b1c4784c6e574f69dbd904b2822f2e04d6e
36 changes: 16 additions & 20 deletions trunk/drivers/pci/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -2576,15 +2576,14 @@ EXPORT_SYMBOL_GPL(pci_reset_function);
*/
int pcix_get_max_mmrbc(struct pci_dev *dev)
{
int err, cap;
int cap;
u32 stat;

cap = pci_find_capability(dev, PCI_CAP_ID_PCIX);
if (!cap)
return -EINVAL;

err = pci_read_config_dword(dev, cap + PCI_X_STATUS, &stat);
if (err)
if (pci_read_config_dword(dev, cap + PCI_X_STATUS, &stat))
return -EINVAL;

return 512 << ((stat & PCI_X_STATUS_MAX_READ) >> 21);
Expand All @@ -2600,18 +2599,17 @@ EXPORT_SYMBOL(pcix_get_max_mmrbc);
*/
int pcix_get_mmrbc(struct pci_dev *dev)
{
int ret, cap;
int cap;
u16 cmd;

cap = pci_find_capability(dev, PCI_CAP_ID_PCIX);
if (!cap)
return -EINVAL;

ret = pci_read_config_word(dev, cap + PCI_X_CMD, &cmd);
if (!ret)
ret = 512 << ((cmd & PCI_X_CMD_MAX_READ) >> 2);
if (pci_read_config_word(dev, cap + PCI_X_CMD, &cmd))
return -EINVAL;

return ret;
return 512 << ((cmd & PCI_X_CMD_MAX_READ) >> 2);
}
EXPORT_SYMBOL(pcix_get_mmrbc);

Expand All @@ -2626,29 +2624,27 @@ EXPORT_SYMBOL(pcix_get_mmrbc);
*/
int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc)
{
int cap, err = -EINVAL;
int cap;
u32 stat, v, o;
u16 cmd;

if (mmrbc < 512 || mmrbc > 4096 || !is_power_of_2(mmrbc))
goto out;
return -EINVAL;

v = ffs(mmrbc) - 10;

cap = pci_find_capability(dev, PCI_CAP_ID_PCIX);
if (!cap)
goto out;
return -EINVAL;

err = pci_read_config_dword(dev, cap + PCI_X_STATUS, &stat);
if (err)
goto out;
if (pci_read_config_dword(dev, cap + PCI_X_STATUS, &stat))
return -EINVAL;

if (v > (stat & PCI_X_STATUS_MAX_READ) >> 21)
return -E2BIG;

err = pci_read_config_word(dev, cap + PCI_X_CMD, &cmd);
if (err)
goto out;
if (pci_read_config_word(dev, cap + PCI_X_CMD, &cmd))
return -EINVAL;

o = (cmd & PCI_X_CMD_MAX_READ) >> 2;
if (o != v) {
Expand All @@ -2658,10 +2654,10 @@ int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc)

cmd &= ~PCI_X_CMD_MAX_READ;
cmd |= v << 2;
err = pci_write_config_word(dev, cap + PCI_X_CMD, cmd);
if (pci_write_config_word(dev, cap + PCI_X_CMD, cmd))
return -EIO;
}
out:
return err;
return 0;
}
EXPORT_SYMBOL(pcix_set_mmrbc);

Expand Down

0 comments on commit a0a9dc7

Please sign in to comment.