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=-9.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,UNPARSEABLE_RELAY,URIBL_BLOCKED, 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 AFC0FC282CE for ; Tue, 4 Jun 2019 10:13:44 +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 84C0A2084A for ; Tue, 4 Jun 2019 10:13:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="sDR09ClR"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="sUijH9xY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 84C0A2084A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=mediatek.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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DWL0Fvguq6cC08JsO5yQOK0A8brZpPw4s3CQFAxp0y0=; b=sDR09ClRp2l+ta QtzNUW+7k3uUWxm3PvfW/SV1m2yaeMZXRF9jOlq6Kos/XeZo1OWwpLL5ESA5fOxZZJUJO1Drk7IPe fZXQJ4KRM5fCiVXerQYVFTxdf5/VvI9/wfS2fkD26UfgZnkf6/HR5GAgxOJpcNrXZUC25OqsqJsz8 jlm3FsmJu5PG08u+cID+KnH9Oo6Vsl69jkG9Iq22IHONqxUwJWI4YZTxxmr7xAgc5wzZXgWpy+I9F Nq4Zy//flaJUM/4SBPwjoMzCuR/C415a0KEWeVQSugDiHSodyFHS1tXSaZz9k3PG92DuON8H0QdZt kbcjKhJtKf+HkjMLBq0w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hY6Rm-00089J-Bn; Tue, 04 Jun 2019 10:13:38 +0000 Received: from merlin.infradead.org ([2001:8b0:10b:1231::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hY6RT-0007iA-Ct; Tue, 04 Jun 2019 10:13:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Content-Type:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:CC:To:From:Sender:Reply-To: Content-Transfer-Encoding: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=Krqx+SUy1HOAV9Tac071mFO380k1FRg7FGk/m9ck/7U=; b=sUijH9xYiRn4aIFjafrg4aB2q hJGp+U3qPqU0xcb5lLC0aCt7PYFHcYz+I/Z136I0mnL1QcjepzgAQqK9zFVxv4UdCuvPrVnTNSqol 1kSGOPr4zUXRVXdCJAQWULtJfuRpO/XhuPLFXqDQqnbdu/fP/SfFN3KBxeBQAg1SIuCKJmLomeasn Kggv9j7WxNhLNzP1jVmpSCglB8oxtPjSU2zXmm6l9vOTPQ7BGMB9Q61VY7mgOaqao3WaAvCm7Vn3C VC439tgCMZlYQasj/ASK0r4esYvKg5lXRAr32LgdKoWSFJE+l3yU8TFlUQmx49pfGwOJrozY8vjs0 6t5XT+TMw==; Received: from mailgw02.mediatek.com ([216.200.240.185]) by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hY6RQ-0003Ur-LE; Tue, 04 Jun 2019 10:13:17 +0000 X-UUID: 030dff623f644e889f61ccfd585e8e3d-20190604 X-UUID: 030dff623f644e889f61ccfd585e8e3d-20190604 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 825331; Tue, 04 Jun 2019 02:12:08 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 4 Jun 2019 03:12:07 -0700 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 4 Jun 2019 18:12:01 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 4 Jun 2019 18:12:01 +0800 From: Stu Hsieh To: Mauro Carvalho Chehab , Rob Herring , CK Hu Subject: [PATCH v4 07/14] [media] mtk-mipicsi: add function to get the number of subdev link Date: Tue, 4 Jun 2019 18:11:48 +0800 Message-ID: <1559643115-15124-8-git-send-email-stu.hsieh@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1559643115-15124-1-git-send-email-stu.hsieh@mediatek.com> References: <1559643115-15124-1-git-send-email-stu.hsieh@mediatek.com> MIME-Version: 1.0 X-TM-SNTS-SMTP: F8EDD96C39312300CC9BE38EF59A9647DED5B847D22FF143A7A139D6D6217F8D2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190604_061316_869330_3B012054 X-CRM114-Status: GOOD ( 17.59 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, Stu Hsieh , Matthias Brugger , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.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 This patch add function to get subdev link. Mt2712 can serve at most four camera link for each mipicsi port. The number of link according to the value which is defined in dts, the string is "mediatek,mipicsi_max_vc". This value "max_vc" is the number of subdev link. Signed-off-by: Stu Hsieh --- .../media/platform/mtk-mipicsi/mtk_mipicsi.c | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c b/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c index f5cb29077022..ea1edbc6401b 100644 --- a/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c +++ b/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c @@ -120,6 +120,7 @@ struct mtk_mipicsi_subdev { struct device_node *node; struct v4l2_async_subdev asd; struct v4l2_subdev *subdev; + unsigned int max_vc; }; struct mtk_mipicsi_channel { @@ -153,6 +154,8 @@ struct mtk_mipicsi_dev { struct mtk_mipicsi_buf cam_buf[MAX_BUFFER_NUM]; struct list_head fb_list; bool streamon; + unsigned int link; + u8 link_reg_val; char drv_name[16]; u32 id; @@ -182,6 +185,25 @@ static const struct mtk_format mtk_mipicsi_formats[] = { }, }; +static int get_subdev_link(struct mtk_mipicsi_dev *mipicsi, + unsigned int *link, u8 *link_reg_val) +{ + struct device *dev = &mipicsi->pdev->dev; + struct mtk_mipicsi_subdev *sd = &mipicsi->mipicsi_sd; + + if (sd->max_vc == 1) { + *link = 1; + *link_reg_val = 0x1; + dev_info(dev, "mtk mipicsi support 1 channel\n"); + + return 0; + } + + dev_info(dev, "mtk mipicsi support %d channel\n", sd->max_vc); + + return 0; +} + static void mtk_mipicsi_ana_clk_enable(void __iomem *base, bool enable) { if (enable) { @@ -877,6 +899,7 @@ static int mtk_mipicsi_node_parse(struct mtk_mipicsi_dev *mipicsi) struct resource *res = NULL; struct device_node *common_node = NULL; struct platform_device *pdev = NULL; + struct mtk_mipicsi_subdev *sd = &mipicsi->mipicsi_sd; dev = &mipicsi->pdev->dev; pdev = mipicsi->pdev; @@ -891,6 +914,14 @@ static int mtk_mipicsi_node_parse(struct mtk_mipicsi_dev *mipicsi) (void)sprintf(mipicsi->drv_name, MTK_MIPICSI_DRV_NAME"%d", mipicsi->id); + /*get the number of virtual channel*/ + ret = of_property_read_u32(dev->of_node, "mediatek,mipicsi_max_vc", + &sd->max_vc); + if (ret != 0) { + dev_info(dev, "not set mediatek,mipicsi_max_vc, use default value 1\n"); + sd->max_vc = 1; + } + /* get and parse seninf_mux_camsv */ camsv_num = of_count_phandle_with_args(dev->of_node, "mediatek,seninf_mux_camsv", NULL); @@ -1165,6 +1196,8 @@ static int mtk_mipicsi_open(struct file *file) if (ret) v4l2_subdev_call(sd, core, s_power, 0); + get_subdev_link(mipicsi, &mipicsi->link, &mipicsi->link_reg_val); + pm_runtime_get_sync(&mipicsi->pdev->dev); fh_rel: -- 2.18.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel