On 8/19/19 11:17 AM, Marco Felsch wrote:
> On 19-08-16 12:59, Hans Verkuil wrote:
>> On 8/15/19 1:57 PM, Marco Felsch wrote:
>>> Currently every driver needs to parse the connector endpoints by it self.
>>> This is the initial work to make this generic. A generic connector has
>>> common members and connector specific members. The common members are:
>>> - type
>>> - label (optional)
>>> - links
>>> - nr_of_links
>>>
>>> The specific members are stored within a union, since only one of them
>>> can be available at the time. Since this is the initial support the
>>> patch adds only the analog-connector specific ones.
>>>
>>> Signed-off-by: Marco Felsch <[email protected]>
>>> ---
>>> [1] https://patchwork.kernel.org/cover/10794703/
>>>
>>> v7:
>>> - fix spelling issues
>>> - constify label
>>> - support variable label size
>>> - replace single remote_port/id members by links member of variable
>>> size
>>> - squash v4l2-connector into v4l2-fwnode
>>>
>>> @Jacopo: I dropped your r b tag because I changed the port/id logic.
>>>
>>> v6:
>>> - fix some spelling and style issues
>>> - rm unnecessary comments
>>> - drop vga and dvi connector
>>> - fix misspelt connector
>>>
>>> v2-v4:
>>> - nothing since the patch was squashed from series [1] into this
>>> series.
>>> ---
>>> include/media/v4l2-fwnode.h | 45 +++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 45 insertions(+)
>>>
>>> diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h
>>> index f6a7bcd13197..e39c198882fc 100644
>>> --- a/include/media/v4l2-fwnode.h
>>> +++ b/include/media/v4l2-fwnode.h
>>> @@ -123,6 +123,51 @@ struct v4l2_fwnode_link {
>>> unsigned int remote_port;
>>> };
>>>
>>> +/**
>>> + * enum v4l2_connector_type - connector type
>>> + * @V4L2_CON_UNKNOWN: unknown connector type, no V4L2 connector
>>> configuration
>>> + * @V4L2_CON_COMPOSITE: analog composite connector
>>> + * @V4L2_CON_SVIDEO: analog svideo connector
>>> + * @V4L2_CON_HDMI: digital hdmi connector
>>> + */
>>> +enum v4l2_connector_type {
>>> + V4L2_CON_UNKNOWN,
>>> + V4L2_CON_COMPOSITE,
>>> + V4L2_CON_SVIDEO,
>>> + V4L2_CON_HDMI,
>>
>> Please use CONN instead of CON. CONN is the traditional abbreviation
>> used for connectors. 'CON' is too generic (there are many words that
>> start with 'con').
>
> Okay.
>
>> Regards,
>>
>> Hans
>>
>>> +};
>>> +
>>> +/**
>>> + * struct v4l2_fwnode_connector_analog - analog connector data structure
>>> + * @supported_tvnorms: tv norms this connector supports, set to
>>> V4L2_STD_ALL
>>> + * if no restrictions are specified.
>>> + */
>>> +struct v4l2_fwnode_connector_analog {
>>> + v4l2_std_id supported_tvnorms;
>
> After we found the correct dt-binding and naming convention I would
> change that property to 'sdtv_stds'. Is that okay?
Yes.
Hans
>
> Regards,
> Marco
>
>>> +};
>>> +
>>> +/**
>>> + * struct v4l2_fwnode_connector - the connector data structure
>>> + * @label: optional connector label
>>> + * @type: connector type
>>> + * @links: list of &struct v4l2_fwnode_link links the connector is
>>> connected to
>>> + * @nr_of_links: total number of links
>>> + * @connector: connector configuration
>>> + * @connector.analog: analog connector configuration
>>> + * &struct v4l2_fwnode_connector_analog
>>> + */
>>> +struct v4l2_fwnode_connector {
>>> + const char *label;
>>> + enum v4l2_connector_type type;
>>> + struct v4l2_fwnode_link *links;
>>> + unsigned int nr_of_links;
>>> +
>>> + union {
>>> + struct v4l2_fwnode_connector_analog analog;
>>> + /* future connectors */
>>> + } connector;
>>> +};
>>> +
>>> /**
>>> * v4l2_fwnode_endpoint_parse() - parse all fwnode node properties
>>> * @fwnode: pointer to the endpoint's fwnode handle
>>>
>>
>>
>