All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes
@ 2017-07-05 23:00 Sakari Ailus
  2017-07-05 23:00 ` [PATCH 1/8] dt: bindings: Explicitly specify bus type Sakari Ailus
                   ` (8 more replies)
  0 siblings, 9 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel

Hi Pavel and others,

Most of these patches have been posted to the list in some form or other
already but a lot has happened since. Thus reposting. There are more
patches in my ccp2 branch but they're not quite ready as such, for the
reasons discussed previously.


Pavel Machek (1):
  smiapp: add CCP2 support

Sakari Ailus (7):
  dt: bindings: Explicitly specify bus type
  dt: bindings: Add strobe property for CCP2
  v4l: fwnode: Call CSI2 bus csi2, not csi
  v4l: fwnode: Obtain data bus type from FW
  v4l: Add support for CSI-1 and CCP2 busses
  omap3isp: Check for valid port in endpoints
  omap3isp: Destroy CSI-2 phy mutexes in error and module removal

 .../devicetree/bindings/media/video-interfaces.txt |  8 ++-
 drivers/media/i2c/smiapp/smiapp-core.c             | 14 +++--
 drivers/media/platform/omap3isp/isp.c              |  8 ++-
 drivers/media/platform/omap3isp/ispcsiphy.c        |  6 ++
 drivers/media/platform/omap3isp/ispcsiphy.h        |  1 +
 drivers/media/platform/pxa_camera.c                |  3 +
 drivers/media/platform/soc_camera/soc_mediabus.c   |  3 +
 drivers/media/v4l2-core/v4l2-fwnode.c              | 73 ++++++++++++++++++----
 include/media/v4l2-fwnode.h                        | 19 ++++++
 include/media/v4l2-mediabus.h                      |  4 ++
 10 files changed, 118 insertions(+), 21 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 1/8] dt: bindings: Explicitly specify bus type
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-05 23:00 ` [PATCH 2/8] dt: bindings: Add strobe property for CCP2 Sakari Ailus
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel, Sakari Ailus

From: Sakari Ailus <sakari.ailus@iki.fi>

In the vast majority of cases the bus type is known to the driver(s)
since a receiver or transmitter can only support a single one. There
are cases however where different options are possible, or the bus type
cannot be automatically detected.

The existing V4L2 OF support tries to figure out the bus type and
parse the bus parameters based on that. This does not scale too well
as there are multiple serial busses that share common properties.

Some hardware also supports multiple types of busses on the same
interfaces.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Reviewed-By: Sebastian Reichel <sre@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/media/video-interfaces.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt
index 9cd2a369125d..9aa2722b6920 100644
--- a/Documentation/devicetree/bindings/media/video-interfaces.txt
+++ b/Documentation/devicetree/bindings/media/video-interfaces.txt
@@ -76,6 +76,11 @@ Optional endpoint properties
   mode horizontal and vertical synchronization signals are provided to the
   slave device (data source) by the master device (data sink). In the master
   mode the data source device is also the source of the synchronization signals.
+- bus-type: data bus type. Possible values are:
+  0 - autodetect based on other properties (MIPI CSI-2 D-PHY, parallel or Bt656)
+  1 - MIPI CSI-2 C-PHY
+  2 - MIPI CSI1
+  3 - CCP2
 - bus-width: number of data lines actively used, valid for the parallel busses.
 - data-shift: on the parallel data busses, if bus-width is used to specify the
   number of data lines, data-shift can be used to specify which data lines are
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 2/8] dt: bindings: Add strobe property for CCP2
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
  2017-07-05 23:00 ` [PATCH 1/8] dt: bindings: Explicitly specify bus type Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-05 23:00 ` [PATCH 3/8] v4l: fwnode: Call CSI2 bus csi2, not csi Sakari Ailus
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel

Document the CSI1/CCP2 property strobe. It signifies the clock or
strobe mode.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Reviewed-By: Sebastian Reichel <sre@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/media/video-interfaces.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt
index 9aa2722b6920..852041a7480c 100644
--- a/Documentation/devicetree/bindings/media/video-interfaces.txt
+++ b/Documentation/devicetree/bindings/media/video-interfaces.txt
@@ -117,7 +117,8 @@ Optional endpoint properties
   should be the combined length of data-lanes and clock-lanes properties.
   If the lane-polarities property is omitted, the value must be interpreted
   as 0 (normal). This property is valid for serial busses only.
-
+- strobe: Whether the clock signal is used as clock (0) or strobe (1). Used
+  with CCP2, for instance.
 
 Example
 -------
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 3/8] v4l: fwnode: Call CSI2 bus csi2, not csi
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
  2017-07-05 23:00 ` [PATCH 1/8] dt: bindings: Explicitly specify bus type Sakari Ailus
  2017-07-05 23:00 ` [PATCH 2/8] dt: bindings: Add strobe property for CCP2 Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-06 11:07   ` Sebastian Reichel
  2017-07-05 23:00 ` [PATCH 4/8] v4l: fwnode: Obtain data bus type from FW Sakari Ailus
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel

The function to parse CSI2 bus parameters was called
v4l2_fwnode_endpoint_parse_csi_bus(), rename it as
v4l2_fwnode_endpoint_parse_csi2_bus() in anticipation of CSI1/CCP2
support.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/v4l2-core/v4l2-fwnode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
index 153c53ca3925..8df26010d006 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -28,8 +28,8 @@
 
 #include <media/v4l2-fwnode.h>
 
-static int v4l2_fwnode_endpoint_parse_csi_bus(struct fwnode_handle *fwnode,
-					      struct v4l2_fwnode_endpoint *vep)
+static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
+					       struct v4l2_fwnode_endpoint *vep)
 {
 	struct v4l2_fwnode_bus_mipi_csi2 *bus = &vep->bus.mipi_csi2;
 	bool have_clk_lane = false;
@@ -176,7 +176,7 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
 	memset(&vep->bus_type, 0, sizeof(*vep) -
 	       offsetof(typeof(*vep), bus_type));
 
-	rval = v4l2_fwnode_endpoint_parse_csi_bus(fwnode, vep);
+	rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
 	if (rval)
 		return rval;
 	/*
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 4/8] v4l: fwnode: Obtain data bus type from FW
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
                   ` (2 preceding siblings ...)
  2017-07-05 23:00 ` [PATCH 3/8] v4l: fwnode: Call CSI2 bus csi2, not csi Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-06 11:08   ` Sebastian Reichel
  2017-07-05 23:00 ` [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses Sakari Ailus
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel, Sakari Ailus

From: Sakari Ailus <sakari.ailus@iki.fi>

Just obtain it. It'll actually get used soon with CSI-1/CCP2.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/v4l2-core/v4l2-fwnode.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
index 8df26010d006..d71dd3913cd9 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -28,6 +28,14 @@
 
 #include <media/v4l2-fwnode.h>
 
+enum v4l2_fwnode_bus_type {
+	V4L2_FWNODE_BUS_TYPE_GUESS = 0,
+	V4L2_FWNODE_BUS_TYPE_CSI2_CPHY,
+	V4L2_FWNODE_BUS_TYPE_CSI1,
+	V4L2_FWNODE_BUS_TYPE_CCP2,
+	NR_OF_V4L2_FWNODE_BUS_TYPE,
+};
+
 static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
 					       struct v4l2_fwnode_endpoint *vep)
 {
@@ -168,6 +176,7 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
 int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
 			       struct v4l2_fwnode_endpoint *vep)
 {
+	u32 bus_type = 0;
 	int rval;
 
 	fwnode_graph_parse_endpoint(fwnode, &vep->base);
@@ -176,6 +185,8 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
 	memset(&vep->bus_type, 0, sizeof(*vep) -
 	       offsetof(typeof(*vep), bus_type));
 
+	fwnode_property_read_u32(fwnode, "bus-type", &bus_type);
+
 	rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
 	if (rval)
 		return rval;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
                   ` (3 preceding siblings ...)
  2017-07-05 23:00 ` [PATCH 4/8] v4l: fwnode: Obtain data bus type from FW Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-06 11:08   ` Sebastian Reichel
  2017-07-19 19:37   ` Mauro Carvalho Chehab
  2017-07-05 23:00 ` [PATCH 6/8] smiapp: add CCP2 support Sakari Ailus
                   ` (3 subsequent siblings)
  8 siblings, 2 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel, Sakari Ailus

From: Sakari Ailus <sakari.ailus@iki.fi>

CCP2 and CSI-1, are older single data lane serial busses.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
---
 drivers/media/platform/pxa_camera.c              |  3 ++
 drivers/media/platform/soc_camera/soc_mediabus.c |  3 ++
 drivers/media/v4l2-core/v4l2-fwnode.c            | 58 +++++++++++++++++++-----
 include/media/v4l2-fwnode.h                      | 19 ++++++++
 include/media/v4l2-mediabus.h                    |  4 ++
 5 files changed, 76 insertions(+), 11 deletions(-)

diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c
index 399095170b6e..17e797c9559f 100644
--- a/drivers/media/platform/pxa_camera.c
+++ b/drivers/media/platform/pxa_camera.c
@@ -638,6 +638,9 @@ static unsigned int pxa_mbus_config_compatible(const struct v4l2_mbus_config *cf
 		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
 					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
 		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
+	default:
+		__WARN();
+		return -EINVAL;
 	}
 	return 0;
 }
diff --git a/drivers/media/platform/soc_camera/soc_mediabus.c b/drivers/media/platform/soc_camera/soc_mediabus.c
index 57581f626f4c..43192d80beef 100644
--- a/drivers/media/platform/soc_camera/soc_mediabus.c
+++ b/drivers/media/platform/soc_camera/soc_mediabus.c
@@ -508,6 +508,9 @@ unsigned int soc_mbus_config_compatible(const struct v4l2_mbus_config *cfg,
 		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
 					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
 		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
+	default:
+		__WARN();
+		return -EINVAL;
 	}
 	return 0;
 }
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
index d71dd3913cd9..76a88f210cb6 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -154,6 +154,31 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
 
 }
 
+void v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode,
+					 struct v4l2_fwnode_endpoint *vep,
+					 u32 bus_type)
+{
+       struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1;
+       u32 v;
+
+       if (!fwnode_property_read_u32(fwnode, "clock-inv", &v))
+               bus->clock_inv = v;
+
+       if (!fwnode_property_read_u32(fwnode, "strobe", &v))
+               bus->strobe = v;
+
+       if (!fwnode_property_read_u32(fwnode, "data-lanes", &v))
+               bus->data_lane = v;
+
+       if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v))
+               bus->clock_lane = v;
+
+       if (bus_type == V4L2_FWNODE_BUS_TYPE_CCP2)
+	       vep->bus_type = V4L2_MBUS_CCP2;
+       else
+	       vep->bus_type = V4L2_MBUS_CSI1;
+}
+
 /**
  * v4l2_fwnode_endpoint_parse() - parse all fwnode node properties
  * @fwnode: pointer to the endpoint's fwnode handle
@@ -187,17 +212,28 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
 
 	fwnode_property_read_u32(fwnode, "bus-type", &bus_type);
 
-	rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
-	if (rval)
-		return rval;
-	/*
-	 * Parse the parallel video bus properties only if none
-	 * of the MIPI CSI-2 specific properties were found.
-	 */
-	if (vep->bus.mipi_csi2.flags == 0)
-		v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep);
-
-	return 0;
+	switch (bus_type) {
+	case V4L2_FWNODE_BUS_TYPE_GUESS:
+		rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
+		if (rval)
+			return rval;
+		/*
+		 * Parse the parallel video bus properties only if none
+		 * of the MIPI CSI-2 specific properties were found.
+		 */
+		if (vep->bus.mipi_csi2.flags == 0)
+			v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep);
+
+		return 0;
+	case V4L2_FWNODE_BUS_TYPE_CCP2:
+	case V4L2_FWNODE_BUS_TYPE_CSI1:
+		v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, bus_type);
+
+		return 0;
+	default:
+		pr_warn("unsupported bus type %u\n", bus_type);
+		return -EINVAL;
+	}
 }
 EXPORT_SYMBOL_GPL(v4l2_fwnode_endpoint_parse);
 
diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h
index ecc1233a873e..29ae22bbbbaf 100644
--- a/include/media/v4l2-fwnode.h
+++ b/include/media/v4l2-fwnode.h
@@ -56,6 +56,24 @@ struct v4l2_fwnode_bus_parallel {
 };
 
 /**
+ * struct v4l2_fwnode_bus_mipi_csi1 - CSI-1/CCP2 data bus structure
+ * @clock_inv: polarity of clock/strobe signal
+ *	       false - not inverted, true - inverted
+ * @strobe: false - data/clock, true - data/strobe
+ * @lane_polarity: the polarities of the clock (index 0) and data lanes
+		   index (1)
+ * @data_lane: the number of the data lane
+ * @clock_lane: the number of the clock lane
+ */
+struct v4l2_fwnode_bus_mipi_csi1 {
+	bool clock_inv;
+	bool strobe;
+	bool lane_polarity[2];
+	unsigned char data_lane;
+	unsigned char clock_lane;
+};
+
+/**
  * struct v4l2_fwnode_endpoint - the endpoint data structure
  * @base: fwnode endpoint of the v4l2_fwnode
  * @bus_type: bus type
@@ -72,6 +90,7 @@ struct v4l2_fwnode_endpoint {
 	enum v4l2_mbus_type bus_type;
 	union {
 		struct v4l2_fwnode_bus_parallel parallel;
+		struct v4l2_fwnode_bus_mipi_csi1 mipi_csi1;
 		struct v4l2_fwnode_bus_mipi_csi2 mipi_csi2;
 	} bus;
 	u64 *link_frequencies;
diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h
index 34cc99e093ef..315c167a95dc 100644
--- a/include/media/v4l2-mediabus.h
+++ b/include/media/v4l2-mediabus.h
@@ -69,11 +69,15 @@
  * @V4L2_MBUS_PARALLEL:	parallel interface with hsync and vsync
  * @V4L2_MBUS_BT656:	parallel interface with embedded synchronisation, can
  *			also be used for BT.1120
+ * @V4L2_MBUS_CSI1:	MIPI CSI-1 serial interface
+ * @V4L2_MBUS_CCP2:	CCP2 (Compact Camera Port 2)
  * @V4L2_MBUS_CSI2:	MIPI CSI-2 serial interface
  */
 enum v4l2_mbus_type {
 	V4L2_MBUS_PARALLEL,
 	V4L2_MBUS_BT656,
+	V4L2_MBUS_CSI1,
+	V4L2_MBUS_CCP2,
 	V4L2_MBUS_CSI2,
 };
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 6/8] smiapp: add CCP2 support
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
                   ` (4 preceding siblings ...)
  2017-07-05 23:00 ` [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-05 23:00 ` [PATCH 7/8] omap3isp: Check for valid port in endpoints Sakari Ailus
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel

From: Pavel Machek <pavel@ucw.cz>

Add support for CCP2 connected SMIA sensors as found
on the Nokia N900.

Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/i2c/smiapp/smiapp-core.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/media/i2c/smiapp/smiapp-core.c b/drivers/media/i2c/smiapp/smiapp-core.c
index e0b0c032c4ac..aff55e1dffe7 100644
--- a/drivers/media/i2c/smiapp/smiapp-core.c
+++ b/drivers/media/i2c/smiapp/smiapp-core.c
@@ -2809,13 +2809,19 @@ static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev)
 	switch (bus_cfg->bus_type) {
 	case V4L2_MBUS_CSI2:
 		hwcfg->csi_signalling_mode = SMIAPP_CSI_SIGNALLING_MODE_CSI2;
+		hwcfg->lanes = bus_cfg->bus.mipi_csi2.num_data_lanes;
+		break;
+	case V4L2_MBUS_CCP2:
+		hwcfg->csi_signalling_mode = (bus_cfg->bus.mipi_csi1.strobe) ?
+		SMIAPP_CSI_SIGNALLING_MODE_CCP2_DATA_STROBE :
+		SMIAPP_CSI_SIGNALLING_MODE_CCP2_DATA_CLOCK;
+		hwcfg->lanes = 1;
 		break;
-		/* FIXME: add CCP2 support. */
 	default:
+		dev_err(dev, "unsupported bus %u\n", bus_cfg->bus_type);
 		goto out_err;
 	}
 
-	hwcfg->lanes = bus_cfg->bus.mipi_csi2.num_data_lanes;
 	dev_dbg(dev, "lanes %u\n", hwcfg->lanes);
 
 	/* NVM size is not mandatory */
@@ -2828,8 +2834,8 @@ static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev)
 		goto out_err;
 	}
 
-	dev_dbg(dev, "nvm %d, clk %d, csi %d\n", hwcfg->nvm_size,
-		hwcfg->ext_clk, hwcfg->csi_signalling_mode);
+	dev_dbg(dev, "nvm %d, clk %d, mode %d\n",
+		hwcfg->nvm_size, hwcfg->ext_clk, hwcfg->csi_signalling_mode);
 
 	if (!bus_cfg->nr_of_link_frequencies) {
 		dev_warn(dev, "no link frequencies defined\n");
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 7/8] omap3isp: Check for valid port in endpoints
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
                   ` (5 preceding siblings ...)
  2017-07-05 23:00 ` [PATCH 6/8] smiapp: add CCP2 support Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-06 11:11   ` Sebastian Reichel
  2017-07-05 23:00 ` [PATCH 8/8] omap3isp: Destroy CSI-2 phy mutexes in error and module removal Sakari Ailus
  2017-07-06 10:43 ` [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Pavel Machek
  8 siblings, 1 reply; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel

Check that we do have a valid port in an endpoint, return an error if not.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/platform/omap3isp/isp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
index 2d45bf471c82..0676be725d7c 100644
--- a/drivers/media/platform/omap3isp/isp.c
+++ b/drivers/media/platform/omap3isp/isp.c
@@ -2081,7 +2081,7 @@ static int isp_fwnode_parse(struct device *dev, struct fwnode_handle *fwnode,
 	default:
 		dev_warn(dev, "%s: invalid interface %u\n",
 			 to_of_node(fwnode)->full_name, vep.base.port);
-		break;
+		return -EINVAL;
 	}
 
 	return 0;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 8/8] omap3isp: Destroy CSI-2 phy mutexes in error and module removal
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
                   ` (6 preceding siblings ...)
  2017-07-05 23:00 ` [PATCH 7/8] omap3isp: Check for valid port in endpoints Sakari Ailus
@ 2017-07-05 23:00 ` Sakari Ailus
  2017-07-06 10:43 ` [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Pavel Machek
  8 siblings, 0 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-05 23:00 UTC (permalink / raw)
  To: linux-media; +Cc: pavel

The CSI-2 phy driver did initialise mutexes in its init function but there
was no corresponding cleanup function destroying them. Fix that. Also
clean up ISP module initialisation a little.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/platform/omap3isp/isp.c       | 6 ++++--
 drivers/media/platform/omap3isp/ispcsiphy.c | 6 ++++++
 drivers/media/platform/omap3isp/ispcsiphy.h | 1 +
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
index 0676be725d7c..7028bbe13b69 100644
--- a/drivers/media/platform/omap3isp/isp.c
+++ b/drivers/media/platform/omap3isp/isp.c
@@ -1859,6 +1859,7 @@ static void isp_cleanup_modules(struct isp_device *isp)
 	omap3isp_ccdc_cleanup(isp);
 	omap3isp_ccp2_cleanup(isp);
 	omap3isp_csi2_cleanup(isp);
+	omap3isp_csiphy_cleanup(isp);
 }
 
 static int isp_initialize_modules(struct isp_device *isp)
@@ -1868,7 +1869,7 @@ static int isp_initialize_modules(struct isp_device *isp)
 	ret = omap3isp_csiphy_init(isp);
 	if (ret < 0) {
 		dev_err(isp->dev, "CSI PHY initialization failed\n");
-		goto error_csiphy;
+		return ret;
 	}
 
 	ret = omap3isp_csi2_init(isp);
@@ -1937,7 +1938,8 @@ static int isp_initialize_modules(struct isp_device *isp)
 error_ccp2:
 	omap3isp_csi2_cleanup(isp);
 error_csi2:
-error_csiphy:
+	omap3isp_csiphy_cleanup(isp);
+
 	return ret;
 }
 
diff --git a/drivers/media/platform/omap3isp/ispcsiphy.c b/drivers/media/platform/omap3isp/ispcsiphy.c
index 871d4fe09c7f..83940e9d8291 100644
--- a/drivers/media/platform/omap3isp/ispcsiphy.c
+++ b/drivers/media/platform/omap3isp/ispcsiphy.c
@@ -345,3 +345,9 @@ int omap3isp_csiphy_init(struct isp_device *isp)
 
 	return 0;
 }
+
+void omap3isp_csiphy_cleanup(struct isp_device *isp)
+{
+	mutex_destroy(&isp->isp_csiphy1.mutex);
+	mutex_destroy(&isp->isp_csiphy2.mutex);
+}
diff --git a/drivers/media/platform/omap3isp/ispcsiphy.h b/drivers/media/platform/omap3isp/ispcsiphy.h
index 28b63b28f9f7..978ca5c80a6c 100644
--- a/drivers/media/platform/omap3isp/ispcsiphy.h
+++ b/drivers/media/platform/omap3isp/ispcsiphy.h
@@ -39,5 +39,6 @@ struct isp_csiphy {
 int omap3isp_csiphy_acquire(struct isp_csiphy *phy);
 void omap3isp_csiphy_release(struct isp_csiphy *phy);
 int omap3isp_csiphy_init(struct isp_device *isp);
+void omap3isp_csiphy_cleanup(struct isp_device *isp);
 
 #endif	/* OMAP3_ISP_CSI_PHY_H */
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes
  2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
                   ` (7 preceding siblings ...)
  2017-07-05 23:00 ` [PATCH 8/8] omap3isp: Destroy CSI-2 phy mutexes in error and module removal Sakari Ailus
@ 2017-07-06 10:43 ` Pavel Machek
  8 siblings, 0 replies; 20+ messages in thread
From: Pavel Machek @ 2017-07-06 10:43 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media

[-- Attachment #1: Type: text/plain, Size: 1309 bytes --]

Hi!

> Most of these patches have been posted to the list in some form or other
> already but a lot has happened since. Thus reposting. There are more
> patches in my ccp2 branch but they're not quite ready as such, for the
> reasons discussed previously.

I'm using Sakari's ccp2 branch as a basis of camera support for
N900. camera-fw5-6 branch on kernel.org has the code, and it works
rather well.

Yes, there's more work to be done (finishing the support in omap3isp,
connecting focus, flash, all the userland support, ...), but this is
good basis and is ready now.

Thus (for the series)

Acked-by: Pavel Machek <pavel@ucw.cz>
Tested-by: Pavel Machek <pavel@ucw.cz>

Best regards,
								Pavel
								
> 
> Pavel Machek (1):
>   smiapp: add CCP2 support
> 
> Sakari Ailus (7):
>   dt: bindings: Explicitly specify bus type
>   dt: bindings: Add strobe property for CCP2
>   v4l: fwnode: Call CSI2 bus csi2, not csi
>   v4l: fwnode: Obtain data bus type from FW
>   v4l: Add support for CSI-1 and CCP2 busses
>   omap3isp: Check for valid port in endpoints
>   omap3isp: Destroy CSI-2 phy mutexes in error and module removal


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 3/8] v4l: fwnode: Call CSI2 bus csi2, not csi
  2017-07-05 23:00 ` [PATCH 3/8] v4l: fwnode: Call CSI2 bus csi2, not csi Sakari Ailus
@ 2017-07-06 11:07   ` Sebastian Reichel
  0 siblings, 0 replies; 20+ messages in thread
From: Sebastian Reichel @ 2017-07-06 11:07 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media, pavel

