media: adv7842: remove spurious & and fix vga_edid size
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 10 Jun 2021 06:11:40 +0000 (08:11 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 17 Jun 2021 08:25:23 +0000 (10:25 +0200)
No need to use & to get the start address of an array.

Fix the size of vga_edid.edid to a single block (128 bytes) to fix
this smatch error:

adv7842.c:2538 adv7842_set_edid() error: memcpy() '&state->vga_edid.edid' too small (128 vs 512)

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/adv7842.c

index 2637139..7f8acbd 100644 (file)
@@ -2531,20 +2531,20 @@ static int adv7842_set_edid(struct v4l2_subdev *sd, struct v4l2_edid *e)
 
        switch (e->pad) {
        case ADV7842_EDID_PORT_VGA:
-               memset(&state->vga_edid.edid, 0, sizeof(state->vga_edid.edid));
+               memset(state->vga_edid.edid, 0, sizeof(state->vga_edid.edid));
                state->vga_edid.blocks = e->blocks;
                state->vga_edid.present = e->blocks ? 0x1 : 0x0;
                if (e->blocks)
-                       memcpy(&state->vga_edid.edid, e->edid, 128 * e->blocks);
+                       memcpy(state->vga_edid.edid, e->edid, 128);
                err = edid_write_vga_segment(sd);
                break;
        case ADV7842_EDID_PORT_A:
        case ADV7842_EDID_PORT_B:
-               memset(&state->hdmi_edid.edid, 0, sizeof(state->hdmi_edid.edid));
+               memset(state->hdmi_edid.edid, 0, sizeof(state->hdmi_edid.edid));
                state->hdmi_edid.blocks = e->blocks;
                if (e->blocks) {
                        state->hdmi_edid.present |= 0x04 << e->pad;
-                       memcpy(&state->hdmi_edid.edid, e->edid, 128 * e->blocks);
+                       memcpy(state->hdmi_edid.edid, e->edid, 128 * e->blocks);
                } else {
                        state->hdmi_edid.present &= ~(0x04 << e->pad);
                        adv7842_s_detect_tx_5v_ctrl(sd);