lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 6 Jun 2019 14:32:14 +0200
From:   Hans Verkuil <hverkuil@...all.nl>
To:     Maxime Jourdan <mjourdan@...libre.com>,
        Mauro Carvalho Chehab <mchehab@...nel.org>,
        Hans Verkuil <hans.verkuil@...co.com>
Cc:     Kevin Hilman <khilman@...libre.com>,
        Jerome Brunet <jbrunet@...libre.com>,
        Neil Armstrong <narmstrong@...libre.com>,
        Martin Blumenstingl <martin.blumenstingl@...glemail.com>,
        linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org,
        linux-amlogic@...ts.infradead.org
Subject: Re: [PATCH v8 2/3] media: meson: add v4l2 m2m video decoder driver

On 6/5/19 6:18 PM, Maxime Jourdan wrote:
> Amlogic SoCs feature a powerful video decoder unit able to
> decode many formats, with a performance of usually up to 4k60.
> 
> This is a driver for this IP that is based around the v4l2 m2m framework.
> 
> It features decoding for:
> - MPEG 1
> - MPEG 2
> 
> Supported SoCs are: GXBB (S905), GXL (S905X/W/D), GXM (S912)
> 
> There is also a hardware bitstream parser (ESPARSER) that is handled here.
> 
> Signed-off-by: Maxime Jourdan <mjourdan@...libre.com>
> ---
>  drivers/staging/media/Kconfig                 |    2 +
>  drivers/staging/media/Makefile                |    1 +
>  drivers/staging/media/meson/vdec/Kconfig      |   11 +
>  drivers/staging/media/meson/vdec/Makefile     |    8 +
>  drivers/staging/media/meson/vdec/TODO         |    8 +
>  .../staging/media/meson/vdec/codec_mpeg12.c   |  209 ++++
>  .../staging/media/meson/vdec/codec_mpeg12.h   |   14 +
>  drivers/staging/media/meson/vdec/dos_regs.h   |   98 ++
>  drivers/staging/media/meson/vdec/esparser.c   |  324 +++++
>  drivers/staging/media/meson/vdec/esparser.h   |   32 +
>  drivers/staging/media/meson/vdec/vdec.c       | 1075 +++++++++++++++++
>  drivers/staging/media/meson/vdec/vdec.h       |  269 +++++
>  drivers/staging/media/meson/vdec/vdec_1.c     |  229 ++++
>  drivers/staging/media/meson/vdec/vdec_1.h     |   14 +
>  drivers/staging/media/meson/vdec/vdec_ctrls.c |   29 +
>  drivers/staging/media/meson/vdec/vdec_ctrls.h |   14 +
>  .../staging/media/meson/vdec/vdec_helpers.c   |  449 +++++++
>  .../staging/media/meson/vdec/vdec_helpers.h   |   83 ++
>  .../staging/media/meson/vdec/vdec_platform.c  |  101 ++
>  .../staging/media/meson/vdec/vdec_platform.h  |   30 +
>  20 files changed, 3000 insertions(+)
>  create mode 100644 drivers/staging/media/meson/vdec/Kconfig
>  create mode 100644 drivers/staging/media/meson/vdec/Makefile
>  create mode 100644 drivers/staging/media/meson/vdec/TODO
>  create mode 100644 drivers/staging/media/meson/vdec/codec_mpeg12.c
>  create mode 100644 drivers/staging/media/meson/vdec/codec_mpeg12.h
>  create mode 100644 drivers/staging/media/meson/vdec/dos_regs.h
>  create mode 100644 drivers/staging/media/meson/vdec/esparser.c
>  create mode 100644 drivers/staging/media/meson/vdec/esparser.h
>  create mode 100644 drivers/staging/media/meson/vdec/vdec.c
>  create mode 100644 drivers/staging/media/meson/vdec/vdec.h
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_1.c
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_1.h
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_ctrls.c
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_ctrls.h
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_helpers.c
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_helpers.h
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_platform.c
>  create mode 100644 drivers/staging/media/meson/vdec/vdec_platform.h
> 

While preparing this series for merging I came across the following checkpatch
and sparse warnings:

checkpatch:

CHECK: Alignment should match open parenthesis
#159: FILE: drivers/staging/media/meson/vdec/codec_mpeg12.c:83:
+       ret = amvdec_set_canvases(sess, (u32[]){ AV_SCRATCH_0, 0 },
+                                       (u32[]){ 8, 0 });

HV: I think this doesn't need changing, this is easier to read.

CHECK: Alignment should match open parenthesis
#968: FILE: drivers/staging/media/meson/vdec/vdec.c:185:
+static int vdec_queue_setup(struct vb2_queue *q,
+               unsigned int *num_buffers, unsigned int *num_planes,

CHECK: Alignment should match open parenthesis
#1755: FILE: drivers/staging/media/meson/vdec/vdec.c:972:
+       core->regmap_ao = syscon_regmap_lookup_by_phandle(dev->of_node,
+                                                        "amlogic,ao-sysctrl");

CHECK: struct mutex definition without comment
#1949: FILE: drivers/staging/media/meson/vdec/vdec.h:85:
+       struct mutex lock;

CHECK: struct mutex definition without comment
#2085: FILE: drivers/staging/media/meson/vdec/vdec.h:221:
+       struct mutex lock;

CHECK: struct mutex definition without comment
#2116: FILE: drivers/staging/media/meson/vdec/vdec.h:252:
+       struct mutex bufs_recycle_lock;

CHECK: spinlock_t definition without comment
#2120: FILE: drivers/staging/media/meson/vdec/vdec.h:256:
+       spinlock_t ts_spinlock;

CHECK: Alignment should match open parenthesis
#2247: FILE: drivers/staging/media/meson/vdec/vdec_1.c:108:
+       amvdec_write_dos_bits(core, VLD_MEM_VIFIFO_CONTROL,
+               (0x11 << MEM_FIFO_CNT_BIT) | MEM_FILL_ON_LEVEL |

CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt
#2313: FILE: drivers/staging/media/meson/vdec/vdec_1.c:174:
+       udelay(10);

CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt
#2354: FILE: drivers/staging/media/meson/vdec/vdec_1.c:215:
+       udelay(10);

CHECK: Alignment should match open parenthesis
#2413: FILE: drivers/staging/media/meson/vdec/vdec_ctrls.c:19:
+       sess->ctrl_min_buf_capture = v4l2_ctrl_new_std(ctrl_handler, NULL,
+                               V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, 1, 32, 1, 1);


sparse:

SPARSE:/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/codec_mpeg12.c
/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/codec_mpeg12.c:201:25:  warning: symbol 'codec_mpeg12_ops' was not
declared. Should it be static?
SPARSE:/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/vdec.c
/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/vdec.c:417:5:  warning: symbol 'vdec_vb2_buf_prepare' was not declared.
Should it be static?
SPARSE:/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/vdec_1.c
/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/vdec_1.c:85:5:  warning: symbol 'vdec_1_stbuf_power_up' was not declared.
Should it be static?
/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/vdec_1.c:85:5: warning: no previous prototype for 'vdec_1_stbuf_power_up'
[-Wmissing-prototypes]
/home/hans/work/build/media-git/drivers/staging/media/meson/vdec/vdec.c:417:5: warning: no previous prototype for 'vdec_vb2_buf_prepare'
[-Wmissing-prototypes]

Can you fix these issues?

Regards,

	Hans

Powered by blists - more mailing lists