From patchwork Mon Aug 17 14:35:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 256138 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=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT 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 E990BC433E1 for ; Mon, 17 Aug 2020 14:32:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B171E20748 for ; Mon, 17 Aug 2020 14:32:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729051AbgHQOcM (ORCPT ); Mon, 17 Aug 2020 10:32:12 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:58411 "EHLO relay6-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729049AbgHQOcM (ORCPT ); Mon, 17 Aug 2020 10:32:12 -0400 X-Originating-IP: 93.34.118.233 Received: from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233]) (Authenticated sender: jacopo@jmondi.org) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 6C83EC0006; Mon, 17 Aug 2020 14:32:08 +0000 (UTC) From: Jacopo Mondi To: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, Mauro Carvalho Chehab Cc: Jacopo Mondi , Kieran Bingham , Laurent Pinchart , =?utf-8?q?Niklas_S=C3=B6derlund?= , sakari.ailus@iki.fi, hverkuil@xs4all.nl, hyunk@xilinx.com, manivannan.sadhasivam@linaro.org Subject: [PATCH 2/4] media: i2c: max9286: Get format from remote ends Date: Mon, 17 Aug 2020 16:35:38 +0200 Message-Id: <20200817143540.247340-3-jacopo+renesas@jmondi.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200817143540.247340-1-jacopo+renesas@jmondi.org> References: <20200817143540.247340-1-jacopo+renesas@jmondi.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org The MAX9286 chip does not allow any modification to the image stream format it de-serializes from the GMSL bus to its MIPI CSI-2 output interface. For this reason, when the format is queried from on any of the MAX9286 pads, get the remote subdevice format and return it. Signed-off-by: Jacopo Mondi --- drivers/media/i2c/max9286.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/media/i2c/max9286.c b/drivers/media/i2c/max9286.c index 7c292f2e2704..e6a70dbd27df 100644 --- a/drivers/media/i2c/max9286.c +++ b/drivers/media/i2c/max9286.c @@ -742,8 +742,10 @@ static int max9286_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_format *format) { struct max9286_priv *priv = sd_to_max9286(sd); - struct v4l2_mbus_framefmt *cfg_fmt; + struct v4l2_subdev_format remote_fmt = {}; + struct device *dev = &priv->client->dev; unsigned int pad = format->pad; + int ret; /* * Multiplexed Stream Support: Support link validation by returning the @@ -754,12 +756,26 @@ static int max9286_get_fmt(struct v4l2_subdev *sd, if (pad == MAX9286_SRC_PAD) pad = __ffs(priv->bound_sources); - cfg_fmt = max9286_get_pad_format(priv, cfg, pad, format->which); - if (!cfg_fmt) - return -EINVAL; + if (format->which == V4L2_SUBDEV_FORMAT_TRY) { + mutex_lock(&priv->mutex); + format->format = *v4l2_subdev_get_try_format(&priv->sd, + cfg, pad); + mutex_unlock(&priv->mutex); + + return 0; + } + + remote_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE; + remote_fmt.pad = 0; + ret = v4l2_subdev_call(priv->sources[pad].sd, pad, get_fmt, NULL, + &remote_fmt); + if (ret) { + dev_err(dev, "Unable get format on source %d\n", pad); + return ret; + } mutex_lock(&priv->mutex); - format->format = *cfg_fmt; + format->format = remote_fmt.format; mutex_unlock(&priv->mutex); return 0; From patchwork Mon Aug 17 14:35:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 256137 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=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham 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 C3080C433DF for ; Mon, 17 Aug 2020 14:32:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A217720729 for ; Mon, 17 Aug 2020 14:32:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728694AbgHQOcR (ORCPT ); Mon, 17 Aug 2020 10:32:17 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:43685 "EHLO relay6-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729053AbgHQOcQ (ORCPT ); Mon, 17 Aug 2020 10:32:16 -0400 X-Originating-IP: 93.34.118.233 Received: from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233]) (Authenticated sender: jacopo@jmondi.org) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 92BC8C0009; Mon, 17 Aug 2020 14:32:12 +0000 (UTC) From: Jacopo Mondi To: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, Mauro Carvalho Chehab Cc: Jacopo Mondi , Kieran Bingham , Laurent Pinchart , =?utf-8?q?Niklas_S=C3=B6derlund?= , sakari.ailus@iki.fi, hverkuil@xs4all.nl, hyunk@xilinx.com, manivannan.sadhasivam@linaro.org Subject: [PATCH 4/4] media: i2c: max9286: Remove cached formats Date: Mon, 17 Aug 2020 16:35:40 +0200 Message-Id: <20200817143540.247340-5-jacopo+renesas@jmondi.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200817143540.247340-1-jacopo+renesas@jmondi.org> References: <20200817143540.247340-1-jacopo+renesas@jmondi.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Now that the image stream formats are retrieved from the remote sources there's no need to cache them in the driver structure. Remove the cached mbus frame formats and their initialization. Signed-off-by: Jacopo Mondi --- drivers/media/i2c/max9286.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/media/i2c/max9286.c b/drivers/media/i2c/max9286.c index a4e23396c4b6..97dfee767bbf 100644 --- a/drivers/media/i2c/max9286.c +++ b/drivers/media/i2c/max9286.c @@ -160,8 +160,6 @@ struct max9286_priv { struct v4l2_ctrl_handler ctrls; struct v4l2_ctrl *pixelrate; - struct v4l2_mbus_framefmt fmt[MAX9286_N_SINKS]; - /* Protects controls and fmt structures */ struct mutex mutex; @@ -758,18 +756,6 @@ static const struct v4l2_subdev_ops max9286_subdev_ops = { .pad = &max9286_pad_ops, }; -static void max9286_init_format(struct v4l2_mbus_framefmt *fmt) -{ - fmt->width = 1280; - fmt->height = 800; - fmt->code = MEDIA_BUS_FMT_UYVY8_1X16; - fmt->colorspace = V4L2_COLORSPACE_SRGB; - fmt->field = V4L2_FIELD_NONE; - fmt->ycbcr_enc = V4L2_YCBCR_ENC_DEFAULT; - fmt->quantization = V4L2_QUANTIZATION_DEFAULT; - fmt->xfer_func = V4L2_XFER_FUNC_DEFAULT; -} - static int max9286_open(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh) { struct max9286_priv *priv = sd_to_max9286(subdev); @@ -834,9 +820,6 @@ static int max9286_v4l2_register(struct max9286_priv *priv) /* Configure V4L2 for the MAX9286 itself */ - for (i = 0; i < MAX9286_N_SINKS; i++) - max9286_init_format(&priv->fmt[i]); - v4l2_i2c_subdev_init(&priv->sd, priv->client, &max9286_subdev_ops); priv->sd.internal_ops = &max9286_subdev_internal_ops; priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;