[-- Attachment #1: Type: text/plain, Size: 1562 bytes --]

Hi,

On Thu, Jul 06, 2017 at 02:00:14AM +0300, Sakari Ailus wrote:
> The function to parse CSI2 bus parameters was called
> v4l2_fwnode_endpoint_parse_csi_bus(), rename it as
> v4l2_fwnode_endpoint_parse_csi2_bus() in anticipation of CSI1/CCP2
> support.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>

-- Sebastian

> ---
>  drivers/media/v4l2-core/v4l2-fwnode.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index 153c53ca3925..8df26010d006 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -28,8 +28,8 @@
>  
>  #include <media/v4l2-fwnode.h>
>  
> -static int v4l2_fwnode_endpoint_parse_csi_bus(struct fwnode_handle *fwnode,
> -					      struct v4l2_fwnode_endpoint *vep)
> +static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
> +					       struct v4l2_fwnode_endpoint *vep)
>  {
>  	struct v4l2_fwnode_bus_mipi_csi2 *bus = &vep->bus.mipi_csi2;
>  	bool have_clk_lane = false;
> @@ -176,7 +176,7 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
>  	memset(&vep->bus_type, 0, sizeof(*vep) -
>  	       offsetof(typeof(*vep), bus_type));
>  
> -	rval = v4l2_fwnode_endpoint_parse_csi_bus(fwnode, vep);
> +	rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
>  	if (rval)
>  		return rval;
>  	/*
> -- 
> 2.11.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4/8] v4l: fwnode: Obtain data bus type from FW
  2017-07-05 23:00 ` [PATCH 4/8] v4l: fwnode: Obtain data bus type from FW Sakari Ailus
@ 2017-07-06 11:08   ` Sebastian Reichel
  0 siblings, 0 replies; 20+ messages in thread
From: Sebastian Reichel @ 2017-07-06 11:08 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media, pavel, Sakari Ailus

[-- Attachment #1: Type: text/plain, Size: 1752 bytes --]

Hi,

On Thu, Jul 06, 2017 at 02:00:15AM +0300, Sakari Ailus wrote:
> From: Sakari Ailus <sakari.ailus@iki.fi>
> 
> Just obtain it. It'll actually get used soon with CSI-1/CCP2.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>

-- Sebastian

> ---
>  drivers/media/v4l2-core/v4l2-fwnode.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index 8df26010d006..d71dd3913cd9 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -28,6 +28,14 @@
>  
>  #include <media/v4l2-fwnode.h>
>  
> +enum v4l2_fwnode_bus_type {
> +	V4L2_FWNODE_BUS_TYPE_GUESS = 0,
> +	V4L2_FWNODE_BUS_TYPE_CSI2_CPHY,
> +	V4L2_FWNODE_BUS_TYPE_CSI1,
> +	V4L2_FWNODE_BUS_TYPE_CCP2,
> +	NR_OF_V4L2_FWNODE_BUS_TYPE,
> +};
> +
>  static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode,
>  					       struct v4l2_fwnode_endpoint *vep)
>  {
> @@ -168,6 +176,7 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
>  int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
>  			       struct v4l2_fwnode_endpoint *vep)
>  {
> +	u32 bus_type = 0;
>  	int rval;
>  
>  	fwnode_graph_parse_endpoint(fwnode, &vep->base);
> @@ -176,6 +185,8 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
>  	memset(&vep->bus_type, 0, sizeof(*vep) -
>  	       offsetof(typeof(*vep), bus_type));
>  
> +	fwnode_property_read_u32(fwnode, "bus-type", &bus_type);
> +
>  	rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
>  	if (rval)
>  		return rval;
> -- 
> 2.11.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses
  2017-07-05 23:00 ` [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses Sakari Ailus
@ 2017-07-06 11:08   ` Sebastian Reichel
  2017-07-19 19:37   ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 20+ messages in thread
From: Sebastian Reichel @ 2017-07-06 11:08 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media, pavel, Sakari Ailus

[-- Attachment #1: Type: text/plain, Size: 6620 bytes --]

Hi,

On Thu, Jul 06, 2017 at 02:00:16AM +0300, Sakari Ailus wrote:
> From: Sakari Ailus <sakari.ailus@iki.fi>
> 
> CCP2 and CSI-1, are older single data lane serial busses.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Signed-off-by: Pavel Machek <pavel@ucw.cz>

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>

-- Sebastian

> ---
>  drivers/media/platform/pxa_camera.c              |  3 ++
>  drivers/media/platform/soc_camera/soc_mediabus.c |  3 ++
>  drivers/media/v4l2-core/v4l2-fwnode.c            | 58 +++++++++++++++++++-----
>  include/media/v4l2-fwnode.h                      | 19 ++++++++
>  include/media/v4l2-mediabus.h                    |  4 ++
>  5 files changed, 76 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c
> index 399095170b6e..17e797c9559f 100644
> --- a/drivers/media/platform/pxa_camera.c
> +++ b/drivers/media/platform/pxa_camera.c
> @@ -638,6 +638,9 @@ static unsigned int pxa_mbus_config_compatible(const struct v4l2_mbus_config *cf
>  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
>  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
>  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> +	default:
> +		__WARN();
> +		return -EINVAL;
>  	}
>  	return 0;
>  }
> diff --git a/drivers/media/platform/soc_camera/soc_mediabus.c b/drivers/media/platform/soc_camera/soc_mediabus.c
> index 57581f626f4c..43192d80beef 100644
> --- a/drivers/media/platform/soc_camera/soc_mediabus.c
> +++ b/drivers/media/platform/soc_camera/soc_mediabus.c
> @@ -508,6 +508,9 @@ unsigned int soc_mbus_config_compatible(const struct v4l2_mbus_config *cfg,
>  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
>  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
>  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> +	default:
> +		__WARN();
> +		return -EINVAL;
>  	}
>  	return 0;
>  }
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index d71dd3913cd9..76a88f210cb6 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -154,6 +154,31 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
>  
>  }
>  
> +void v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode,
> +					 struct v4l2_fwnode_endpoint *vep,
> +					 u32 bus_type)
> +{
> +       struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1;
> +       u32 v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "clock-inv", &v))
> +               bus->clock_inv = v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "strobe", &v))
> +               bus->strobe = v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "data-lanes", &v))
> +               bus->data_lane = v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v))
> +               bus->clock_lane = v;
> +
> +       if (bus_type == V4L2_FWNODE_BUS_TYPE_CCP2)
> +	       vep->bus_type = V4L2_MBUS_CCP2;
> +       else
> +	       vep->bus_type = V4L2_MBUS_CSI1;
> +}
> +
>  /**
>   * v4l2_fwnode_endpoint_parse() - parse all fwnode node properties
>   * @fwnode: pointer to the endpoint's fwnode handle
> @@ -187,17 +212,28 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode,
>  
>  	fwnode_property_read_u32(fwnode, "bus-type", &bus_type);
>  
> -	rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
> -	if (rval)
> -		return rval;
> -	/*
> -	 * Parse the parallel video bus properties only if none
> -	 * of the MIPI CSI-2 specific properties were found.
> -	 */
> -	if (vep->bus.mipi_csi2.flags == 0)
> -		v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep);
> -
> -	return 0;
> +	switch (bus_type) {
> +	case V4L2_FWNODE_BUS_TYPE_GUESS:
> +		rval = v4l2_fwnode_endpoint_parse_csi2_bus(fwnode, vep);
> +		if (rval)
> +			return rval;
> +		/*
> +		 * Parse the parallel video bus properties only if none
> +		 * of the MIPI CSI-2 specific properties were found.
> +		 */
> +		if (vep->bus.mipi_csi2.flags == 0)
> +			v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep);
> +
> +		return 0;
> +	case V4L2_FWNODE_BUS_TYPE_CCP2:
> +	case V4L2_FWNODE_BUS_TYPE_CSI1:
> +		v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, bus_type);
> +
> +		return 0;
> +	default:
> +		pr_warn("unsupported bus type %u\n", bus_type);
> +		return -EINVAL;
> +	}
>  }
>  EXPORT_SYMBOL_GPL(v4l2_fwnode_endpoint_parse);
>  
> diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h
> index ecc1233a873e..29ae22bbbbaf 100644
> --- a/include/media/v4l2-fwnode.h
> +++ b/include/media/v4l2-fwnode.h
> @@ -56,6 +56,24 @@ struct v4l2_fwnode_bus_parallel {
>  };
>  
>  /**
> + * struct v4l2_fwnode_bus_mipi_csi1 - CSI-1/CCP2 data bus structure
> + * @clock_inv: polarity of clock/strobe signal
> + *	       false - not inverted, true - inverted
> + * @strobe: false - data/clock, true - data/strobe
> + * @lane_polarity: the polarities of the clock (index 0) and data lanes
> +		   index (1)
> + * @data_lane: the number of the data lane
> + * @clock_lane: the number of the clock lane
> + */
> +struct v4l2_fwnode_bus_mipi_csi1 {
> +	bool clock_inv;
> +	bool strobe;
> +	bool lane_polarity[2];
> +	unsigned char data_lane;
> +	unsigned char clock_lane;
> +};
> +
> +/**
>   * struct v4l2_fwnode_endpoint - the endpoint data structure
>   * @base: fwnode endpoint of the v4l2_fwnode
>   * @bus_type: bus type
> @@ -72,6 +90,7 @@ struct v4l2_fwnode_endpoint {
>  	enum v4l2_mbus_type bus_type;
>  	union {
>  		struct v4l2_fwnode_bus_parallel parallel;
> +		struct v4l2_fwnode_bus_mipi_csi1 mipi_csi1;
>  		struct v4l2_fwnode_bus_mipi_csi2 mipi_csi2;
>  	} bus;
>  	u64 *link_frequencies;
> diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h
> index 34cc99e093ef..315c167a95dc 100644
> --- a/include/media/v4l2-mediabus.h
> +++ b/include/media/v4l2-mediabus.h
> @@ -69,11 +69,15 @@
>   * @V4L2_MBUS_PARALLEL:	parallel interface with hsync and vsync
>   * @V4L2_MBUS_BT656:	parallel interface with embedded synchronisation, can
>   *			also be used for BT.1120
> + * @V4L2_MBUS_CSI1:	MIPI CSI-1 serial interface
> + * @V4L2_MBUS_CCP2:	CCP2 (Compact Camera Port 2)
>   * @V4L2_MBUS_CSI2:	MIPI CSI-2 serial interface
>   */
>  enum v4l2_mbus_type {
>  	V4L2_MBUS_PARALLEL,
>  	V4L2_MBUS_BT656,
> +	V4L2_MBUS_CSI1,
> +	V4L2_MBUS_CCP2,
>  	V4L2_MBUS_CSI2,
>  };
>  
> -- 
> 2.11.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 7/8] omap3isp: Check for valid port in endpoints
  2017-07-05 23:00 ` [PATCH 7/8] omap3isp: Check for valid port in endpoints Sakari Ailus
@ 2017-07-06 11:11   ` Sebastian Reichel
  2017-07-07 13:04     ` Sakari Ailus
  0 siblings, 1 reply; 20+ messages in thread
From: Sebastian Reichel @ 2017-07-06 11:11 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media, pavel

[-- Attachment #1: Type: text/plain, Size: 948 bytes --]

Hi,

On Thu, Jul 06, 2017 at 02:00:18AM +0300, Sakari Ailus wrote:
> Check that we do have a valid port in an endpoint, return an error if not.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>

-- Sebastian

> ---
>  drivers/media/platform/omap3isp/isp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
> index 2d45bf471c82..0676be725d7c 100644
> --- a/drivers/media/platform/omap3isp/isp.c
> +++ b/drivers/media/platform/omap3isp/isp.c
> @@ -2081,7 +2081,7 @@ static int isp_fwnode_parse(struct device *dev, struct fwnode_handle *fwnode,
>  	default:
>  		dev_warn(dev, "%s: invalid interface %u\n",
>  			 to_of_node(fwnode)->full_name, vep.base.port);
> -		break;
> +		return -EINVAL;
>  	}
>  
>  	return 0;
> -- 
> 2.11.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 7/8] omap3isp: Check for valid port in endpoints
  2017-07-06 11:11   ` Sebastian Reichel
