Re: [PATCH v2] media: ov8856: Add support for OV8856 sensor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ben,

On Fri, Jan 11, 2019 at 12:12 PM Ben Kao <ben.kao@xxxxxxxxx> wrote:
>
> This patch adds driver for Omnivision's ov8856 sensor,
> the driver supports following features:
[snip]
> +static int ov8856_write_reg(struct ov8856 *ov8856, u16 reg, u16 len, u32 __val)
> +{
> +       struct i2c_client *client = v4l2_get_subdevdata(&ov8856->sd);
> +       unsigned int buf_i, val_i;
> +       u8 buf[6];
> +       u8 *val_p;
> +       __be32 val;
> +
> +       if (len > 4)
> +               return -EINVAL;
> +
> +       buf[0] = reg >> 8;
> +       buf[1] = reg & 0xff;

The two lines above can be simplified into one put_unaligned_be16(reg, buf);

> +
> +       val = cpu_to_be32(__val);
> +       val_p = (u8 *)&val;
> +       buf_i = 2;
> +       val_i = 4 - len;
> +
> +       while (val_i < 4)
> +               buf[buf_i++] = val_p[val_i++];

All the code above can be simplified into:

val <<= 8 * (4 - len);
put_unaligned_be32(val, buf + 2);

> +
> +       if (i2c_master_send(client, buf, len + 2) != len + 2)
> +               return -EIO;
> +
> +       return 0;
> +}

Best regards,
Tomasz



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux