bzr branch
http://suren.me/webbzr/alps/pcitool
365
by Suren A. Chilingaryan
Restructure driver headers |
1 |
#include <linux/pci.h> |
2 |
||
3 |
int pcidriver_pcie_get_mps(struct pci_dev *dev) |
|
4 |
{
|
|
5 |
u16 ctl; |
|
6 |
||
7 |
pcie_capability_read_word(dev, PCI_EXP_DEVCTL, &ctl); |
|
8 |
||
9 |
return 128 << ((ctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); |
|
10 |
}
|
|
11 |
||
12 |
int pcidriver_pcie_set_mps(struct pci_dev *dev, int mps) |
|
13 |
{
|
|
14 |
u16 v; |
|
15 |
||
16 |
if (mps < 128 || mps > 4096 || !is_power_of_2(mps)) |
|
17 |
return -EINVAL; |
|
18 |
||
19 |
v = ffs(mps) - 8; |
|
20 |
if (v > dev->pcie_mpss) |
|
21 |
return -EINVAL; |
|
22 |
v <<= 5; |
|
23 |
||
24 |
return pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_PAYLOAD, v); |
|
25 |
}
|