Commit 36e92f61 authored by Sergio Paracuellos's avatar Sergio Paracuellos Committed by Greg Kroah-Hartman

staging: mt7621-pci: disable pcie port clock if there is no pcie link

When there is no pcie link detected we have to properly disable the
port pcie clock.
Signed-off-by: default avatarSergio Paracuellos <sergio.paracuellos@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f5a3cb90
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
#define PCIE_FTS_NUM_L0(x) ((x) & 0xff << 8) #define PCIE_FTS_NUM_L0(x) ((x) & 0xff << 8)
/* rt_sysc_membase relative registers */ /* rt_sysc_membase relative registers */
#define RALINK_CLKCFG1 0x30
#define RALINK_PCIE_CLK_GEN 0x7c #define RALINK_PCIE_CLK_GEN 0x7c
#define RALINK_PCIE_CLK_GEN1 0x80 #define RALINK_PCIE_CLK_GEN1 0x80
...@@ -221,6 +222,11 @@ static inline bool mt7621_pcie_port_is_linkup(struct mt7621_pcie_port *port) ...@@ -221,6 +222,11 @@ static inline bool mt7621_pcie_port_is_linkup(struct mt7621_pcie_port *port)
return (pcie_port_read(port, RALINK_PCI_STATUS) & PCIE_PORT_LINKUP) != 0; return (pcie_port_read(port, RALINK_PCI_STATUS) & PCIE_PORT_LINKUP) != 0;
} }
static inline void mt7621_pcie_port_clk_disable(struct mt7621_pcie_port *port)
{
rt_sysc_m32(PCIE_PORT_CLK_EN(port->slot), 0, RALINK_CLKCFG1);
}
static inline void mt7621_control_assert(struct mt7621_pcie_port *port) static inline void mt7621_control_assert(struct mt7621_pcie_port *port)
{ {
u32 chip_rev_id = rt_sysc_r32(MT7621_CHIP_REV_ID); u32 chip_rev_id = rt_sysc_r32(MT7621_CHIP_REV_ID);
...@@ -475,6 +481,7 @@ static void mt7621_pcie_init_ports(struct mt7621_pcie *pcie) ...@@ -475,6 +481,7 @@ static void mt7621_pcie_init_ports(struct mt7621_pcie *pcie)
slot); slot);
phy_power_off(port->phy); phy_power_off(port->phy);
mt7621_control_assert(port); mt7621_control_assert(port);
mt7621_pcie_port_clk_disable(port);
port->enabled = false; port->enabled = false;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment