mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 13:04:03 +08:00
PCI: tegra: Enable opportunistic UpdateFC and ACK
Enable opportunistic UpdateFC and ACK to allow data link layer send pending ACKs and UpdateFC packets when link is idle instead of waiting for timers to expire. This improves the PCIe performance due to better utilization of PCIe bandwidth. Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
2513a4ee47
commit
7763cc24e2
@ -204,7 +204,9 @@
|
||||
#define RP_ECTL_6_R2_RX_EQ_CTRL_H_1C_MASK 0xffffffff
|
||||
|
||||
#define RP_VEND_XP 0x00000f00
|
||||
#define RP_VEND_XP_DL_UP (1 << 30)
|
||||
#define RP_VEND_XP_DL_UP (1 << 30)
|
||||
#define RP_VEND_XP_OPPORTUNISTIC_ACK (1 << 27)
|
||||
#define RP_VEND_XP_OPPORTUNISTIC_UPDATEFC (1 << 28)
|
||||
|
||||
#define RP_VEND_CTL1 0x00000f48
|
||||
#define RP_VEND_CTL1_ERPT (1 << 13)
|
||||
@ -529,6 +531,12 @@ static void tegra_pcie_enable_rp_features(struct tegra_pcie_port *port)
|
||||
value = readl(port->base + RP_VEND_CTL1);
|
||||
value |= RP_VEND_CTL1_ERPT;
|
||||
writel(value, port->base + RP_VEND_CTL1);
|
||||
|
||||
/* Optimal settings to enhance bandwidth */
|
||||
value = readl(port->base + RP_VEND_XP);
|
||||
value |= RP_VEND_XP_OPPORTUNISTIC_ACK;
|
||||
value |= RP_VEND_XP_OPPORTUNISTIC_UPDATEFC;
|
||||
writel(value, port->base + RP_VEND_XP);
|
||||
}
|
||||
|
||||
static void tegra_pcie_program_ectl_settings(struct tegra_pcie_port *port)
|
||||
|
Loading…
Reference in New Issue
Block a user