Date   

[PATCH 4.19.y-cip 12/40] media: dt-bindings: media: i2c: Add IMX219 CMOS sensor binding

Lad Prabhakar
 

From: Andrey Konovalov <andrey.konovalov@linaro.org>

commit 9d730f2cf4c0391785855dd231577d2de2594df9 upstream.

Add YAML device tree binding for IMX219 CMOS image sensor, and
the relevant MAINTAINERS entries.

Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
[PL: manually applied changes to MAINTAINERS file]
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
.../devicetree/bindings/media/i2c/imx219.yaml | 114 ++++++++++++++++++
MAINTAINERS | 8 ++
2 files changed, 122 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/i2c/imx219.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/imx219.yaml
new file mode 100644
index 000000000000..32d6b693274f
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/imx219.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sony 1/4.0-Inch 8Mpixel CMOS Digital Image Sensor
+
+maintainers:
+ - Dave Stevenson <dave.stevenson@raspberrypi.com>
+
+description: |-
+ The Sony imx219 is a 1/4.0-inch CMOS active pixel digital image sensor
+ with an active array size of 3280H x 2464V. It is programmable through
+ I2C interface. The I2C address is fixed to 0x10 as per sensor data sheet.
+ Image data is sent through MIPI CSI-2, which is configured as either 2 or
+ 4 data lanes.
+
+properties:
+ compatible:
+ const: sony,imx219
+
+ reg:
+ description: I2C device address
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ VDIG-supply:
+ description:
+ Digital I/O voltage supply, 1.8 volts
+
+ VANA-supply:
+ description:
+ Analog voltage supply, 2.8 volts
+
+ VDDL-supply:
+ description:
+ Digital core voltage supply, 1.2 volts
+
+ reset-gpios:
+ description: |-
+ Reference to the GPIO connected to the xclr pin, if any.
+ Must be released (set high) after all supplies are applied.
+
+ # See ../video-interfaces.txt for more details
+ port:
+ type: object
+ properties:
+ endpoint:
+ type: object
+ properties:
+ data-lanes:
+ description: |-
+ The sensor supports either two-lane, or four-lane operation.
+ If this property is omitted four-lane operation is assumed.
+ For two-lane operation the property must be set to <1 2>.
+ items:
+ - const: 1
+ - const: 2
+
+ clock-noncontinuous:
+ type: boolean
+ description: |-
+ MIPI CSI-2 clock is non-continuous if this property is present,
+ otherwise it's continuous.
+
+ link-frequencies:
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint64-array
+ description:
+ Allowed data bus frequencies.
+
+ required:
+ - link-frequencies
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - VANA-supply
+ - VDIG-supply
+ - VDDL-supply
+ - port
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ imx219: sensor@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+ clocks = <&imx219_clk>;
+ VANA-supply = <&imx219_vana>; /* 2.8v */
+ VDIG-supply = <&imx219_vdig>; /* 1.8v */
+ VDDL-supply = <&imx219_vddl>; /* 1.2v */
+
+ port {
+ imx219_0: endpoint {
+ remote-endpoint = <&csi1_ep>;
+ data-lanes = <1 2>;
+ clock-noncontinuous;
+ link-frequencies = /bits/ 64 <456000000>;
+ };
+ };
+ };
+ };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 1061db6fbc32..47986d4b599a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13565,6 +13565,14 @@ S: Maintained
F: drivers/ssb/
F: include/linux/ssb/

+SONY IMX219 SENSOR DRIVER
+M: Dave Stevenson <dave.stevenson@raspberrypi.com>
+L: linux-media@vger.kernel.org
+T: git git://linuxtv.org/media_tree.git
+S: Maintained
+F: drivers/media/i2c/imx219.c
+F: Documentation/devicetree/bindings/media/i2c/imx219.yaml
+
SONY IMX258 SENSOR DRIVER
M: Sakari Ailus <sakari.ailus@linux.intel.com>
L: linux-media@vger.kernel.org
--
2.17.1


[PATCH 4.19.y-cip 11/40] media: rcar-csi2: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format

Lad Prabhakar
 

commit 675616554d0a5caff138008ee9bd4623bc4390b2 upstream.

This patch adds support for MEDIA_BUS_FMT_SRGGB8_1X8 format for CSI2
input.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/platform/rcar-vin/rcar-csi2.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index 1c910fdbf4c0..e6a531c4fde5 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -315,6 +315,7 @@ static const struct rcar_csi2_format rcar_csi2_formats[] = {
{ .code = MEDIA_BUS_FMT_YUYV8_1X16, .datatype = 0x1e, .bpp = 16 },
{ .code = MEDIA_BUS_FMT_UYVY8_2X8, .datatype = 0x1e, .bpp = 16 },
{ .code = MEDIA_BUS_FMT_YUYV10_2X10, .datatype = 0x1e, .bpp = 20 },
+ { .code = MEDIA_BUS_FMT_SRGGB8_1X8, .datatype = 0x2a, .bpp = 8 },
};

static const struct rcar_csi2_format *rcsi2_code_to_fmt(unsigned int code)
--
2.17.1


[PATCH 4.19.y-cip 10/40] media: rcar-vin: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format

Lad Prabhakar
 

commit e87c1a81f158d6fc7b3346eb88c2d76a044f837d upstream.

Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format in rcar-vin by setting
format type to RAW8 in VNMC register and appropriately setting the bpp
and bytesperline to enable V4L2_PIX_FMT_SRGGB8.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
[PL: manually applied the changes; rvin_parallel_subdevice_attach()
updated to handle MEDIA_BUS_FMT_SRGGB8_1X8 format; VNIS_REG is set
accordingly in rvin_crop_scale_comp() for V4L2_PIX_FMT_SRGGB8]
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/platform/rcar-vin/rcar-core.c | 1 +
drivers/media/platform/rcar-vin/rcar-dma.c | 9 +++++++++
drivers/media/platform/rcar-vin/rcar-v4l2.c | 4 ++++
3 files changed, 14 insertions(+)

diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c
index bd298bbbc48d..79d1a8a730ad 100644
--- a/drivers/media/platform/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/rcar-vin/rcar-core.c
@@ -447,6 +447,7 @@ static int rvin_parallel_subdevice_attach(struct rvin_dev *vin,
case MEDIA_BUS_FMT_UYVY8_2X8:
case MEDIA_BUS_FMT_UYVY10_2X10:
case MEDIA_BUS_FMT_RGB888_1X24:
+ case MEDIA_BUS_FMT_SRGGB8_1X8:
vin->mbus_code = code.code;
vin_dbg(vin, "Found media bus format for %s: %d\n",
subdev->name, vin->mbus_code);
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index 5bab9f8159f6..0d56957a54cc 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -85,6 +85,7 @@
#define VNMC_INF_YUV8_BT601 (1 << 16)
#define VNMC_INF_YUV10_BT656 (2 << 16)
#define VNMC_INF_YUV10_BT601 (3 << 16)
+#define VNMC_INF_RAW8 (4 << 16)
#define VNMC_INF_YUV16 (5 << 16)
#define VNMC_INF_RGB888 (6 << 16)
#define VNMC_VUP (1 << 10)
@@ -599,6 +600,8 @@ void rvin_crop_scale_comp(struct rvin_dev *vin)

if (vin->format.pixelformat == V4L2_PIX_FMT_NV16)
rvin_write(vin, ALIGN(vin->format.width, 0x20), VNIS_REG);
+ else if (vin->format.pixelformat == V4L2_PIX_FMT_SRGGB8)
+ rvin_write(vin, ALIGN(vin->format.width / 2, 0x10), VNIS_REG);
else
rvin_write(vin, ALIGN(vin->format.width, 0x10), VNIS_REG);
}
@@ -677,6 +680,9 @@ static int rvin_setup(struct rvin_dev *vin)

input_is_yuv = true;
break;
+ case MEDIA_BUS_FMT_SRGGB8_1X8:
+ vnmc |= VNMC_INF_RAW8;
+ break;
default:
break;
}
@@ -730,6 +736,9 @@ static int rvin_setup(struct rvin_dev *vin)
/* Note: not supported on M1 */
dmr = VNDMR_EXRGB;
break;
+ case V4L2_PIX_FMT_SRGGB8:
+ dmr = 0;
+ break;
default:
vin_err(vin, "Invalid pixelformat (0x%x)\n",
vin->format.pixelformat);
diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index 1236e6e8228c..c07e57f707ec 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -54,6 +54,10 @@ static const struct rvin_video_format rvin_formats[] = {
.fourcc = V4L2_PIX_FMT_XBGR32,
.bpp = 4,
},
+ {
+ .fourcc = V4L2_PIX_FMT_SRGGB8,
+ .bpp = 1,
+ },
};

const struct rvin_video_format *rvin_format_from_pixel(u32 pixelformat)
--
2.17.1


[PATCH 4.19.y-cip 09/40] media: rcar-vin: Invalidate pipeline if conversion is not possible on input formats

Lad Prabhakar
 

commit fd22e8eb4145852223b36b0e6c7e308ed5905ad2 upstream.

Up until now the VIN was capable to convert any of its supported input mbus
formats to any of it's supported output pixel formats. With the addition of
RAW formats this is no longer true.

This patch invalidates the pipeline by adding a check if given vin input
format can be converted to supported output pixel format.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
[PL: dropped changes from rvin_enum_fmt_vid_cap()]
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/platform/rcar-vin/rcar-dma.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index e51620c6cc40..5bab9f8159f6 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -1042,11 +1042,15 @@ static int rvin_mc_validate_format(struct rvin_dev *vin, struct v4l2_subdev *sd,
case MEDIA_BUS_FMT_UYVY8_2X8:
case MEDIA_BUS_FMT_UYVY10_2X10:
case MEDIA_BUS_FMT_RGB888_1X24:
- vin->mbus_code = fmt.format.code;
+ break;
+ case MEDIA_BUS_FMT_SRGGB8_1X8:
+ if (vin->format.pixelformat != V4L2_PIX_FMT_SRGGB8)
+ return -EPIPE;
break;
default:
return -EPIPE;
}
+ vin->mbus_code = fmt.format.code;

switch (fmt.format.field) {
case V4L2_FIELD_TOP:
--
2.17.1


[PATCH 4.19.y-cip 08/40] media: rcar-csi2: Update V3M and E3 start procedure

Lad Prabhakar
 

From: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

commit c1421f1d6c29d6b6234e5b0894ef16b3f2a172e0 upstream.

The latest datasheet (rev 1.50) updates the start procedure for V3M and
E3. Update the driver to match these changes.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/platform/rcar-vin/rcar-csi2.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index 007e2383d34e..1c910fdbf4c0 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -898,11 +898,11 @@ static int rcsi2_init_phtw_v3m_e3(struct rcar_csi2 *priv, unsigned int mbps)
static int rcsi2_confirm_start_v3m_e3(struct rcar_csi2 *priv)
{
static const struct phtw_value step1[] = {
- { .data = 0xed, .code = 0x34 },
- { .data = 0xed, .code = 0x44 },
- { .data = 0xed, .code = 0x54 },
- { .data = 0xed, .code = 0x84 },
- { .data = 0xed, .code = 0x94 },
+ { .data = 0xee, .code = 0x34 },
+ { .data = 0xee, .code = 0x44 },
+ { .data = 0xee, .code = 0x54 },
+ { .data = 0xee, .code = 0x84 },
+ { .data = 0xee, .code = 0x94 },
{ /* sentinel */ },
};

--
2.17.1


[PATCH 4.19.y-cip 07/40] media: rcar-vin: fix wrong return value in rvin_set_channel_routing()

Lad Prabhakar
 

From: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

commit 8d19d5d03b4d09177b0ae87f964eb751e6f51b7b upstream.

If the operation in rvin_set_channel_routing() is successful the 'ret'
variable contains the runtime PM use count for the VIN master device.
The intention is not to return the use count to the caller but to return
0 on success else none zero.

Fix this by always returning 0 if the operation is successful.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/platform/rcar-vin/rcar-dma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index 70a8cc433a03..e51620c6cc40 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -1343,5 +1343,5 @@ int rvin_set_channel_routing(struct rvin_dev *vin, u8 chsel)

pm_runtime_put(vin->dev);

- return ret;
+ return 0;
}
--
2.17.1


[PATCH 4.19.y-cip 06/40] media: v4l: ctrl: Provide unlocked variant of v4l2_ctrl_grab

Lad Prabhakar
 

From: Sakari Ailus <sakari.ailus@linux.intel.com>

commit 7a9b109d91cfc6089006378efd515cc287bdef67 upstream.

Sometimes it may be necessary to grab a control while holding the control
handler's lock. Provide an unlocked variant of v4l2_ctrl_grab for the
purpose --- it's called __v4l2_ctrl_grab.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
[PL: manually applied the changes]
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/v4l2-core/v4l2-ctrls.c | 8 ++++----
include/media/v4l2-ctrls.h | 26 +++++++++++++++++++++++++-
2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
index f4ebff347d7a..6868c1990534 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -2517,14 +2517,15 @@ EXPORT_SYMBOL(v4l2_ctrl_activate);

Just call this and the framework will block any attempts to change
these controls. */
-void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed)
+void __v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed)
{
bool old;

if (ctrl == NULL)
return;

- v4l2_ctrl_lock(ctrl);
+ lockdep_assert_held(ctrl->handler->lock);
+
if (grabbed)
/* set V4L2_CTRL_FLAG_GRABBED */
old = test_and_set_bit(1, &ctrl->flags);
@@ -2533,9 +2534,8 @@ void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed)
old = test_and_clear_bit(1, &ctrl->flags);
if (old != grabbed)
send_event(NULL, ctrl, V4L2_EVENT_CTRL_CH_FLAGS);
- v4l2_ctrl_unlock(ctrl);
}
-EXPORT_SYMBOL(v4l2_ctrl_grab);
+EXPORT_SYMBOL(__v4l2_ctrl_grab);

