From patchwork Mon Apr 23 13:47:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rui Miguel Silva X-Patchwork-Id: 10357033 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A30CE601D3 for ; Mon, 23 Apr 2018 13:48:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9315428A98 for ; Mon, 23 Apr 2018 13:48:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 877F228AE3; Mon, 23 Apr 2018 13:48:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2732D28A98 for ; Mon, 23 Apr 2018 13:48:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755107AbeDWNsW (ORCPT ); Mon, 23 Apr 2018 09:48:22 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:36086 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755207AbeDWNsS (ORCPT ); Mon, 23 Apr 2018 09:48:18 -0400 Received: by mail-wr0-f195.google.com with SMTP id u18-v6so14226388wrg.3 for ; Mon, 23 Apr 2018 06:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DfXCwLr9mOq3wp8mybJGL/qSHG1VGjllf7P08B/qaYM=; b=QECVWUfdCQdHAwlk7Ymw2xwhMhgG/K6XHmIA59i2aElgqtXcPs3uckt85EX44Oix0d QkfbD+t5+4TguJi4dLAUgG/ilizncSs5LBRTaSo6kUSw1zajAOghPnWQ3XoEnsk19UHN PXZ63Z9cucIVOBgsYfJpqnPZR2RKPDcnFHI3o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DfXCwLr9mOq3wp8mybJGL/qSHG1VGjllf7P08B/qaYM=; b=TFArewNiw7rcrm+cUOSqbH/8Eu7wvnYu0lOVWSZY1Jq7TIYYLFaKj3hwf4CGMg4CQF BQ+pyO/5WJoz869oIRDU1U3n9EGzvG8kKG60ads9Fiq4FTq9wJhtdhx+5TB5UY2hB6rZ TTbxvfYDdXlr76tCk7DcGeoatNO3V+KbSJ2BMBj49EjafVjNuXLWcZCMMxj4MJAREoW1 3cUTDk56z5/Yui2DYiTLNYFt1PTIwMESe2qHp83l5PdQtvwrDAJstUfNfl+9RZAk2itT +OE4pUdOT9oVqZxzZOtcgd6C367enXxHNVqae7CdyWjqe33UEcWozpBF+72nD9G87H9q 8nHA== X-Gm-Message-State: ALQs6tAYz6ezByfZEd3YeBd4cyukEEtA+0iSglfXjPaqf0WNkBaPTu34 ajJcQg0uiheShLMATq+wFUBudw== X-Google-Smtp-Source: AIpwx4+h4gWaTE3DFHDpmPPUvCJ2ZCdSR+rH+fXTx4/9v5P6MkqC4qlOqU55+hwqH0ah0+zjZixlnQ== X-Received: by 10.28.112.3 with SMTP id l3mr10289839wmc.90.1524491297691; Mon, 23 Apr 2018 06:48:17 -0700 (PDT) Received: from localhost.localdomain ([2001:8a0:6606:9100:b159:5390:182d:7dce]) by smtp.gmail.com with ESMTPSA id n14-v6sm14680319wrj.16.2018.04.23.06.48.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Apr 2018 06:48:16 -0700 (PDT) From: Rui Miguel Silva To: mchehab@kernel.org, sakari.ailus@linux.intel.com, Steve Longerbeam , Philipp Zabel , Rob Herring Cc: linux-media@vger.kernel.org, devel@driverdev.osuosl.org, Shawn Guo , Fabio Estevam , devicetree@vger.kernel.org, Greg Kroah-Hartman , Ryan Harkin , Rui Miguel Silva Subject: [PATCH v2 01/15] media: staging/imx: add support to media dev for no IPU systems Date: Mon, 23 Apr 2018 14:47:36 +0100 Message-Id: <20180423134750.30403-2-rui.silva@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180423134750.30403-1-rui.silva@linaro.org> References: <20180423134750.30403-1-rui.silva@linaro.org> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some i.MX SoC do not have IPU, like the i.MX7, add to the the media device infrastructure support to be used in this type of systems that do not have internal subdevices besides the CSI. Signed-off-by: Rui Miguel Silva --- drivers/staging/media/imx/imx-media-dev.c | 18 +++++++++++++----- .../staging/media/imx/imx-media-internal-sd.c | 3 +++ drivers/staging/media/imx/imx-media.h | 3 +++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/staging/media/imx/imx-media-dev.c b/drivers/staging/media/imx/imx-media-dev.c index f67ec8e27093..c0f277adeebe 100644 --- a/drivers/staging/media/imx/imx-media-dev.c +++ b/drivers/staging/media/imx/imx-media-dev.c @@ -92,6 +92,9 @@ static int imx_media_get_ipu(struct imx_media_dev *imxmd, struct ipu_soc *ipu; int ipu_id; + if (!imxmd->ipu_present) + return 0; + ipu = dev_get_drvdata(csi_sd->dev->parent); if (!ipu) { v4l2_err(&imxmd->v4l2_dev, @@ -481,16 +484,21 @@ static int imx_media_probe(struct platform_device *pdev) goto notifier_cleanup; } - ret = imx_media_add_internal_subdevs(imxmd); - if (ret) { - v4l2_err(&imxmd->v4l2_dev, - "add_internal_subdevs failed with %d\n", ret); - goto notifier_cleanup; + imxmd->ipu_present = true; + + if (imxmd->ipu_present) { + ret = imx_media_add_internal_subdevs(imxmd); + if (ret) { + v4l2_err(&imxmd->v4l2_dev, + "add_internal_subdevs failed with %d\n", ret); + goto notifier_cleanup; + } } /* no subdevs? just bail */ if (imxmd->notifier.num_subdevs == 0) { ret = -ENODEV; + v4l2_err(&imxmd->v4l2_dev, "no subdevs\n"); goto notifier_cleanup; } diff --git a/drivers/staging/media/imx/imx-media-internal-sd.c b/drivers/staging/media/imx/imx-media-internal-sd.c index 0fdc45dbfb76..2bcdc232369a 100644 --- a/drivers/staging/media/imx/imx-media-internal-sd.c +++ b/drivers/staging/media/imx/imx-media-internal-sd.c @@ -238,6 +238,9 @@ int imx_media_create_internal_links(struct imx_media_dev *imxmd, struct media_pad *pad; int i, j, ret; + if (!imxmd->ipu_present) + return 0; + intsd = find_intsd_by_grp_id(sd->grp_id); if (!intsd) return -ENODEV; diff --git a/drivers/staging/media/imx/imx-media.h b/drivers/staging/media/imx/imx-media.h index 44532cd5b812..d40538ecf176 100644 --- a/drivers/staging/media/imx/imx-media.h +++ b/drivers/staging/media/imx/imx-media.h @@ -147,6 +147,9 @@ struct imx_media_dev { /* for async subdev registration */ struct v4l2_async_notifier notifier; + + /* indicator to if the system has IPU */ + bool ipu_present; }; enum codespace_sel {