mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
8c405cdccc
The patches were generated from the RPi repo with the following command: git format-patch v6.6.34..rpi-6.1.y Some patches needed rebasing and, as usual, the applied and reverted, wireless drivers, Github workflows, READMEs and defconfigs patches were removed. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
56 lines
1.9 KiB
Diff
56 lines
1.9 KiB
Diff
From 82ca4792f80be2894aed42298e1d5af82e9b1505 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Fri, 24 Nov 2023 14:29:57 +0000
|
|
Subject: [PATCH 0748/1085] drivers: media: cfe: Find the source pads on the
|
|
sensor entity
|
|
|
|
The driver was assuming that pad 0 on the sensor entity was the
|
|
appropriate source pad, but this isn't necessarily the case.
|
|
With video-mux, it has the sink pads first, and then the source
|
|
pad as the last one.
|
|
|
|
Iterate through the sensor pads to find the relevant source pads.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/media/platform/raspberrypi/rp1_cfe/cfe.c | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/media/platform/raspberrypi/rp1_cfe/cfe.c
|
|
+++ b/drivers/media/platform/raspberrypi/rp1_cfe/cfe.c
|
|
@@ -1826,7 +1826,7 @@ static void cfe_unregister_nodes(struct
|
|
|
|
static int cfe_link_node_pads(struct cfe_device *cfe)
|
|
{
|
|
- unsigned int i;
|
|
+ unsigned int i, source_pad = 0;
|
|
int ret;
|
|
|
|
for (i = 0; i < CSI2_NUM_CHANNELS; i++) {
|
|
@@ -1835,14 +1835,23 @@ static int cfe_link_node_pads(struct cfe
|
|
if (!check_state(cfe, NODE_REGISTERED, i))
|
|
continue;
|
|
|
|
- if (i < cfe->sensor->entity.num_pads) {
|
|
+ /* Find next source pad */
|
|
+ while (source_pad < cfe->sensor->entity.num_pads &&
|
|
+ !(cfe->sensor->entity.pads[source_pad].flags &
|
|
+ MEDIA_PAD_FL_SOURCE))
|
|
+ source_pad++;
|
|
+
|
|
+ if (source_pad < cfe->sensor->entity.num_pads) {
|
|
/* Sensor -> CSI2 */
|
|
- ret = media_create_pad_link(&cfe->sensor->entity, i,
|
|
+ ret = media_create_pad_link(&cfe->sensor->entity, source_pad,
|
|
&cfe->csi2.sd.entity, i,
|
|
MEDIA_LNK_FL_IMMUTABLE |
|
|
MEDIA_LNK_FL_ENABLED);
|
|
if (ret)
|
|
return ret;
|
|
+
|
|
+ /* Dealt with that source_pad, look at the next one next time */
|
|
+ source_pad++;
|
|
}
|
|
|
|
/* CSI2 channel # -> /dev/video# */
|