瀏覽代碼

disp: msm: dp: Handle aux switch node missing in device tree

Ensure to allocate switch type as bypass in case of dp aux switch
node missing in device tree entry and prevent any scope of null
pointer dereferencing.

Change-Id: I1d50d785e028f2e69a0effaedb2dbb6568a473dd
Signed-off-by: Soutrik Mukhopadhyay <[email protected]>
Soutrik Mukhopadhyay 2 年之前
父節點
當前提交
d021bca90e
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      msm/dp/dp_display.c

+ 4 - 1
msm/dp/dp_display.c

@@ -2119,8 +2119,10 @@ static int dp_init_sub_modules(struct dp_display_private *dp)
 
 	dp->aux_switch_node = of_parse_phandle(dp->pdev->dev.of_node, phandle, 0);
 	if (!dp->aux_switch_node) {
-		DP_DEBUG("cannot parse %s handle\n", phandle);
 		dp->no_aux_switch = true;
+		DP_WARN("Aux switch node not found, assigning bypass mode as switch type\n");
+		dp->switch_type = DP_AUX_SWITCH_BYPASS;
+		goto skip_node_name;
 	}
 
 	if (!strcmp(dp->aux_switch_node->name, "fsa4480"))
@@ -2130,6 +2132,7 @@ static int dp_init_sub_modules(struct dp_display_private *dp)
 	else
 		dp->switch_type = DP_AUX_SWITCH_BYPASS;
 
+skip_node_name:
 	dp->aux = dp_aux_get(dev, &dp->catalog->aux, dp->parser,
 			dp->aux_switch_node, dp->aux_bridge, g_dp_display->dp_aux_ipc_log,
 			dp->switch_type);