From patchwork Fri Mar 19 02:36:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Ji X-Patchwork-Id: 12149761 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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS 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 9D364C433DB for ; Fri, 19 Mar 2021 02:36:22 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 615E364F18 for ; Fri, 19 Mar 2021 02:36:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 615E364F18 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=analogixsemi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CFB246E314; Fri, 19 Mar 2021 02:36:21 +0000 (UTC) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2104.outbound.protection.outlook.com [40.107.92.104]) by gabe.freedesktop.org (Postfix) with ESMTPS id B84E76E314 for ; Fri, 19 Mar 2021 02:36:20 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g0xiTRMgvcQhQF+/eQQPNGEsQ4F4teEKoKhl4jupi5v3Qf8ye+JzGjlVCzqAve7jBbE+uavCFizTyu1cTxyNJ+yjueurTu+6IGDt4RRIsYashzUBd4OdM0heAwLOgYlUo1AChNxbPyfsrEGGGkVv1GNrSqcp2+urAlMMx1vs/6YRZVnuidcd9x75jii107+ZKhjjd9YeLxfrDi7BVxAaHP36azR8G/oMelKPoRx3yAcKNj+Sj4Yzecig2dukRQ4Gb7Gm7x4HXJzw3V5bA3oWoFT/c9cfmxLAqEVOB47FjqCNUWbCiR3DIxKQMudIiycJYA+jovMI6H+5KMiuMSh+bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wcMAHVlWIFil9xMDioAKLUkwI7RAd2ugoQndZmXnTkk=; b=QFkSiyl+re75fDlVYJbpoF89Xd6tngYMy7QAmq/rjG61Dchp8AappTFdhC8gGJG+EN00a+r/dDY+Abz+qQ4CJrJB1F1YBtwEG50guej3QWRF8qAlpnFT05w0oiTNlhD6j3qA7u3pZw6UhQeEz1Zj9btDe1FMWAkrBTI3vvT0jjtfKga8K4/Pw5O9hIglpuMT9HoBDUWCa2Xj1t/iLMXpGYCKOiIEoKeXv/qKvP0s2jraRTIEHfzfadD0CdSHBDsZtEsE1vtsaZTe8h+66xnblTPxaJPnblsKSJB9s1mR8gsJQ7P7CEJ/agciWAetfWKh717ZdvGsiDqMmC/ESp0eHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analogixsemi.com; dmarc=pass action=none header.from=analogixsemi.com; dkim=pass header.d=analogixsemi.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Analogixsemi.onmicrosoft.com; s=selector2-Analogixsemi-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wcMAHVlWIFil9xMDioAKLUkwI7RAd2ugoQndZmXnTkk=; b=LvZ0NvdBr+ei/IUj3R8qVPwWJes1bkhlSqYVgF1JK4SiarjB08wdxs1u/wWWKiI24FGrmaQJvdDeApGVSOCs1TdKzXhEtZhXMsJUcIC39P6/QmLMoCF6UDi2+IHBS1aEfbvWqbAmbbch3Yn8UEow2vlo+tOM9f2VlXJhAK4oPCs= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=analogixsemi.com; Received: from BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) by SJ0PR04MB7597.namprd04.prod.outlook.com (2603:10b6:a03:320::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 02:36:19 +0000 Received: from BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f]) by BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 02:36:19 +0000 Date: Fri, 19 Mar 2021 10:36:13 +0800 From: Xin Ji To: Rob Herring , David Airlie , Nicolas Boichat , Hsin-Yi Wang Subject: [PATCH v5 1/5] dt-bindings:drm/bridge:anx7625:add vendor define flags Message-ID: References: Content-Disposition: inline In-Reply-To: X-Originating-IP: [60.251.58.79] X-ClientProxiedBy: HK2PR0401CA0008.apcprd04.prod.outlook.com (2603:1096:202:2::18) To BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from anxtwsw-Precision-3640-Tower (60.251.58.79) by HK2PR0401CA0008.apcprd04.prod.outlook.com (2603:1096:202:2::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 02:36:18 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 545e1c8f-7cb5-41db-126f-08d8ea7fc6aa X-MS-TrafficTypeDiagnostic: SJ0PR04MB7597: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LN8/fSayx4lhld7A7+tp/hJkWUlDUr2+YQB7gzb/Yk9f8VMInfTwubuMO/xslyDWcrPhUKgrVWiu7nOzMcL8iVXk2NslKiSkzLRKDW0kKoSuAGJrKvtiIGpxKFruXRb3iMplnF0udy/M06XxlSJPFcTORGGaOoyWh7OcOBjd2O79WQaOcIGmey3Jkl2CMAPnEKSYuY1rXEQbsfEOc5av9kXU10Bgpz8Zq8byrO3dw7MgZi/GPzLZz0SXGBN8Gn6l0BHf2CK346ja7KmwcbvD/xWEqjk3OpiaVr7x66zj58hU5e+7BL/Q6rcos/CGJYRmcsS6chtzocS5tzJ2HD3R4CA/4nlxVIrqRiktq5JTYP6LSnzOET2PSsxofIb0NrA3U/0CGtq7z9MYKeeDpTRL1V8gZ+a/E6VM/J/9NyfkGCuT+vg7MHb3UbU8O0KoMt6iMcZLDa6r5e8sdgQF1ZH95biN3PPpovDqTAMCLWm2t79bacdy/TWEnZHnO0hYQwIhAgmA4rMbqYV1S1wRdpmU5MMkc5rcuDmJ/YghaOmVOv84+E6Sv+/OS/SHiU9Ejat5D7jpCmtWgKJ2kM20Err0O8XBQBq5mImjT5W75WPnVdMkwyBU77h3yFL6N3gavKO7QOIwXmmGFNnNeGIYHlAW6w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR04MB6739.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(376002)(346002)(366004)(136003)(39850400004)(396003)(4326008)(110136005)(26005)(16526019)(86362001)(8676002)(55236004)(6486002)(956004)(2616005)(6666004)(7416002)(38100700001)(52116002)(2906002)(478600001)(5660300002)(8936002)(36756003)(6496006)(54906003)(66556008)(66476007)(316002)(66946007)(186003)(83380400001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: DRrHaAAWdJ/Rr7vQ878QULWNYfaQz4F1Fv1g0cP02CMH6uMLP8FqLFDy5Je2E2XSAr5gvcpBjeR3hhFK9uVgDSuS1em6M5n+PZdI9PfNCkXJRzcB1xPA6EJqL+f5AWgfRKj+Rj9H8++Ihuk6EDpGSP7G4qVwXfAbmW2dZVmS1RjwuiWmzFa0mMOBOWlWb1hAzo2v90f1PPwHuJd2fuJDQyx9VyxATvpjhb3C2ZzO8NKRKYlVUVlmxef2ZuurCZ6a2sP+xKJdpLCBFbH633WGxrr7m5qlvc03uy6oh25TH4uSF5ihV1HLc9yFrvJ8Sbv2+cp4Y6Ap4RBYoGMHiUCEURxyl9blKmwytOgsHKyNUDvP3J+Mi7+68OrUjArJ9tRgmodSMopeNgojrmHqcsFAXavOv+sLqoPySp0Qh4aLJxVDIwo8zJVdJz1fNAWpaVboTdEaq33OdEBFp4zz6LRJ5jne8SqfGgPm/XMcivKcC7/aK8EiSq5EUJQz9/BNc1nJuvrEtKBz88NgAjdyaqj96wp8oO+SnUw8tOJUyx14fei7VX1IWtv7Osf/9cfDxqhAQtVB+51lqHONffNI7T/O8bNDPDjrtN6+IVG7nQNEI5KybQvPExqEJ1dG8MeBGFp1vKZhGQnrcZyDPtpkDYPfhsxTP7Bb3Iiovc+NF/qqewyf7d1FI7tYd1fAu/hhmAopg3vzlrybBNdtz3IBTJnXkGsOX9bQ+LyErjTo8SaKdWqz5lAx1jxgekEE8iWK4OqqZB8s9O4JzuGjfMJtNsbuhwr8DiEaoRtAJk1sv+lKTymgO0+d/Ti9Ih4/zF5vOcyTSpoZxSh5TPFfcoxHs9aGV6+mrDyAULpp2Wv5DbnsKEH9qUOILw0Vx9q8z9oVgFiVvVtANbEzkk7Y6W0JuN+56/QW+c0e1VPjrUPh8dDS8lt3/mEArng7Q8agGN9xQ17kl4jPXaLi4xeJfu/c3yRHNZgDT+zaxkqAeMLTZ61UkdqOyMFrAio8iVKIBPzK/JabC3fUxzt5/j4zwtpt94mEaouXnKWPiaEJ1opwPiR07p4QRU1ccXJUA6hKZZKHt2OA9BeCAjo/xX1bQuJUOkY5NYRqF4BSRdEGI9IcNHgYhwN9+lRw/DoXd2u7/2Is2w5O4XEtF9qncIprwTmKr1WdKFRuY7BVzTLBlsas+BHtgY76Z11x9Cy2eyxh3q8nRYAdaU3Me68GsX3DX4pyXjMETrl5f4Qu/3XfbnOHFpgwVG+ey1mVWS7JRnXhKzA7G3JNg0kDmvO+kWJ7UtTL2MvwY5Ri6ZkV8N7aeft/QukaGzKzgLxpAAl3TY0q0iDPMgAv X-OriginatorOrg: analogixsemi.com X-MS-Exchange-CrossTenant-Network-Message-Id: 545e1c8f-7cb5-41db-126f-08d8ea7fc6aa X-MS-Exchange-CrossTenant-AuthSource: BY5PR04MB6739.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 02:36:18.9069 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b099b0b4-f26c-4cf5-9a0f-d5be9acab205 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 65JrSTd2jsCUFWFUQUwn2MJkVY815B9/Nlfom0ADiCHxhBeoChylE4+GvkNYGDhR4JdwZ0mLYUEMs6lyNMvCeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR04MB7597 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Laurent Pinchart , Sam Ravnborg , linux-kernel@vger.kernel.org, Mark Brown , dri-devel@lists.freedesktop.org, Zhen Li , Ricardo =?iso-8859-1?q?Ca=F1uelo?= , Bernie Liang , Sheng Pan Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add 'bus-type' and 'data-lanes' define for port0. Define DP tx lane0, lane1 swing register array define, and audio enable flag. Signed-off-by: Xin Ji --- .../bindings/display/bridge/analogix,anx7625.yaml | 58 +++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml index c789784..3f54d58 100644 --- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml +++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml @@ -34,6 +34,26 @@ properties: description: used for reset chip control, RESET_N pin B7. maxItems: 1 + analogix,lane0-swing: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 20 + description: + an array of swing register setting for DP tx lane0 PHY, please don't + add this property, or contact vendor. + + analogix,lane1-swing: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 20 + description: + an array of swing register setting for DP tx lane1 PHY, please don't + add this property, or contact vendor. + + analogix,audio-enable: + type: boolean + description: let the driver enable audio HDMI codec function or not. + ports: $ref: /schemas/graph.yaml#/properties/ports @@ -41,13 +61,43 @@ properties: port@0: $ref: /schemas/graph.yaml#/properties/port description: - Video port for MIPI DSI input. + MIPI DSI/DPI input. + + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + type: object + additionalProperties: false + + properties: + remote-endpoint: true + bus-type: true + data-lanes: true + + required: + - remote-endpoint + + required: + - endpoint + port@1: $ref: /schemas/graph.yaml#/properties/port description: Video port for panel or connector. + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + type: object + additionalProperties: false + + properties: + remote-endpoint: true + + required: + - remote-endpoint + required: - port@0 - port@1 @@ -73,6 +123,10 @@ examples: enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>; reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>; + analogix,audio-enable; + analogix,lane0-swing = <0x14 0x54 0x64 0x74 0x29 0x7b 0x77 0x5b>; + analogix,lane1-swing = <0x14 0x54 0x64 0x74 0x29 0x7b 0x77 0x5b>; + ports { #address-cells = <1>; #size-cells = <0>; @@ -81,6 +135,8 @@ examples: reg = <0>; anx7625_in: endpoint { remote-endpoint = <&mipi_dsi>; + bus-type = <5>; + data-lanes = <0 1 2 3>; }; }; From patchwork Fri Mar 19 02:37:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Ji X-Patchwork-Id: 12149819 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=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 7339BC433DB for ; Fri, 19 Mar 2021 02:37:13 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 39FA764F18 for ; Fri, 19 Mar 2021 02:37:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 39FA764F18 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=analogixsemi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AF14A6E321; Fri, 19 Mar 2021 02:37:12 +0000 (UTC) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2137.outbound.protection.outlook.com [40.107.94.137]) by gabe.freedesktop.org (Postfix) with ESMTPS id 10D606E321 for ; Fri, 19 Mar 2021 02:37:12 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yt4G9YYM1Sn6qgQqfvs+kikADC84r9uZGGuc4+T+DOwFqDoM8r2FgWsJmtAvX3fOghGl3MAyle0PET4LF1FC13O+yfdV6uvF3jb4zxVjplYL3/lqYHwKcBi8AV3QfKv2PXg/YX7q1i580/koLtbzoxBubRKNroCiRCUNyMKpVFfq+8INZjdpED1Bjoddzu6X1C/Xp8XWcqRc4qiQTF9gnRzEqzuYdOIOKUaf4/aAaavuH6d4LIvx36ql50hXYeO45a1RhQrHVWT3bW1Hchu/gMYzL63G/UUFkMJFrqWkWfTcyccQajetth/Wy8ivlSrwJz1e96HxWRm+U7ggDYBZvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I4WKA+YNRzBoG6SR2F+3Bes3gnhf1zBvtj9oDjXg+g4=; b=UKn+yZhQPWYaSWq5jtiPgh1uM50nAHw3iPPD7HNByzyxfvB3qgG6BPCtXchM2MFrbf8fWOzOBAS/HfKr1eXeFWTFJOsoYQHNOCc2N9wzKpweTOFbqa2/p+xzeqn+XVDTOOBwSJxwPsUyVGQf+/2oXiS4uSrO2zMcOWKtfCuIME09iqNaXEOa94mjUJJd9hP0rGjJJyB/wmcmT2isdtnb/v7pyEE5PIG1WhxyU1f8qTsMyIRigRKGJPKLddsPrauIjyA2dNazWrUVL8SpynxIiyDoR77+/9sQpWiXxZCIHjQjh8WTyFW/OKHZQE64BdLsip9HfzLYfLxtJHw/XdBVrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analogixsemi.com; dmarc=pass action=none header.from=analogixsemi.com; dkim=pass header.d=analogixsemi.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Analogixsemi.onmicrosoft.com; s=selector2-Analogixsemi-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I4WKA+YNRzBoG6SR2F+3Bes3gnhf1zBvtj9oDjXg+g4=; b=x8Ldv5jDL45AdPUisIOtF44rba0SUesqMzlXIzC8UmE0ANYvb6ZBz3sSOEjog+X2kN73Qoxi18BJB0Ny04hcXbkWju//wq3IIEd0eNiDdkepRxhcGqAaZ0Skrj/eifrVY5EQr1PO1jI8t5W9Z7hqm/ChiJvvd4NGd+x3nrRT8Y0= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=analogixsemi.com; Received: from BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) by BYAPR04MB4277.namprd04.prod.outlook.com (2603:10b6:a03::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Fri, 19 Mar 2021 02:37:09 +0000 Received: from BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f]) by BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 02:37:09 +0000 Date: Fri, 19 Mar 2021 10:37:02 +0800 From: Xin Ji To: Robert Foss , Nicolas Boichat , Andrzej Hajda Subject: [PATCH v5 2/5] drm/bridge: anx7625: fix not correct return value Message-ID: <2295557fc68b89505e18e11fe079c7df361153e8.1616071250.git.xji@analogixsemi.com> References: Content-Disposition: inline In-Reply-To: X-Originating-IP: [60.251.58.79] X-ClientProxiedBy: HK2PR02CA0197.apcprd02.prod.outlook.com (2603:1096:201:21::33) To BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from anxtwsw-Precision-3640-Tower (60.251.58.79) by HK2PR02CA0197.apcprd02.prod.outlook.com (2603:1096:201:21::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 02:37:08 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c2a7b84e-93d9-4c78-7736-08d8ea7fe435 X-MS-TrafficTypeDiagnostic: BYAPR04MB4277: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:813; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CB7jNRuLVF7E8r8eUMgO0hUn3JRBHnDpuluVTThboHnQ+TbDSxqu02HkKnED+2N3qkN3XKFjWUB1yPJcnzytn5lnXiQiu/prQwjUXYjRZzrkjiNWtuWmOYW0hiP+o71ahtVS8TTRl6EZ9k9AZZRaXPisrtXqAm+b6Ixyihm1JKQJRK5d0lpVcpdtNh1d9/OKGngDdHky6VbcA0QpoRP3Jy1+6dhV4ZZ2747tGai27M3KzK8yr1nSMAkgtZeJhVTTz5Tzl4E7iPMceuBfGT+R+AN79QDzVhDb4EmSyXFTU8X0k2FxPiK5EqeFoXmtaZ5UoAhY/OgUCwKlYzQVWIC6bjjM1RZELSuNF6sg0WeAcwDnqGv4QPzBJZqsnu7F4tfsmc+R+KR9IUtZJ1i27cuHFMK6VzB3B/uM5l2Wgo6WF+0s+LtfPbf4zuhw2PvhCfwLQpz+BGUS0QdSMk/VoWD6K8U6UAivN2YpOJTDkAixcWH90qbWQENCm0NpSuyFOrvvTT4FGOTHNYUSJLRnweCcLNSaQYdVHJHRoGduYLc0iAYPGqOCuYzzsgQ0TxwEViTgtFYzeLH18+V9zaFHE6ljl52oOw+G53dlQzF9hpn4sgShJbnvAFpO1Vq9TJ9b/h7zI+IberZhCqgHsfra7KsUvg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR04MB6739.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(366004)(396003)(39840400004)(346002)(376002)(956004)(2906002)(8676002)(6496006)(110136005)(186003)(66556008)(55236004)(6486002)(52116002)(8936002)(26005)(86362001)(316002)(4326008)(83380400001)(66476007)(54906003)(66946007)(6666004)(36756003)(7416002)(4744005)(478600001)(16526019)(2616005)(5660300002)(38100700001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: ozF6FyR18Rfsrs/w/N69HvpTX82KFTugXohZNijQlHA9NvZIPoFUxTXVNldsk5lmVvxFLty8gJ4U2A2gcteBHFtNraf6cZIAM7pf5w14VnuI1ArT7px9n+SqtggZCwUyR70AJ3nr3bKzz9AYgcmkpM2V5skLOKgS2NdiVKq60E3Et2J8lHOxTyXGogB80xUnit9ya+7DM07GcZRMk64WWVEPihebDslCYHeMcdtFYkRYoOrCmHSZ+J1vGgkKducfnPj/1gt91F5YfUiM71mhDlRbe/BbKmHdJy/zisJai8KOG+TX2epefULagcToyiAksFvEv68CLGN+dtomsxcGos+glCkFZOWijBF0BvhAWRGAT215U/TWXn60OvL7ar+ekoJD0PgbIk+436iypNC7TD0vZ8OObm2UVviJ8erIOaY8xNW3lDEWmhL3RizvrEMZAGi4u6N5SO5+fsml5pUuunwMKkjMBz+Tqp5jdfHrIY6g8NnUlyD72Dh6dJnGsl9JXPIYhQWncT86mvlhdbu0b5mXgDZVowprStnGtTNGyZW8T/V+oXI+m5EFv79sP+5Bfigo+enCmW4xgcHu7q7ueTonxQf7S+uKFhFX0buBBK/0JHqCbK/RjEWWtt3MMiw52g8NWoxUH0aSjt0MjCrAyaxBHUd2snEtjpU/KsPbREZxv7WQmbr+lid5Cg/n6Cpo5bDNPv0ZyNcQTCsl6nHY7fT7d9GMLBHw5lxGCBGAqK5lSd+BIsYEvVguN+2nbgOJazUgrR2X0leLIZjhNFM56c25UZvhq4/TiQPc+WVgdUEhfViuV5+gWpXp+iKGeBI0UFLWsRk1Gx78XdQdaxhyBwLYZXplkOr4Y5GoJRn3AKAScMS3MzAouse4HC3eHFY50q9KmDb12C8TkN31ONBqRXXqbNZrcAlxEkFSVFEVeU2j1DJluaxPwp8NTGxv3nHtuwDFaSODv3YVgNMa5qj2JWo5oPy66+Y5T8QCnS6DQ45aN5UvCefexBxCVorExZ0YyPdfnq6q7T9K4+0w69X2TwtY+1Mm1DidoNyB+pPxb67KA1JUMcfxCnbVAFporh9f8g/Hz62F4nUo8lLNBvKgDWr1HZnMoJvKyUKgVLbZxlVnkxGVnrQCTn8aHr4NWkrGHEdH8lYD7oE2WOHnP0XdI/xKSYNiuhXvKP2bfNTq05SaVYhBxkeJmzOWvS/qv2p9LhN2ropfDLCGmxOsm6N2AMxEkFv+qhPn9Klgm73etFyV0RZQEr82b78kfRQpXYf3ADZDRWtorfCkbVGnIu0se1kJ3lQLtfOGkvFgMyPLa5bStve/tKZms/8PL2Db6jID X-OriginatorOrg: analogixsemi.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2a7b84e-93d9-4c78-7736-08d8ea7fe435 X-MS-Exchange-CrossTenant-AuthSource: BY5PR04MB6739.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 02:37:09.1554 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b099b0b4-f26c-4cf5-9a0f-d5be9acab205 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: g/+SJrF76kh3s7qZvWy0YQ1yo/mOM+IAYIVmZAIc4BWTpkQzllXTT5Xg0IuXHlXVdCP+yx60UAWNFxHeIg02Hw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR04MB4277 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Jernej Skrabec , Sheng Pan , Jonas Karlman , David Airlie , Bernie Liang , Neil Armstrong , Zhen Li , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Vasily Khoruzhick , Boris Brezillon , Torsten Duwe , Laurent Pinchart , Hsin-Yi Wang , Sam Ravnborg , Dan Carpenter , Marek Szyprowski Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" At some time, the original code may return non zero value, force return 0 if operation finished. Signed-off-by: Xin Ji --- drivers/gpu/drm/bridge/analogix/anx7625.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index 65cc059..04536cc 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -189,10 +189,10 @@ static int wait_aux_op_finish(struct anx7625_data *ctx) AP_AUX_CTRL_STATUS); if (val < 0 || (val & 0x0F)) { DRM_DEV_ERROR(dev, "aux status %02x\n", val); - val = -EIO; + return -EIO; } - return val; + return 0; } static int anx7625_video_mute_control(struct anx7625_data *ctx, From patchwork Fri Mar 19 02:37:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Ji X-Patchwork-Id: 12149821 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=-10.7 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED 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 4F67BC433E0 for ; Fri, 19 Mar 2021 02:37:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 E0F6564F1F for ; Fri, 19 Mar 2021 02:37:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E0F6564F1F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=analogixsemi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5FBF489FCC; Fri, 19 Mar 2021 02:37:55 +0000 (UTC) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2125.outbound.protection.outlook.com [40.107.94.125]) by gabe.freedesktop.org (Postfix) with ESMTPS id CCD4089FCC for ; Fri, 19 Mar 2021 02:37:53 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SvUC55RQnQSvCq1oV8qL2b35pgdNf3Tstmbuj1yN8SLjeJ6yocnMKq+gVFTx+oFrC+2Oawc76YIfATMc8T7VQTU7PMiWMxJkeTseZVGacsI3qFLc1M9lo6v0rqC9eQfleiEqUw/uaO9NJUCWT7sm8qI7q1djxjMHFDtjpsFS7CXUyR/r8DzxTCqL61A7t0HUo25ibXdjs8er7ouq2R2T4hCLm/jkEnc4GNZcIs7t2+4EFSfqb6EgTTvbW1NPCa+4Li5JEs7glK473kBy30DrCxsvgvVbIOku5+ZtrTSxXPmsjmA6AdakQW8IKmUWKBGvyQWPiOO2KiqzDO5QcL+V+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c2cvsnCv/aNHOyYTeGYEVfdWay6HLEDW9LIWB5XfM7k=; b=e5ZlTxccli5disXwRQCUuWeZvU4wF1urEi5Ro41NduR27tSqRUQ8SjQXbs6GQf4p5dwsiJ3sg6HAw7iAT3QD1PHWcKXhl5QckRC26ksjASP0TJ6XBqZlJ6uoR0gYRJA3XJ+IGmkKgBGgmMi+GjtPuAZEVi+f2Ai5oBudpRBF6V0iXpBAzj7zHGlU2Amk+Scc3CvsKMOCAwznkf37fXnijBK+t02fK9wcglsYAI+9fmCNLCE3fWGYO/s/AR4HPp2jjQjDRJ1VOdwT7GVaVc/sevDuDX1wXtUYSmtncotxdpiW6yP+pGFXC7LY5G6ub5hEb1wd0/NbbPK0PNDP3LiCZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analogixsemi.com; dmarc=pass action=none header.from=analogixsemi.com; dkim=pass header.d=analogixsemi.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Analogixsemi.onmicrosoft.com; s=selector2-Analogixsemi-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c2cvsnCv/aNHOyYTeGYEVfdWay6HLEDW9LIWB5XfM7k=; b=yBp6x23OKvv29hi6yHzGnzbBByYN8mGUNpPTdtLB828r0+OA5EMqdCObXZdR27Ve0dhsS/vnmTk7EyzxNemS7eRPEymAQ5tbVYgHsKfttlPidPM5CN4D9xJSuAZXeuOMrIFcQlgKNVRyi11AeX9ckbgpG8qCocwCuGQ55sB+qgI= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=analogixsemi.com; Received: from BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) by BYAPR04MB4277.namprd04.prod.outlook.com (2603:10b6:a03::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Fri, 19 Mar 2021 02:37:52 +0000 Received: from BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f]) by BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 02:37:52 +0000 Date: Fri, 19 Mar 2021 10:37:45 +0800 From: Xin Ji To: Robert Foss , Nicolas Boichat , Andrzej Hajda Subject: [PATCH v5 3/5] drm/bridge: anx7625: add MIPI DPI input feature support Message-ID: References: Content-Disposition: inline In-Reply-To: X-Originating-IP: [60.251.58.79] X-ClientProxiedBy: HK0PR01CA0056.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::20) To BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from anxtwsw-Precision-3640-Tower (60.251.58.79) by HK0PR01CA0056.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 02:37:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc02992e-9917-4c67-6c43-08d8ea7ffe73 X-MS-TrafficTypeDiagnostic: BYAPR04MB4277: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:28; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GaTcAVL44+hTnZ3cIslLj3e/gxzyu7JzEQUMBmbe+O3JKD78M3PbWTUVA820E8THg4IhfsEGeOAOmkirnnVTT1hkVIh/1a1SIX0ftShuV9IU9CpaLdtOu8xqxPCXXbPcWlV3CmvCLx8XNQoyqtLwNy5fFm5CPXvZmTvixwe1wgvXY6FeOHEfzD9v3e2x0XAILEDkMGDQI1U5cQOZo96SoGLFm+8Vz12Y324srvBdh1r3sKhMUTkivGy3qnS5iOQEqjb4PbG+BC34PUGnROhKwVIEPqQm96bqVuo9t8TK+ZgM6OzeTama+vVvDMRE0sljU9aWm7k6r+gbotqxz2i0vIH2z3ygPQqTyejgEQJk5iyrjLcREsnJJOiFM+HKBOo19UpAphQRx8MShcGg+JzUbg0GmDNEEGJ8+Bphl8ipBsCNtejgidBWsUeVprQIrV+w8n9CurAk4eDViJh8gJkkmlTePOKwo97yYAeBa5HkC15G81wiUPIlIBmkqswhVzOulJlG0/9HnO+Hr5MgIaKNQKjRwxOzzXx4O/ZTLfFOO8Ne+6zPYoS4W+yuD+qTc1RGg5cjStlU61ulQOKEEQ0DOnFCdYEzE164Y/OU47l6wx0DQSV7JH9aKi+HHoS/jBvc56lC+mvAjU8q1Ht44SAYmw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR04MB6739.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(366004)(396003)(39840400004)(346002)(376002)(956004)(2906002)(8676002)(6496006)(110136005)(186003)(66556008)(55236004)(6486002)(52116002)(8936002)(26005)(86362001)(316002)(4326008)(83380400001)(30864003)(66476007)(54906003)(66946007)(6666004)(36756003)(7416002)(478600001)(16526019)(2616005)(5660300002)(38100700001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: UUmqIJjDy2LCdcamNMDyxxIsgv+E6V9N8QbrJiDwvyGxdfNC3VWwggT+ar9IqdK33EH3FQNpKUsbHou1SrJV2VY6FtY6L5WqiB5JacWG1RuY3lauJW+YDE4+Z1oJWyMAUnfo20Izauwlh1x4Jivq78LpHPR97Q2tQyNas8e7wmlQOsQU5H0i79OENd08bWdaKUUgvn7m71xw1w1HTo+FTKt/cFxlWf7YfnIWt5f/nVk6MegkhTsza/fhtoUj1fpOMizzrglqhc18e9Jp6oYXPSCe4IfgqouEtCtgflNojvyEQDkpLS24+xr46anO9CljUOxKVBi7tiag/HGZeLTOPFtAAlY2y4IC1cIDtRjoxlOwyL/4fAUkid7YkcSP+jGrkVvH/C+Y7IeUzqqgQTLn+hphh2JW1sNSfI7JS9Q7ZcJUkLV2QzyT7ryr+QXxsaEvugHLUHCVIzPDcNVYGpAd8LpumWvjUpPRl+kyjgptSsuFRyQl4Q2Y8ie3yR+7/oNcmEpEVubqGvcpV3RIf9v4DJoZBl16dZ2QHa7htFMK+r1qtS42PW8MQxcZcc9WIm8sf7rI1ajJNZqAtV/pbHfbeE4Ho7AIwi9BmGe9R+Vfi7u3y1ZTI24OolHFlQ+ygrCk7QPDfr8URuL1nRYwEpRFV1H96lHZt91JziwjrIzmC5g29mFfcuegoBC4u5FKMk9YNJGTXeB7ywQBxQfCsd6pXuGHaUfJgTNEdqmS6SZePkmy4hOLL+gwaOMyWELSKtMkZJ+WS6CWnWVERSx5FK6MjFKNqHeI2yXPVE39ftiL1L4f2m8WLt+DdkY/acL4JByDoh3OQTI66iL6amgf27F4eTMfulexkCqrxo4cXDEVsLK8f+KmK93+8+rHoLYCzqok0/TL819dT0mVJl23kSKvKuOaOwOmYXak3n5XBLRXwT47U2rBPds9B9oLtGIHwO4IWM4Ref05Ps4S5wIQ3+YQbr/JAUJkNKCkAnXqKjy3b1iWdm2iinn0M23A1bnYCPsu1KuQoNpBatHcvfJ6f8VGeuD6nQ5x2PmhAmKRCq3QvAOaudQyVNtIY5aDzuiycUbwuruyrHS5LbiQ4DVoJm8+TB3AnUV63JO4TCPwHxOrHnW15OfRy3/9APxfQzawCtVmKzAJZl472/vPUHnukug3LVQQTL8fsQt+/C/9MAqEFtKhddIwEJepz26DMFYgBcrdYzuRREiXYwrke95qWafA7OhRY/UA+wu1zF4lfRwf3HE1N/CDaf9Rzxcc/OgvEnde4id7dl8W0w2gYzB3g4zXSSY/NDy1Zu7LDKR/i/+l9jpGBH7clGM7WU7tU6wRFEcO X-OriginatorOrg: analogixsemi.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc02992e-9917-4c67-6c43-08d8ea7ffe73 X-MS-Exchange-CrossTenant-AuthSource: BY5PR04MB6739.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 02:37:52.6675 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b099b0b4-f26c-4cf5-9a0f-d5be9acab205 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TM4X7e1ynv9cdyjiZJ+uRUiPnI3+u5DMeH72goNgfXBWJod4sPrsbz08Ez3une3dGsTBnheSf6TJ2A4dhJ4y7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR04MB4277 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Jernej Skrabec , Sheng Pan , Jonas Karlman , David Airlie , Bernie Liang , Neil Armstrong , Zhen Li , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Vasily Khoruzhick , Boris Brezillon , Torsten Duwe , Laurent Pinchart , Hsin-Yi Wang , Sam Ravnborg , Dan Carpenter , Marek Szyprowski Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add MIPI rx DPI input support. Reported-by: kernel test robot Signed-off-by: Xin Ji --- drivers/gpu/drm/bridge/analogix/anx7625.c | 243 ++++++++++++++++++++++-------- drivers/gpu/drm/bridge/analogix/anx7625.h | 18 ++- 2 files changed, 201 insertions(+), 60 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index 04536cc..5c9b801 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -150,18 +150,18 @@ static int anx7625_write_and(struct anx7625_data *ctx, return anx7625_reg_write(ctx, client, offset, (val & (mask))); } -static int anx7625_write_and_or(struct anx7625_data *ctx, - struct i2c_client *client, - u8 offset, u8 and_mask, u8 or_mask) +static int anx7625_config_bit_matrix(struct anx7625_data *ctx) { - int val; + int i, ret; - val = anx7625_reg_read(ctx, client, offset); - if (val < 0) - return val; + ret = anx7625_write_or(ctx, ctx->i2c.tx_p2_client, + AUDIO_CONTROL_REGISTER, 0x80); + for (i = 0; i < 13; i++) + ret |= anx7625_reg_write(ctx, ctx->i2c.tx_p2_client, + VIDEO_BIT_MATRIX_12 + i, + 0x18 + i); - return anx7625_reg_write(ctx, client, - offset, (val & and_mask) | (or_mask)); + return ret; } static int anx7625_read_ctrl_status_p0(struct anx7625_data *ctx) @@ -219,38 +219,6 @@ static int anx7625_video_mute_control(struct anx7625_data *ctx, return ret; } -static int anx7625_config_audio_input(struct anx7625_data *ctx) -{ - struct device *dev = &ctx->client->dev; - int ret; - - /* Channel num */ - ret = anx7625_reg_write(ctx, ctx->i2c.tx_p2_client, - AUDIO_CHANNEL_STATUS_6, I2S_CH_2 << 5); - - /* FS */ - ret |= anx7625_write_and_or(ctx, ctx->i2c.tx_p2_client, - AUDIO_CHANNEL_STATUS_4, - 0xf0, AUDIO_FS_48K); - /* Word length */ - ret |= anx7625_write_and_or(ctx, ctx->i2c.tx_p2_client, - AUDIO_CHANNEL_STATUS_5, - 0xf0, AUDIO_W_LEN_24_24MAX); - /* I2S */ - ret |= anx7625_write_or(ctx, ctx->i2c.tx_p2_client, - AUDIO_CHANNEL_STATUS_6, I2S_SLAVE_MODE); - ret |= anx7625_write_and(ctx, ctx->i2c.tx_p2_client, - AUDIO_CONTROL_REGISTER, ~TDM_TIMING_MODE); - /* Audio change flag */ - ret |= anx7625_write_or(ctx, ctx->i2c.rx_p0_client, - AP_AV_STATUS, AP_AUDIO_CHG); - - if (ret < 0) - DRM_DEV_ERROR(dev, "fail to config audio.\n"); - - return ret; -} - /* Reduction of fraction a/b */ static void anx7625_reduction_of_a_fraction(unsigned long *a, unsigned long *b) { @@ -410,7 +378,7 @@ static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx) ret |= anx7625_write_and(ctx, ctx->i2c.rx_p1_client, MIPI_LANE_CTRL_0, 0xfc); ret |= anx7625_write_or(ctx, ctx->i2c.rx_p1_client, - MIPI_LANE_CTRL_0, 3); + MIPI_LANE_CTRL_0, ctx->pdata.mipi_lanes - 1); /* Htotal */ htotal = ctx->dt.hactive.min + ctx->dt.hfront_porch.min + @@ -595,6 +563,76 @@ static int anx7625_dsi_config(struct anx7625_data *ctx) return ret; } +static int anx7625_api_dpi_config(struct anx7625_data *ctx) +{ + struct device *dev = &ctx->client->dev; + u16 freq = ctx->dt.pixelclock.min / 1000; + int ret; + + /* configure pixel clock */ + ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + PIXEL_CLOCK_L, freq & 0xFF); + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + PIXEL_CLOCK_H, (freq >> 8)); + + /* set DPI mode */ + /* set to DPI PLL module sel */ + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, + MIPI_DIGITAL_PLL_9, 0x20); + /* power down MIPI */ + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, + MIPI_LANE_CTRL_10, 0x08); + /* enable DPI mode */ + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p1_client, + MIPI_DIGITAL_PLL_18, 0x1C); + /* set first edge */ + ret |= anx7625_reg_write(ctx, ctx->i2c.tx_p2_client, + VIDEO_CONTROL_0, 0x06); + if (ret < 0) + DRM_DEV_ERROR(dev, "IO error : dpi phy set failed.\n"); + + return ret; +} + +static int anx7625_dpi_config(struct anx7625_data *ctx) +{ + struct device *dev = &ctx->client->dev; + int ret; + + DRM_DEV_DEBUG_DRIVER(dev, "config dpi\n"); + + /* DSC disable */ + ret = anx7625_write_and(ctx, ctx->i2c.rx_p0_client, + R_DSC_CTRL_0, ~DSC_EN); + if (ret < 0) { + DRM_DEV_ERROR(dev, "IO error : disable dsc failed.\n"); + return ret; + } + + ret = anx7625_config_bit_matrix(ctx); + if (ret < 0) { + DRM_DEV_ERROR(dev, "config bit matrix failed.\n"); + return ret; + } + + ret = anx7625_api_dpi_config(ctx); + if (ret < 0) { + DRM_DEV_ERROR(dev, "mipi phy(dpi) setup failed.\n"); + return ret; + } + + /* set MIPI RX EN */ + ret = anx7625_write_or(ctx, ctx->i2c.rx_p0_client, + AP_AV_STATUS, AP_MIPI_RX_EN); + /* clear mute flag */ + ret |= anx7625_write_and(ctx, ctx->i2c.rx_p0_client, + AP_AV_STATUS, (u8)~AP_MIPI_MUTE); + if (ret < 0) + DRM_DEV_ERROR(dev, "IO error : enable mipi rx failed.\n"); + + return ret; +} + static void anx7625_dp_start(struct anx7625_data *ctx) { int ret; @@ -605,9 +643,10 @@ static void anx7625_dp_start(struct anx7625_data *ctx) return; } - anx7625_config_audio_input(ctx); - - ret = anx7625_dsi_config(ctx); + if (ctx->pdata.is_dpi) + ret = anx7625_dpi_config(ctx); + else + ret = anx7625_dsi_config(ctx); if (ret < 0) DRM_DEV_ERROR(dev, "MIPI phy setup error.\n"); @@ -1051,6 +1090,7 @@ static void anx7625_start_dp_work(struct anx7625_data *ctx) return; } + ctx->hpd_status = 1; ctx->hpd_high_cnt++; /* Not support HDCP */ @@ -1060,8 +1100,10 @@ static void anx7625_start_dp_work(struct anx7625_data *ctx) ret |= anx7625_write_or(ctx, ctx->i2c.rx_p1_client, 0xec, 0x10); /* Interrupt for DRM */ ret |= anx7625_write_or(ctx, ctx->i2c.rx_p1_client, 0xff, 0x01); - if (ret < 0) + if (ret < 0) { + DRM_DEV_ERROR(dev, "fail to setting HDCP/auth\n"); return; + } ret = anx7625_reg_read(ctx, ctx->i2c.rx_p1_client, 0x86); if (ret < 0) @@ -1080,6 +1122,10 @@ static void anx7625_hpd_polling(struct anx7625_data *ctx) int ret, val; struct device *dev = &ctx->client->dev; + /* Interrupt mode, no need poll HPD status, just return */ + if (ctx->pdata.intp_irq) + return; + if (atomic_read(&ctx->power_status) != 1) { DRM_DEV_DEBUG_DRIVER(dev, "No need to poling HPD status.\n"); return; @@ -1130,6 +1176,21 @@ static void anx7625_remove_edid(struct anx7625_data *ctx) ctx->slimport_edid_p.edid_block_num = -1; } +static void anx7625_dp_adjust_swing(struct anx7625_data *ctx) +{ + int i; + + for (i = 0; i < ctx->pdata.dp_lane0_swing_reg_cnt; i++) + anx7625_reg_write(ctx, ctx->i2c.tx_p1_client, + DP_TX_LANE0_SWING_REG0 + i, + ctx->pdata.lane0_reg_data[i] & 0xFF); + + for (i = 0; i < ctx->pdata.dp_lane1_swing_reg_cnt; i++) + anx7625_reg_write(ctx, ctx->i2c.tx_p1_client, + DP_TX_LANE1_SWING_REG0 + i, + ctx->pdata.lane1_reg_data[i] & 0xFF); +} + static void dp_hpd_change_handler(struct anx7625_data *ctx, bool on) { struct device *dev = &ctx->client->dev; @@ -1145,9 +1206,8 @@ static void dp_hpd_change_handler(struct anx7625_data *ctx, bool on) } else { DRM_DEV_DEBUG_DRIVER(dev, " HPD high\n"); anx7625_start_dp_work(ctx); + anx7625_dp_adjust_swing(ctx); } - - ctx->hpd_status = 1; } static int anx7625_hpd_change_detect(struct anx7625_data *ctx) @@ -1224,20 +1284,70 @@ static irqreturn_t anx7625_intr_hpd_isr(int irq, void *data) return IRQ_HANDLED; } +static int anx7625_get_swing_setting(struct device *dev, + struct anx7625_platform_data *pdata) +{ + int num_regs; + + if (of_get_property(dev->of_node, + "analogix,lane0-swing", &num_regs)) { + if (num_regs > DP_TX_SWING_REG_CNT) + num_regs = DP_TX_SWING_REG_CNT; + + pdata->dp_lane0_swing_reg_cnt = num_regs; + of_property_read_u32_array(dev->of_node, "analogix,lane0-swing", + pdata->lane0_reg_data, num_regs); + } + + if (of_get_property(dev->of_node, + "analogix,lane1-swing", &num_regs)) { + if (num_regs > DP_TX_SWING_REG_CNT) + num_regs = DP_TX_SWING_REG_CNT; + + pdata->dp_lane1_swing_reg_cnt = num_regs; + of_property_read_u32_array(dev->of_node, "analogix,lane1-swing", + pdata->lane1_reg_data, num_regs); + } + + return 0; +} + static int anx7625_parse_dt(struct device *dev, struct anx7625_platform_data *pdata) { - struct device_node *np = dev->of_node; + struct device_node *np = dev->of_node, *ep0; struct drm_panel *panel; int ret; + int bus_type, mipi_lanes; + anx7625_get_swing_setting(dev, pdata); + + pdata->is_dpi = 1; /* default dpi mode */ pdata->mipi_host_node = of_graph_get_remote_node(np, 0, 0); if (!pdata->mipi_host_node) { DRM_DEV_ERROR(dev, "fail to get internal panel.\n"); return -ENODEV; } - DRM_DEV_DEBUG_DRIVER(dev, "found dsi host node.\n"); + ep0 = of_graph_get_endpoint_by_regs(np, 0, 0); + if (ep0) { + if (of_property_read_u32(ep0, "bus-type", &bus_type)) + bus_type = 0; + + mipi_lanes = of_property_count_u32_elems(ep0, "data-lanes"); + } + + if (bus_type == 5) /* bus type is Parallel(DSI) */ + pdata->is_dpi = 0; + + pdata->mipi_lanes = mipi_lanes; + if (pdata->mipi_lanes > MAX_LANES_SUPPORT || pdata->mipi_lanes <= 0) + pdata->mipi_lanes = MAX_LANES_SUPPORT; + + if (pdata->is_dpi) + DRM_DEV_DEBUG_DRIVER(dev, "found MIPI DPI host node.\n"); + else + DRM_DEV_DEBUG_DRIVER(dev, "found MIPI DSI host node.\n"); ret = drm_of_find_panel_or_bridge(np, 1, 0, &panel, NULL); if (ret < 0) { @@ -1300,9 +1410,13 @@ static enum drm_connector_status anx7625_sink_detect(struct anx7625_data *ctx) { struct device *dev = &ctx->client->dev; - DRM_DEV_DEBUG_DRIVER(dev, "sink detect, return connected\n"); + DRM_DEV_DEBUG_DRIVER(dev, "sink detect\n"); + + if (ctx->pdata.panel_bridge) + return connector_status_connected; - return connector_status_connected; + return ctx->hpd_status ? connector_status_connected : + connector_status_disconnected; } static int anx7625_attach_dsi(struct anx7625_data *ctx) @@ -1330,7 +1444,7 @@ static int anx7625_attach_dsi(struct anx7625_data *ctx) return -EINVAL; } - dsi->lanes = 4; + dsi->lanes = ctx->pdata.mipi_lanes; dsi->format = MIPI_DSI_FMT_RGB888; dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE | @@ -1376,10 +1490,12 @@ static int anx7625_bridge_attach(struct drm_bridge *bridge, return -ENODEV; } - err = anx7625_attach_dsi(ctx); - if (err) { - DRM_DEV_ERROR(dev, "Fail to attach to dsi : %d\n", err); - return err; + if (!ctx->pdata.is_dpi) { + err = anx7625_attach_dsi(ctx); + if (err) { + DRM_DEV_ERROR(dev, "Fail to attach to dsi : %d\n", err); + return err; + } } if (ctx->pdata.panel_bridge) { @@ -1478,6 +1594,10 @@ static bool anx7625_bridge_mode_fixup(struct drm_bridge *bridge, DRM_DEV_DEBUG_DRIVER(dev, "drm mode fixup set\n"); + /* No need fixup for external monitor */ + if (!ctx->pdata.panel_bridge) + return true; + hsync = mode->hsync_end - mode->hsync_start; hfp = mode->hsync_start - mode->hdisplay; hbp = mode->htotal - mode->hsync_end; @@ -1786,8 +1906,13 @@ static int anx7625_i2c_probe(struct i2c_client *client, platform->bridge.funcs = &anx7625_bridge_funcs; platform->bridge.of_node = client->dev.of_node; - platform->bridge.ops = DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD; - platform->bridge.type = DRM_MODE_CONNECTOR_eDP; + platform->bridge.ops = DRM_BRIDGE_OP_EDID; + if (!platform->pdata.panel_bridge) + platform->bridge.ops |= DRM_BRIDGE_OP_HPD | + DRM_BRIDGE_OP_DETECT; + platform->bridge.type = platform->pdata.panel_bridge ? + DRM_MODE_CONNECTOR_eDP : + DRM_MODE_CONNECTOR_DisplayPort; drm_bridge_add(&platform->bridge); DRM_DEV_DEBUG_DRIVER(dev, "probe done\n"); diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h index 193ad86..beee95d 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.h +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h @@ -141,12 +141,20 @@ #define HORIZONTAL_BACK_PORCH_H 0x22 /* Bit[7:4] are reserved */ /******** END of I2C Address 0x72 *********/ + +/***************************************************************/ +/* Register definition of device address 0x7a */ +#define DP_TX_SWING_REG_CNT 0x14 +#define DP_TX_LANE0_SWING_REG0 0x00 +#define DP_TX_LANE1_SWING_REG0 0x14 +/******** END of I2C Address 0x7a *********/ + /***************************************************************/ /* Register definition of device address 0x7e */ #define I2C_ADDR_7E_FLASH_CONTROLLER 0x7E -#define FLASH_LOAD_STA 0x05 +#define FLASH_LOAD_STA 0x05 #define FLASH_LOAD_STA_CHK BIT(7) #define XTAL_FRQ_SEL 0x3F @@ -347,11 +355,19 @@ struct s_edid_data { /***************** Display End *****************/ +#define MAX_LANES_SUPPORT 4 + struct anx7625_platform_data { struct gpio_desc *gpio_p_on; struct gpio_desc *gpio_reset; struct drm_bridge *panel_bridge; int intp_irq; + int is_dpi; + int mipi_lanes; + int dp_lane0_swing_reg_cnt; + int lane0_reg_data[DP_TX_SWING_REG_CNT]; + int dp_lane1_swing_reg_cnt; + int lane1_reg_data[DP_TX_SWING_REG_CNT]; u32 low_power_mode; struct device_node *mipi_host_node; }; From patchwork Fri Mar 19 02:38:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Ji X-Patchwork-Id: 12149823 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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS 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 811ABC433E0 for ; Fri, 19 Mar 2021 02:38:44 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 45CC864DF3 for ; Fri, 19 Mar 2021 02:38:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 45CC864DF3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=analogixsemi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AB1696E328; Fri, 19 Mar 2021 02:38:43 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2095.outbound.protection.outlook.com [40.107.220.95]) by gabe.freedesktop.org (Postfix) with ESMTPS id D57F16E328 for ; Fri, 19 Mar 2021 02:38:42 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eCFmZAP5qlplevMT8LmJoKjOQeB1tvQwu5yDC4rZgKLm/dWqYjLhT0nN3qDxTgb2oqrTJtuYzJtEXKdcHJFTXG5Xve2CsEUUBZabAHk1g1f4oZngDaHdrVfc7U7rIGAM02ALo6OnGByVD+O4ZEW8woBNFB36DXKsvYamIVNtwu97CC/cJqEDHUtLIUucF/nEwQ9nP3uWXpRslH/qAm35ebsRSWO8BNCbpWCB7DxE+TlIx0GLFmrOvIFdC01RNpm8J0RW9QTu5Qpij1T2rXHnjKGhvZnmvZSVl3jmUyy6bNwX4KVMdSjt/GIzc5FwU7MMcwZHEG4+z/Cv4K3lyZXIOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BTi7Bv0JKccVwkU4K5J1nwxMNkvqvHSfxiLXc1thNwc=; b=BgqC3Zf7nG5Oxao9BA0ORatoff1k8+bxuRwbkD5cUkZkkRnvXB/+B86I5IiqN+uu6aVTqOkSJlVFjoJ2ZdhWr7vWL/jzFUqjqPhEG/RlZ0NHIk4awBulpU2M1aGdyK6FewwlBwhF1E/riaaHpFC5N8NfLjrPjCHu5BYJBOmNWG7ogXEZGLksopGvQkxFS/gppugRazfkqsHbKhIcTp+KlNknE0MOFHwMAJIM7mvfHm5HB8ZdDTl88Kcfqs+nic0r2bsHaDS0I4SRwIDdysB7LVF0J8en459Iypn+R+s/ArnRePmMHUp4NBlp55TAimu9dNqNHB7abpSjlYh79FB6eA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analogixsemi.com; dmarc=pass action=none header.from=analogixsemi.com; dkim=pass header.d=analogixsemi.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Analogixsemi.onmicrosoft.com; s=selector2-Analogixsemi-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BTi7Bv0JKccVwkU4K5J1nwxMNkvqvHSfxiLXc1thNwc=; b=KuwOUAJE0v/sjJhdrWPeDuLSPeU/XF1zaEIDAv+6RlC1FtjaJBOU77e0rnXhxMOtT5hEv7eXkWP2OLPdls0pu/rQzKXTTmc+YrK5nakNi5BPOa6uYR9S7L4djTissafq6PfLBiFDrFy+CLWlLbFl2iFOPLyCID0io7b4y+ayXs8= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=analogixsemi.com; Received: from BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) by BYAPR04MB5382.namprd04.prod.outlook.com (2603:10b6:a03:c6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Fri, 19 Mar 2021 02:38:40 +0000 Received: from BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f]) by BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 02:38:40 +0000 Date: Fri, 19 Mar 2021 10:38:33 +0800 From: Xin Ji To: Robert Foss , Nicolas Boichat , Andrzej Hajda Subject: [PATCH v5 4/5] drm/bridge: anx7625: add HDCP support Message-ID: <3288c572e44b12da47dcd013b9a3073bae71ebf9.1616071250.git.xji@analogixsemi.com> References: Content-Disposition: inline In-Reply-To: X-Originating-IP: [60.251.58.79] X-ClientProxiedBy: HK2PR04CA0060.apcprd04.prod.outlook.com (2603:1096:202:14::28) To BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from anxtwsw-Precision-3640-Tower (60.251.58.79) by HK2PR04CA0060.apcprd04.prod.outlook.com (2603:1096:202:14::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 02:38:39 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1614e2cb-7bd6-4adb-d1e8-08d8ea801ad5 X-MS-TrafficTypeDiagnostic: BYAPR04MB5382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LpeLD4qclCPDhDN9OLi8GmeP2dpn4f/VGlrmvxi7VzFm3L+NzBsiCR/wkiVroetRUjL/5fijbKmp8s6S5IQOIsztEIT3tCp3ftKxAqZDlZThEHKi+YOS4/SRYn8mX3ur8ggcrBKtTh5+7mXIVJntDS95zfKpR/YHH2cKJVqR/ssdz9UzTxrEOQH/fl/3/bOx6B0Coi5dtxUAQQlTAGJWyxmm5hLOsnzxDL6TiWy8bBxPsdn3rY/m6IeQRy6uqIK2h9Bg92zQ5JYIMBD0rATb6um20+b1laIA8tCaLCiQNLZhEKgJGloTBr3OjVaTs3aYzyi8qcsFZg4kYgKOjOGqTytB5wcQ8YTR34J03wOmy+yKvkt3Gm3mB0RNWr71jWa4Lovhn2x/tEUCOp5NQaCcepkezsgJ3YEz+yzjwLYGIN7mo/b6zrRxalpQs9O2plDzNkGEQBSmH51AuSgd9TFx8Mcty5sSsm96gAXd3qhMxKoHxMV0yhmqbl2LZoVMRmjhhmxr7/NFAZBE6MGdN/RDMecA8pbhEAzmR+fmqIs/tjd1B9JfTWaX0h2WMwe2VJQE2tgWWU6QfpY/5Wa+JG0/0xrmbiDubQLs5Z64pFRuGHqyP/+zfyMLzc2V17V+rrjhAHcSBQ7Aci50pc8vSeem6g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR04MB6739.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(39840400004)(346002)(366004)(396003)(376002)(136003)(16526019)(316002)(956004)(2616005)(6486002)(7416002)(38100700001)(8936002)(26005)(86362001)(6496006)(2906002)(4326008)(8676002)(186003)(54906003)(110136005)(55236004)(66476007)(66946007)(6666004)(83380400001)(36756003)(66556008)(478600001)(52116002)(5660300002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: Uw6gpylFtrvjZjSvmKMbCblESp0yAlzaXkmaGPfanSxqby9PSyZSMOMXlu5YJlN26Q4rdai02acKHkc7ueFYLqw+Li/i4FEY3HGHiv+5PJ7c3ADwD8K0S1GBtPCkHNyHFDNaeTahNF2btgQZRad6r4b1Oet9ZtA7cmx9y7tTa1OYOD41/I06Clyj7W6Zu22u4xAPCWvbxD4G9xJleLkw1LSvkmpplqWb61wj5WnzSBJUkcuCHln9elizJ5fBfpmJiQfnKLE8iusy4qPxjH0rFwacQSH0X4Zv6PL9JAOBC/JgddWNmYQRTE3Y8aqY4eoYDESIKQ/eJOxuy10m1X+/izwaEiJzUgSuNfbJk+gtULoLoXHgviEKqvGNXMElCU9Q0Vdz7B9PVgd18kmBDSVrWH8D8m9M/Uqa1xd8zJMBcqPLIxI0fDcBcfCtZ7wHf3UMszurDTM5wHqAxBm8ZTl9/Pquthc5o7Sip7SJlO0mwZiMbLI0FC5a/lBYmPentTRjd/NedTXDJloIDhvJpa8X13XvzTLbQLwsA92WYB3DJ9ds50nDigYE7Ia2tqcnolXzaReJsnl56c6DXulJSlAw/OkxtZTVp5tcteF+ILxCc+FvVHDx7qSKile4RIwv6V+513/QNxoErmKy3vN3XWxfiqhnObm2opv+WzIuTQIBkf/AjZUCSInnJ20/S2kdRavH3k6DIwYSiELGVEvk34PCALrsWq14lqHWsp/4XgzomqLPH7/WV5kOG8SNNJ49/fCqZ1IwpI+bmZuuAa9HDSXSjKaIXG07nBkQ2cMdyhqLDeuOaptwLLCmGXTjd4jMmqaRu2o1kq4LkAZziR3DkmFKMpwyjNDnXfrCUwle2ArsZeczZ4K0cfDOEy24UX/NgV6zYj9q0gnPcPdhpW5fdtf8bnoJ/ie19k4kQ3x2oKSGip9pE0TQTZIjhoQWOaIzq4fjq1I+k5WXRBMrcyHFdQclvcPmLH1h6Ev6mxI2VodUEvvPz3f/SwFKNCDM+RvooVU0FIvOKLf06BcjX9AjaByis2jSN17vbA0of+jLxn6OnmOhlI2bCtlyvb02/17V/CYaLwtxQ/ixzq5gFwDEhWhjwWX5HTltxnAuQ5sOqoFIaAa0FifTi5/5TqlYf7WGtkCvCHxL4HVnCAvJhfrTUSwQpI+WnVWLDIBfwO1D4OYbIir0nc2RS05tdpoHVWd9nI7vAQaYDUGbcnzDspjYvSdb5fL1/Z28W6OhIs2b+4e2Gu0dJcahz6Su9zWXNIYKcqW+tySziaHQK/4FWKmPLgXZTnprWIrxJTLvJKnIX7dOr7pUXm6QqgDmjET/7anCEJu2 X-OriginatorOrg: analogixsemi.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1614e2cb-7bd6-4adb-d1e8-08d8ea801ad5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR04MB6739.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 02:38:40.2736 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b099b0b4-f26c-4cf5-9a0f-d5be9acab205 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lAlLlUJo1hfr12IZNsx030o2WtJDNuv+4PBkCQDffKX7vAb0XzpZ23lWvD8M89ZW6EUcvhI3np1hFJNDcV7jxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR04MB5382 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Jernej Skrabec , Sheng Pan , Jonas Karlman , David Airlie , Bernie Liang , Neil Armstrong , Zhen Li , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Vasily Khoruzhick , Boris Brezillon , Torsten Duwe , Laurent Pinchart , Hsin-Yi Wang , Sam Ravnborg , Dan Carpenter , Marek Szyprowski Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add HDCP feature, enable HDCP function through chip internal key and downstream's capability. Signed-off-by: Xin Ji --- drivers/gpu/drm/bridge/analogix/anx7625.c | 147 ++++++++++++++++++++++++++++++ drivers/gpu/drm/bridge/analogix/anx7625.h | 36 ++++++++ 2 files changed, 183 insertions(+) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index 5c9b801..5e19170 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -633,6 +633,150 @@ static int anx7625_dpi_config(struct anx7625_data *ctx) return ret; } +static int anx7625_aux_dpcd_read(struct anx7625_data *ctx, + u8 addrh, u8 addrm, u8 addrl, + u8 len, u8 *buf) +{ + struct device *dev = &ctx->client->dev; + int ret; + u8 cmd; + + if (len > MAX_DPCD_BUFFER_SIZE) { + DRM_DEV_ERROR(dev, "exceed aux buffer len.\n"); + return -E2BIG; + } + + cmd = ((len - 1) << 4) | 0x09; + + /* Set command and length */ + ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + AP_AUX_COMMAND, cmd); + + /* Set aux access address */ + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + AP_AUX_ADDR_7_0, addrl); + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + AP_AUX_ADDR_15_8, addrm); + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + AP_AUX_ADDR_19_16, addrh); + + /* Enable aux access */ + ret |= anx7625_write_or(ctx, ctx->i2c.rx_p0_client, + AP_AUX_CTRL_STATUS, AP_AUX_CTRL_OP_EN); + + if (ret < 0) { + DRM_DEV_ERROR(dev, "cannot access aux related register.\n"); + return -EIO; + } + + usleep_range(2000, 2100); + + ret = wait_aux_op_finish(ctx); + if (ret) { + DRM_DEV_ERROR(dev, "aux IO error: wait aux op finish.\n"); + return ret; + } + + ret = anx7625_reg_block_read(ctx, ctx->i2c.rx_p0_client, + AP_AUX_BUFF_START, len, buf); + if (ret < 0) { + DRM_DEV_ERROR(dev, "read dpcd register failed\n"); + return -EIO; + } + + return 0; +} + +static int anx7625_read_flash_status(struct anx7625_data *ctx) +{ + return anx7625_reg_read(ctx, ctx->i2c.rx_p0_client, R_RAM_CTRL); +} + +static int anx7625_hdcp_key_probe(struct anx7625_data *ctx) +{ + int ret, val; + struct device *dev = &ctx->client->dev; + u8 ident[32]; + + ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + FLASH_ADDR_HIGH, 0x91); + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + FLASH_ADDR_LOW, 0xA0); + if (ret < 0) { + DRM_DEV_ERROR(dev, "IO error : set key flash address.\n"); + return ret; + } + + ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + FLASH_LEN_HIGH, (FLASH_BUF_LEN - 1) >> 8); + ret |= anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + FLASH_LEN_LOW, (FLASH_BUF_LEN - 1) & 0xFF); + if (ret < 0) { + DRM_DEV_ERROR(dev, "IO error : set key flash len.\n"); + return ret; + } + + ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client, + R_FLASH_RW_CTRL, FLASH_READ); + ret |= readx_poll_timeout(anx7625_read_flash_status, + ctx, val, + ((val & FLASH_DONE) || (val < 0)), + 2000, + 2000 * 150); + if (ret) { + DRM_DEV_ERROR(dev, "flash read access fail!\n"); + return -EIO; + } + + ret = anx7625_reg_block_read(ctx, ctx->i2c.rx_p0_client, + FLASH_BUF_BASE_ADDR, + FLASH_BUF_LEN, ident); + if (ret < 0) { + DRM_DEV_ERROR(dev, "read flash data fail!\n"); + return -EIO; + } + + if (ident[29] == 0xFF && ident[30] == 0xFF && ident[31] == 0xFF) + return -EINVAL; + + return 0; +} + +static int anx7625_hdcp_setting(struct anx7625_data *ctx) +{ + u8 bcap; + int ret; + struct device *dev = &ctx->client->dev; + + ret = anx7625_hdcp_key_probe(ctx); + if (ret) { + DRM_DEV_DEBUG_DRIVER(dev, "disable HDCP by config\n"); + return anx7625_write_and(ctx, ctx->i2c.rx_p1_client, + 0xee, 0x9f); + } + + anx7625_aux_dpcd_read(ctx, 0x06, 0x80, 0x28, 1, &bcap); + if (!(bcap & 0x01)) { + DRM_DEV_DEBUG_DRIVER(dev, "bcap(0x%x) not support HDCP 1.4.\n", + bcap); + return anx7625_write_and(ctx, ctx->i2c.rx_p1_client, + 0xee, 0x9f); + } + + DRM_DEV_DEBUG_DRIVER(dev, "enable HDCP 1.4\n"); + + ret = anx7625_write_or(ctx, ctx->i2c.rx_p1_client, 0xee, 0x20); + + /* Try auth flag */ + ret |= anx7625_write_or(ctx, ctx->i2c.rx_p1_client, 0xec, 0x10); + /* Interrupt for DRM */ + ret |= anx7625_write_or(ctx, ctx->i2c.rx_p1_client, 0xff, 0x01); + if (ret < 0) + DRM_DEV_ERROR(dev, "fail to enable HDCP\n"); + + return ret; +} + static void anx7625_dp_start(struct anx7625_data *ctx) { int ret; @@ -643,6 +787,9 @@ static void anx7625_dp_start(struct anx7625_data *ctx) return; } + /* HDCP config */ + anx7625_hdcp_setting(ctx); + if (ctx->pdata.is_dpi) ret = anx7625_dpi_config(ctx); else diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h index beee95d..c6f93e4 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.h +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h @@ -154,9 +154,45 @@ #define I2C_ADDR_7E_FLASH_CONTROLLER 0x7E +#define FLASH_SRAM_SEL 0x00 +#define SRAM_ADDR_HIGH 0x01 +#define SRAM_ADDR_LOW 0x02 +#define SRAM_LEN_HIGH 0x03 +#define SRAM_LEN_LOW 0x04 #define FLASH_LOAD_STA 0x05 #define FLASH_LOAD_STA_CHK BIT(7) +#define R_RAM_CTRL 0x05 +/* bit positions */ +#define FLASH_DONE BIT(7) +#define BOOT_LOAD_DONE BIT(6) +#define CRC_OK BIT(5) +#define LOAD_DONE BIT(4) +#define O_RW_DONE BIT(3) +#define FUSE_BUSY BIT(2) +#define DECRYPT_EN BIT(1) +#define LOAD_START BIT(0) + +#define FLASH_ADDR_HIGH 0x0F +#define FLASH_ADDR_LOW 0x10 +#define FLASH_LEN_HIGH 0x31 +#define FLASH_LEN_LOW 0x32 + +#define R_FLASH_RW_CTRL 0x33 +/* bit positions */ +#define READ_DELAY_SELECT BIT(7) +#define GENERAL_INSTRUCTION_EN BIT(6) +#define FLASH_ERASE_EN BIT(5) +#define RDID_READ_EN BIT(4) +#define REMS_READ_EN BIT(3) +#define WRITE_STATUS_EN BIT(2) +#define FLASH_READ BIT(1) +#define FLASH_WRITE BIT(0) + +#define FLASH_BUF_BASE_ADDR 0x60 +#define FLASH_BUF_LEN 0x20 +#define FLASH_KEY_OFFSET 0x8000 + #define XTAL_FRQ_SEL 0x3F /* bit field positions */ #define XTAL_FRQ_SEL_POS 5 From patchwork Fri Mar 19 02:39:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Ji X-Patchwork-Id: 12149825 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=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 47AABC433E0 for ; Fri, 19 Mar 2021 02:39:27 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 051E864E01 for ; Fri, 19 Mar 2021 02:39:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 051E864E01 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=analogixsemi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 773CF6E329; Fri, 19 Mar 2021 02:39:26 +0000 (UTC) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2117.outbound.protection.outlook.com [40.107.93.117]) by gabe.freedesktop.org (Postfix) with ESMTPS id E74116E329 for ; Fri, 19 Mar 2021 02:39:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LK3nXF6V78OsTvIGpg7nYpR2eob2sS3dD9PRXi+xwM1t8CCviG47jmbGa7YvJa82UueqZfnHrjKyJKCzXIGNKSn3xdLB1ya0AU+jggKKXH8BQpeuFS6CFHi2b8EjeUqWFJgvFZ6zmO/RJ8dAzIbGxJqOcsoC4XM4bbtqnPlAd7I5kf3lMzdk7arzKorAA1U4fbyVA/KhrMCgcJKPSlxOl4+KA6AZqpFqEw64knXuIn2eQPXjW8fEaAdyv2cLi8XPunCDO7YJpEmUhpiad1xG2pqVdYhQx95y1OA3eP3VNT9GCcxNhXAavr0VbYLNK7XrP6CXVC52VznbJSQm5dLyow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jt2nXYpjZFC7IrNWHjLoPEcX/OnhxWH37S+jvDQX1b8=; b=evSu7PBIgqxzJWq3sJ/ptwrvXtvq5on2ZINp/O4gC0pceeNDj4KOAK6N3J5GHsFKK+43fYe5Tgju92+6g0reLEIMTXYiAGqHC9ONDSGf8WfW8Xo5POvIp65kD/buXDv3iOXGVhm0Hu28ikZhWyulXpzp+iltY04PSCh4cJnPu6SR3Pii6Zv7nhIYL6vckX5Sj3kqWhHMuP2H+sHKw1zmiKi294jXqxrTKu3vAiosIdWxcg+XvYbarTRoqXtiFyHxCtNnfc8K+UE1VvjTYLJkUVkOUyJHVjmaShCMa6vqxzEhLgKp+/3bQze1MvXH9h1ksUQX9PbAZsfLsT7fD7ZV7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analogixsemi.com; dmarc=pass action=none header.from=analogixsemi.com; dkim=pass header.d=analogixsemi.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Analogixsemi.onmicrosoft.com; s=selector2-Analogixsemi-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jt2nXYpjZFC7IrNWHjLoPEcX/OnhxWH37S+jvDQX1b8=; b=ncPxkP4rgUS/5LDTpJ2NJDPaG7izCYpWEqzUZdJ3xeIDEgBHNcjRPZogboJZDM20d3T66mhsZA4kDDKpqQ/X/QccqMiXX4fHFkvhFOHOZAv1BPIDLD65RYWzrJoaEmGPcWcrv5vlnGcBtNhHw51ltdC+fO23VpqNdVcVW/McLSQ= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=analogixsemi.com; Received: from BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) by BYAPR04MB4376.namprd04.prod.outlook.com (2603:10b6:a02:f8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Fri, 19 Mar 2021 02:39:22 +0000 Received: from BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f]) by BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::6481:f617:8105:491f%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 02:39:22 +0000 Date: Fri, 19 Mar 2021 10:39:16 +0800 From: Xin Ji To: Robert Foss , Nicolas Boichat , Andrzej Hajda Subject: [PATCH v5 5/5] drm/bridge: anx7625: add HDMI audio function Message-ID: <0ee28b74edfaeb5b8047bade7c97988d6133b81b.1616071250.git.xji@analogixsemi.com> References: Content-Disposition: inline In-Reply-To: X-Originating-IP: [60.251.58.79] X-ClientProxiedBy: HK2PR02CA0144.apcprd02.prod.outlook.com (2603:1096:202:16::28) To BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from anxtwsw-Precision-3640-Tower (60.251.58.79) by HK2PR02CA0144.apcprd02.prod.outlook.com (2603:1096:202:16::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 02:39:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a5463f15-5021-4437-c8be-08d8ea8033bf X-MS-TrafficTypeDiagnostic: BYAPR04MB4376: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:76; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6SG7xC6BZVmpwDHb+wxf3a1p2k+AIF61BPUQxUm7XXb9ZMahDht3SJiBv4ZEFjLG27QNh2UEgzntiVCJjmUHZFP+c+dB+uiaD04x9TcKDuuDTT0CeuHIz3A44TenAeKIPTVn5nndjlMckEe1gfARK69DumTUPmlHBzqg+2nvY8b9bvB6Q0KExsMAHDn0zyrMRbpxwxBnZfLKn1JthEUbjFsibIz4Mhyhw+d7r5jo1S+YaYpYDbihF+pDt84HrbkVXuhR2XzxH3nxfpBOsWzGHq+VJXuIVg7JFVDnuEqNTeECMRwAD1i15/hgs5IVyHTZMBeYK3ZzYPn9NT7tQ82TaELbbprYsSCRuVtKC832jQWa1iSWu8hX6Toach2VKvpoStCW8pfeuJ3pcycFm6j552cXRQQDVQKFhZxoZqLgOKFlQVcfoP2fDb4eed0Dyvj7ssh4JI6vx3cGAuBye7NWwNmCgPfgMq3PGKFZb7giT92iUCckC07O2ulOs4ZarebQOC9sL/k7rgj9DfLqhhaz70nfUy7SfGrEQkDnBks++P/8lUPC37L5/yQmIlkhIaPQatrcQwg9HmXW2yo+fpDmmN45w2Vj5qUPH7U7rLpmf51du/pP72962J4EnCzqlFbYGyis86mMzaXRG+0v/+IS3A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR04MB6739.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(346002)(376002)(396003)(366004)(39840400004)(38100700001)(83380400001)(478600001)(6666004)(66476007)(316002)(36756003)(66556008)(16526019)(6486002)(26005)(4326008)(52116002)(8676002)(54906003)(186003)(6496006)(110136005)(55236004)(8936002)(5660300002)(86362001)(66946007)(2906002)(956004)(2616005)(7416002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: ku9PkZ1cIQxG11pelM2ep3DYVTY12IaEtipAx0Lz50WpeOmz+by3SbNAXLFhtNfUPdnuNMtGiGTIseoMfXImaW0JIyRAH4aOUs5pJ6hvg89lzgBYwFicaliEfOLubMhLEjJcqQAQI6jhinNMfpxIS/OTRiUXSAoMZDhjSrqW5wQFhPRJFjcuiUU8xTU7p2wNwHMe+vtBGcNHV/ruFM/HwvxCAoiXR1B/VKUMbiQC+3OUjMSPRx9RmKLfJ5bh/72k/vyE4XJpLIGTHNMaiJIGwu4eM691j9uv6yG6WMS2waBvbdP7by7ceVUhzyqImUXZ5OPdYj/aLmzZYs2xvckK7tIP91JYNfawGIX6NQ4+oxNQAreKXNuHCHrRgN92BYDmJW1BiEyjgS48SdB/7IoX/OgabtSbmTt7fGVwwXdbdI6icyaenAa70S6LDwgvBh+oTLnAAHfDXZIXy0OeEmzOkK8gRrd1su4yuYp8Al7ZoDn75WovjXLkoBnqBLFhF4AzU1QCL7cmSPgJYyhBFKDQY+1pTK2FPQQI57dmi4xEnCjxvBnGkPD/s+Kjv7kbe0ko48KWRpz3jsagJ8nQ/yTENgBFWeEZZM15J44n4uZKXVUZarGQl+qfNqAIXGozDG6DtVxRi40jazlVHrRq+Dgxfoi5EnEAyTcklP2pcH6XSjmOOwteozr4Eaxhg9RO9D4SF0c2L2Gm8DqVM6fRyacK6lsL+UndB+TzaKAcbF3h7zXGLn7vb4AHOR8WLkKeGgjD3vnyq6O3A8zvDhDLbjNBeTo3H6xqStasXpgfHZdJhh4QMPmPUNJvAxsAog0IaLSVONrUUTwOphjwgaMwErKsZvj2DPHvomE5fcVZ8rLVbJtSTMffh6BNMVRu57IXjAMygHe2evgbsla/UpWp3y2ifKz/kPjMGbcbXXjN61O9RT4U27P8tKaMtQbKezUdSSD+tD1F+lqbAVA+6e/MMr4iZDY4Pp91R5HS8xt3gf52xYqCYGQxb9GMOvLqaY0sv4MUFYWw36u1XZu3ZB0xfrK30daJQsw4wv8lsCQwwd4vGpNAb1p5aFiNYiskt/tQJP2DQhaH2+wKSgd5C0qk5fDR1L4DAZNTC6fFeU0vaEwBrYgzDXzmYHDDGWzsoORZpcNLgIX/a3QIDcnjjYBc/8jF/o1pX1ifRvUg5hAcXgGiXUes+RH/LXUO+M1fC+swt6Owje2fd5lMwTPz8FCjqnJxqISbxYYZ64ZFAQEyOlnyrTENspCvwqIJPX745fJ78Ays1xqsxtCa8Z/5bhgVTKC1bAXpYjAlgvVSLLBUFRW+dqEFxgVbYuYbhWJH1NjZR3NG X-OriginatorOrg: analogixsemi.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5463f15-5021-4437-c8be-08d8ea8033bf X-MS-Exchange-CrossTenant-AuthSource: BY5PR04MB6739.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 02:39:21.9358 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b099b0b4-f26c-4cf5-9a0f-d5be9acab205 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: f/IxouWB4G5ntXUdb8fHGxHY0+gUNOoIwx55xHLDe0wj1P7GaqkI3TbJo7xoWMLKZToW54qkI287ZuchRQunRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR04MB4376 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Jernej Skrabec , Sheng Pan , Jonas Karlman , David Airlie , Bernie Liang , Neil Armstrong , Zhen Li , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Vasily Khoruzhick , Boris Brezillon , Torsten Duwe , Laurent Pinchart , Hsin-Yi Wang , Sam Ravnborg , Dan Carpenter , Marek Szyprowski Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add audio HDMI codec function support, enable it through device true flag "analogix,audio-enable". Signed-off-by: Xin Ji --- drivers/gpu/drm/bridge/analogix/anx7625.c | 227 ++++++++++++++++++++++++++++++ drivers/gpu/drm/bridge/analogix/anx7625.h | 5 + 2 files changed, 232 insertions(+) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index 5e19170..f4653f2 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -30,6 +30,8 @@ #include #include +#include + #include