clk: qcom: Move gcc_usb3_phy_pipe_clk to branch clock

A clk_disable on gate clocks would hold a global
spinlock and it would wait for a halt_delay. In some
race conditions(due to longer delays for gate clocks)
if any other CPU would also invoke a clk_disable then
it could result in a spinlock lockup. Avoid this by
moving the gcc_usb3_phy_pipe_clk clk to branch clock.

CRs-Fixed: 2008439
Change-Id: I177349844c571964637e16a150f93c5912f7dafe
Signed-off-by: Amit Nischal <anischal@codeaurora.org>
This commit is contained in:
Amit Nischal 2017-02-16 17:59:19 +05:30
parent 5a092dc83c
commit 8af0bacd05

View file

@ -2493,14 +2493,15 @@ static struct clk_branch gcc_usb3_phy_aux_clk = {
},
};
static struct clk_gate2 gcc_usb3_phy_pipe_clk = {
.udelay = 50,
static struct clk_branch gcc_usb3_phy_pipe_clk = {
.halt_reg = 0x50004,
.halt_check = BRANCH_HALT_DELAY,
.clkr = {
.enable_reg = 0x50004,
.enable_mask = BIT(0),
.hw.init = &(struct clk_init_data){
.name = "gcc_usb3_phy_pipe_clk",
.ops = &clk_gate2_ops,
.ops = &clk_branch2_ops,
},
},
};