This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: ccs: Add digital gain support
Author:  Sakari Ailus <[email protected]>
Date:    Wed Sep 23 16:26:33 2020 +0200

CCS supports global (all-component) digital gain. Add support for it.

Signed-off-by: Sakari Ailus <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/i2c/ccs/ccs-core.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index b39ae5f8446b..f1fecc72e247 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -670,6 +670,11 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
        case V4L2_CID_ANALOGUE_GAIN:
                rval = ccs_write(sensor, ANALOG_GAIN_CODE_GLOBAL, ctrl->val);
 
+               break;
+
+       case V4L2_CID_DIGITAL_GAIN:
+               rval = ccs_write(sensor, DIGITAL_GAIN_GLOBAL, ctrl->val);
+
                break;
        case V4L2_CID_EXPOSURE:
                rval = ccs_write(sensor, COARSE_INTEGRATION_TIME, ctrl->val);
@@ -739,7 +744,7 @@ static int ccs_init_controls(struct ccs_sensor *sensor)
        struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd);
        int rval;
 
-       rval = v4l2_ctrl_handler_init(&sensor->pixel_array->ctrl_handler, 12);
+       rval = v4l2_ctrl_handler_init(&sensor->pixel_array->ctrl_handler, 13);
        if (rval)
                return rval;
 
@@ -753,6 +758,16 @@ static int ccs_init_controls(struct ccs_sensor *sensor)
                max(CCS_LIM(sensor, ANALOG_GAIN_CODE_STEP), 1U),
                CCS_LIM(sensor, ANALOG_GAIN_CODE_MIN));
 
+       if (CCS_LIM(sensor, DIGITAL_GAIN_CAPABILITY) ==
+           CCS_DIGITAL_GAIN_CAPABILITY_GLOBAL)
+               v4l2_ctrl_new_std(&sensor->pixel_array->ctrl_handler,
+                                 &ccs_ctrl_ops, V4L2_CID_DIGITAL_GAIN,
+                                 CCS_LIM(sensor, DIGITAL_GAIN_MIN),
+                                 CCS_LIM(sensor, DIGITAL_GAIN_MAX),
+                                 max(CCS_LIM(sensor, DIGITAL_GAIN_STEP_SIZE),
+                                     1U),
+                                 0x100);
+
        /* Exposure limits will be updated soon, use just something here. */
        sensor->exposure = v4l2_ctrl_new_std(
                &sensor->pixel_array->ctrl_handler, &ccs_ctrl_ops,

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to