lkml.org 
[lkml]   [2012]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 14/32] PCI/tile: use PCIe capabilities access functions to simplify implementation
    Date
    From: Jiang Liu <jiang.liu@huawei.com>

    Use PCIe capabilities access functions to simplify PCIe tile implementation.

    Signed-off-by: Jiang Liu <liuj97@gmail.com>
    ---
    arch/tile/kernel/pci.c | 25 +++++--------------------
    1 file changed, 5 insertions(+), 20 deletions(-)

    diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c
    index 0fdd99d..4640690 100644
    --- a/arch/tile/kernel/pci.c
    +++ b/arch/tile/kernel/pci.c
    @@ -246,16 +246,13 @@ static void __devinit fixup_read_and_payload_sizes(void)

    /* Scan for the smallest maximum payload size. */
    while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
    - int pcie_caps_offset;
    u32 devcap;
    int max_payload;

    - pcie_caps_offset = pci_find_capability(dev, PCI_CAP_ID_EXP);
    - if (pcie_caps_offset == 0)
    + if (!pci_is_pcie(dev))
    continue;

    - pci_read_config_dword(dev, pcie_caps_offset + PCI_EXP_DEVCAP,
    - &devcap);
    + pci_pcie_capability_read_dword(dev, PCI_EXP_DEVCAP, &devcap);
    max_payload = devcap & PCI_EXP_DEVCAP_PAYLOAD;
    if (max_payload < smallest_max_payload)
    smallest_max_payload = max_payload;
    @@ -263,21 +260,9 @@ static void __devinit fixup_read_and_payload_sizes(void)

    /* Now, set the max_payload_size for all devices to that value. */
    new_values = (max_read_size << 12) | (smallest_max_payload << 5);
    - while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
    - int pcie_caps_offset;
    - u16 devctl;
    -
    - pcie_caps_offset = pci_find_capability(dev, PCI_CAP_ID_EXP);
    - if (pcie_caps_offset == 0)
    - continue;
    -
    - pci_read_config_word(dev, pcie_caps_offset + PCI_EXP_DEVCTL,
    - &devctl);
    - devctl &= ~(PCI_EXP_DEVCTL_PAYLOAD | PCI_EXP_DEVCTL_READRQ);
    - devctl |= new_values;
    - pci_write_config_word(dev, pcie_caps_offset + PCI_EXP_DEVCTL,
    - devctl);
    - }
    + while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL)
    + pci_pcie_capability_change_word(dev, PCI_EXP_DEVCTL, new_values,
    + PCI_EXP_DEVCTL_PAYLOAD | PCI_EXP_DEVCTL_READRQ);
    }


    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-08-01 19:41    [W:0.024 / U:65.092 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site