disp: msm: add support for vm event register framework
Besides SDE, other subdrivers may be interested in participating in the VM switch. This change provides framework for display dependent drivers like DSI, DP and RSCC to register for various VM switch event hooks. The following hooks to provided through msm_vm_ops: post_hw_acquire: invoked before the first frame push after gaining HW access. pre_hw_release: invoked after the last frame commit before releasing the HW. check: check with vm clients for their readiness for HW releasing. Change-Id: I616db04e979f78f76f6f97ee3b068dd348339ab6 Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
このコミットが含まれているのは:
@@ -394,6 +394,7 @@ static int msm_drm_uninit(struct device *dev)
|
||||
struct drm_device *ddev = platform_get_drvdata(pdev);
|
||||
struct msm_drm_private *priv = ddev->dev_private;
|
||||
struct msm_kms *kms = priv->kms;
|
||||
struct msm_vm_client_entry *client_entry, *tmp;
|
||||
int i;
|
||||
|
||||
/* We must cancel and cleanup any pending vblank enable/disable
|
||||
@@ -455,6 +456,17 @@ static int msm_drm_uninit(struct device *dev)
|
||||
|
||||
sde_power_resource_deinit(pdev, &priv->phandle);
|
||||
|
||||
mutex_lock(&priv->vm_client_lock);
|
||||
|
||||
/* clean up any unregistered clients */
|
||||
list_for_each_entry_safe(client_entry, tmp, &priv->vm_client_list,
|
||||
list) {
|
||||
list_del(&client_entry->list);
|
||||
kfree(client_entry);
|
||||
}
|
||||
|
||||
mutex_unlock(&priv->vm_client_lock);
|
||||
|
||||
msm_mdss_destroy(ddev);
|
||||
|
||||
ddev->dev_private = NULL;
|
||||
@@ -831,6 +843,9 @@ static int msm_drm_component_init(struct device *dev)
|
||||
|
||||
INIT_LIST_HEAD(&priv->client_event_list);
|
||||
INIT_LIST_HEAD(&priv->inactive_list);
|
||||
INIT_LIST_HEAD(&priv->vm_client_list);
|
||||
|
||||
mutex_init(&priv->vm_client_lock);
|
||||
|
||||
/* Bind all our sub-components: */
|
||||
ret = msm_component_bind_all(dev, ddev);
|
||||
|
新しいイシューから参照
ユーザーをブロックする