mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
Merge branch 'pci/misc'
- Add NumaChip SPDX header (Krzysztof Wilczynski) - Replace EXTRA_CFLAGS with ccflags-y (Krzysztof Wilczynski) - Remove unused includes (Krzysztof Wilczynski) - Avoid AMD FCH XHCI USB PME# from D0 defect that prevents wakeup on USB 2.0 or 1.1 connect events (Kai-Heng Feng) - Removed unused sysfs attribute groups (Ben Dooks) - Remove PTM and ASPM dependencies on PCIEPORTBUS (Bjorn Helgaas) - Add PCIe Link Control 2 register field definitions to replace magic numbers in AMDGPU and Radeon CIK/SI (Bjorn Helgaas) - Fix incorrect Link Control 2 Transmit Margin usage in AMDGPU and Radeon CIK/SI PCIe Gen3 link training (Bjorn Helgaas) - Use pcie_capability_read_word() instead of pci_read_config_word() in AMDGPU and Radeon CIK/SI (Frederick Lawler) * pci/misc: drm/radeon: Prefer pcie_capability_read_word() drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions drm/radeon: Correct Transmit Margin masks drm/amdgpu: Prefer pcie_capability_read_word() drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions drm/amdgpu: Correct Transmit Margin masks PCI: Add #defines for Enter Compliance, Transmit Margin PCI: Allow building PCIe things without PCIEPORTBUS PCI: Remove PCIe Kconfig dependencies on PCI PCI/ASPM: Remove dependency on PCIEPORTBUS PCI/PTM: Remove dependency on PCIEPORTBUS PCI/PTM: Remove spurious "d" from granularity message PCI: sysfs: Remove unused attribute groups x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect PCI: Remove unused includes and superfluous struct declaration x86/PCI: Replace deprecated EXTRA_CFLAGS with ccflags-y x86/PCI: Correct SPDX comment style x86/PCI: Add NumaChip SPDX GPL-2.0 to replace COPYING boilerplate
This commit is contained in:
commit
e87eb585d3
@ -24,6 +24,4 @@ obj-y += bus_numa.o
|
||||
obj-$(CONFIG_AMD_NB) += amd_bus.o
|
||||
obj-$(CONFIG_PCI_CNB20LE_QUIRK) += broadcom_bus.o
|
||||
|
||||
ifeq ($(CONFIG_PCI_DEBUG),y)
|
||||
EXTRA_CFLAGS += -DDEBUG
|
||||
endif
|
||||
ccflags-$(CONFIG_PCI_DEBUG) += -DDEBUG
|
||||
|
@ -588,6 +588,17 @@ static void pci_fixup_amd_ehci_pme(struct pci_dev *dev)
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7808, pci_fixup_amd_ehci_pme);
|
||||
|
||||
/*
|
||||
* Device [1022:7914]
|
||||
* When in D0, PME# doesn't get asserted when plugging USB 2.0 device.
|
||||
*/
|
||||
static void pci_fixup_amd_fch_xhci_pme(struct pci_dev *dev)
|
||||
{
|
||||
dev_info(&dev->dev, "PME# does not work under D0, disabling it\n");
|
||||
dev->pme_support &= ~(PCI_PM_CAP_PME_D0 >> PCI_PM_CAP_PME_SHIFT);
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7914, pci_fixup_amd_fch_xhci_pme);
|
||||
|
||||
/*
|
||||
* Apple MacBook Pro: Avoid [mem 0x7fa00000-0x7fbfffff]
|
||||
*
|
||||
|
@ -1,8 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Numascale NumaConnect-specific PCI code
|
||||
*
|
||||
* Copyright (C) 2012 Numascale AS. All rights reserved.
|
||||
|
@ -1384,7 +1384,6 @@ static int cik_set_vce_clocks(struct amdgpu_device *adev, u32 evclk, u32 ecclk)
|
||||
static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
{
|
||||
struct pci_dev *root = adev->pdev->bus->self;
|
||||
int bridge_pos, gpu_pos;
|
||||
u32 speed_cntl, current_data_rate;
|
||||
int i;
|
||||
u16 tmp16;
|
||||
@ -1419,12 +1418,7 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
DRM_INFO("enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
|
||||
}
|
||||
|
||||
bridge_pos = pci_pcie_cap(root);
|
||||
if (!bridge_pos)
|
||||
return;
|
||||
|
||||
gpu_pos = pci_pcie_cap(adev->pdev);
|
||||
if (!gpu_pos)
|
||||
if (!pci_is_pcie(root) || !pci_is_pcie(adev->pdev))
|
||||
return;
|
||||
|
||||
if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) {
|
||||
@ -1434,14 +1428,17 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
u16 bridge_cfg2, gpu_cfg2;
|
||||
u32 max_lw, current_lw, tmp;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL, tmp16);
|
||||
|
||||
tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE(ixPCIE_LC_STATUS1);
|
||||
max_lw = (tmp & PCIE_LC_STATUS1__LC_DETECTED_LINK_WIDTH_MASK) >>
|
||||
@ -1465,15 +1462,23 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
/* check status */
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_DEVSTA,
|
||||
&tmp16);
|
||||
if (tmp16 & PCI_EXP_DEVSTA_TRPND)
|
||||
break;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&bridge_cfg2);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&gpu_cfg2);
|
||||
|
||||
tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
|
||||
tmp |= PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
|
||||
@ -1486,26 +1491,45 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
msleep(100);
|
||||
|
||||
/* linkctl */
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
/* linkctl2 */
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (bridge_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(root,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (gpu_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
|
||||
tmp &= ~PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
|
||||
@ -1520,15 +1544,16 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
speed_cntl &= ~PCIE_LC_SPEED_CNTL__LC_FORCE_DIS_SW_SPEED_CHANGE_MASK;
|
||||
WREG32_PCIE(ixPCIE_LC_SPEED_CNTL, speed_cntl);
|
||||
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~0xf;
|
||||
pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
|
||||
|
||||
if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
|
||||
tmp16 |= 3; /* gen3 */
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
|
||||
else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
|
||||
tmp16 |= 2; /* gen2 */
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
|
||||
else
|
||||
tmp16 |= 1; /* gen1 */
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
|
||||
pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL2, tmp16);
|
||||
|
||||
speed_cntl = RREG32_PCIE(ixPCIE_LC_SPEED_CNTL);
|
||||
speed_cntl |= PCIE_LC_SPEED_CNTL__LC_INITIATE_LINK_SPEED_CHANGE_MASK;
|
||||
|
@ -1633,7 +1633,6 @@ static void si_init_golden_registers(struct amdgpu_device *adev)
|
||||
static void si_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
{
|
||||
struct pci_dev *root = adev->pdev->bus->self;
|
||||
int bridge_pos, gpu_pos;
|
||||
u32 speed_cntl, current_data_rate;
|
||||
int i;
|
||||
u16 tmp16;
|
||||
@ -1668,12 +1667,7 @@ static void si_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
DRM_INFO("enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
|
||||
}
|
||||
|
||||
bridge_pos = pci_pcie_cap(root);
|
||||
if (!bridge_pos)
|
||||
return;
|
||||
|
||||
gpu_pos = pci_pcie_cap(adev->pdev);
|
||||
if (!gpu_pos)
|
||||
if (!pci_is_pcie(root) || !pci_is_pcie(adev->pdev))
|
||||
return;
|
||||
|
||||
if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) {
|
||||
@ -1682,14 +1676,17 @@ static void si_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
u16 bridge_cfg2, gpu_cfg2;
|
||||
u32 max_lw, current_lw, tmp;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL, tmp16);
|
||||
|
||||
tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE(PCIE_LC_STATUS1);
|
||||
max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
|
||||
@ -1706,15 +1703,23 @@ static void si_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
}
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_DEVSTA,
|
||||
&tmp16);
|
||||
if (tmp16 & PCI_EXP_DEVSTA_TRPND)
|
||||
break;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&bridge_cfg2);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&gpu_cfg2);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
|
||||
tmp |= LC_SET_QUIESCE;
|
||||
@ -1726,25 +1731,44 @@ static void si_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
|
||||
mdelay(100);
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (bridge_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(root,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (gpu_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(adev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
|
||||
tmp &= ~LC_SET_QUIESCE;
|
||||
@ -1757,15 +1781,16 @@ static void si_pcie_gen3_enable(struct amdgpu_device *adev)
|
||||
speed_cntl &= ~LC_FORCE_DIS_SW_SPEED_CHANGE;
|
||||
WREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL, speed_cntl);
|
||||
|
||||
pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~0xf;
|
||||
pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
|
||||
|
||||
if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
|
||||
tmp16 |= 3;
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
|
||||
else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
|
||||
tmp16 |= 2;
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
|
||||
else
|
||||
tmp16 |= 1;
|
||||
pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
|
||||
pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL2, tmp16);
|
||||
|
||||
speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
|
||||
speed_cntl |= LC_INITIATE_LINK_SPEED_CHANGE;
|
||||
|
@ -9504,7 +9504,6 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
{
|
||||
struct pci_dev *root = rdev->pdev->bus->self;
|
||||
enum pci_bus_speed speed_cap;
|
||||
int bridge_pos, gpu_pos;
|
||||
u32 speed_cntl, current_data_rate;
|
||||
int i;
|
||||
u16 tmp16;
|
||||
@ -9546,12 +9545,7 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
DRM_INFO("enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0\n");
|
||||
}
|
||||
|
||||
bridge_pos = pci_pcie_cap(root);
|
||||
if (!bridge_pos)
|
||||
return;
|
||||
|
||||
gpu_pos = pci_pcie_cap(rdev->pdev);
|
||||
if (!gpu_pos)
|
||||
if (!pci_is_pcie(root) || !pci_is_pcie(rdev->pdev))
|
||||
return;
|
||||
|
||||
if (speed_cap == PCIE_SPEED_8_0GT) {
|
||||
@ -9561,14 +9555,17 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
u16 bridge_cfg2, gpu_cfg2;
|
||||
u32 max_lw, current_lw, tmp;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL, tmp16);
|
||||
|
||||
tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_STATUS1);
|
||||
max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
|
||||
@ -9586,15 +9583,23 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
/* check status */
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_DEVSTA,
|
||||
&tmp16);
|
||||
if (tmp16 & PCI_EXP_DEVSTA_TRPND)
|
||||
break;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&bridge_cfg2);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&gpu_cfg2);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
|
||||
tmp |= LC_SET_QUIESCE;
|
||||
@ -9607,26 +9612,45 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
msleep(100);
|
||||
|
||||
/* linkctl */
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
/* linkctl2 */
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (bridge_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(root,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (gpu_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
|
||||
tmp &= ~LC_SET_QUIESCE;
|
||||
@ -9640,15 +9664,15 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
speed_cntl &= ~LC_FORCE_DIS_SW_SPEED_CHANGE;
|
||||
WREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL, speed_cntl);
|
||||
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~0xf;
|
||||
pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
|
||||
if (speed_cap == PCIE_SPEED_8_0GT)
|
||||
tmp16 |= 3; /* gen3 */
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
|
||||
else if (speed_cap == PCIE_SPEED_5_0GT)
|
||||
tmp16 |= 2; /* gen2 */
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
|
||||
else
|
||||
tmp16 |= 1; /* gen1 */
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
|
||||
pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL2, tmp16);
|
||||
|
||||
speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
|
||||
speed_cntl |= LC_INITIATE_LINK_SPEED_CHANGE;
|
||||
|
@ -3257,7 +3257,7 @@ static void si_gpu_init(struct radeon_device *rdev)
|
||||
/* XXX what about 12? */
|
||||
rdev->config.si.tile_config |= (3 << 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) {
|
||||
case 0: /* four banks */
|
||||
rdev->config.si.tile_config |= 0 << 4;
|
||||
@ -7087,7 +7087,6 @@ static void si_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
{
|
||||
struct pci_dev *root = rdev->pdev->bus->self;
|
||||
enum pci_bus_speed speed_cap;
|
||||
int bridge_pos, gpu_pos;
|
||||
u32 speed_cntl, current_data_rate;
|
||||
int i;
|
||||
u16 tmp16;
|
||||
@ -7129,12 +7128,7 @@ static void si_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
DRM_INFO("enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0\n");
|
||||
}
|
||||
|
||||
bridge_pos = pci_pcie_cap(root);
|
||||
if (!bridge_pos)
|
||||
return;
|
||||
|
||||
gpu_pos = pci_pcie_cap(rdev->pdev);
|
||||
if (!gpu_pos)
|
||||
if (!pci_is_pcie(root) || !pci_is_pcie(rdev->pdev))
|
||||
return;
|
||||
|
||||
if (speed_cap == PCIE_SPEED_8_0GT) {
|
||||
@ -7144,14 +7138,17 @@ static void si_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
u16 bridge_cfg2, gpu_cfg2;
|
||||
u32 max_lw, current_lw, tmp;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root, PCI_EXP_LNKCTL, tmp16);
|
||||
|
||||
tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE(PCIE_LC_STATUS1);
|
||||
max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
|
||||
@ -7169,15 +7166,23 @@ static void si_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
/* check status */
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_DEVSTA,
|
||||
&tmp16);
|
||||
if (tmp16 & PCI_EXP_DEVSTA_TRPND)
|
||||
break;
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&bridge_cfg);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&gpu_cfg);
|
||||
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&bridge_cfg2);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&gpu_cfg2);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
|
||||
tmp |= LC_SET_QUIESCE;
|
||||
@ -7190,26 +7195,46 @@ static void si_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
msleep(100);
|
||||
|
||||
/* linkctl */
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(root,
|
||||
PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
&tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
|
||||
tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
|
||||
pcie_capability_write_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL,
|
||||
tmp16);
|
||||
|
||||
/* linkctl2 */
|
||||
pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (bridge_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(root,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~((1 << 4) | (7 << 9));
|
||||
tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
pcie_capability_read_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
&tmp16);
|
||||
tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN);
|
||||
tmp16 |= (gpu_cfg2 &
|
||||
(PCI_EXP_LNKCTL2_ENTER_COMP |
|
||||
PCI_EXP_LNKCTL2_TX_MARGIN));
|
||||
pcie_capability_write_word(rdev->pdev,
|
||||
PCI_EXP_LNKCTL2,
|
||||
tmp16);
|
||||
|
||||
tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
|
||||
tmp &= ~LC_SET_QUIESCE;
|
||||
@ -7223,15 +7248,15 @@ static void si_pcie_gen3_enable(struct radeon_device *rdev)
|
||||
speed_cntl &= ~LC_FORCE_DIS_SW_SPEED_CHANGE;
|
||||
WREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL, speed_cntl);
|
||||
|
||||
pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~0xf;
|
||||
pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL2, &tmp16);
|
||||
tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
|
||||
if (speed_cap == PCIE_SPEED_8_0GT)
|
||||
tmp16 |= 3; /* gen3 */
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
|
||||
else if (speed_cap == PCIE_SPEED_5_0GT)
|
||||
tmp16 |= 2; /* gen2 */
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
|
||||
else
|
||||
tmp16 |= 1; /* gen1 */
|
||||
pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
|
||||
tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
|
||||
pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL2, tmp16);
|
||||
|
||||
speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
|
||||
speed_cntl |= LC_INITIATE_LINK_SPEED_CHANGE;
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include <linux/export.h>
|
||||
#include <linux/iommu.h>
|
||||
#include <linux/limits.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_iommu.h>
|
||||
#include <linux/of_pci.h>
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_pci.h>
|
||||
|
@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/acpi_iort.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_irq.h>
|
||||
|
@ -7,6 +7,8 @@ obj-$(CONFIG_PCI) += access.o bus.o probe.o host-bridge.o \
|
||||
pci-sysfs.o rom.o setup-res.o irq.o vpd.o \
|
||||
setup-bus.o vc.o mmap.o setup-irq.o
|
||||
|
||||
obj-$(CONFIG_PCI) += pcie/
|
||||
|
||||
ifdef CONFIG_PCI
|
||||
obj-$(CONFIG_PROC_FS) += proc.o
|
||||
obj-$(CONFIG_SYSFS) += slot.o
|
||||
@ -15,7 +17,6 @@ endif
|
||||
|
||||
obj-$(CONFIG_OF) += of.o
|
||||
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
|
||||
obj-$(CONFIG_PCIEPORTBUS) += pcie/
|
||||
obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
|
||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||
obj-$(CONFIG_PCI_ATS) += ats.o
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include <linux/irqchip/chained_irq.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_pci.h>
|
||||
#include <linux/pci_regs.h>
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_pci.h>
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_pci.h>
|
||||
#include <linux/pci-acpi.h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
// Copyright (c) 2017 Cadence
|
||||
// Cadence PCIe controller driver.
|
||||
// Author: Cyrille Pitchen <cyrille.pitchen@free-electrons.com>
|
||||
|
@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Rockchip AXI PCIe controller driver
|
||||
*
|
||||
|
@ -1536,24 +1536,6 @@ const struct attribute_group *pci_dev_groups[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group pci_bridge_group = {
|
||||
.attrs = pci_bridge_attrs,
|
||||
};
|
||||
|
||||
const struct attribute_group *pci_bridge_groups[] = {
|
||||
&pci_bridge_group,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group pcie_dev_group = {
|
||||
.attrs = pcie_dev_attrs,
|
||||
};
|
||||
|
||||
const struct attribute_group *pcie_dev_groups[] = {
|
||||
&pcie_dev_group,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group pci_dev_hp_attr_group = {
|
||||
.attrs = pci_dev_hp_attrs,
|
||||
.is_visible = pci_dev_hp_attrs_are_visible,
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_pci.h>
|
||||
#include <linux/pci.h>
|
||||
|
@ -4,7 +4,6 @@
|
||||
#
|
||||
config PCIEPORTBUS
|
||||
bool "PCI Express Port Bus support"
|
||||
depends on PCI
|
||||
help
|
||||
This enables PCI Express Port Bus support. Users can then enable
|
||||
support for Native Hot-Plug, Advanced Error Reporting, Power
|
||||
@ -63,7 +62,6 @@ config PCIE_ECRC
|
||||
#
|
||||
config PCIEASPM
|
||||
bool "PCI Express ASPM control" if EXPERT
|
||||
depends on PCI && PCIEPORTBUS
|
||||
default y
|
||||
help
|
||||
This enables OS control over PCI Express ASPM (Active State
|
||||
@ -128,7 +126,6 @@ config PCIE_DPC
|
||||
|
||||
config PCIE_PTM
|
||||
bool "PCI Express Precision Time Measurement support"
|
||||
depends on PCIEPORTBUS
|
||||
help
|
||||
This enables PCI Express Precision Time Measurement (PTM)
|
||||
support.
|
||||
|
@ -21,7 +21,7 @@ static void pci_ptm_info(struct pci_dev *dev)
|
||||
snprintf(clock_desc, sizeof(clock_desc), ">254ns");
|
||||
break;
|
||||
default:
|
||||
snprintf(clock_desc, sizeof(clock_desc), "%udns",
|
||||
snprintf(clock_desc, sizeof(clock_desc), "%uns",
|
||||
dev->ptm_granularity);
|
||||
break;
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_pci.h>
|
||||
#include <linux/pci_hotplug.h>
|
||||
|
@ -2,11 +2,10 @@
|
||||
#ifndef __OF_PCI_H
|
||||
#define __OF_PCI_H
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
|
||||
struct pci_dev;
|
||||
struct of_phandle_args;
|
||||
struct device_node;
|
||||
|
||||
#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_PCI)
|
||||
|
@ -673,6 +673,8 @@
|
||||
#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */
|
||||
#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */
|
||||
#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */
|
||||
#define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */
|
||||
#define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */
|
||||
#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
|
||||
#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
|
||||
#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
|
||||
|
Loading…
Reference in New Issue
Block a user