mbox series

[0/3] Improve V4L2 fwnode framework usability and documentation

Message ID 20200908085121.864-1-sakari.ailus@linux.intel.com
Headers show
Series Improve V4L2 fwnode framework usability and documentation | expand

Message

Sakari Ailus Sept. 8, 2020, 8:51 a.m. UTC
Hi all,

This set makes it possible to set defaults for multiple bus types on a
single call by using a little bit more memory. The documentation is also
improved to allow getting the bus type from DT when bindings allow that.

Sakari Ailus (3):
  v4l2-fwnode: Make number of data lanes a character
  v4l2-fwnode: Make bus configuration a struct
  v4l2-fwnode: Document changes usage patterns of
    v4l2_fwnode_endpoint_parse

 include/media/v4l2-fwnode.h | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

Comments

Jacopo Mondi Sept. 14, 2020, 2:55 p.m. UTC | #1
Hi Sakari,

On Tue, Sep 08, 2020 at 11:51:21AM +0300, Sakari Ailus wrote:
> Document that it is possible to provide defaults for multiple bus types to

> v4l2_fwnode_endpoint_parse and v4l2_fwnode_endpoint_alloc_parse. Also

> underline the fact that detecting the bus type without bus-type property

> is only for the old drivers.

>

> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

> ---

>  include/media/v4l2-fwnode.h | 18 ++++++++----------

>  1 file changed, 8 insertions(+), 10 deletions(-)

>

> diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h

> index d04f39b60096..ccaa5693df14 100644

> --- a/include/media/v4l2-fwnode.h

> +++ b/include/media/v4l2-fwnode.h

> @@ -226,11 +226,10 @@ struct v4l2_fwnode_connector {

>   * call this function once the correct type is found --- with a default

>   * configuration valid for that type.

>   *

> - * As a compatibility means guessing the bus type is also supported by setting

> - * @vep.bus_type to V4L2_MBUS_UNKNOWN. The caller may not provide a default

> - * configuration in this case as the defaults are specific to a given bus type.

> - * This functionality is deprecated and should not be used in new drivers and it

> - * is only supported for CSI-2 D-PHY, parallel and Bt.656 buses.

> + * It is also allowed to set @vep.bus_type to V4L2_MBUS_UNKNOWN. USING THIS

> + * FEATURE REQUIRES "bus-type" PROPERTY IN DT BINDINGS. For old drivers,

> + * guessing @vep.bus_type between CSI-2 D-PHY, parallel and Bt.656 busses is

> + * supported. NEVER RELY ON GUESSING @vep.bus_type IN NEW DRIVERS!


As per the discussion in:
[PATCH v4 1/3] media: i2c: ov772x: Parse endpoint properties
this leaves a bit of gray area on how to address cases where older dts
do not report any "bus-type" property, as in the case of PARALLEL vs
BT.656 Prabhakar has, it gets impossible to detect mis-configurations.

I have suggested him two different behaviours, depending if 'bus-type'
is present in the fwnode or not, but I'm not sure that's the best way
forward. What do you think ?

>   *

>   * The function does not change the V4L2 fwnode endpoint state if it fails.

>   *

> @@ -269,11 +268,10 @@ void v4l2_fwnode_endpoint_free(struct v4l2_fwnode_endpoint *vep);

>   * call this function once the correct type is found --- with a default

>   * configuration valid for that type.

>   *

> - * As a compatibility means guessing the bus type is also supported by setting

> - * @vep.bus_type to V4L2_MBUS_UNKNOWN. The caller may not provide a default

> - * configuration in this case as the defaults are specific to a given bus type.

> - * This functionality is deprecated and should not be used in new drivers and it

> - * is only supported for CSI-2 D-PHY, parallel and Bt.656 buses.

> + * It is also allowed to set @vep.bus_type to V4L2_MBUS_UNKNOWN. USING THIS

> + * FEATURE REQUIRES "bus-type" PROPERTY IN DT BINDINGS. For old drivers,

> + * guessing @vep.bus_type between CSI-2 D-PHY, parallel and Bt.656 busses is

> + * supported. NEVER RELY ON GUESSING @vep.bus_type IN NEW DRIVERS!

>   *

>   * The function does not change the V4L2 fwnode endpoint state if it fails.

>   *

> --

> 2.27.0

>