[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251009155251.102472-17-balamanikandan.gunasundar@microchip.com>
Date: Thu, 9 Oct 2025 21:22:49 +0530
From: Balamanikandan Gunasundar <balamanikandan.gunasundar@...rochip.com>
To: Mauro Carvalho Chehab <mchehab@...nel.org>
CC: Eugen Hristev <eugen.hristev@...aro.org>, Chas Williams
<3chas3@...il.com>, Nicolas Ferre <nicolas.ferre@...rochip.com>, "Alexandre
Belloni" <alexandre.belloni@...tlin.com>, Claudiu Beznea
<claudiu.beznea@...on.dev>, Balakrishnan Sambath
<balakrishnan.s@...rochip.com>, Hans Verkuil <hverkuil@...nel.org>, "Ricardo
Ribalda" <ribalda@...omium.org>, Laurent Pinchart
<laurent.pinchart+renesas@...asonboard.com>, Jacopo Mondi
<jacopo.mondi@...asonboard.com>, Daniel Scally
<dan.scally+renesas@...asonboard.com>, Tomi Valkeinen
<tomi.valkeinen@...asonboard.com>, <linux-kernel@...r.kernel.org>,
<linux-media@...r.kernel.org>, <linux-atm-general@...ts.sourceforge.net>,
<netdev@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
Balamanikandan Gunasundar <balamanikandan.gunasundar@...rochip.com>
Subject: [PATCH 16/18] media: microchip-isc: enable userspace histogram statistics export
From: Balakrishnan Sambath <balakrishnan.s@...rochip.com>
Export raw histogram data to userspace only when all 4 Bayer channels
are ready and userspace has active listeners. Also continue AWB work as
long as userspace listeners are active.
Signed-off-by: Balakrishnan Sambath <balakrishnan.s@...rochip.com>
Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@...rochip.com>
---
drivers/media/platform/microchip/microchip-isc-base.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/microchip/microchip-isc-base.c b/drivers/media/platform/microchip/microchip-isc-base.c
index cafd05244db2..6c937a20fce0 100644
--- a/drivers/media/platform/microchip/microchip-isc-base.c
+++ b/drivers/media/platform/microchip/microchip-isc-base.c
@@ -1450,6 +1450,15 @@ static void isc_awb_work(struct work_struct *w)
if (hist_id != ISC_HIS_CFG_MODE_B) {
hist_id++;
} else {
+ /* All 4 channels processed - notify userspace */
+ if (isc_stats_active(&isc->stats))
+ isc_stats_isr(&isc->stats);
+ else
+ dev_info(isc->dev, "No active userspace listeners\n");
+ }
+
+ /* Continue with AWB processing only if AWB is enabled */
+ if (ctrls->awb != ISC_WB_NONE) {
isc_wb_update(ctrls);
hist_id = ISC_HIS_CFG_MODE_GR;
}
@@ -1499,7 +1508,7 @@ static void isc_awb_work(struct work_struct *w)
mutex_lock(&isc->awb_mutex);
/* streaming is not active anymore */
- if (isc->stop) {
+ if (isc->stop && !isc_stats_active(&isc->stats)) {
mutex_unlock(&isc->awb_mutex);
return;
}
--
2.34.1
Powered by blists - more mailing lists