Skip to content

Commit 26066ae

Browse files
djrscallymchehab
authored andcommitted
media: i2c: Add hblank control to ov7251
Add a hblank control to the ov7251 driver. This necessitates setting a default mode, for which I am simply picking the first available. Signed-off-by: Daniel Scally <djrscally@gmail.com> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
1 parent 5aaef13 commit 26066ae

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

drivers/media/i2c/ov7251.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@
6161
#define OV7251_ACTIVE_WIDTH 648
6262
#define OV7251_ACTIVE_HEIGHT 488
6363

64+
#define OV7251_FIXED_PPL 928
65+
6466
struct reg_value {
6567
u16 reg;
6668
u8 val;
@@ -139,6 +141,7 @@ struct ov7251 {
139141
struct v4l2_ctrl *link_freq;
140142
struct v4l2_ctrl *exposure;
141143
struct v4l2_ctrl *gain;
144+
struct v4l2_ctrl *hblank;
142145

143146
/* Cached register values */
144147
u8 aec_pk_manual;
@@ -1488,6 +1491,7 @@ static int ov7251_detect_chip(struct ov7251 *ov7251)
14881491
static int ov7251_init_ctrls(struct ov7251 *ov7251)
14891492
{
14901493
s64 pixel_rate;
1494+
int hblank;
14911495

14921496
v4l2_ctrl_handler_init(&ov7251->ctrls, 7);
14931497
ov7251->ctrls.lock = &ov7251->lock;
@@ -1522,6 +1526,13 @@ static int ov7251_init_ctrls(struct ov7251 *ov7251)
15221526
if (ov7251->pixel_clock)
15231527
ov7251->pixel_clock->flags |= V4L2_CTRL_FLAG_READ_ONLY;
15241528

1529+
hblank = OV7251_FIXED_PPL - ov7251->current_mode->width;
1530+
ov7251->hblank = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
1531+
V4L2_CID_HBLANK, hblank, hblank, 1,
1532+
hblank);
1533+
if (ov7251->hblank)
1534+
ov7251->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY;
1535+
15251536
ov7251->sd.ctrl_handler = &ov7251->ctrls;
15261537

15271538
if (ov7251->ctrls.error) {
@@ -1617,6 +1628,7 @@ static int ov7251_probe(struct i2c_client *client)
16171628

16181629
mutex_init(&ov7251->lock);
16191630

1631+
ov7251->current_mode = &ov7251_mode_info_data[0];
16201632
ret = ov7251_init_ctrls(ov7251);
16211633
if (ret) {
16221634
dev_err_probe(dev, ret, "error during v4l2 ctrl init\n");

0 commit comments

Comments
 (0)