Hi Pavel,

Thanks for the update.

On Wed, Dec 14, 2016 at 01:24:51PM +0100, Pavel Machek wrote:
...
> +static int et8ek8_set_ctrl(struct v4l2_ctrl *ctrl)
> +{
> +     struct et8ek8_sensor *sensor =
> +             container_of(ctrl->handler, struct et8ek8_sensor, ctrl_handler);
> +
> +     switch (ctrl->id) {
> +     case V4L2_CID_GAIN:
> +             return et8ek8_set_gain(sensor, ctrl->val);
> +
> +     case V4L2_CID_EXPOSURE:
> +     {
> +             int rows;
> +             struct i2c_client *client = 
> v4l2_get_subdevdata(&sensor->subdev);
> +             rows = ctrl->val;
> +             return et8ek8_i2c_write_reg(client, ET8EK8_REG_16BIT, 0x1243,
> +                                         swab16(rows));

Why swab16()? Doesn't the et8ek8_i2c_write_reg() already do the right thing?

16-bit writes aren't used elsewhere... and the register address and value
seem to have different endianness there, it looks like a bug to me in that
function.

-- 
Regards,

Sakari Ailus
e-mail: sakari.ai...@iki.fi     XMPP: sai...@retiisi.org.uk

Reply via email to