/* Log the control name and value */
static void log_ctrl(const struct v4l2_ctrl *ctrl,
diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h
index f615ba1b29dd..ff89df428f79 100644
--- a/include/media/v4l2-ctrls.h
+++ b/include/media/v4l2-ctrls.h
@@ -728,6 +728,22 @@ struct v4l2_ctrl *v4l2_ctrl_find(struct v4l2_ctrl_handler *hdl, u32 id);
*/
void v4l2_ctrl_activate(struct v4l2_ctrl *ctrl, bool active);

+/**
+ * __v4l2_ctrl_grab() - Unlocked variant of v4l2_ctrl_grab.
+ *
+ * @ctrl: The control to (de)activate.
+ * @grabbed: True if the control should become grabbed.
+ *
+ * This sets or clears the V4L2_CTRL_FLAG_GRABBED flag atomically.
+ * Does nothing if @ctrl == NULL.
+ * The V4L2_EVENT_CTRL event will be generated afterwards.
+ * This will usually be called when starting or stopping streaming in the
+ * driver.
+ *
+ * This function assumes that the control handler is locked by the caller.
+ */
+void __v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed);
+
/**
* v4l2_ctrl_grab() - Mark the control as grabbed or not grabbed.
*
@@ -743,7 +759,15 @@ void v4l2_ctrl_activate(struct v4l2_ctrl *ctrl, bool active);
* This function assumes that the control handler is not locked and will
* take the lock itself.
*/
-void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed);
+static inline void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed)
+{
+ if (!ctrl)
+ return;
+
+ v4l2_ctrl_lock(ctrl);
+ __v4l2_ctrl_grab(ctrl, grabbed);
+ v4l2_ctrl_unlock(ctrl);
+}

/**
*__v4l2_ctrl_modify_range() - Unlocked variant of v4l2_ctrl_modify_range()
--
2.17.1


[PATCH 4.19.y-cip 00/40] Renesas RZ/G2{E,H,M,N} add VIN, CSI2 support

Lad Prabhakar
 

Hi All,

This patch series does the following:
* Drops unneeded regulator setup for OV5645 sensor
* Adds driver for IMX219 sensor
* Updates v4l2-async to accept endpoints for fwnode matching
* Various fixes for R-Car VIN driver
* Support to capture RAW format to VIN driver
* Support for RZ/G2{H,M,N,E} SoC's in VIN/CSI2 driver
* DTS changes for HiHope RZ/G2{H,M,N} and SI Linux RZ/G2E to
enable VIN, CSI2 modules and OV5645, IMX219 sensors.

Cheers,
Prabhakar

Andrey Konovalov (1):
media: dt-bindings: media: i2c: Add IMX219 CMOS sensor binding

Biju Das (10):
media: dt-bindings: media: rcar_vin: Add r8a774a1 support
media: rcar-vin: Enable support for r8a774a1
media: dt-bindings: media: rcar-csi2: Add r8a774a1 support
media: rcar-csi2: Enable support for r8a774a1
arm64: dts: renesas: r8a774a1: Add VIN and CSI-2 nodes
media: dt-bindings: rcar-vin: Add R8A774B1 support
media: rcar-vin: Enable support for R8A774B1
media: dt-bindings: rcar-csi2: Add R8A774B1 support
media: rcar-csi2: Enable support for R8A774B1
arm64: dts: renesas: r8a774b1: Add VIN and CSI-2 support

Dafna Hirschfeld (1):
media: i2c: imx219: Fix a bug in imx219_enum_frame_size

Dave Stevenson (1):
media: i2c: Add driver for Sony IMX219 sensor

Fabio Estevam (1):
media: ov5645: Remove unneeded regulator_set_voltage()

Hans Verkuil (2):
media: i2c: imx219: Selection compliance fixes
media: i2c: imx219: take lock in imx219_enum_mbus_code/frame_size

Jacopo Mondi (1):
media: i2c: imx219: Implement get_selection

Lad Prabhakar (16):
media: rcar-vin: Invalidate pipeline if conversion is not possible on
input formats
media: rcar-vin: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format
media: rcar-csi2: Add support for MEDIA_BUS_FMT_SRGGB8_1X8 format
media: i2c: imx219: Fix power sequence
media: i2c: imx219: Add support for RAW8 bit bayer format
media: i2c: imx219: Add support for cropped 640x480 resolution
arm64: dts: renesas: r8a774c0-cat874: Add support for AISTARVISION
MIPI Adapter V2.1
media: dt-bindings: media: renesas,vin: Add R8A774E1 support
media: rcar-vin: Enable support for R8A774E1
media: dt-bindings: media: renesas,csi2: Add R8A774E1 support
media: rcar-csi2: Enable support for R8A774E1
arm64: dts: renesas: r8a774e1: Add VIN and CSI-2 nodes
arm64: dts: renesas: aistarvision-mipi-adapter-2.1: Add parent macro
for each sensor
arm64: dts: renesas: Add support for MIPI Adapter V2.1 connected to
HiHope RZ/G2H
arm64: dts: renesas: Add support for MIPI Adapter V2.1 connected to
HiHope RZ/G2M
arm64: dts: renesas: Add support for MIPI Adapter V2.1 connected to
HiHope RZ/G2N

Laurent Pinchart (4):
media: device property: Add a function to test is a fwnode is a graph
endpoint
media: v4l2-async: Accept endpoints and devices for fwnode matching
media: v4l2-async: Pass notifier pointer to match functions
media: v4l2-async: Log message in case of heterogeneous fwnode match

Niklas Söderlund (2):
media: rcar-vin: fix wrong return value in rvin_set_channel_routing()
media: rcar-csi2: Update V3M and E3 start procedure

Sakari Ailus (1):
media: v4l: ctrl: Provide unlocked variant of v4l2_ctrl_grab

.../devicetree/bindings/media/i2c/imx219.yaml | 114 ++
.../devicetree/bindings/media/rcar_vin.txt | 3 +
.../bindings/media/renesas,rcar-csi2.txt | 3 +
MAINTAINERS | 8 +
arch/arm64/boot/dts/renesas/Makefile | 10 +-
.../aistarvision-mipi-adapter-2.1.dtsi | 96 +
...rzg2-ex-aistarvision-mipi-adapter-2.1.dtsi | 109 ++
.../r8a774a1-hihope-rzg2m-ex-mipi-2.1.dts | 29 +
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 367 ++++
.../r8a774b1-hihope-rzg2n-ex-mipi-2.1.dts | 16 +
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 366 ++++
.../dts/renesas/r8a774c0-ek874-mipi-2.1.dts | 73 +
.../r8a774e1-hihope-rzg2h-ex-mipi-2.1.dts | 16 +
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 334 ++++
drivers/media/i2c/Kconfig | 11 +
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/imx219.c | 1582 +++++++++++++++++
drivers/media/i2c/ov5645.c | 28 -
drivers/media/platform/rcar-vin/rcar-core.c | 49 +
drivers/media/platform/rcar-vin/rcar-csi2.c | 23 +-
drivers/media/platform/rcar-vin/rcar-dma.c | 17 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 4 +
drivers/media/v4l2-core/v4l2-async.c | 83 +-
drivers/media/v4l2-core/v4l2-ctrls.c | 8 +-
include/linux/property.h | 5 +
include/media/v4l2-ctrls.h | 26 +-
26 files changed, 3330 insertions(+), 51 deletions(-)
create mode 100644 Documentation/devicetree/bindings/media/i2c/imx219.yaml
create mode 100644 arch/arm64/boot/dts/renesas/aistarvision-mipi-adapter-2.1.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/hihope-rzg2-ex-aistarvision-mipi-adapter-2.1.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-mipi-2.1.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a774b1-hihope-rzg2n-ex-mipi-2.1.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a774e1-hihope-rzg2h-ex-mipi-2.1.dts
create mode 100644 drivers/media/i2c/imx219.c

--
2.17.1


[PATCH 4.19.y-cip 05/40] media: v4l2-async: Log message in case of heterogeneous fwnode match

Lad Prabhakar
 

From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

commit e80cdf0a3843fe570c891cb976feb0c136b19fb7 upstream.

When a notifier supplies a device fwnode and a subdev supplies an
endpoint fwnode, incorrect matches may occur if multiple subdevs
correspond to the same device fwnode. This can't be handled
transparently in the framework, and requires the notifier to switch to
endpoint fwnodes. Log a message to notify of this problem. A second
message is added to help accelerating the transition to endpoint
matching.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/v4l2-core/v4l2-async.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 0ee5e9f51877..72285709c4c2 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -79,6 +79,7 @@ static bool match_fwnode(struct v4l2_async_notifier *notifier,
struct fwnode_handle *dev_fwnode;
bool asd_fwnode_is_ep;
bool sd_fwnode_is_ep;
+ struct device *dev;

/*
* Both the subdev and the async subdev can provide either an endpoint
@@ -116,7 +117,28 @@ static bool match_fwnode(struct v4l2_async_notifier *notifier,

fwnode_handle_put(dev_fwnode);

- return dev_fwnode == other_fwnode;
+ if (dev_fwnode != other_fwnode)
+ return false;
+
+ /*
+ * We have a heterogeneous match. Retrieve the struct device of the side
+ * that matched on a device fwnode to print its driver name.
+ */
+ if (sd_fwnode_is_ep)
+ dev = notifier->v4l2_dev ? notifier->v4l2_dev->dev
+ : notifier->sd->dev;
+ else
+ dev = sd->dev;
+
+ if (dev && dev->driver) {
+ if (sd_fwnode_is_ep)
+ dev_warn(dev, "Driver %s uses device fwnode, incorrect match may occur\n",
+ dev->driver->name);
+ dev_notice(dev, "Consider updating driver %s to match on endpoints\n",
+ dev->driver->name);
+ }
+
+ return true;
}