@ 2017-07-07 13:04     ` Sakari Ailus
  2017-07-13 11:12       ` Pavel Machek
  0 siblings, 1 reply; 20+ messages in thread
From: Sakari Ailus @ 2017-07-07 13:04 UTC (permalink / raw)
  To: Sebastian Reichel; +Cc: Sakari Ailus, linux-media, pavel

On Thu, Jul 06, 2017 at 01:11:49PM +0200, Sebastian Reichel wrote:
> Hi,
> 
> On Thu, Jul 06, 2017 at 02:00:18AM +0300, Sakari Ailus wrote:
> > Check that we do have a valid port in an endpoint, return an error if not.
> > 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> 
> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>

Thanks for the reviews, Sebastian and Pavel!

I'll send a pull request on these for 4.14 once we have -rc1 in the media
tree.

-- 
Sakari Ailus
e-mail: sakari.ailus@iki.fi	XMPP: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 7/8] omap3isp: Check for valid port in endpoints
  2017-07-07 13:04     ` Sakari Ailus
@ 2017-07-13 11:12       ` Pavel Machek
  0 siblings, 0 replies; 20+ messages in thread
From: Pavel Machek @ 2017-07-13 11:12 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Sebastian Reichel, Sakari Ailus, linux-media

[-- Attachment #1: Type: text/plain, Size: 2235 bytes --]

Hi!

> > On Thu, Jul 06, 2017 at 02:00:18AM +0300, Sakari Ailus wrote:
> > > Check that we do have a valid port in an endpoint, return an error if not.
> > > 
> > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > 
> > Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
> 
> Thanks for the reviews, Sebastian and Pavel!
> 
> I'll send a pull request on these for 4.14 once we have -rc1 in the media
> tree.

I can update my patches when updated ccp2 branch is ready.

And actually, I'd quite like to get rest of support ready for 4.14,
too. I believe we are close enough.

I re-checked, and it seems to work w/o the "smiapp-pll: Take existing
divisor into account in minimum divisor check" patch; so with
"omap3isp: add CSI1 support" plus the other ccp2 patches, plus dts
changes, we should be ok.

Best regards,
									Pavel

commit eba2751794239780efb256ce7079294a4d4c6e74
Author: Pavel <pavel@ucw.cz>
Date:   Mon Feb 13 21:18:27 2017 +0100

    
    
    From: Sakari Ailus <sakari.ailus@iki.fi>
    
    Required added multiplier (and divisor) calculation did not take into
    account the existing divisor when checking the values against the
    minimum divisor. Do just that.
    
    Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
    Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>

diff --git a/drivers/media/i2c/smiapp-pll.c b/drivers/media/i2c/smiapp-pll.c
index 771db56..0ada972 100644
--- a/drivers/media/i2c/smiapp-pll.c
+++ b/drivers/media/i2c/smiapp-pll.c
@@ -227,7 +227,8 @@ static int __smiapp_pll_calculate(
 
 	more_mul_factor = lcm(div, pll->pre_pll_clk_div) / div;
 	dev_dbg(dev, "more_mul_factor: %u\n", more_mul_factor);
-	more_mul_factor = lcm(more_mul_factor, op_limits->min_sys_clk_div);
+	more_mul_factor = lcm(more_mul_factor,
+			      DIV_ROUND_UP(op_limits->min_sys_clk_div, div));
 	dev_dbg(dev, "more_mul_factor: min_op_sys_clk_div: %d\n",
 		more_mul_factor);
 	i = roundup(more_mul_min, more_mul_factor);

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses
  2017-07-05 23:00 ` [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses Sakari Ailus
  2017-07-06 11:08   ` Sebastian Reichel
@ 2017-07-19 19:37   ` Mauro Carvalho Chehab
  2017-07-19 20:53     ` Sakari Ailus
  1 sibling, 1 reply; 20+ messages in thread
From: Mauro Carvalho Chehab @ 2017-07-19 19:37 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media, pavel, Sakari Ailus

Em Thu,  6 Jul 2017 02:00:16 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> escreveu:

> From: Sakari Ailus <sakari.ailus@iki.fi>
> 
> CCP2 and CSI-1, are older single data lane serial busses.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Signed-off-by: Pavel Machek <pavel@ucw.cz>
> ---
>  drivers/media/platform/pxa_camera.c              |  3 ++
>  drivers/media/platform/soc_camera/soc_mediabus.c |  3 ++
>  drivers/media/v4l2-core/v4l2-fwnode.c            | 58 +++++++++++++++++++-----
>  include/media/v4l2-fwnode.h                      | 19 ++++++++
>  include/media/v4l2-mediabus.h                    |  4 ++
>  5 files changed, 76 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c
> index 399095170b6e..17e797c9559f 100644
> --- a/drivers/media/platform/pxa_camera.c
> +++ b/drivers/media/platform/pxa_camera.c
> @@ -638,6 +638,9 @@ static unsigned int pxa_mbus_config_compatible(const struct v4l2_mbus_config *cf
>  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
>  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
>  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> +	default:
> +		__WARN();
> +		return -EINVAL;
>  	}
>  	return 0;
>  }
> diff --git a/drivers/media/platform/soc_camera/soc_mediabus.c b/drivers/media/platform/soc_camera/soc_mediabus.c
> index 57581f626f4c..43192d80beef 100644
> --- a/drivers/media/platform/soc_camera/soc_mediabus.c
> +++ b/drivers/media/platform/soc_camera/soc_mediabus.c
> @@ -508,6 +508,9 @@ unsigned int soc_mbus_config_compatible(const struct v4l2_mbus_config *cfg,
>  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
>  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
>  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> +	default:
> +		__WARN();
> +		return -EINVAL;
>  	}
>  	return 0;
>  }
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index d71dd3913cd9..76a88f210cb6 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -154,6 +154,31 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
>  
>  }
>  
> +void v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode,
> +					 struct v4l2_fwnode_endpoint *vep,
> +					 u32 bus_type)
> +{
> +       struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1;
> +       u32 v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "clock-inv", &v))
> +               bus->clock_inv = v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "strobe", &v))
> +               bus->strobe = v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "data-lanes", &v))
> +               bus->data_lane = v;
> +
> +       if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v))
> +               bus->clock_lane = v;
> +
> +       if (bus_type == V4L2_FWNODE_BUS_TYPE_CCP2)
> +	       vep->bus_type = V4L2_MBUS_CCP2;
> +       else
> +	       vep->bus_type = V4L2_MBUS_CSI1;
> +}
> +

