From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 45A02C35280 for ; Wed, 2 Oct 2019 10:56:14 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 17D7A2086A for ; Wed, 2 Oct 2019 10:56:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="e4zxnDUL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 17D7A2086A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=kK9bzfDsvqQ6NUOj2OXAMuEHjtCqIqr98NMq0bhR1B0=; b=e4zxnDULhZPOpB AQkeBy5946LWrHAWEnZVj+BhwwTZu32zhxESasTux/Y3sDZDX7DH9eWvHnVNFMMRxUHJ9EbQfAovD cqgLmBaKBm5yBFuHRGNGxtHRn0HEkB6VQ5LCAAe2ORI23vVNpeTSV3AwHJzSe+G0awUTMDqONQYcq kz/RkilSLCHoE/undpt6W5OyRuy0hLYQXbx3VwKnok+FNdumKDsSXGN1yl7sWVo2uJF/IxIUC0rrg zFpdWrtVjfe0GhQNQIwTv3G40DLW4+99/RJCL8+cyAfUzNwi3ntVdW5UB+8D+fEbNv+2joaqmmk4D tACEGJQVqmGJT2jTNfJA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iFcIn-0001T2-Eg; Wed, 02 Oct 2019 10:56:13 +0000 Received: from mga07.intel.com ([134.134.136.100]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iFcIj-0001RN-MN; Wed, 02 Oct 2019 10:56:11 +0000 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Oct 2019 03:56:07 -0700 X-IronPort-AV: E=Sophos;i="5.64,574,1559545200"; d="scan'208";a="216414918" Received: from paasikivi.fi.intel.com ([10.237.72.42]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Oct 2019 03:56:02 -0700 Received: by paasikivi.fi.intel.com (Postfix, from userid 1000) id E87CC20976; Wed, 2 Oct 2019 13:55:59 +0300 (EEST) Date: Wed, 2 Oct 2019 13:55:59 +0300 From: Sakari Ailus To: Hans Verkuil Subject: Re: [RFC,V2,07/11] media: platform: Add Mediatek ISP P1 private control Message-ID: <20191002105559.GC972@paasikivi.fi.intel.com> References: <20190510015755.51495-8-jungo.lin@mediatek.com> <49a8ba54-aba4-1915-6732-987a58e8bd3c@xs4all.nl> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <49a8ba54-aba4-1915-6732-987a58e8bd3c@xs4all.nl> User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191002_035609_771454_C01DF951 X-CRM114-Status: GOOD ( 25.97 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ryan.yu@mediatek.com, frankie.chiu@mediatek.com, laurent.pinchart+renesas@ideasonboard.com, Rynn.Wu@mediatek.com, suleiman@chromium.org, Jerry-ch.Chen@mediatek.com, Jungo Lin , frederic.chen@mediatek.com, seraph.huang@mediatek.com, linux-media@vger.kernel.org, devicetree@vger.kernel.org, shik@chromium.org, yuzhao@chromium.org, linux-mediatek@lists.infradead.org, matthias.bgg@gmail.com, mchehab@kernel.org, linux-arm-kernel@lists.infradead.org, Sean.Cheng@mediatek.com, srv_heupstream@mediatek.com, sj.huang@mediatek.com, tfiga@chromium.org, christie.yu@mediatek.com, zwisler@chromium.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Jungo, Hans, On Mon, May 13, 2019 at 10:46:46AM +0200, Hans Verkuil wrote: > On 5/10/19 3:58 AM, Jungo Lin wrote: ... > > +struct v4l2_ctrl_config mtk_cam_controls[] = { > > + { > > + .ops = &mtk_cam_dev_ctrl_ops, > > + .id = V4L2_CID_PRIVATE_GET_BIN_INFO, > > Don't use "PRIVATE" in the name. I'd replace that with MTK to indicate > that this is mediatek-specific. Same for the next control below. > > > + .name = "MTK CAM GET BIN INFO", > > + .type = V4L2_CTRL_TYPE_INTEGER, > > + .min = (IMG_MIN_WIDTH << 16) | IMG_MIN_HEIGHT, > > + .max = (IMG_MAX_WIDTH << 16) | IMG_MAX_HEIGHT, > > + .step = 1, > > + .def = (IMG_MAX_WIDTH << 16) | IMG_MAX_HEIGHT, > > + .flags = V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE, > > Don't mix width and height. I recommend splitting this into two controls. > > Sakari might have an opinion on this as well. > > > + }, > > + { > > + .ops = &mtk_cam_dev_ctrl_ops, > > + .id = V4L2_CID_PRIVATE_RAW_PATH, > > + .name = "MTK CAM RAW PATH", > > + .type = V4L2_CTRL_TYPE_BOOLEAN, > > + .min = 0, > > + .max = 1, > > + .step = 1, > > + .def = 1, > > + }, > > RAW_PATH is a very vague name. If it is 0, then it is pure raw, and if it > is 1, then it is 'processing raw'? If so, call it "Processing Raw". Jungo: what's the purpose of > > Although you have to describe in the header or here what that means. > > Private controls should be well documented. > > > +}; > > + > > +int mtk_cam_ctrl_init(struct mtk_cam_dev *cam_dev, > > + struct v4l2_ctrl_handler *hdl) > > +{ > > + unsigned int i; > > + > > + /* Initialized HW controls, allow V4L2_CID_MTK_CAM_MAX ctrls */ > > + v4l2_ctrl_handler_init(hdl, V4L2_CID_MTK_CAM_MAX); > > + if (hdl->error) { > > + v4l2_ctrl_handler_free(hdl); > > + return hdl->error; > > + } > > + > > + for (i = 0; i < ARRAY_SIZE(mtk_cam_controls); i++) > > + v4l2_ctrl_new_custom(hdl, &mtk_cam_controls[i], cam_dev); > > + > > + dev_dbg(&cam_dev->pdev->dev, "%s done", __func__); > > + return 0; > > +} > > diff --git a/drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-ctrl.h b/drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-ctrl.h > > new file mode 100644 > > index 000000000000..74a6538c81ac > > --- /dev/null > > +++ b/drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-ctrl.h > > @@ -0,0 +1,32 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +/* > > + * Copyright (c) 2018 MediaTek Inc. > > + * Author: Ryan Yu > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 as > > + * published by the Free Software Foundation. > > + * > > + * This program is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > + */ > > + > > +#ifndef __MTK_CAM_CTRL_H__ > > +#define __MTK_CAM_CTRL_H__ > > + > > +#include > > + > > +#define V4L2_CID_MTK_CAM_PRIVATE_CAM V4L2_CID_USER_MTK_CAM_BASE > > +#define V4L2_CID_PRIVATE_GET_BIN_INFO \ > > + (V4L2_CID_MTK_CAM_PRIVATE_CAM + 1) > > +#define V4L2_CID_PRIVATE_RAW_PATH \ > > + (V4L2_CID_MTK_CAM_PRIVATE_CAM + 2) > > These last two defines can be on a single line. > > They need to be documented in the header. > > > + > > +#define V4L2_CID_MTK_CAM_MAX 16 > > + > > +int mtk_cam_ctrl_init(struct mtk_cam_dev *cam_dev, > > + struct v4l2_ctrl_handler *hdl); > > + > > +#endif /* __MTK_CAM_CTRL_H__ */ > > diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h > > index 06479f2fb3ae..cbe8f5f7782b 100644 > > --- a/include/uapi/linux/v4l2-controls.h > > +++ b/include/uapi/linux/v4l2-controls.h > > @@ -192,6 +192,10 @@ enum v4l2_colorfx { > > * We reserve 16 controls for this driver. */ > > #define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0) > > > > +/* The base for the mediatek ISP Pass 1 driver controls */ > > +/* We reserve 16 controls for this driver. */ > > +#define V4L2_CID_USER_MTK_CAM_BASE (V4L2_CID_USER_BASE + 0x10c0) > > + > > /* MPEG-class control IDs */ > > /* The MPEG controls are applicable to all codec controls > > * and the 'MPEG' part of the define is historical */ > > > > Regards, > > Hans -- Sakari Ailus sakari.ailus@linux.intel.com _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel