On 08/31/2015 03:08 PM, Mauro Carvalho Chehab wrote:
> Em Mon, 31 Aug 2015 13:31:32 +0200
> Hans Verkuil <[email protected]> escreveu:
>
>> On 08/30/2015 05:06 AM, Mauro Carvalho Chehab wrote:
>>> As we'll be removing entity subtypes from the Kernel, we need
>>> to provide a way for drivers and core to check if a given
>>> entity is represented by a V4L2 subdev or if it is an V4L2
>>> I/O entity (typically with DMA).
>>
>> This needs more discussion. The plan (as I understand it) is to have
>> properties
>> that describe the entity's functionalities.
>>
>> The existing entity subtypes will exist only as backwards compat types, but
>> in
>> the future properties should be used to describe the functionalities.
>>
>> This raises the question if we shouldn't use MEDIA_ENT_T_V4L2_SUBDEV to tell
>> userspace that this is a subdev-controlled entity, and let userspace look at
>> the properties to figure out what it is exactly?
>>
>> It could be that this is a transitional patch, and this will be fixed later.
>> If so, this should be mentioned in the commit message.
>
> There are several different issues here:
>
> 1) drivers should not rely on type/subtype at MEDIA_ENT_T_*, as we need
> to get rid of it, as this got deprecated;
>
> 2) Keep backward compatibility.
>
> 3) the addition of properties;
>
> The next patch on this series addresses (1) and (2), and this change is
> needed for them.
>
> We can't tell if this is a transitional patch or not, as we don't have
> yet any idea about how (3) will be added. Maybe it will preserve
> entity->type. Maybe it will convert it into an array. Maybe it would
> do something different.
>
> In any case, whatever the property patches will be doing, after this
> patch, it will need to touch only at the implementation of the two
> macros, not needing to touch at the drivers again.
>
> What I can do is to tell at the description that this patch is in
> preparation for the removal of media type/subtype concept that will
> happen on the next patches, but this is what's described there already
> at:
> "As we'll be removing entity subtypes from the Kernel,"
>
> Perhaps I should let it clearer there.
Just mention this in the cover letter as part of the todo list.
As long as I know that this might change later depending on how properties
are going to affect this, then that's OK and I can keep it in mind when I
review.
Regards,
Hans
>
> Regards,
> Mauro
>
>>
>> Regards,
>>
>> Hans
>>
>>>
>>> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
>>>
>>> diff --git a/include/media/media-entity.h b/include/media/media-entity.h
>>> index e7b20bdc735d..b0cfbc0dffc7 100644
>>> --- a/include/media/media-entity.h
>>> +++ b/include/media/media-entity.h
>>> @@ -220,6 +220,39 @@ static inline u32 media_gobj_gen_id(enum
>>> media_gobj_type type, u32 local_id)
>>> return id;
>>> }
>>>
>>> +static inline bool is_media_entity_v4l2_io(struct media_entity *entity)
>>> +{
>>> + if (!entity)
>>> + return false;
>>> +
>>> + switch (entity->type) {
>>> + case MEDIA_ENT_T_V4L2_VIDEO:
>>> + case MEDIA_ENT_T_V4L2_VBI:
>>> + case MEDIA_ENT_T_V4L2_SWRADIO:
>>> + return true;
>>> + default:
>>> + return false;
>>> + }
>>> +}
>>> +
>>> +static inline bool is_media_entity_v4l2_subdev(struct media_entity *entity)
>>> +{
>>> + if (!entity)
>>> + return false;
>>> +
>>> + switch (entity->type) {
>>> + case MEDIA_ENT_T_V4L2_SUBDEV_SENSOR:
>>> + case MEDIA_ENT_T_V4L2_SUBDEV_FLASH:
>>> + case MEDIA_ENT_T_V4L2_SUBDEV_LENS:
>>> + case MEDIA_ENT_T_V4L2_SUBDEV_DECODER:
>>> + case MEDIA_ENT_T_V4L2_SUBDEV_TUNER:
>>> + return true;
>>> +
>>> + default:
>>> + return false;
>>> + }
>>> +}
>>> +
>>> #define MEDIA_ENTITY_ENUM_MAX_DEPTH 16
>>> #define MEDIA_ENTITY_ENUM_MAX_ID 64
>>>
>>>
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html