diff options
Diffstat (limited to 'drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c')
-rw-r--r-- | drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c b/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c index c03b13e70b5..cdfc3d05ab6 100644 --- a/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c +++ b/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c @@ -87,24 +87,26 @@ static struct v4l2_pix_format pb0100_mode[] = { static int pb0100_s_ctrl(struct v4l2_ctrl *ctrl) { - struct sd *sd = container_of(ctrl->handler, struct sd, ctrl_handler); + struct gspca_dev *gspca_dev = + container_of(ctrl->handler, struct gspca_dev, ctrl_handler); + struct sd *sd = (struct sd *)gspca_dev; struct pb0100_ctrls *ctrls = sd->sensor_priv; int err = -EINVAL; switch (ctrl->id) { case V4L2_CID_AUTOGAIN: - err = pb0100_set_autogain(&sd->gspca_dev, ctrl->val); + err = pb0100_set_autogain(gspca_dev, ctrl->val); if (err) break; if (ctrl->val) break; - err = pb0100_set_gain(&sd->gspca_dev, ctrls->gain->val); + err = pb0100_set_gain(gspca_dev, ctrls->gain->val); if (err) break; - err = pb0100_set_exposure(&sd->gspca_dev, ctrls->exposure->val); + err = pb0100_set_exposure(gspca_dev, ctrls->exposure->val); break; case V4L2_CTRL_CLASS_USER + 0x1001: - err = pb0100_set_autogain_target(&sd->gspca_dev, ctrl->val); + err = pb0100_set_autogain_target(gspca_dev, ctrl->val); break; } return err; @@ -116,7 +118,7 @@ static const struct v4l2_ctrl_ops pb0100_ctrl_ops = { static int pb0100_init_controls(struct sd *sd) { - struct v4l2_ctrl_handler *hdl = &sd->ctrl_handler; + struct v4l2_ctrl_handler *hdl = &sd->gspca_dev.ctrl_handler; struct pb0100_ctrls *ctrls; static const struct v4l2_ctrl_config autogain_target = { .ops = &pb0100_ctrl_ops, |