2019-11-01 11:34:05

by Ricardo Ribalda Delgado

[permalink] [raw]
Subject: [PATCH v3 3/5] media: vivid: Add an area control

This control represents a generic read/write area.

Suggested-by: Hans Verkuil <[email protected]>
Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
---
drivers/media/platform/vivid/vivid-ctrls.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c
index b250fc3764e2..fd35863798a7 100644
--- a/drivers/media/platform/vivid/vivid-ctrls.c
+++ b/drivers/media/platform/vivid/vivid-ctrls.c
@@ -32,6 +32,7 @@
#define VIVID_CID_U32_ARRAY (VIVID_CID_CUSTOM_BASE + 8)
#define VIVID_CID_U16_MATRIX (VIVID_CID_CUSTOM_BASE + 9)
#define VIVID_CID_U8_4D_ARRAY (VIVID_CID_CUSTOM_BASE + 10)
+#define VIVID_CID_AREA (VIVID_CID_CUSTOM_BASE + 11)

#define VIVID_CID_VIVID_BASE (0x00f00000 | 0xf000)
#define VIVID_CID_VIVID_CLASS (0x00f00000 | 1)
@@ -266,6 +267,18 @@ static const struct v4l2_ctrl_config vivid_ctrl_disconnect = {
.type = V4L2_CTRL_TYPE_BUTTON,
};

+static const struct v4l2_area area = {
+ .width = 0xcafe,
+ .height = 0xb1b1d,
+};
+
+static const struct v4l2_ctrl_config vivid_ctrl_area = {
+ .ops = &vivid_user_gen_ctrl_ops,
+ .id = VIVID_CID_AREA,
+ .name = "Area",
+ .type = V4L2_CTRL_TYPE_AREA,
+ .p_def.p_const = &area,
+};

/* Framebuffer Controls */

@@ -1574,6 +1587,7 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap,
dev->string = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_string, NULL);
dev->bitmask = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_bitmask, NULL);
dev->int_menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int_menu, NULL);
+ v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_area, NULL);
v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u32_array, NULL);
v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u16_matrix, NULL);
v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u8_4d_array, NULL);
--
2.24.0.rc1


2019-11-04 09:45:02

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH v3 3/5] media: vivid: Add an area control

On 11/1/19 12:23 PM, Ricardo Ribalda Delgado wrote:
> This control represents a generic read/write area.
>
> Suggested-by: Hans Verkuil <[email protected]>
> Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
> ---
> drivers/media/platform/vivid/vivid-ctrls.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c
> index b250fc3764e2..fd35863798a7 100644
> --- a/drivers/media/platform/vivid/vivid-ctrls.c
> +++ b/drivers/media/platform/vivid/vivid-ctrls.c
> @@ -32,6 +32,7 @@
> #define VIVID_CID_U32_ARRAY (VIVID_CID_CUSTOM_BASE + 8)
> #define VIVID_CID_U16_MATRIX (VIVID_CID_CUSTOM_BASE + 9)
> #define VIVID_CID_U8_4D_ARRAY (VIVID_CID_CUSTOM_BASE + 10)
> +#define VIVID_CID_AREA (VIVID_CID_CUSTOM_BASE + 11)
>
> #define VIVID_CID_VIVID_BASE (0x00f00000 | 0xf000)
> #define VIVID_CID_VIVID_CLASS (0x00f00000 | 1)
> @@ -266,6 +267,18 @@ static const struct v4l2_ctrl_config vivid_ctrl_disconnect = {
> .type = V4L2_CTRL_TYPE_BUTTON,
> };
>
> +static const struct v4l2_area area = {
> + .width = 0xcafe,
> + .height = 0xb1b1d,

I don't think there is any need for these weird values. Just set this to
e.g. 1000x2000. Just as long as width and height are different.

Regards,

Hans

> +};
> +
> +static const struct v4l2_ctrl_config vivid_ctrl_area = {
> + .ops = &vivid_user_gen_ctrl_ops,
> + .id = VIVID_CID_AREA,
> + .name = "Area",
> + .type = V4L2_CTRL_TYPE_AREA,
> + .p_def.p_const = &area,
> +};
>
> /* Framebuffer Controls */
>
> @@ -1574,6 +1587,7 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap,
> dev->string = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_string, NULL);
> dev->bitmask = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_bitmask, NULL);
> dev->int_menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int_menu, NULL);
> + v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_area, NULL);
> v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u32_array, NULL);
> v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u16_matrix, NULL);
> v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u8_4d_array, NULL);
>

2019-11-04 10:13:46

by Ricardo Ribalda Delgado

[permalink] [raw]
Subject: Re: [PATCH v3 3/5] media: vivid: Add an area control

Hi hans

On Mon, Nov 4, 2019 at 10:44 AM Hans Verkuil <[email protected]> wrote:
>
> On 11/1/19 12:23 PM, Ricardo Ribalda Delgado wrote:
> > This control represents a generic read/write area.
> >
> > Suggested-by: Hans Verkuil <[email protected]>
> > Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
> > ---
> > drivers/media/platform/vivid/vivid-ctrls.c | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c
> > index b250fc3764e2..fd35863798a7 100644
> > --- a/drivers/media/platform/vivid/vivid-ctrls.c
> > +++ b/drivers/media/platform/vivid/vivid-ctrls.c
> > @@ -32,6 +32,7 @@
> > #define VIVID_CID_U32_ARRAY (VIVID_CID_CUSTOM_BASE + 8)
> > #define VIVID_CID_U16_MATRIX (VIVID_CID_CUSTOM_BASE + 9)
> > #define VIVID_CID_U8_4D_ARRAY (VIVID_CID_CUSTOM_BASE + 10)
> > +#define VIVID_CID_AREA (VIVID_CID_CUSTOM_BASE + 11)
> >
> > #define VIVID_CID_VIVID_BASE (0x00f00000 | 0xf000)
> > #define VIVID_CID_VIVID_CLASS (0x00f00000 | 1)
> > @@ -266,6 +267,18 @@ static const struct v4l2_ctrl_config vivid_ctrl_disconnect = {
> > .type = V4L2_CTRL_TYPE_BUTTON,
> > };
> >
> > +static const struct v4l2_area area = {
> > + .width = 0xcafe,
> > + .height = 0xb1b1d,
>
> I don't think there is any need for these weird values. Just set this to
> e.g. 1000x2000. Just as long as width and height are different.
>
> Regards,

Sure. I will change that.

I though anyone liked vivid cafe ;P


>
> Hans
>
> > +};
> > +
> > +static const struct v4l2_ctrl_config vivid_ctrl_area = {
> > + .ops = &vivid_user_gen_ctrl_ops,
> > + .id = VIVID_CID_AREA,
> > + .name = "Area",
> > + .type = V4L2_CTRL_TYPE_AREA,
> > + .p_def.p_const = &area,
> > +};
> >
> > /* Framebuffer Controls */
> >
> > @@ -1574,6 +1587,7 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap,
> > dev->string = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_string, NULL);
> > dev->bitmask = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_bitmask, NULL);
> > dev->int_menu = v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_int_menu, NULL);
> > + v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_area, NULL);
> > v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u32_array, NULL);
> > v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u16_matrix, NULL);
> > v4l2_ctrl_new_custom(hdl_user_gen, &vivid_ctrl_u8_4d_array, NULL);
> >
>