[v4,0/7] TVP5150 new features
mbox series

Message ID 20190129160757.2314-1-m.felsch@pengutronix.de
Headers show
Series
  • TVP5150 new features
Related show

Message

Marco Felsch Jan. 29, 2019, 4:07 p.m. UTC
Hi,

this is the v4 of my TVP5150 series which adds the of_graph support.
Basically this series was just rebased on top of the media-tree/master
as mentioned by Mauro [1].

I dropped commit ("media: tvp5150: fix irq_request error path during
probe") since it was already applied and commit ("media: v4l2-subdev:
fix v4l2_subdev_get_try_* dependency") as mentioned by Sakari [2].

To have a quick overview I added the range-diff to the v3 below.

[1] https://www.spinics.net/lists/devicetree/msg262787.html
[2] https://www.spinics.net/lists/devicetree/msg249354.html

Javier Martinez Canillas (1):
  partial revert of "[media] tvp5150: add HW input connectors support"

Marco Felsch (5):
  media: tvp5150: add input source selection of_graph support
  media: dt-bindings: tvp5150: Add input port connectors DT bindings
  media: v4l2-subdev: add stubs for v4l2_subdev_get_try_*
  media: tvp5150: add FORMAT_TRY support for get/set selection handlers
  media: tvp5150: add s_power callback

Michael Tretter (1):
  media: tvp5150: initialize subdev before parsing device tree

 .../devicetree/bindings/media/i2c/tvp5150.txt |  92 ++-
 drivers/media/i2c/tvp5150.c                   | 652 +++++++++++++-----
 include/dt-bindings/media/tvp5150.h           |   2 -
 include/media/v4l2-subdev.h                   |  15 +-
 4 files changed, 579 insertions(+), 182 deletions(-)

Range-diff against v3:
 1:  c3d26f4af009 !  1:  4a35a7fb3a24 partial revert of "[media] tvp5150: add HW input connectors support"
    @@ -21,6 +21,7 @@
         [m.felsch@pengutronix.de: rm TVP5150_INPUT_NUM define]
         Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
         Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    +    Acked-by: Rob Herring <robh@kernel.org>
     
      diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
      --- a/drivers/media/i2c/tvp5150.c
    @@ -131,7 +132,7 @@
       ****************************************************************************/
     @@
      {
    - 	struct v4l2_fwnode_endpoint bus_cfg;
    + 	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
      	struct device_node *ep;
     -#ifdef CONFIG_MEDIA_CONTROLLER
     -	struct device_node *connectors, *child;
 2:  88f4c4a30a08 <  -:  ------------ media: tvp5150: fix irq_request error path during probe
 3:  48b34c9c9e5f !  2:  f5ca703e5523 media: tvp5150: add input source selection of_graph support
    @@ -21,6 +21,11 @@
         ---
         Changelog:
     
    +    v4:
    +     - rebase on top of media_tree/master, fix merge conflict due to commit
    +       60359a28d592 ("media: v4l: fwnode: Initialise the V4L2 fwnode endpoints
    +       to zero")
    +
         v3:
         - probe(): s/err/err_free_v4l2_ctrls
         - drop MC dependency for tvp5150_pads
    @@ -49,13 +54,11 @@
      #define dprintk0(__dev, __arg...) dev_dbg_lvl(__dev, 0, 0, __arg)
      
      enum tvp5150_pads {
    --       TVP5150_PAD_IF_INPUT,
    --       TVP5150_PAD_VID_OUT,
    --       TVP5150_NUM_PADS
    +-	TVP5150_PAD_IF_INPUT,
     +	TVP5150_PAD_AIP1A = TVP5150_COMPOSITE0,
     +	TVP5150_PAD_AIP1B,
    -+	TVP5150_PAD_VID_OUT,
    -+	TVP5150_NUM_PADS
    + 	TVP5150_PAD_VID_OUT,
    + 	TVP5150_NUM_PADS
      };
      
     +#if defined(CONFIG_MEDIA_CONTROLLER)
    @@ -345,7 +348,7 @@
     +#if defined(CONFIG_MEDIA_CONTROLLER)
     +static int tvp5150_add_of_connectors(struct tvp5150 *decoder)
      {
    --	struct v4l2_fwnode_endpoint bus_cfg;
    +-	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
     -	struct device_node *ep;
     -	unsigned int flags;
     -	int ret = 0;
    @@ -464,7 +467,7 @@
     +static int tvp5150_parse_dt(struct tvp5150 *decoder, struct device_node *np)
     +{
     +	struct device *dev = decoder->sd.dev;
    -+	struct v4l2_fwnode_endpoint bus_cfg;
    ++	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
     +	struct device_node *ep_np;
     +	unsigned int flags;
     +	int ret, i = 0, in = 0;
 4:  0b168180f4a4 !  3:  a7d06df79366 media: dt-bindings: tvp5150: Add input port connectors DT bindings
    @@ -15,6 +15,7 @@
         how the input connectors for these devices should be defined in a DT.
     
         Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
    +    Reviewed-by: Rob Herring <robh@kernel.org>
     
         ---
         Changelog:
 5:  871eb653fcf3 =  4:  860087e6c286 media: v4l2-subdev: add stubs for v4l2_subdev_get_try_*
 6:  fb141d6c8098 <  -:  ------------ media: v4l2-subdev: fix v4l2_subdev_get_try_* dependency
 7:  795b4a45cb68 !  5:  fcd223cd1563 media: tvp5150: add FORMAT_TRY support for get/set selection handlers
    @@ -13,6 +13,13 @@
     
         Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
     
    +    ---
    +    Changelog:
    +
    +    v4:
    +     - fix merge conflict due to rebase on top of media-tree/master
    +     - __tvp5150_get_pad_crop(): cosmetic alignment fixes
    +
      diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
      --- a/drivers/media/i2c/tvp5150.c
      +++ b/drivers/media/i2c/tvp5150.c
    @@ -148,19 +155,19 @@
      
     -	regmap_write(decoder->regmap, TVP5150_VERT_BLANKING_START, rect.top);
     -	regmap_write(decoder->regmap, TVP5150_VERT_BLANKING_STOP,
    --		      rect.top + rect.height - hmax);
    +-		     rect.top + rect.height - hmax);
     -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_MSB,
    --		      rect.left >> TVP5150_CROP_SHIFT);
    +-		     rect.left >> TVP5150_CROP_SHIFT);
     -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_LSB,
    --		      rect.left | (1 << TVP5150_CROP_SHIFT));
    +-		     rect.left | (1 << TVP5150_CROP_SHIFT));
     -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_MSB,
    --		      (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
    --		      TVP5150_CROP_SHIFT);
    +-		     (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
    +-		     TVP5150_CROP_SHIFT);
     -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_LSB,
    --		      rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
    -+	__crop = __tvp5150_get_pad_crop(decoder, cfg, sel->pad,
    -+						  sel->which);
    -+
    +-		     rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
    ++	__crop = __tvp5150_get_pad_crop(decoder, cfg, sel->pad, sel->which);
    + 
    +-	decoder->rect = rect;
     +	/*
     +	 * Update output image size if the selection (crop) rectangle size or
     +	 * position has been modified.
    @@ -168,8 +175,7 @@
     +	if (!v4l2_rect_equal(&rect, __crop))
     +		if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE)
     +			__tvp5150_set_selection(sd, rect);
    - 
    --	decoder->rect = rect;
    ++
     +	*__crop = rect;
      
      	return 0;
    @@ -183,14 +189,14 @@
     -
      	switch (sel->target) {
      	case V4L2_SEL_TGT_CROP_BOUNDS:
    - 	case V4L2_SEL_TGT_CROP_DEFAULT:
    + 		sel->r.left = 0;
     @@
      			sel->r.height = TVP5150_V_MAX_OTHERS;
      		return 0;
      	case V4L2_SEL_TGT_CROP:
     -		sel->r = decoder->rect;
     +		sel->r = *__tvp5150_get_pad_crop(decoder, cfg, sel->pad,
    -+						      sel->which);
    ++						 sel->which);
      		return 0;
      	default:
      		return -EINVAL;
 8:  8d88797ba94c =  6:  08cc83bcb513 media: tvp5150: initialize subdev before parsing device tree
 9:  b152e29bc83e =  7:  1249b386cce0 media: tvp5150: add s_power callback

Comments

Marco Felsch Feb. 12, 2019, 4:09 p.m. UTC | #1
Hi Mauro,

gentle ping..

On 19-01-29 17:07, Marco Felsch wrote:
> Hi,
> 
> this is the v4 of my TVP5150 series which adds the of_graph support.
> Basically this series was just rebased on top of the media-tree/master
> as mentioned by Mauro [1].
> 
> I dropped commit ("media: tvp5150: fix irq_request error path during
> probe") since it was already applied and commit ("media: v4l2-subdev:
> fix v4l2_subdev_get_try_* dependency") as mentioned by Sakari [2].
> 
> To have a quick overview I added the range-diff to the v3 below.
> 
> [1] https://www.spinics.net/lists/devicetree/msg262787.html
> [2] https://www.spinics.net/lists/devicetree/msg249354.html
> 
> Javier Martinez Canillas (1):
>   partial revert of "[media] tvp5150: add HW input connectors support"
> 
> Marco Felsch (5):
>   media: tvp5150: add input source selection of_graph support
>   media: dt-bindings: tvp5150: Add input port connectors DT bindings
>   media: v4l2-subdev: add stubs for v4l2_subdev_get_try_*
>   media: tvp5150: add FORMAT_TRY support for get/set selection handlers
>   media: tvp5150: add s_power callback
> 
> Michael Tretter (1):
>   media: tvp5150: initialize subdev before parsing device tree
> 
>  .../devicetree/bindings/media/i2c/tvp5150.txt |  92 ++-
>  drivers/media/i2c/tvp5150.c                   | 652 +++++++++++++-----
>  include/dt-bindings/media/tvp5150.h           |   2 -
>  include/media/v4l2-subdev.h                   |  15 +-
>  4 files changed, 579 insertions(+), 182 deletions(-)
> 
> Range-diff against v3:
>  1:  c3d26f4af009 !  1:  4a35a7fb3a24 partial revert of "[media] tvp5150: add HW input connectors support"
>     @@ -21,6 +21,7 @@
>          [m.felsch@pengutronix.de: rm TVP5150_INPUT_NUM define]
>          Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
>          Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
>     +    Acked-by: Rob Herring <robh@kernel.org>
>      
>       diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
>       --- a/drivers/media/i2c/tvp5150.c
>     @@ -131,7 +132,7 @@
>        ****************************************************************************/
>      @@
>       {
>     - 	struct v4l2_fwnode_endpoint bus_cfg;
>     + 	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
>       	struct device_node *ep;
>      -#ifdef CONFIG_MEDIA_CONTROLLER
>      -	struct device_node *connectors, *child;
>  2:  88f4c4a30a08 <  -:  ------------ media: tvp5150: fix irq_request error path during probe
>  3:  48b34c9c9e5f !  2:  f5ca703e5523 media: tvp5150: add input source selection of_graph support
>     @@ -21,6 +21,11 @@
>          ---
>          Changelog:
>      
>     +    v4:
>     +     - rebase on top of media_tree/master, fix merge conflict due to commit
>     +       60359a28d592 ("media: v4l: fwnode: Initialise the V4L2 fwnode endpoints
>     +       to zero")
>     +
>          v3:
>          - probe(): s/err/err_free_v4l2_ctrls
>          - drop MC dependency for tvp5150_pads
>     @@ -49,13 +54,11 @@
>       #define dprintk0(__dev, __arg...) dev_dbg_lvl(__dev, 0, 0, __arg)
>       
>       enum tvp5150_pads {
>     --       TVP5150_PAD_IF_INPUT,
>     --       TVP5150_PAD_VID_OUT,
>     --       TVP5150_NUM_PADS
>     +-	TVP5150_PAD_IF_INPUT,
>      +	TVP5150_PAD_AIP1A = TVP5150_COMPOSITE0,
>      +	TVP5150_PAD_AIP1B,
>     -+	TVP5150_PAD_VID_OUT,
>     -+	TVP5150_NUM_PADS
>     + 	TVP5150_PAD_VID_OUT,
>     + 	TVP5150_NUM_PADS
>       };
>       
>      +#if defined(CONFIG_MEDIA_CONTROLLER)
>     @@ -345,7 +348,7 @@
>      +#if defined(CONFIG_MEDIA_CONTROLLER)
>      +static int tvp5150_add_of_connectors(struct tvp5150 *decoder)
>       {
>     --	struct v4l2_fwnode_endpoint bus_cfg;
>     +-	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
>      -	struct device_node *ep;
>      -	unsigned int flags;
>      -	int ret = 0;
>     @@ -464,7 +467,7 @@
>      +static int tvp5150_parse_dt(struct tvp5150 *decoder, struct device_node *np)
>      +{
>      +	struct device *dev = decoder->sd.dev;
>     -+	struct v4l2_fwnode_endpoint bus_cfg;
>     ++	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
>      +	struct device_node *ep_np;
>      +	unsigned int flags;
>      +	int ret, i = 0, in = 0;
>  4:  0b168180f4a4 !  3:  a7d06df79366 media: dt-bindings: tvp5150: Add input port connectors DT bindings
>     @@ -15,6 +15,7 @@
>          how the input connectors for these devices should be defined in a DT.
>      
>          Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
>     +    Reviewed-by: Rob Herring <robh@kernel.org>
>      
>          ---
>          Changelog:
>  5:  871eb653fcf3 =  4:  860087e6c286 media: v4l2-subdev: add stubs for v4l2_subdev_get_try_*
>  6:  fb141d6c8098 <  -:  ------------ media: v4l2-subdev: fix v4l2_subdev_get_try_* dependency
>  7:  795b4a45cb68 !  5:  fcd223cd1563 media: tvp5150: add FORMAT_TRY support for get/set selection handlers
>     @@ -13,6 +13,13 @@
>      
>          Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
>      
>     +    ---
>     +    Changelog:
>     +
>     +    v4:
>     +     - fix merge conflict due to rebase on top of media-tree/master
>     +     - __tvp5150_get_pad_crop(): cosmetic alignment fixes
>     +
>       diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
>       --- a/drivers/media/i2c/tvp5150.c
>       +++ b/drivers/media/i2c/tvp5150.c
>     @@ -148,19 +155,19 @@
>       
>      -	regmap_write(decoder->regmap, TVP5150_VERT_BLANKING_START, rect.top);
>      -	regmap_write(decoder->regmap, TVP5150_VERT_BLANKING_STOP,
>     --		      rect.top + rect.height - hmax);
>     +-		     rect.top + rect.height - hmax);
>      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_MSB,
>     --		      rect.left >> TVP5150_CROP_SHIFT);
>     +-		     rect.left >> TVP5150_CROP_SHIFT);
>      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_LSB,
>     --		      rect.left | (1 << TVP5150_CROP_SHIFT));
>     +-		     rect.left | (1 << TVP5150_CROP_SHIFT));
>      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_MSB,
>     --		      (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
>     --		      TVP5150_CROP_SHIFT);
>     +-		     (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
>     +-		     TVP5150_CROP_SHIFT);
>      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_LSB,
>     --		      rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
>     -+	__crop = __tvp5150_get_pad_crop(decoder, cfg, sel->pad,
>     -+						  sel->which);
>     -+
>     +-		     rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
>     ++	__crop = __tvp5150_get_pad_crop(decoder, cfg, sel->pad, sel->which);
>     + 
>     +-	decoder->rect = rect;
>      +	/*
>      +	 * Update output image size if the selection (crop) rectangle size or
>      +	 * position has been modified.
>     @@ -168,8 +175,7 @@
>      +	if (!v4l2_rect_equal(&rect, __crop))
>      +		if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE)
>      +			__tvp5150_set_selection(sd, rect);
>     - 
>     --	decoder->rect = rect;
>     ++
>      +	*__crop = rect;
>       
>       	return 0;
>     @@ -183,14 +189,14 @@
>      -
>       	switch (sel->target) {
>       	case V4L2_SEL_TGT_CROP_BOUNDS:
>     - 	case V4L2_SEL_TGT_CROP_DEFAULT:
>     + 		sel->r.left = 0;
>      @@
>       			sel->r.height = TVP5150_V_MAX_OTHERS;
>       		return 0;
>       	case V4L2_SEL_TGT_CROP:
>      -		sel->r = decoder->rect;
>      +		sel->r = *__tvp5150_get_pad_crop(decoder, cfg, sel->pad,
>     -+						      sel->which);
>     ++						 sel->which);
>       		return 0;
>       	default:
>       		return -EINVAL;
>  8:  8d88797ba94c =  6:  08cc83bcb513 media: tvp5150: initialize subdev before parsing device tree
>  9:  b152e29bc83e =  7:  1249b386cce0 media: tvp5150: add s_power callback
> -- 
> 2.20.1
> 
> 
>
Marco Felsch March 5, 2019, 9:46 a.m. UTC | #2
Hi Mauro,

it would be cool to receive some feedback. I hoped to get this in the
media_tree/master a long time ago..

Regards,
Marco

On 19-02-12 17:09, Marco Felsch wrote:
> Hi Mauro,
> 
> gentle ping..
> 
> On 19-01-29 17:07, Marco Felsch wrote:
> > Hi,
> > 
> > this is the v4 of my TVP5150 series which adds the of_graph support.
> > Basically this series was just rebased on top of the media-tree/master
> > as mentioned by Mauro [1].
> > 
> > I dropped commit ("media: tvp5150: fix irq_request error path during
> > probe") since it was already applied and commit ("media: v4l2-subdev:
> > fix v4l2_subdev_get_try_* dependency") as mentioned by Sakari [2].
> > 
> > To have a quick overview I added the range-diff to the v3 below.
> > 
> > [1] https://www.spinics.net/lists/devicetree/msg262787.html
> > [2] https://www.spinics.net/lists/devicetree/msg249354.html
> > 
> > Javier Martinez Canillas (1):
> >   partial revert of "[media] tvp5150: add HW input connectors support"
> > 
> > Marco Felsch (5):
> >   media: tvp5150: add input source selection of_graph support
> >   media: dt-bindings: tvp5150: Add input port connectors DT bindings
> >   media: v4l2-subdev: add stubs for v4l2_subdev_get_try_*
> >   media: tvp5150: add FORMAT_TRY support for get/set selection handlers
> >   media: tvp5150: add s_power callback
> > 
> > Michael Tretter (1):
> >   media: tvp5150: initialize subdev before parsing device tree
> > 
> >  .../devicetree/bindings/media/i2c/tvp5150.txt |  92 ++-
> >  drivers/media/i2c/tvp5150.c                   | 652 +++++++++++++-----
> >  include/dt-bindings/media/tvp5150.h           |   2 -
> >  include/media/v4l2-subdev.h                   |  15 +-
> >  4 files changed, 579 insertions(+), 182 deletions(-)
> > 
> > Range-diff against v3:
> >  1:  c3d26f4af009 !  1:  4a35a7fb3a24 partial revert of "[media] tvp5150: add HW input connectors support"
> >     @@ -21,6 +21,7 @@
> >          [m.felsch@pengutronix.de: rm TVP5150_INPUT_NUM define]
> >          Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> >          Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
> >     +    Acked-by: Rob Herring <robh@kernel.org>
> >      
> >       diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
> >       --- a/drivers/media/i2c/tvp5150.c
> >     @@ -131,7 +132,7 @@
> >        ****************************************************************************/
> >      @@
> >       {
> >     - 	struct v4l2_fwnode_endpoint bus_cfg;
> >     + 	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
> >       	struct device_node *ep;
> >      -#ifdef CONFIG_MEDIA_CONTROLLER
> >      -	struct device_node *connectors, *child;
> >  2:  88f4c4a30a08 <  -:  ------------ media: tvp5150: fix irq_request error path during probe
> >  3:  48b34c9c9e5f !  2:  f5ca703e5523 media: tvp5150: add input source selection of_graph support
> >     @@ -21,6 +21,11 @@
> >          ---
> >          Changelog:
> >      
> >     +    v4:
> >     +     - rebase on top of media_tree/master, fix merge conflict due to commit
> >     +       60359a28d592 ("media: v4l: fwnode: Initialise the V4L2 fwnode endpoints
> >     +       to zero")
> >     +
> >          v3:
> >          - probe(): s/err/err_free_v4l2_ctrls
> >          - drop MC dependency for tvp5150_pads
> >     @@ -49,13 +54,11 @@
> >       #define dprintk0(__dev, __arg...) dev_dbg_lvl(__dev, 0, 0, __arg)
> >       
> >       enum tvp5150_pads {
> >     --       TVP5150_PAD_IF_INPUT,
> >     --       TVP5150_PAD_VID_OUT,
> >     --       TVP5150_NUM_PADS
> >     +-	TVP5150_PAD_IF_INPUT,
> >      +	TVP5150_PAD_AIP1A = TVP5150_COMPOSITE0,
> >      +	TVP5150_PAD_AIP1B,
> >     -+	TVP5150_PAD_VID_OUT,
> >     -+	TVP5150_NUM_PADS
> >     + 	TVP5150_PAD_VID_OUT,
> >     + 	TVP5150_NUM_PADS
> >       };
> >       
> >      +#if defined(CONFIG_MEDIA_CONTROLLER)
> >     @@ -345,7 +348,7 @@
> >      +#if defined(CONFIG_MEDIA_CONTROLLER)
> >      +static int tvp5150_add_of_connectors(struct tvp5150 *decoder)
> >       {
> >     --	struct v4l2_fwnode_endpoint bus_cfg;
> >     +-	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
> >      -	struct device_node *ep;
> >      -	unsigned int flags;
> >      -	int ret = 0;
> >     @@ -464,7 +467,7 @@
> >      +static int tvp5150_parse_dt(struct tvp5150 *decoder, struct device_node *np)
> >      +{
> >      +	struct device *dev = decoder->sd.dev;
> >     -+	struct v4l2_fwnode_endpoint bus_cfg;
> >     ++	struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
> >      +	struct device_node *ep_np;
> >      +	unsigned int flags;
> >      +	int ret, i = 0, in = 0;
> >  4:  0b168180f4a4 !  3:  a7d06df79366 media: dt-bindings: tvp5150: Add input port connectors DT bindings
> >     @@ -15,6 +15,7 @@
> >          how the input connectors for these devices should be defined in a DT.
> >      
> >          Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> >     +    Reviewed-by: Rob Herring <robh@kernel.org>
> >      
> >          ---
> >          Changelog:
> >  5:  871eb653fcf3 =  4:  860087e6c286 media: v4l2-subdev: add stubs for v4l2_subdev_get_try_*
> >  6:  fb141d6c8098 <  -:  ------------ media: v4l2-subdev: fix v4l2_subdev_get_try_* dependency
> >  7:  795b4a45cb68 !  5:  fcd223cd1563 media: tvp5150: add FORMAT_TRY support for get/set selection handlers
> >     @@ -13,6 +13,13 @@
> >      
> >          Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> >      
> >     +    ---
> >     +    Changelog:
> >     +
> >     +    v4:
> >     +     - fix merge conflict due to rebase on top of media-tree/master
> >     +     - __tvp5150_get_pad_crop(): cosmetic alignment fixes
> >     +
> >       diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
> >       --- a/drivers/media/i2c/tvp5150.c
> >       +++ b/drivers/media/i2c/tvp5150.c
> >     @@ -148,19 +155,19 @@
> >       
> >      -	regmap_write(decoder->regmap, TVP5150_VERT_BLANKING_START, rect.top);
> >      -	regmap_write(decoder->regmap, TVP5150_VERT_BLANKING_STOP,
> >     --		      rect.top + rect.height - hmax);
> >     +-		     rect.top + rect.height - hmax);
> >      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_MSB,
> >     --		      rect.left >> TVP5150_CROP_SHIFT);
> >     +-		     rect.left >> TVP5150_CROP_SHIFT);
> >      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_LSB,
> >     --		      rect.left | (1 << TVP5150_CROP_SHIFT));
> >     +-		     rect.left | (1 << TVP5150_CROP_SHIFT));
> >      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_MSB,
> >     --		      (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
> >     --		      TVP5150_CROP_SHIFT);
> >     +-		     (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
> >     +-		     TVP5150_CROP_SHIFT);
> >      -	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_LSB,
> >     --		      rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
> >     -+	__crop = __tvp5150_get_pad_crop(decoder, cfg, sel->pad,
> >     -+						  sel->which);
> >     -+
> >     +-		     rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
> >     ++	__crop = __tvp5150_get_pad_crop(decoder, cfg, sel->pad, sel->which);
> >     + 
> >     +-	decoder->rect = rect;
> >      +	/*
> >      +	 * Update output image size if the selection (crop) rectangle size or
> >      +	 * position has been modified.
> >     @@ -168,8 +175,7 @@
> >      +	if (!v4l2_rect_equal(&rect, __crop))
> >      +		if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE)
> >      +			__tvp5150_set_selection(sd, rect);
> >     - 
> >     --	decoder->rect = rect;
> >     ++
> >      +	*__crop = rect;
> >       
> >       	return 0;
> >     @@ -183,14 +189,14 @@
> >      -
> >       	switch (sel->target) {
> >       	case V4L2_SEL_TGT_CROP_BOUNDS:
> >     - 	case V4L2_SEL_TGT_CROP_DEFAULT:
> >     + 		sel->r.left = 0;
> >      @@
> >       			sel->r.height = TVP5150_V_MAX_OTHERS;
> >       		return 0;
> >       	case V4L2_SEL_TGT_CROP:
> >      -		sel->r = decoder->rect;
> >      +		sel->r = *__tvp5150_get_pad_crop(decoder, cfg, sel->pad,
> >     -+						      sel->which);
> >     ++						 sel->which);
> >       		return 0;
> >       	default:
> >       		return -EINVAL;
> >  8:  8d88797ba94c =  6:  08cc83bcb513 media: tvp5150: initialize subdev before parsing device tree
> >  9:  b152e29bc83e =  7:  1249b386cce0 media: tvp5150: add s_power callback
> > -- 
> > 2.20.1
> > 
> > 
> > 
> 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 
>