static bool match_custom(struct v4l2_async_notifier *notifier,
--
2.17.1


[PATCH 4.19.y-cip 04/40] media: v4l2-async: Pass notifier pointer to match functions

Lad Prabhakar
 

From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

commit 3e33392a9561fd64515049317041646ab3bf32aa upstream.

The notifier is useful to match functions to access information about
the device matching a subdev. This will be used to print messages using
the correct struct device and driver name.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
[PL: manually applied the changes]
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/v4l2-core/v4l2-async.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 72f8c070ad9d..0ee5e9f51877 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -53,7 +53,8 @@ static int v4l2_async_notifier_call_complete(struct v4l2_async_notifier *n)
return n->ops->complete(n);
}

-static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
+static bool match_i2c(struct v4l2_async_notifier *notifier,
+ struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
{
#if IS_ENABLED(CONFIG_I2C)
struct i2c_client *client = i2c_verify_client(sd->dev);
@@ -65,13 +66,14 @@ static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
#endif
}

-static bool match_devname(struct v4l2_subdev *sd,
- struct v4l2_async_subdev *asd)
+static bool match_devname(struct v4l2_async_notifier *notifier,
+ struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
{
return !strcmp(asd->match.device_name, dev_name(sd->dev));
}

-static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
+static bool match_fwnode(struct v4l2_async_notifier *notifier,
+ struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
{
struct fwnode_handle *other_fwnode;
struct fwnode_handle *dev_fwnode;
@@ -117,7 +119,8 @@ static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
return dev_fwnode == other_fwnode;
}

-static bool match_custom(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
+static bool match_custom(struct v4l2_async_notifier *notifier,
+ struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
{
if (!asd->match.custom.match)
/* Match always */
@@ -133,7 +136,8 @@ static DEFINE_MUTEX(list_lock);
static struct v4l2_async_subdev *v4l2_async_find_match(
struct v4l2_async_notifier *notifier, struct v4l2_subdev *sd)
{
- bool (*match)(struct v4l2_subdev *, struct v4l2_async_subdev *);
+ bool (*match)(struct v4l2_async_notifier *notifier,
+ struct v4l2_subdev *sd, struct v4l2_async_subdev *asd);
struct v4l2_async_subdev *asd;

list_for_each_entry(asd, &notifier->waiting, list) {
@@ -158,7 +162,7 @@ static struct v4l2_async_subdev *v4l2_async_find_match(
}

/* match cannot be NULL here */
- if (match(sd, asd))
+ if (match(notifier, sd, asd))
return asd;
}

--
2.17.1


[PATCH 4.19.y-cip 03/40] media: v4l2-async: Accept endpoints and devices for fwnode matching

Lad Prabhakar
 

From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

commit b98158d837efa0b2f2f59ee2ff77f4791f978d74 upstream.

fwnode matching was designed to match on nodes corresponding to a
device. Some drivers, however, needed to match on endpoints, and have
passed endpoint fwnodes to v4l2-async. This works when both the subdev
and the notifier use the same fwnode types (endpoint or device), but
makes drivers that use different types incompatible.

Fix this by extending the fwnode match to handle fwnodes of different
types. When the types (deduced from the presence of remote endpoints)
are different, retrieve the device fwnode for the side that provides an
endpoint fwnode, and compare it with the device fwnode provided by the
other side. This allows interoperability between all drivers, regardless
of which type of fwnode they use for matching.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/v4l2-core/v4l2-async.c | 43 +++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 2b08d03b251d..72f8c070ad9d 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -73,7 +73,48 @@ static bool match_devname(struct v4l2_subdev *sd,

static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
{
- return sd->fwnode == asd->match.fwnode;
+ struct fwnode_handle *other_fwnode;
+ struct fwnode_handle *dev_fwnode;
+ bool asd_fwnode_is_ep;
+ bool sd_fwnode_is_ep;
+
+ /*
+ * Both the subdev and the async subdev can provide either an endpoint
+ * fwnode or a device fwnode. Start with the simple case of direct
+ * fwnode matching.
+ */
+ if (sd->fwnode == asd->match.fwnode)
+ return true;
+
+ /*
+ * Otherwise, check if the sd fwnode and the asd fwnode refer to an
+ * endpoint or a device. If they're of the same type, there's no match.
+ * Technically speaking this checks if the nodes refer to a connected
+ * endpoint, which is the simplest check that works for both OF and
+ * ACPI. This won't make a difference, as drivers should not try to
+ * match unconnected endpoints.
+ */
+ sd_fwnode_is_ep = fwnode_graph_is_endpoint(sd->fwnode);
+ asd_fwnode_is_ep = fwnode_graph_is_endpoint(asd->match.fwnode);
+
+ if (sd_fwnode_is_ep == asd_fwnode_is_ep)
+ return false;
+
+ /*
+ * The sd and asd fwnodes are of different types. Get the device fwnode
+ * parent of the endpoint fwnode, and compare it with the other fwnode.
+ */
+ if (sd_fwnode_is_ep) {
+ dev_fwnode = fwnode_graph_get_port_parent(sd->fwnode);
+ other_fwnode = asd->match.fwnode;
+ } else {
+ dev_fwnode = fwnode_graph_get_port_parent(asd->match.fwnode);
+ other_fwnode = sd->fwnode;
+ }
+
+ fwnode_handle_put(dev_fwnode);
+
+ return dev_fwnode == other_fwnode;
}

static bool match_custom(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
--
2.17.1


[PATCH 4.19.y-cip 02/40] media: device property: Add a function to test is a fwnode is a graph endpoint

Lad Prabhakar
 

From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

commit 35694afc92646ac24d7f3ef34a7387876d998fe7 upstream.

Drivers may need to test if a fwnode is a graph endpoint. To avoid
hand-written solutions that wouldn't work for all fwnode types, add a
new fwnode_graph_is_endpoint() function for this purpose. We don't need
to wire it up to different backends for OF and ACPI for now, as the
implementation can simply be based on checkout the presence of a
remote-endpoint property.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
[PL: manually applied the changes]
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
include/linux/property.h | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/include/linux/property.h b/include/linux/property.h
index 216dcfe567df..ec8ebd73b2c4 100644
--- a/include/linux/property.h
+++ b/include/linux/property.h
@@ -308,6 +308,11 @@ struct fwnode_handle *
fwnode_graph_get_remote_node(const struct fwnode_handle *fwnode, u32 port,
u32 endpoint);

+static inline bool fwnode_graph_is_endpoint(struct fwnode_handle *fwnode)
+{
+ return fwnode_property_present(fwnode, "remote-endpoint");
+}
+
#define fwnode_graph_for_each_endpoint(fwnode, child) \
for (child = NULL; \
(child = fwnode_graph_get_next_endpoint(fwnode, child)); )
--
2.17.1


[PATCH 4.19.y-cip 01/40] media: ov5645: Remove unneeded regulator_set_voltage()

Lad Prabhakar
 

From: Fabio Estevam <festevam@gmail.com>

commit 45ffbd15ede6add6e4fb150e4bab7a27cfe62552 upstream.

There is no need to call regulator_set_voltage() for each regulator
that powers the camera.

The voltage value for each regulator should be retrieved from the
device tree, so remove the unneeded regulator_set_voltage().

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
drivers/media/i2c/ov5645.c | 28 ----------------------------
1 file changed, 28 deletions(-)

diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
index 34343bc10007..5f3229bc68a5 100644
--- a/drivers/media/i2c/ov5645.c
+++ b/drivers/media/i2c/ov5645.c
@@ -42,10 +42,6 @@
#include <media/v4l2-fwnode.h>
#include <media/v4l2-subdev.h>

-#define OV5645_VOLTAGE_ANALOG 2800000
-#define OV5645_VOLTAGE_DIGITAL_CORE 1500000
-#define OV5645_VOLTAGE_DIGITAL_IO 1800000
-
#define OV5645_SYSTEM_CTRL0 0x3008
#define OV5645_SYSTEM_CTRL0_START 0x02
#define OV5645_SYSTEM_CTRL0_STOP 0x42
@@ -1174,42 +1170,18 @@ static int ov5645_probe(struct i2c_client *client,
return PTR_ERR(ov5645->io_regulator);
}

- ret = regulator_set_voltage(ov5645->io_regulator,
- OV5645_VOLTAGE_DIGITAL_IO,
- OV5645_VOLTAGE_DIGITAL_IO);
- if (ret < 0) {
- dev_err(dev, "cannot set io voltage\n");
- return ret;
- }
-
ov5645->core_regulator = devm_regulator_get(dev, "vddd");
if (IS_ERR(ov5645->core_regulator)) {
dev_err(dev, "cannot get core regulator\n");
return PTR_ERR(ov5645->core_regulator);
}

- ret = regulator_set_voltage(ov5645->core_regulator,
- OV5645_VOLTAGE_DIGITAL_CORE,
- OV5645_VOLTAGE_DIGITAL_CORE);
- if (ret < 0) {
- dev_err(dev, "cannot set core voltage\n");
- return ret;
- }
-
ov5645->analog_regulator = devm_regulator_get(dev, "vdda");
if (IS_ERR(ov5645->analog_regulator)) {
dev_err(dev, "cannot get analog regulator\n");
return PTR_ERR(ov5645->analog_regulator);
}

- ret = regulator_set_voltage(ov5645->analog_regulator,
- OV5645_VOLTAGE_ANALOG,
- OV5645_VOLTAGE_ANALOG);
- if (ret < 0) {
- dev_err(dev, "cannot set analog voltage\n");
- return ret;
- }
-
ov5645->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
if (IS_ERR(ov5645->enable_gpio)) {
dev_err(dev, "cannot get enable gpio\n");
--
2.17.1


Re: [isar-cip-core][PATCH 2/2] linux-cip: Update cip-kernel-config

Jan Kiszka
 

On 04.03.21 18:09, Q. Gylstorff wrote:
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Update the commmit to "22001e31c9ddf93b266b00c563e7b92f0ee21548".

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
recipes-kernel/linux/linux-cip-common.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-kernel/linux/linux-cip-common.inc b/recipes-kernel/linux/linux-cip-common.inc
index 6db1d1d..85696f8 100644
--- a/recipes-kernel/linux/linux-cip-common.inc
+++ b/recipes-kernel/linux/linux-cip-common.inc
@@ -26,6 +26,6 @@ SRC_URI += " \
SRC_URI_append = " ${@conditional("USE_CIP_KERNEL_CONFIG", "1", \
"git://gitlab.com/cip-project/cip-kernel/cip-kernel-config.git;protocol=https;destsuffix=cip-kernel-config;name=cip-kernel-config", \
"file://${KERNEL_DEFCONFIG}",d)}"
-SRCREV_cip-kernel-config ?= "7f2930b9667372f94f2edb42ca9cf6fc6c0aed50"
+SRCREV_cip-kernel-config ?= "22001e31c9ddf93b266b00c563e7b92f0ee21548"

S = "${WORKDIR}/linux-cip-v${PV}"
Already done (Srinu's patch).

Jan

--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux


Re: [isar-cip-core][PATCH 1/2] conf/machine: Add KERNEL_DEFCONFIG_VERSION to select defconfig path

Jan Kiszka
 

On 04.03.21 18:09, Q. Gylstorff wrote:
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

The repository cip-kernel-config[1] contains for each supported kernel
version its own directory. Add the variable KERNEL_DEFCONFIG_VERSION
to select the defconfig matching the kernel version.

Also add a version to select the rt configuration of [1].

[1]:https://gitlab.com/cip-project/cip-kernel/cip-kernel-config

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
conf/machine/bbb.conf | 5 +++++
conf/machine/hihope-rzg2m.conf | 5 ++++-
conf/machine/iwg20m.conf | 5 ++++-
conf/machine/qemu-amd64.conf | 5 ++++-
conf/machine/simatic-ipc227e.conf | 5 ++++-
Err, shouldn't those version-selecting variables better be moved into
the versioned kernel recipes?

Jan

kas/opt/4.4.yml | 1 +
kas/opt/rt.yml | 1 +
7 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/conf/machine/bbb.conf b/conf/machine/bbb.conf
index a9b460e..2878ed1 100644
--- a/conf/machine/bbb.conf
+++ b/conf/machine/bbb.conf
@@ -11,6 +11,11 @@ DISTRO_ARCH = "armhf"
IMAGE_TYPE ?= "wic-img"
IMAGER_INSTALL += "u-boot-omap"

+# kernel defconfig
+USE_CIP_KERNEL_CONFIG = "1"
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm/cip_bbb_defconfig"
+
# On stretch, select U-Boot from buster which comes with distro-boot support
DISTRO_APT_SOURCES_append_cip-core-stretch = " conf/distro/debian-buster.list"
DISTRO_APT_PREFERENCES_cip-core-stretch += "conf/machine/preferences.bbb.conf"
diff --git a/conf/machine/hihope-rzg2m.conf b/conf/machine/hihope-rzg2m.conf
index a2ae03d..2a46b74 100644
--- a/conf/machine/hihope-rzg2m.conf
+++ b/conf/machine/hihope-rzg2m.conf
@@ -13,7 +13,10 @@ DISTRO_ARCH = "arm64"

IMAGE_TYPE ?= "wic-img"

-KERNEL_DEFCONFIG = "cip-kernel-config/4.19.y-cip/arm64/renesas_defconfig"
+# kernel defconfig
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm64/renesas_defconfig"
USE_CIP_KERNEL_CONFIG = "1"
+
DTB_FILES = "r8a774a1-hihope-rzg2m-ex.dtb"
IMAGE_BOOT_FILES = "${KERNEL_IMAGE} ${DTB_FILES}"
diff --git a/conf/machine/iwg20m.conf b/conf/machine/iwg20m.conf
index 91bfd94..b5f9490 100644
--- a/conf/machine/iwg20m.conf
+++ b/conf/machine/iwg20m.conf
@@ -17,8 +17,11 @@ BAUDRATE_TTY = "115200"
# kernel version
PREFERRED_VERSION_linux-cip ?= "4.4.%"
PREFERRED_VERSION_linux-cip-rt ?= "4.4.%"
+
+# kernel defconfig
USE_CIP_KERNEL_CONFIG = "1"
-KERNEL_DEFCONFIG = "cip-kernel-config/4.4.y-cip/arm/renesas_shmobile_defconfig"
+KERNEL_DEFCONFIG_VERSION ?= "4.4.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm/renesas_shmobile_defconfig"

# Boot partition files
DTB_FILES = "r8a7743-iwg20d-q7-dbcm-ca.dtb"
diff --git a/conf/machine/qemu-amd64.conf b/conf/machine/qemu-amd64.conf
index c90d957..d99d8b1 100644
--- a/conf/machine/qemu-amd64.conf
+++ b/conf/machine/qemu-amd64.conf
@@ -9,5 +9,8 @@
DISTRO_ARCH = "amd64"

IMAGE_TYPE ?= "ext4-img"
+
+# kernel defconfig
USE_CIP_KERNEL_CONFIG = "1"
-KERNEL_DEFCONFIG = "cip-kernel-config/4.19.y-cip/x86/cip_qemu_defconfig"
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/x86/cip_qemu_defconfig"
diff --git a/conf/machine/simatic-ipc227e.conf b/conf/machine/simatic-ipc227e.conf
index 3c9638f..aacfc9d 100644
--- a/conf/machine/simatic-ipc227e.conf
+++ b/conf/machine/simatic-ipc227e.conf
@@ -10,5 +10,8 @@ DISTRO_ARCH = "amd64"

IMAGE_TYPE ?= "wic-img"
IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}"
+
+# kernel defconfig
USE_CIP_KERNEL_CONFIG = "1"
-KERNEL_DEFCONFIG = "cip-kernel-config/4.19.y-cip/x86/siemens_ipc227e_defconfig"
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/x86/siemens_ipc227e_defconfig"
diff --git a/kas/opt/4.4.yml b/kas/opt/4.4.yml
index 65a4775..a601be3 100644
--- a/kas/opt/4.4.yml
+++ b/kas/opt/4.4.yml
@@ -16,3 +16,4 @@ local_conf_header:
kernel-version: |
PREFERRED_VERSION_linux-cip = "4.4.%"
PREFERRED_VERSION_linux-cip-rt = "4.4.%"
+ KERNEL_DEFCONFIG_VERSION = "4.4.y-cip"
diff --git a/kas/opt/rt.yml b/kas/opt/rt.yml
index b8fe6bb..d6fcf78 100644
--- a/kas/opt/rt.yml
+++ b/kas/opt/rt.yml
@@ -15,3 +15,4 @@ header:
local_conf_header:
preempt-rt: |
KERNEL_NAME = "cip-rt"
+ KERNEL_DEFCONFIG_VERSION_append = "-rt"

--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux


v5.10.20 review

Pavel Machek
 

Hi!

5.10.20 is huge, so I pushed work-in-progress
linux-kernel-v5.10.20-commit.list to the repository.

Best regards,
Pavel
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


[isar-cip-core][PATCH 2/2] linux-cip: Update cip-kernel-config

Quirin Gylstorff
 

From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Update the commmit to "22001e31c9ddf93b266b00c563e7b92f0ee21548".

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
recipes-kernel/linux/linux-cip-common.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-kernel/linux/linux-cip-common.inc b/recipes-kernel/linux/linux-cip-common.inc
index 6db1d1d..85696f8 100644
--- a/recipes-kernel/linux/linux-cip-common.inc
+++ b/recipes-kernel/linux/linux-cip-common.inc
@@ -26,6 +26,6 @@ SRC_URI += " \
SRC_URI_append = " ${@conditional("USE_CIP_KERNEL_CONFIG", "1", \
"git://gitlab.com/cip-project/cip-kernel/cip-kernel-config.git;protocol=https;destsuffix=cip-kernel-config;name=cip-kernel-config", \
"file://${KERNEL_DEFCONFIG}",d)}"
-SRCREV_cip-kernel-config ?= "7f2930b9667372f94f2edb42ca9cf6fc6c0aed50"
+SRCREV_cip-kernel-config ?= "22001e31c9ddf93b266b00c563e7b92f0ee21548"

S = "${WORKDIR}/linux-cip-v${PV}"
--
2.20.1


[isar-cip-core][PATCH 0/2] Defconfig matches Kernel version

Quirin Gylstorff
 

From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Add the option to select the defconfig matching the kernel version
and update cip-kernel-config

Quirin Gylstorff (2):
conf/machine: Add KERNEL_DEFCONFIG_VERSION to select defconfig path
linux-cip: Update cip-kernel-config

conf/machine/bbb.conf | 5 +++++
conf/machine/hihope-rzg2m.conf | 5 ++++-
conf/machine/iwg20m.conf | 5 ++++-
conf/machine/qemu-amd64.conf | 5 ++++-
conf/machine/simatic-ipc227e.conf | 5 ++++-
kas/opt/4.4.yml | 1 +
kas/opt/rt.yml | 1 +
recipes-kernel/linux/linux-cip-common.inc | 2 +-
8 files changed, 24 insertions(+), 5 deletions(-)

--
2.20.1


[isar-cip-core][PATCH 1/2] conf/machine: Add KERNEL_DEFCONFIG_VERSION to select defconfig path

Quirin Gylstorff
 

From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

The repository cip-kernel-config[1] contains for each supported kernel
version its own directory. Add the variable KERNEL_DEFCONFIG_VERSION
to select the defconfig matching the kernel version.

Also add a version to select the rt configuration of [1].

[1]:https://gitlab.com/cip-project/cip-kernel/cip-kernel-config

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
conf/machine/bbb.conf | 5 +++++
conf/machine/hihope-rzg2m.conf | 5 ++++-
conf/machine/iwg20m.conf | 5 ++++-
conf/machine/qemu-amd64.conf | 5 ++++-
conf/machine/simatic-ipc227e.conf | 5 ++++-
kas/opt/4.4.yml | 1 +
kas/opt/rt.yml | 1 +
7 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/conf/machine/bbb.conf b/conf/machine/bbb.conf
index a9b460e..2878ed1 100644
--- a/conf/machine/bbb.conf
+++ b/conf/machine/bbb.conf
@@ -11,6 +11,11 @@ DISTRO_ARCH = "armhf"
IMAGE_TYPE ?= "wic-img"
IMAGER_INSTALL += "u-boot-omap"

+# kernel defconfig
+USE_CIP_KERNEL_CONFIG = "1"
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm/cip_bbb_defconfig"
+
# On stretch, select U-Boot from buster which comes with distro-boot support
DISTRO_APT_SOURCES_append_cip-core-stretch = " conf/distro/debian-buster.list"
DISTRO_APT_PREFERENCES_cip-core-stretch += "conf/machine/preferences.bbb.conf"
diff --git a/conf/machine/hihope-rzg2m.conf b/conf/machine/hihope-rzg2m.conf
index a2ae03d..2a46b74 100644
--- a/conf/machine/hihope-rzg2m.conf
+++ b/conf/machine/hihope-rzg2m.conf
@@ -13,7 +13,10 @@ DISTRO_ARCH = "arm64"

IMAGE_TYPE ?= "wic-img"

-KERNEL_DEFCONFIG = "cip-kernel-config/4.19.y-cip/arm64/renesas_defconfig"
+# kernel defconfig
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm64/renesas_defconfig"
USE_CIP_KERNEL_CONFIG = "1"
+
DTB_FILES = "r8a774a1-hihope-rzg2m-ex.dtb"
IMAGE_BOOT_FILES = "${KERNEL_IMAGE} ${DTB_FILES}"
diff --git a/conf/machine/iwg20m.conf b/conf/machine/iwg20m.conf
index 91bfd94..b5f9490 100644
--- a/conf/machine/iwg20m.conf
+++ b/conf/machine/iwg20m.conf
@@ -17,8 +17,11 @@ BAUDRATE_TTY = "115200"
# kernel version
PREFERRED_VERSION_linux-cip ?= "4.4.%"
PREFERRED_VERSION_linux-cip-rt ?= "4.4.%"
+
+# kernel defconfig
USE_CIP_KERNEL_CONFIG = "1"
-KERNEL_DEFCONFIG = "cip-kernel-config/4.4.y-cip/arm/renesas_shmobile_defconfig"
+KERNEL_DEFCONFIG_VERSION ?= "4.4.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm/renesas_shmobile_defconfig"

# Boot partition files
DTB_FILES = "r8a7743-iwg20d-q7-dbcm-ca.dtb"
diff --git a/conf/machine/qemu-amd64.conf b/conf/machine/qemu-amd64.conf
index c90d957..d99d8b1 100644
--- a/conf/machine/qemu-amd64.conf
+++ b/conf/machine/qemu-amd64.conf
@@ -9,5 +9,8 @@
DISTRO_ARCH = "amd64"

IMAGE_TYPE ?= "ext4-img"
+
+# kernel defconfig
USE_CIP_KERNEL_CONFIG = "1"
-KERNEL_DEFCONFIG = "cip-kernel-config/4.19.y-cip/x86/cip_qemu_defconfig"
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/x86/cip_qemu_defconfig"
diff --git a/conf/machine/simatic-ipc227e.conf b/conf/machine/simatic-ipc227e.conf
index 3c9638f..aacfc9d 100644
--- a/conf/machine/simatic-ipc227e.conf
+++ b/conf/machine/simatic-ipc227e.conf
@@ -10,5 +10,8 @@ DISTRO_ARCH = "amd64"

IMAGE_TYPE ?= "wic-img"
IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}"
+
+# kernel defconfig
USE_CIP_KERNEL_CONFIG = "1"
-KERNEL_DEFCONFIG = "cip-kernel-config/4.19.y-cip/x86/siemens_ipc227e_defconfig"
+KERNEL_DEFCONFIG_VERSION ?= "4.19.y-cip"
+KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/x86/siemens_ipc227e_defconfig"
diff --git a/kas/opt/4.4.yml b/kas/opt/4.4.yml
index 65a4775..a601be3 100644
--- a/kas/opt/4.4.yml
+++ b/kas/opt/4.4.yml
@@ -16,3 +16,4 @@ local_conf_header:
kernel-version: |
PREFERRED_VERSION_linux-cip = "4.4.%"
PREFERRED_VERSION_linux-cip-rt = "4.4.%"
+ KERNEL_DEFCONFIG_VERSION = "4.4.y-cip"
diff --git a/kas/opt/rt.yml b/kas/opt/rt.yml
index b8fe6bb..d6fcf78 100644
--- a/kas/opt/rt.yml
+++ b/kas/opt/rt.yml
@@ -15,3 +15,4 @@ header:
local_conf_header:
preempt-rt: |
KERNEL_NAME = "cip-rt"
+ KERNEL_DEFCONFIG_VERSION_append = "-rt"
--
2.20.1


Re: [cip-members] [Reminder] Due date [26th Feburary]: Reference Platforms for 5.10

Hiraku Toyooka <hiraku.toyooka@...>
 

Kudo-san, Iwamatsu-san,
(CC: cip-dev)

Thank you for letting me know that.
I will send MR for this config.

Best regards,
Hiraku Toyooka

On Wed, Mar 3, 2021 at 7:50 PM Nobuhiro Iwamatsu <iwamatsu@gmail.com> wrote:

Hi,

2021年3月3日(水) 16:37 masashi.kudo@cybertrust.co.jp
<masashi.kudo@cybertrust.co.jp>:

Hi, Toyooka-san,

Thanks for your response.

Also, regarding the corresponding config, please send your
config to cip-dev so that Iwamatsu-san can submit it.
I would appreciate it if you can send this to cip-dev in order to track this request.
or please send MR via gitlab.

Best regards,
Nobuhiro


Best regards,
--
M. Kudo

-----Original Message-----
From: Hiraku Toyooka <hiraku.toyooka@miraclelinux.com>
Sent: Wednesday, March 3, 2021 2:11 PM
To: 工藤 雅司(CTJ OSS事業推進室) <masashi.kudo@cybertrust.co.jp>
Cc: cip-members@lists.cip-project.org; jan.kiszka@siemens.com; 岡田 義弘
(CTJ OSS・IoT事業部 IoT技術本部 クライアントサービス開発部)
<yoshihiro.okada@cybertrust.co.jp>
Subject: Re: [Reminder] Due date [26th Feburary]: Reference Platforms for 5.10

Hi Kudo-san,

I'm sorry to have kept you waiting.
We prepared the zynqmp defconfig from Cybertrust.

https://gist.github.com/hiraku-wfs/80f56520369c88b5889f69cfe4c5b614

If I should make a merge request to the cip-kernel-config, please let me know.

Best regards,
Hiraku Toyooka

On Sat, Feb 27, 2021 at 6:19 PM <masashi.kudo@cybertrust.co.jp> wrote:

Hi, Toyooka-san,

Thanks very much!

Best regards,
--
M. Kudo

-----Original Message-----
From: Hiraku Toyooka <hiraku.toyooka@miraclelinux.com>
Sent: Friday, February 26, 2021 10:43 PM
To: 工藤 雅司(CTJ OSS事業推進室) <masashi.kudo@cybertrust.co.jp>
Cc: cip-members@lists.cip-project.org; jan.kiszka@siemens.com; 岡田 義

(CTJ OSS・IoT事業部 IoT技術本部 クライアントサービス開発部)
<yoshihiro.okada@cybertrust.co.jp>
Subject: Re: [Reminder] Due date [26th Feburary]: Reference
Platforms for 5.10

Kudo-san,

We'd like to propose zynqmp defconfig for zcu102. But I'm sorry, we
need more time (within 1 week) to verify cybertrust's zynqmp defconfig.

By the way, in the current CIP's defconfig, we found some configs
that seem to not exist in linux 5.10.

https://gitlab.com/cip-project/cip-kernel/cip-kernel-config/-/blob/m
aster/5.10
.y-cip/arm64/ctj_zynqmp_defconfig

-CONFIG_SND_SOC_XILINX_DP=y
-CONFIG_XILINX_DMA_ENGINES=y
-CONFIG_XILINX_DPDMA=y
-CONFIG_XILINX_FCLK=y

Best regards,
Hiraku Toyooka

On Thu, Feb 25, 2021 at 11:12 AM <masashi.kudo@cybertrust.co.jp> wrote:

Hi, All,

Also, regarding the corresponding config, please send your
config to cip-dev so that Iwamatsu-san can submit it.
Regarding 5.10 supported boards, the deadline is tomorrow.
So far, I don't see any email traffics for configs in cip-dev
except for
siemens_ipc227e.
If no configs are proposed, the boards won't be supported.
If you need more time, please let us know.

Best regards,
--
M. Kudo

-----Original Message-----
From: 工藤 雅司(CTJ OSS事業推進室)
Sent: Thursday, January 28, 2021 6:45 PM
To: cip-members@lists.cip-project.org; Kiszka, Jan
<jan.kiszka@siemens.com>; Hiraku Toyooka
<hiraku.toyooka@miraclelinux.com>
Subject: Due date [26th Feburary]: Reference Platforms for 5.10

Hi, All,

As was discussed at the last TSC call, I would like to survey cip-members'
intention about reference platforms for 5.10.

I made a table as follows. Please fill in the corresponding
blank with 'Y' and with your name so that we can know who wants it.

https://docs.google.com/presentation/d/1wUQpFTuq96bwcMhU8kxA7oPQFyq1
Yn5LCBbPWvLKB9s/edit#slide=id.gb470c24647_0_16

Also, regarding the corresponding config, please send your
config to cip-dev so that Iwamatsu-san can submit it.

I would like to ask the above to be done by February 26th (Fri).
The platforms which no one flags will be dropped from the 5.10 support
list.
If it takes more than that, please feel free to let me know.

Best regards,
--
M. Kudo

--
Hiraku Toyooka
Cybertrust Japan Co., Ltd.


--
Hiraku Toyooka
Cybertrust Japan Co., Ltd.




--
Nobuhiro Iwamatsu
--
Hiraku Toyooka
Cybertrust Japan Co., Ltd.

401 - 420 of 6628