This function is indented with whitespaces! Next time, please check with
checkpatch.

I fixed when merging it upstream.

Thanks,
Mauro

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses
  2017-07-19 19:37   ` Mauro Carvalho Chehab
@ 2017-07-19 20:53     ` Sakari Ailus
  2017-07-19 20:56       ` Mauro Carvalho Chehab
  2017-07-20  7:32       ` Pavel Machek
  0 siblings, 2 replies; 20+ messages in thread
From: Sakari Ailus @ 2017-07-19 20:53 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: Sakari Ailus, linux-media, pavel

On Wed, Jul 19, 2017 at 04:37:51PM -0300, Mauro Carvalho Chehab wrote:
> Em Thu,  6 Jul 2017 02:00:16 +0300
> Sakari Ailus <sakari.ailus@linux.intel.com> escreveu:
> 
> > From: Sakari Ailus <sakari.ailus@iki.fi>
> > 
> > CCP2 and CSI-1, are older single data lane serial busses.
> > 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > ---
> >  drivers/media/platform/pxa_camera.c              |  3 ++
> >  drivers/media/platform/soc_camera/soc_mediabus.c |  3 ++
> >  drivers/media/v4l2-core/v4l2-fwnode.c            | 58 +++++++++++++++++++-----
> >  include/media/v4l2-fwnode.h                      | 19 ++++++++
> >  include/media/v4l2-mediabus.h                    |  4 ++
> >  5 files changed, 76 insertions(+), 11 deletions(-)
> > 
> > diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c
> > index 399095170b6e..17e797c9559f 100644
> > --- a/drivers/media/platform/pxa_camera.c
> > +++ b/drivers/media/platform/pxa_camera.c
> > @@ -638,6 +638,9 @@ static unsigned int pxa_mbus_config_compatible(const struct v4l2_mbus_config *cf
> >  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
> >  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
> >  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> > +	default:
> > +		__WARN();
> > +		return -EINVAL;
> >  	}
> >  	return 0;
> >  }
> > diff --git a/drivers/media/platform/soc_camera/soc_mediabus.c b/drivers/media/platform/soc_camera/soc_mediabus.c
> > index 57581f626f4c..43192d80beef 100644
> > --- a/drivers/media/platform/soc_camera/soc_mediabus.c
> > +++ b/drivers/media/platform/soc_camera/soc_mediabus.c
> > @@ -508,6 +508,9 @@ unsigned int soc_mbus_config_compatible(const struct v4l2_mbus_config *cfg,
> >  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
> >  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
> >  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> > +	default:
> > +		__WARN();
> > +		return -EINVAL;
> >  	}
> >  	return 0;
> >  }
> > diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> > index d71dd3913cd9..76a88f210cb6 100644
> > --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> > +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> > @@ -154,6 +154,31 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
> >  
> >  }
> >  
> > +void v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode,
> > +					 struct v4l2_fwnode_endpoint *vep,
> > +					 u32 bus_type)
> > +{
> > +       struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1;
> > +       u32 v;
> > +
> > +       if (!fwnode_property_read_u32(fwnode, "clock-inv", &v))
> > +               bus->clock_inv = v;
> > +
> > +       if (!fwnode_property_read_u32(fwnode, "strobe", &v))
> > +               bus->strobe = v;
> > +
> > +       if (!fwnode_property_read_u32(fwnode, "data-lanes", &v))
> > +               bus->data_lane = v;
> > +
> > +       if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v))
> > +               bus->clock_lane = v;
> > +
> > +       if (bus_type == V4L2_FWNODE_BUS_TYPE_CCP2)
> > +	       vep->bus_type = V4L2_MBUS_CCP2;
> > +       else
> > +	       vep->bus_type = V4L2_MBUS_CSI1;
> > +}
> > +
> 
> This function is indented with whitespaces! Next time, please check with
> checkpatch.
> 
> I fixed when merging it upstream.

Well, what can I say?

Apologies for the collateral damage, and thanks! :-)

-- 
Regards,

