Hi Hans, Thank you for your review > > +static int adv7180_init_controls(struct adv7180_state *state) > > +{ > > + v4l2_ctrl_handler_init(&state->ctrl_hdl, 2); > > 2 -> 4, since there are 4 controls. It's a hint only, but it helps > optimizing the internal hash data structure. Sure :) > > > > @@ -445,9 +402,9 @@ static const struct v4l2_subdev_video_ops > > adv7180_video_ops = {> > > static const struct v4l2_subdev_core_ops adv7180_core_ops = { > > > > .g_chip_ident = adv7180_g_chip_ident, > > .s_std = adv7180_s_std, > > > > - .queryctrl = adv7180_queryctrl, > > - .g_ctrl = adv7180_g_ctrl, > > - .s_ctrl = adv7180_s_ctrl, > > + .queryctrl = v4l2_subdev_queryctrl, > > + .g_ctrl = v4l2_subdev_g_ctrl, > > + .s_ctrl = v4l2_subdev_s_ctrl, > > If adv7180 is currently *only* used by bridge/platform drivers that > also use the control framework, then you can remove > queryctrl/g/s_ctrl altogether. I'm not sure to undestand this point. I "grepped" for the adv7180 and it seem that I'm the only user of the adv7180 (sta2x11 VIP driver). In the VIP driver I don't use the control framework (there aren't controls), so I think these lines must be there. Am I wrong? I think you are thinking at the "Inheriting Controls" section of the v4l2-controls.txt document. Right? > > - ret = i2c_smbus_write_byte_data(client, ADV7180_HUE_REG, > > state->hue); + ret = i2c_smbus_write_byte_data(client, > > ADV7180_HUE_REG, > > + ADV7180_HUE_DEF); > > It shouldn't be necessary to initialize the controls since > v4l2_ctrl_handler_setup does that for you already. Removed -- Federico Vaga -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html