f07e572f64
bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G bcm2710: boot tested on RPi 3B v1.2 bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
64 lines
2.8 KiB
Diff
64 lines
2.8 KiB
Diff
From 487203abdef24b7d3cdd110f1b1e699fd22aa02c Mon Sep 17 00:00:00 2001
|
|
From: Jacopo Mondi <jacopo+renesas@jmondi.org>
|
|
Date: Tue, 16 Jun 2020 16:12:36 +0200
|
|
Subject: [PATCH]_mbus_config
|
|
pad ops
|
|
|
|
Upstream https://patchwork.linuxtv.org/patch/64669/
|
|
|
|
Introduce two new pad operations to allow retrieving and configuring the
|
|
media bus parameters on a subdevice pad.
|
|
|
|
The newly introduced operations aims to replace the s/g_mbus_config video
|
|
operations, which have been on their way for deprecation since a long
|
|
time.
|
|
|
|
Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
|
|
---
|
|
include/media/v4l2-subdev.h | 27 +++++++++++++++++++++++++++
|
|
1 file changed, 27 insertions(+)
|
|
|
|
--- a/include/media/v4l2-subdev.h
|
|
+++ b/include/media/v4l2-subdev.h
|
|
@@ -670,6 +670,29 @@ struct v4l2_subdev_pad_config {
|
|
*
|
|
* @set_frame_desc: set the low level media bus frame parameters, @fd array
|
|
* may be adjusted by the subdev driver to device capabilities.
|
|
+ *
|
|
+ * @get_mbus_config: get the media bus configuration of a remote sub-device.
|
|
+ * The media bus configuration is usually retrieved from the
|
|
+ * firmware interface at sub-device probe time, immediately
|
|
+ * applied to the hardware and eventually adjusted by the
|
|
+ * driver. Remote sub-devices (usually video receivers) shall
|
|
+ * use this operation to query the transmitting end bus
|
|
+ * configuration in order to adjust their own one accordingly.
|
|
+ * Callers should make sure they get the most up-to-date as
|
|
+ * possible configuration from the remote end, likely calling
|
|
+ * this operation as close as possible to stream on time. The
|
|
+ * operation shall fail if the pad index it has been called on
|
|
+ * is not valid.
|
|
+ *
|
|
+ * @set_mbus_config: set the media bus configuration of a remote sub-device.
|
|
+ * This operations is intended to allow, in combination with
|
|
+ * the get_mbus_config operation, the negotiation of media bus
|
|
+ * configuration parameters between media sub-devices. The
|
|
+ * operation shall not fail if the requested configuration is
|
|
+ * not supported, but the driver shall update the content of
|
|
+ * the %config argument to reflect what has been actually
|
|
+ * applied to the hardware. The operation shall fail if the
|
|
+ * pad index it has been called on is not valid.
|
|
*/
|
|
struct v4l2_subdev_pad_ops {
|
|
int (*init_cfg)(struct v4l2_subdev *sd,
|
|
@@ -710,6 +733,10 @@ struct v4l2_subdev_pad_ops {
|
|
struct v4l2_mbus_frame_desc *fd);
|
|
int (*set_frame_desc)(struct v4l2_subdev *sd, unsigned int pad,
|
|
struct v4l2_mbus_frame_desc *fd);
|
|
+ int (*get_mbus_config)(struct v4l2_subdev *sd, unsigned int pad,
|
|
+ struct v4l2_mbus_config *config);
|
|
+ int (*set_mbus_config)(struct v4l2_subdev *sd, unsigned int pad,
|
|
+ struct v4l2_mbus_config *config);
|
|
};
|
|
|
|
/**
|