diff options
author | PixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com> | 2022-01-16 18:38:38 -0800 |
---|---|---|
committer | SecurityBot <android-nexus-securitybot@system.gserviceaccount.com> | 2022-01-16 18:38:38 -0800 |
commit | 922dbc46c710a00daeb05bfeae667382de66ff27 (patch) | |
tree | 0d2cefbcfc8a3df3ab7981d96a61aef15e3f2742 | |
parent | ad7e1c462486ae9e3d1e2d2a7d916bf83051b378 (diff) | |
parent | e3c8f9749cf0312782e159253187fab5dbb88c86 (diff) | |
download | edgetpu-android-gs-bluejay-5.10-android12L-d2.tar.gz |
Merge android12-gs-pixel-5.10-sc-qpr2 into android12-gs-pixel-5.10-sc-v2android-12.1.0_r0.40android-gs-bluejay-5.10-android12L-d2
SBMerger: 410055097
Change-Id: I1c3e137cc966e759f763397daf22cf5033c7d5a2
Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r-- | drivers/edgetpu/edgetpu-dmabuf.c | 2 | ||||
-rw-r--r-- | drivers/edgetpu/edgetpu-kci.c | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/drivers/edgetpu/edgetpu-dmabuf.c b/drivers/edgetpu/edgetpu-dmabuf.c index f98aafe..276da72 100644 --- a/drivers/edgetpu/edgetpu-dmabuf.c +++ b/drivers/edgetpu/edgetpu-dmabuf.c @@ -723,7 +723,7 @@ int edgetpu_map_dmabuf(struct edgetpu_device_group *group, __func__, ret); goto err_release_map; } - arg->device_address = dmap->map.device_address; + arg->device_address = tpu_addr; mutex_unlock(&group->lock); dma_buf_put(dmabuf); return 0; diff --git a/drivers/edgetpu/edgetpu-kci.c b/drivers/edgetpu/edgetpu-kci.c index bfa356f..9339953 100644 --- a/drivers/edgetpu/edgetpu-kci.c +++ b/drivers/edgetpu/edgetpu-kci.c @@ -507,6 +507,8 @@ int edgetpu_kci_init(struct edgetpu_mailbox_manager *mgr, int edgetpu_kci_reinit(struct edgetpu_kci *kci) { struct edgetpu_mailbox *mailbox = kci->mailbox; + struct edgetpu_mailbox_manager *mgr; + unsigned long flags; int ret; if (!mailbox) @@ -521,6 +523,13 @@ int edgetpu_kci_reinit(struct edgetpu_kci *kci) QUEUE_SIZE); if (ret) return ret; + + mgr = mailbox->etdev->mailbox_manager; + /* Restore KCI irq handler */ + write_lock_irqsave(&mgr->mailboxes_lock, flags); + mailbox->handle_irq = edgetpu_kci_handle_irq; + write_unlock_irqrestore(&mgr->mailboxes_lock, flags); + edgetpu_mailbox_init_doorbells(mailbox); edgetpu_mailbox_enable(mailbox); @@ -529,6 +538,16 @@ int edgetpu_kci_reinit(struct edgetpu_kci *kci) void edgetpu_kci_cancel_work_queues(struct edgetpu_kci *kci) { + struct edgetpu_mailbox_manager *mgr; + unsigned long flags; + + if (kci->mailbox) { + mgr = kci->mailbox->etdev->mailbox_manager; + /* Remove IRQ handler to stop responding to interrupts */ + write_lock_irqsave(&mgr->mailboxes_lock, flags); + kci->mailbox->handle_irq = NULL; + write_unlock_irqrestore(&mgr->mailboxes_lock, flags); + } /* Cancel workers that may send KCIs. */ cancel_work_sync(&kci->usage_work); /* Cancel KCI and reverse KCI workers. */ |