Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4230343imm; Tue, 11 Sep 2018 08:47:12 -0700 (PDT) X-Google-Smtp-Source: ANB0VdaS99dD0NDBN2gZhWv4TSNeUPObkenhTJQ/eTfjnxppPizUWyAh1bgWO4Hya3cs1LQRn/I9 X-Received: by 2002:a62:591a:: with SMTP id n26-v6mr30326138pfb.94.1536680832933; Tue, 11 Sep 2018 08:47:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536680832; cv=none; d=google.com; s=arc-20160816; b=0a85p9C1pKTtxn3trsrfX4dNnHjdkiLoKScP28cH3300JNeuIapTzWlPM5EZ2ixL0C nVLo9u0pSAA2T0EtRzbuD6VuG4Nn8d8N93dHDvkd47cZUimherusX7TpNd8V9GJLeB0O j6egKgoIHXsR9zHXHEObIeW6CQnlU5ahMWXHpC9+vWHsQ9AlJaNIZg64/KnqW9qLLRJP gzFsvNNVYZ7djvHIRde5eIYxa3z/Y0Sp4mPQwM/hGv/LMNhFOsIWj7Yhw02Sl0qdSYW4 KArUvbms503Z0tBSriWKBOitValGXe/iHGBYGphBp6dMCaXw/qHIJc5hBy9vuOz/udEQ vS7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=BoeFs2ZlhfUwkp1I/UuXDFXZufHpVdRfGsGl0cEB2EI=; b=FvhKbeGOelb51vcjEkRRSIT0NkQCoN1bGwP9zREukgjjfoDW0dn6oTXLaoruu2o2js XtD7FodKCiK+Ymg86teVlSgTDqp3kPAVcfHFbPq7pBd75nZnucw/gfN79ugx7wB4Dpet Ih3PgC7nogs1QZend1uMch8sQ9XtI33wCugk0Gv6juyGND559fExAVBA3Qzs8GaTmjMz l6D9gLxYsnRB5hlOnOpJvn34G97QCt7vmfU7wbOYDDHCONzEwc1tReyuFNuvhgJyXxi3 IKkU8sxo/eHxUcdYCFZst8rRqTFLln9R0TTHXTg/papmm8IZcn+r0cBaHvHIZq0UgeyG p/RQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=TcPfZskq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s3-v6si21371706plb.270.2018.09.11.08.46.56; Tue, 11 Sep 2018 08:47:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=TcPfZskq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727441AbeIKUq1 (ORCPT + 99 others); Tue, 11 Sep 2018 16:46:27 -0400 Received: from bombadil.infradead.org ([198.137.202.133]:46692 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726622AbeIKUq0 (ORCPT ); Tue, 11 Sep 2018 16:46:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To: From:Date:Sender:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=BoeFs2ZlhfUwkp1I/UuXDFXZufHpVdRfGsGl0cEB2EI=; b=TcPfZskqhtldsO8n127PLZJFU cvoRAwwMS2RUTaWsqpuNC1ZIdtkDhfMhiKn9ObFfVuhdma4TPOHxkU4iZ1m/dGEAa8skhA5ZHqUby ON7nbHywTHvYZosVQcGbB+eesl2maJks3g3sYzaY19keKxcng7gXkiK48wLcD5+AjX8X/GD+t0t/x qlXhBl3Idz0ICkS02MXf8E7ZzLmCKJtG5BecIZvBZJGN1OnN6FXeeW6UMDdgSwyxsbRzyAsqZqtJw vSAXsys1ip7qLLb/neNdNT/LbJ/MPw6CAGUlilcRb7a9QJDwtCnQJynv3H9K6HOCcyygazVnIdeut euZ1QK9sg==; Received: from 177.17.246.211.dynamic.adsl.gvt.net.br ([177.17.246.211] helo=coco.lan) by bombadil.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1fzks3-0005X4-SH; Tue, 11 Sep 2018 15:46:32 +0000 Date: Tue, 11 Sep 2018 12:46:25 -0300 From: Mauro Carvalho Chehab To: Paul Kocialkowski Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org, Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Maxime Ripard , Chen-Yu Tsai , Greg Kroah-Hartman , Paul Kocialkowski , Thomas Petazzoni , linux-sunxi@googlegroups.com, Randy Li , Hans Verkuil , Ezequiel Garcia , Tomasz Figa , Alexandre Courbot , Philipp Zabel , Laurent Pinchart , Sakari Ailus Subject: Re: [PATCH v9 5/9] media: platform: Add Cedrus VPU decoder driver Message-ID: <20180911124625.6759e429@coco.lan> In-Reply-To: <20180906222442.14825-6-contact@paulk.fr> References: <20180906222442.14825-1-contact@paulk.fr> <20180906222442.14825-6-contact@paulk.fr> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Fri, 7 Sep 2018 00:24:38 +0200 Paul Kocialkowski escreveu: > From: Paul Kocialkowski > > This introduces the Cedrus VPU driver that supports the VPU found in > Allwinner SoCs, also known as Video Engine. It is implemented through > a V4L2 M2M decoder device and a media device (used for media requests). > So far, it only supports MPEG-2 decoding. > > Since this VPU is stateless, synchronization with media requests is > required in order to ensure consistency between frame headers that > contain metadata about the frame to process and the raw slice data that > is used to generate the frame. > > This driver was made possible thanks to the long-standing effort > carried out by the linux-sunxi community in the interest of reverse > engineering, documenting and implementing support for the Allwinner VPU. > > Signed-off-by: Paul Kocialkowski > Acked-by: Maxime Ripard There are several checkpatch issues here. Ok, some can be ignored, but there are at least some of them that sounda relevant. Please address them. CHECK: Comparison to NULL could be written "ctx->ctrls[i]" #214: FILE: drivers/staging/media/sunxi/cedrus/cedrus.c:51: + for (i = 0; ctx->ctrls[i] != NULL; i++) CHECK: Alignment should match open parenthesis #304: FILE: drivers/staging/media/sunxi/cedrus/cedrus.c:141: + ctrl_test = v4l2_ctrl_request_hdl_ctrl_find(hdl, + cedrus_controls[i].id); CHECK: Alignment should match open parenthesis #468: FILE: drivers/staging/media/sunxi/cedrus/cedrus.c:305: + ret = v4l2_m2m_register_media_controller(dev->m2m_dev, + vfd, MEDIA_ENT_F_PROC_VIDEO_DECODER); CHECK: Avoid using bool structure members because of possible alignment issues - see: https://lkml.org/lkml/2017/11/21/384 #638: FILE: drivers/staging/media/sunxi/cedrus/cedrus.h:47: + bool required; WARNING: line over 80 characters #744: FILE: drivers/staging/media/sunxi/cedrus/cedrus.h:153: +static inline struct cedrus_buffer *vb2_v4l2_to_cedrus_buffer(const struct vb2_v4l2_buffer *p) WARNING: line over 80 characters #749: FILE: drivers/staging/media/sunxi/cedrus/cedrus.h:158: +static inline struct cedrus_buffer *vb2_to_cedrus_buffer(const struct vb2_buffer *p) CHECK: Alignment should match open parenthesis #809: FILE: drivers/staging/media/sunxi/cedrus/cedrus_dec.c:47: + run.mpeg2.slice_params = cedrus_find_control_data(ctx, + V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS); CHECK: Alignment should match open parenthesis #811: FILE: drivers/staging/media/sunxi/cedrus/cedrus_dec.c:49: + run.mpeg2.quantization = cedrus_find_control_data(ctx, + V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION); WARNING: line over 80 characters #1368: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:133: + reg |= VE_DEC_MPEG_MP12HDR_INTRA_DC_PRECISION(picture->intra_dc_precision); WARNING: line over 80 characters #1369: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:134: + reg |= VE_DEC_MPEG_MP12HDR_INTRA_PICTURE_STRUCTURE(picture->picture_structure); WARNING: line over 80 characters #1371: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:136: + reg |= VE_DEC_MPEG_MP12HDR_FRAME_PRED_FRAME_DCT(picture->frame_pred_frame_dct); WARNING: line over 80 characters #1372: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:137: + reg |= VE_DEC_MPEG_MP12HDR_CONCEALMENT_MOTION_VECTORS(picture->concealment_motion_vectors); WARNING: line over 80 characters #1395: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:160: + fwd_luma_addr = cedrus_dst_buf_addr(ctx, slice_params->forward_ref_index, 0); WARNING: line over 80 characters #1396: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:161: + fwd_chroma_addr = cedrus_dst_buf_addr(ctx, slice_params->forward_ref_index, 1); WARNING: line over 80 characters #1401: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:166: + bwd_luma_addr = cedrus_dst_buf_addr(ctx, slice_params->backward_ref_index, 0); WARNING: line over 80 characters #1402: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:167: + bwd_chroma_addr = cedrus_dst_buf_addr(ctx, slice_params->backward_ref_index, 1); WARNING: line over 80 characters #1417: FILE: drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c:182: + cedrus_write(dev, VE_DEC_MPEG_VLD_OFFSET, slice_params->data_bit_offset); CHECK: Macro argument reuse 'x' - possible side-effects? #1552: FILE: drivers/staging/media/sunxi/cedrus/cedrus_regs.h:74: +#define VE_DEC_MPEG_MP12HDR_F_CODE_MASK(x, y) \ + GENMASK(VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y) + 3, \ + VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y)) CHECK: Macro argument reuse 'y' - possible side-effects? #1552: FILE: drivers/staging/media/sunxi/cedrus/cedrus_regs.h:74: +#define VE_DEC_MPEG_MP12HDR_F_CODE_MASK(x, y) \ + GENMASK(VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y) + 3, \ + VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y)) CHECK: Macro argument reuse 'x' - possible side-effects? #1555: FILE: drivers/staging/media/sunxi/cedrus/cedrus_regs.h:77: +#define VE_DEC_MPEG_MP12HDR_F_CODE(x, y, v) \ + (((v) << VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y)) & \ + VE_DEC_MPEG_MP12HDR_F_CODE_MASK(x, y)) CHECK: Macro argument reuse 'y' - possible side-effects? #1555: FILE: drivers/staging/media/sunxi/cedrus/cedrus_regs.h:77: +#define VE_DEC_MPEG_MP12HDR_F_CODE(x, y, v) \ + (((v) << VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y)) & \ + VE_DEC_MPEG_MP12HDR_F_CODE_MASK(x, y)) CHECK: Macro argument reuse 'a' - possible side-effects? #1685: FILE: drivers/staging/media/sunxi/cedrus/cedrus_regs.h:207: +#define VE_DEC_MPEG_VLD_ADDR_BASE(a) \ + (((a) & GENMASK(27, 4)) | (((a) >> 28) & GENMASK(3, 0))) CHECK: Comparison to NULL could be written "fmt" #1805: FILE: drivers/staging/media/sunxi/cedrus/cedrus_video.c:88: + return fmt != NULL; CHECK: Please use a blank line after function/struct/union/enum declarations #2214: FILE: drivers/staging/media/sunxi/cedrus/cedrus_video.c:497: +} +static struct vb2_ops cedrus_qops = { total: 0 errors, 11 warnings, 13 checks, 2139 lines checked Thanks, Mauro