Merge "disp: msm: dsi: Add support for secondary display using firmware approach"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
6edad6b0ad
@@ -5090,7 +5090,7 @@ static int _dsi_display_dev_init(struct dsi_display *display)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!display->panel_node)
|
if (!display->panel_node && !display->fw)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
mutex_lock(&display->display_lock);
|
mutex_lock(&display->display_lock);
|
||||||
@@ -5395,7 +5395,7 @@ static int dsi_display_bind(struct device *dev,
|
|||||||
drm, display);
|
drm, display);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if (!display->panel_node)
|
if (!display->panel_node && !display->fw)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!display->fw)
|
if (!display->fw)
|
||||||
@@ -5705,7 +5705,13 @@ static void dsi_display_firmware_display(const struct firmware *fw,
|
|||||||
fw->size);
|
fw->size);
|
||||||
|
|
||||||
display->fw = fw;
|
display->fw = fw;
|
||||||
display->name = "dsi_firmware_display";
|
|
||||||
|
if (!strcmp(display->display_type, "primary"))
|
||||||
|
display->name = "dsi_firmware_display";
|
||||||
|
|
||||||
|
else if (!strcmp(display->display_type, "secondary"))
|
||||||
|
display->name = "dsi_firmware_display_secondary";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
DSI_INFO("no firmware available, fallback to device node\n");
|
DSI_INFO("no firmware available, fallback to device node\n");
|
||||||
}
|
}
|
||||||
@@ -5796,10 +5802,17 @@ int dsi_display_dev_probe(struct platform_device *pdev)
|
|||||||
if (!boot_disp->boot_disp_en &&
|
if (!boot_disp->boot_disp_en &&
|
||||||
IS_ENABLED(CONFIG_DSI_PARSER) &&
|
IS_ENABLED(CONFIG_DSI_PARSER) &&
|
||||||
!display->trusted_vm_env) {
|
!display->trusted_vm_env) {
|
||||||
firm_req = !request_firmware_nowait(
|
if (!strcmp(display->display_type, "primary"))
|
||||||
THIS_MODULE, 1, "dsi_prop",
|
firm_req = !request_firmware_nowait(
|
||||||
&pdev->dev, GFP_KERNEL, display,
|
THIS_MODULE, 1, "dsi_prop",
|
||||||
dsi_display_firmware_display);
|
&pdev->dev, GFP_KERNEL, display,
|
||||||
|
dsi_display_firmware_display);
|
||||||
|
|
||||||
|
else if (!strcmp(display->display_type, "secondary"))
|
||||||
|
firm_req = !request_firmware_nowait(
|
||||||
|
THIS_MODULE, 1, "dsi_prop_sec",
|
||||||
|
&pdev->dev, GFP_KERNEL, display,
|
||||||
|
dsi_display_firmware_display);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!firm_req) {
|
if (!firm_req) {
|
||||||
|
Reference in New Issue
Block a user