Sakari Ailus
e-mail: sakari.ailus@iki.fi	XMPP: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses
  2017-07-19 20:53     ` Sakari Ailus
@ 2017-07-19 20:56       ` Mauro Carvalho Chehab
  2017-07-20  7:32       ` Pavel Machek
  1 sibling, 0 replies; 20+ messages in thread
From: Mauro Carvalho Chehab @ 2017-07-19 20:56 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Sakari Ailus, linux-media, pavel

Em Wed, 19 Jul 2017 23:53:30 +0300
Sakari Ailus <sakari.ailus@iki.fi> escreveu:

> On Wed, Jul 19, 2017 at 04:37:51PM -0300, Mauro Carvalho Chehab wrote:
> > Em Thu,  6 Jul 2017 02:00:16 +0300
> > Sakari Ailus <sakari.ailus@linux.intel.com> escreveu:
> >   
> > > From: Sakari Ailus <sakari.ailus@iki.fi>
> > > 
> > > CCP2 and CSI-1, are older single data lane serial busses.
> > > 
> > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > > ---
> > >  drivers/media/platform/pxa_camera.c              |  3 ++
> > >  drivers/media/platform/soc_camera/soc_mediabus.c |  3 ++
> > >  drivers/media/v4l2-core/v4l2-fwnode.c            | 58 +++++++++++++++++++-----
> > >  include/media/v4l2-fwnode.h                      | 19 ++++++++
> > >  include/media/v4l2-mediabus.h                    |  4 ++
> > >  5 files changed, 76 insertions(+), 11 deletions(-)
> > > 
> > > diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c
> > > index 399095170b6e..17e797c9559f 100644
> > > --- a/drivers/media/platform/pxa_camera.c
> > > +++ b/drivers/media/platform/pxa_camera.c
> > > @@ -638,6 +638,9 @@ static unsigned int pxa_mbus_config_compatible(const struct v4l2_mbus_config *cf
> > >  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
> > >  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
> > >  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> > > +	default:
> > > +		__WARN();
> > > +		return -EINVAL;
> > >  	}
> > >  	return 0;
> > >  }
> > > diff --git a/drivers/media/platform/soc_camera/soc_mediabus.c b/drivers/media/platform/soc_camera/soc_mediabus.c
> > > index 57581f626f4c..43192d80beef 100644
> > > --- a/drivers/media/platform/soc_camera/soc_mediabus.c
> > > +++ b/drivers/media/platform/soc_camera/soc_mediabus.c
> > > @@ -508,6 +508,9 @@ unsigned int soc_mbus_config_compatible(const struct v4l2_mbus_config *cfg,
> > >  		mipi_clock = common_flags & (V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK |
> > >  					     V4L2_MBUS_CSI2_CONTINUOUS_CLOCK);
> > >  		return (!mipi_lanes || !mipi_clock) ? 0 : common_flags;
> > > +	default:
> > > +		__WARN();
> > > +		return -EINVAL;
> > >  	}
> > >  	return 0;
> > >  }
> > > diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> > > index d71dd3913cd9..76a88f210cb6 100644
> > > --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> > > +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> > > @@ -154,6 +154,31 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus(
> > >  
> > >  }
> > >  
> > > +void v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode,
> > > +					 struct v4l2_fwnode_endpoint *vep,
> > > +					 u32 bus_type)
> > > +{
> > > +       struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1;
> > > +       u32 v;
> > > +
> > > +       if (!fwnode_property_read_u32(fwnode, "clock-inv", &v))
> > > +               bus->clock_inv = v;
> > > +
> > > +       if (!fwnode_property_read_u32(fwnode, "strobe", &v))
> > > +               bus->strobe = v;
> > > +
> > > +       if (!fwnode_property_read_u32(fwnode, "data-lanes", &v))
> > > +               bus->data_lane = v;
> > > +
> > > +       if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v))
> > > +               bus->clock_lane = v;
> > > +
> > > +       if (bus_type == V4L2_FWNODE_BUS_TYPE_CCP2)
> > > +	       vep->bus_type = V4L2_MBUS_CCP2;
> > > +       else
> > > +	       vep->bus_type = V4L2_MBUS_CSI1;
> > > +}
> > > +  
> > 
> > This function is indented with whitespaces! Next time, please check with
> > checkpatch.
> > 
> > I fixed when merging it upstream.  
> 
> Well, what can I say?
> 
> Apologies for the collateral damage, and thanks! :-)

Nevermind. From time to time, I end fixing small things like this
while merging ;)

I suspect that you cut and paste this function from some other
place, as all lines inside it started with 7 spaces...

Regards,
Mauro

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses
  2017-07-19 20:53     ` Sakari Ailus
  2017-07-19 20:56       ` Mauro Carvalho Chehab
@ 2017-07-20  7:32       ` Pavel Machek
  1 sibling, 0 replies; 20+ messages in thread
From: Pavel Machek @ 2017-07-20  7:32 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Mauro Carvalho Chehab, Sakari Ailus, linux-media

[-- Attachment #1: Type: text/plain, Size: 825 bytes --]

Hi!

> > > +void v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode,
> > > +					 struct v4l2_fwnode_endpoint *vep,
> > > +					 u32 bus_type)
> > > +{
> > > +       struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1;
> > > +       u32 v;
> > > +
> > > +       if (!fwnode_property_read_u32(fwnode, "clock-inv", &v))
> > > +               bus->clock_inv = v;
...
> > This function is indented with whitespaces! Next time, please check with
> > checkpatch.
> > 
> > I fixed when merging it upstream.
> 
> Well, what can I say?

You can probably blame Pavel copy/pasting patches from emails.

Sorry about that.

Best regards,
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2017-07-20  7:33 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-05 23:00 [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Sakari Ailus
2017-07-05 23:00 ` [PATCH 1/8] dt: bindings: Explicitly specify bus type Sakari Ailus
2017-07-05 23:00 ` [PATCH 2/8] dt: bindings: Add strobe property for CCP2 Sakari Ailus
2017-07-05 23:00 ` [PATCH 3/8] v4l: fwnode: Call CSI2 bus csi2, not csi Sakari Ailus
2017-07-06 11:07   ` Sebastian Reichel
2017-07-05 23:00 ` [PATCH 4/8] v4l: fwnode: Obtain data bus type from FW Sakari Ailus
2017-07-06 11:08   ` Sebastian Reichel
2017-07-05 23:00 ` [PATCH 5/8] v4l: Add support for CSI-1 and CCP2 busses Sakari Ailus
2017-07-06 11:08   ` Sebastian Reichel
2017-07-19 19:37   ` Mauro Carvalho Chehab
2017-07-19 20:53     ` Sakari Ailus
2017-07-19 20:56       ` Mauro Carvalho Chehab
2017-07-20  7:32       ` Pavel Machek
2017-07-05 23:00 ` [PATCH 6/8] smiapp: add CCP2 support Sakari Ailus
2017-07-05 23:00 ` [PATCH 7/8] omap3isp: Check for valid port in endpoints Sakari Ailus
2017-07-06 11:11   ` Sebastian Reichel
2017-07-07 13:04     ` Sakari Ailus
2017-07-13 11:12       ` Pavel Machek
2017-07-05 23:00 ` [PATCH 8/8] omap3isp: Destroy CSI-2 phy mutexes in error and module removal Sakari Ailus
2017-07-06 10:43 ` [PATCH 0/8] Prepare for CCP2 / CSI-1 support, omap3isp fixes Pavel Machek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.