瀏覽代碼

Merge "disp: msm: dsi: clear pll unlock error bit before unmasking"

qctecmdr 1 年之前
父節點
當前提交
e0556e407a
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      msm/dsi/dsi_ctrl_hw_cmn.c

+ 6 - 2
msm/dsi/dsi_ctrl_hw_cmn.c

@@ -1774,10 +1774,11 @@ int dsi_ctrl_hw_cmn_ctrl_reset(struct dsi_ctrl_hw *ctrl,
 void dsi_ctrl_hw_cmn_mask_error_intr(struct dsi_ctrl_hw *ctrl, u32 idx, bool en)
 void dsi_ctrl_hw_cmn_mask_error_intr(struct dsi_ctrl_hw *ctrl, u32 idx, bool en)
 {
 {
 	u32 reg = 0;
 	u32 reg = 0;
-	u32 fifo_status = 0, timeout_status = 0;
+	u32 fifo_status = 0, timeout_status = 0, pll_unlock_status = 0;
 	u32 overflow_clear = BIT(10) | BIT(18) | BIT(22) | BIT(26) | BIT(30);
 	u32 overflow_clear = BIT(10) | BIT(18) | BIT(22) | BIT(26) | BIT(30);
 	u32 underflow_clear = BIT(19) | BIT(23) | BIT(27) | BIT(31);
 	u32 underflow_clear = BIT(19) | BIT(23) | BIT(27) | BIT(31);
 	u32 lp_rx_clear = BIT(4);
 	u32 lp_rx_clear = BIT(4);
+	u32 pll_unlock_clear = BIT(16);
 
 
 	reg = DSI_R32(ctrl, 0x10c);
 	reg = DSI_R32(ctrl, 0x10c);
 
 
@@ -1822,8 +1823,11 @@ void dsi_ctrl_hw_cmn_mask_error_intr(struct dsi_ctrl_hw *ctrl, u32 idx, bool en)
 	if (idx & BIT(DSI_PLL_UNLOCK_ERR)) {
 	if (idx & BIT(DSI_PLL_UNLOCK_ERR)) {
 		if (en)
 		if (en)
 			reg |= BIT(28);
 			reg |= BIT(28);
-		else
+		else {
 			reg &= ~BIT(28);
 			reg &= ~BIT(28);
+			pll_unlock_status = DSI_R32(ctrl, DSI_CLK_STATUS);
+			DSI_W32(ctrl, DSI_CLK_STATUS, pll_unlock_status | pll_unlock_clear);
+		}
 	}
 	}
 
 
 	DSI_W32(ctrl, 0x10c, reg);
 	DSI_W32(ctrl, 0x10c, reg);