38 lines
1.4 KiB
Diff
38 lines
1.4 KiB
Diff
From d0624b8de9fd26dafba82f6cad4a8cf828e8bfe9 Mon Sep 17 00:00:00 2001
|
|
From: Naushir Patuck <naush@raspberrypi.com>
|
|
Date: Tue, 22 Mar 2022 15:16:40 +0000
|
|
Subject: [PATCH] drivers: staging: bcm2835-isp: Clear LS table handle
|
|
in the firmware
|
|
|
|
When all nodes have stopped streaming, ensure the firmware has released its
|
|
handle on the LS table dmabuf. This is done by passing a null handle in the
|
|
LS params.
|
|
|
|
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
|
|
---
|
|
.../vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c | 13 +++++++++++++
|
|
1 file changed, 13 insertions(+)
|
|
|
|
--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c
|
|
+++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c
|
|
@@ -655,6 +655,19 @@ static void bcm2835_isp_node_stop_stream
|
|
atomic_dec(&dev->num_streaming);
|
|
/* If all ports disabled, then disable the component */
|
|
if (atomic_read(&dev->num_streaming) == 0) {
|
|
+ struct bcm2835_isp_lens_shading ls;
|
|
+ /*
|
|
+ * The ISP component on the firmware has a reference to the
|
|
+ * dmabuf handle for the lens shading table. Pass a null handle
|
|
+ * to remove that reference now.
|
|
+ */
|
|
+ memset(&ls, 0, sizeof(ls));
|
|
+ /* Must set a valid grid size for the FW */
|
|
+ ls.grid_cell_size = 16;
|
|
+ set_isp_param(&dev->node[0],
|
|
+ MMAL_PARAMETER_LENS_SHADING_OVERRIDE,
|
|
+ &ls, sizeof(ls));
|
|
+
|
|
ret = vchiq_mmal_component_disable(dev->mmal_instance,
|
|
dev->component);
|
|
if (ret) {
|