disp: msm: sde: adapt VM IRQ notification framework

Kernel RM IRQ wrapper has changed the prototype of the
notification callback function to support per event
notifications. This uncouples the VM IRQ operations from
their respective notifications.

Adapt the changes in SDE driver by making the notification
handler generic and invoking the notifications calls
explicitly.

Change-Id: I02ddb1d2fa70fdab8002325e0472b43e94b6b09c
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Esse commit está contido em:
Jeykumar Sankaran
2020-08-31 13:20:00 -07:00
commit de Gerrit - the friendly Code Review server
commit 02bef42599
2 arquivos alterados com 22 adições e 4 exclusões

Ver arquivo

@@ -25,7 +25,8 @@ static bool sde_vm_owns_hw(struct sde_kms *sde_kms)
return (owns_irq & owns_mem_io);
}
void sde_vm_irq_release_notification_handler(void *req, enum hh_irq_label label)
void sde_vm_irq_release_notification_handler(void *req,
unsigned long notif_type, enum hh_irq_label label)
{
struct sde_vm_primary *sde_vm;
int rc = 0;
@@ -169,7 +170,7 @@ static int _sde_vm_lend_irq(struct sde_vm *vm, struct msm_io_res *io_res)
for (i = 0; i < irq_desc->n_irq; i++) {
struct sde_vm_irq_entry *entry = &irq_desc->irq_entries[i];
rc = hh_irq_lend(entry->label, HH_TRUSTED_VM, entry->irq,
rc = hh_irq_lend_v2(entry->label, HH_TRUSTED_VM, entry->irq,
sde_vm_irq_release_notification_handler,
sde_vm);
if (rc) {
@@ -179,6 +180,14 @@ static int _sde_vm_lend_irq(struct sde_vm *vm, struct msm_io_res *io_res)
return rc;
}
rc = hh_irq_lend_notify(entry->label);
if (rc) {
SDE_ERROR("irq lend notify failed, label: %d, rc=%d\n",
entry->label, rc);
hh_irq_reclaim(entry->label);
return rc;
}
SDE_INFO("vm lend suceeded for IRQ label: %d\n", entry->label);
}