disp: msm: dsi: register io resource collection VM event hook
Add support to read register ranges and IRQ lines that needs isolation during VM switch in dsi ctrl and dsi phy. Register for VM resource collection event providing the callback function. Change-Id: I5eae4699b0a97ffed438627ccea855c401b3fbeb Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
这个提交包含在:

提交者
Gerrit - the friendly Code Review server

父节点
4b27380f07
当前提交
962fd4faca
@@ -5037,6 +5037,39 @@ error:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int dsi_display_get_io_resources(struct msm_io_res *io_res, void *data)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
rc = dsi_ctrl_get_io_resources(io_res);
|
||||
if (rc)
|
||||
goto end;
|
||||
|
||||
rc = dsi_phy_get_io_resources(io_res);
|
||||
end:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int dsi_display_pre_release(void *data)
|
||||
{
|
||||
if (!data)
|
||||
return -EINVAL;
|
||||
|
||||
dsi_display_ctrl_irq_update((struct dsi_display *)data, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dsi_display_pre_acquire(void *data)
|
||||
{
|
||||
if (!data)
|
||||
return -EINVAL;
|
||||
|
||||
dsi_display_ctrl_irq_update((struct dsi_display *)data, true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* dsi_display_bind - bind dsi device with controlling device
|
||||
* @dev: Pointer to base of platform device
|
||||
@@ -5057,6 +5090,11 @@ static int dsi_display_bind(struct device *dev,
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
char *client1 = "dsi_clk_client";
|
||||
char *client2 = "mdp_event_client";
|
||||
struct msm_vm_ops vm_event_ops = {
|
||||
.vm_get_io_resources = dsi_display_get_io_resources,
|
||||
.vm_pre_hw_release = dsi_display_pre_release,
|
||||
.vm_post_hw_acquire = dsi_display_pre_acquire,
|
||||
};
|
||||
int i, rc = 0;
|
||||
|
||||
if (!dev || !pdev || !master) {
|
||||
@@ -5250,6 +5288,8 @@ static int dsi_display_bind(struct device *dev,
|
||||
/* register te irq handler */
|
||||
dsi_display_register_te_irq(display);
|
||||
|
||||
msm_register_vm_event(master, dev, &vm_event_ops, (void *)display);
|
||||
|
||||
goto error;
|
||||
|
||||
error_host_deinit:
|
||||
|
在新工单中引用
屏蔽一个用户