Received: by 2002:ac0:e34a:0:0:0:0:0 with SMTP id g10csp391132imn; Mon, 25 Jul 2022 20:45:57 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v7k0MxkJ6Pp2wZWjzZ+hPXTw9eGoX1u8FA0+JUFR+qa0KYBhjD0YYE8Lmr1SRq59Q/6gea X-Received: by 2002:a63:f91b:0:b0:40d:d291:1555 with SMTP id h27-20020a63f91b000000b0040dd2911555mr13557207pgi.399.1658807156982; Mon, 25 Jul 2022 20:45:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1658807156; cv=pass; d=google.com; s=arc-20160816; b=KvwshVaITCHvHgG/pim2MvEdfUGMHb1mGOQt1dySbh/UGLgZAQgpb4Qo9vW+B4QOti Mk3tJo8AepuQm7mBUmeiYrL2uLB+lkbBKCXFEJ4qHW12zLvKm2ORhF9Tnrt0mZeGKB0P uhPhMwvZx9xByE5PPXc9/53SgI0yweIQx8Xu6OkC+vk9YDH8eX9VVQaEal3ch7fqv+Ma KyUbXgizD6vlNzdosb8PDBJMIzcGZ1uH6M1Szws2FaVijUlKFq4CBMSbDy22QRzR7nER oHJt8aRW8+lC2flSgaenOx2+NCNdD1WJ9HHXjWLkiAujVSsYbQyzOlrdM5Iw+cGbBEdj hG3w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :message-id:date:subject:cc:to:from:dkim-signature; bh=+dCS7LQ46t7nqdVSXJNWZfU5yXoPNyxVT3hjArbg/y4=; b=IvLKL/iMeK2zACMO0/hrXI7CH+M5E1iRkr3pTgAZ+ISA8FuEinHjsxIvgcvhnIm6mc x7hIwbw2dpkfQhOIvOstNnoSLRxuRNCs2ZuvjO46l9n1+3Z7Xd4RHXizmQfqLnNgi8RL IN0gHy9W6SPBdUKSAJvS2ZuOO4hisoFpzDSBxdhaXKtxerK21jL6KzbK3c3x69K0PSJ8 6JdKwA11AyCSi1r7vt7ZdClPU8h0grUX1KEgwuucrzs/AZYsVhBqkQwyhxw0ageSzIQy i87TQ/BVn1Q/nE7xcVIkiULor9g+Csuc2Mt/67QBu3hL/ZO0njNfhgzXzntb20qFlrsH w+zA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Analogixsemi.onmicrosoft.com header.s=selector2-Analogixsemi-onmicrosoft-com header.b=FJ3r0xt2; arc=pass (i=1 spf=pass spfdomain=analogixsemi.com dkim=pass dkdomain=analogixsemi.com dmarc=pass fromdomain=analogixsemi.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=analogixsemi.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k17-20020aa79731000000b0052ab6fc04d0si15586537pfg.218.2022.07.25.20.45.41; Mon, 25 Jul 2022 20:45:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@Analogixsemi.onmicrosoft.com header.s=selector2-Analogixsemi-onmicrosoft-com header.b=FJ3r0xt2; arc=pass (i=1 spf=pass spfdomain=analogixsemi.com dkim=pass dkdomain=analogixsemi.com dmarc=pass fromdomain=analogixsemi.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=analogixsemi.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231236AbiGZDbe (ORCPT + 99 others); Mon, 25 Jul 2022 23:31:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231786AbiGZDbb (ORCPT ); Mon, 25 Jul 2022 23:31:31 -0400 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2122.outbound.protection.outlook.com [40.107.93.122]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2026628E35 for ; Mon, 25 Jul 2022 20:31:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZIZeOPQnCGws7Ecdji9EboYrXacpbUnB3/2RMMoodYRt3zXGL4z+rR7EcVkFWckkJL0mbKq14SLPTnVrsNWbOvHyOqPAtAtoISS0g8OUTrpyGkXjlpeD2x+07lyppOm4cBZ+HX6vub6CbT+d9JYAJ5uYPsJ2Rglex11FXMYmNiwsg2bVZYvQkiEC9JazXEbHCq4arFjrzt3dOg96oFckwdqfwJZkU+M4mvZzWKLJdN0llVW/MqVoq0Dmx85Nv6BuB8HsnY3IOvg9ncU9lb5GlWzTXp12YmgXwsWeWpJxb8qaEM8ig2jE74vC5Jcr5vQhI7M/EEFWvme/yNsibswNfg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+dCS7LQ46t7nqdVSXJNWZfU5yXoPNyxVT3hjArbg/y4=; b=G8Huk6DYoYAYP5DasoycK4KaQicPyikn8byoDrd8HxjS71leLttbPazE3+HvqhrtJkTIkJWjoZpXsVGFFSzF2Ra8fG4inLnsrrne8eAqzNaDKRQmBSqwVjZ23HfznjqwMThhQdlxVlTc1kBfJ5ubuJLUiOUVKUwCav2X0CNg9kAIzh9nxofrPT/MulUQtKx/UCIJ06Qk3VbInfiyLgTmMN2s1eEq5I9asiX7fNu471atJZvkjgxCg0PcTjvr+ZdWWdt2w2hd2xfxoWG1kfx6mPaNrnJBD+DysJRxP9JT1mRig6ogzbJ07/QYbe97Ju2RpyMwE3S/FGB29Xf+uR37cA== 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=+dCS7LQ46t7nqdVSXJNWZfU5yXoPNyxVT3hjArbg/y4=; b=FJ3r0xt2g9yzmHGNmk3AiAIn41pvNKYIjuYrMlWvF/e3701yjt9dATaWnrvRpRaQ+DdSmAUetx2g6Lk8Xipojiuw6R3YR0OVq5/gT/V1FDUa3oKxH5AS/U/k8xasJh36UjuCzgw92C3FtCia0vRIbhAdfND5Mk6Xixb7esa27vE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=analogixsemi.com; Received: from BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) by CO6PR04MB8316.namprd04.prod.outlook.com (2603:10b6:303:137::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19; Tue, 26 Jul 2022 03:31:28 +0000 Received: from BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::f02d:f2e:cba9:223b]) by BY5PR04MB6739.namprd04.prod.outlook.com ([fe80::f02d:f2e:cba9:223b%6]) with mapi id 15.20.5458.024; Tue, 26 Jul 2022 03:31:22 +0000 From: Xin Ji To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: bliang@analogixsemi.com, qwen@analogixsemi.com, hsinyi@chromium.org, Xin Ji , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/bridge: anx7625: Support HDMI_I2S audio format Date: Tue, 26 Jul 2022 11:30:58 +0800 Message-Id: <20220726033058.403715-1-xji@analogixsemi.com> X-Mailer: git-send-email 2.25.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: TYWP286CA0022.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:262::8) To BY5PR04MB6739.namprd04.prod.outlook.com (2603:10b6:a03:229::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 634590c1-d796-4248-ac9e-08da6eb74fb8 X-MS-TrafficTypeDiagnostic: CO6PR04MB8316:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: syoaGwYjXyx8VASXUHodftaXfgxLILWl51QUnEJIkPeQcsl2kiu+ZLqQrpujpzkZkKl6P36wYh5+v0DoZwEZ4Q96iDhxWfILlyLSgDCj47jrjE6hXxtAbGBZgzw5Qe/oDtxxFge7fTKjMJATltY6x4rfV2y6M5KUJi4ikgeWpZi8EbSEYMcenZbfH3LPTQIwnioFew4ZdCXAJ9mGZnjjRYbCHBQYUG8GbIq69wh53kSPQQzE47RLDNEQKwFwrwoBdtwba52CUVGDlryiw3AQ9P7OaZt5CFCqXk1CzDDVecYzrNo7StkyzXGDWK+yjKaR2weNZUlUk1hu66dwgtGFbrdLu9o7kS7z+oVCtHKPKi3TElWwgaEOotQhyBshej+NxiAjK9Sra72R7oCoySrYTMiLsIctiOJgZqNhga7K+vo985LdwdOLogdxP8CFf7aCrGF4mGhRK6ifXW+2ID3wUb3xHH/dWn4B6ym+Kxw96ux6TZR3ZNUU3rgd7VsP82aJCVlDCXtSHBZAW5OgAGA+QaLNtdQxqd8fQieEUrOfFGgikSe6V/6ghNG4Ii+6gUXYeYyMselg9KX0hVAxex/QEkNgLmaqclqtyLk2AptrloWgpBf0eA/gxDlBVmXsLemjMitMTfgwAt/qKwoBnQUPO7Vi8O+8eTuIA66zuVrQzzj7uV1s3oMu4MDuaJMR75aBuqmAiALfoudRZKW/YMSw2RuBP+uorOaVZkBZ9VWE0GTQJl8qBcJKDKpcoPFtoni/5Y+qjvyBVQHfGLIT5kyTWX6SOAKokXXnOINuzSDsiEo= 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:(13230016)(346002)(396003)(39840400004)(366004)(376002)(136003)(186003)(1076003)(8676002)(4326008)(66946007)(66556008)(83380400001)(66476007)(2616005)(110136005)(52116002)(6512007)(41300700001)(36756003)(6506007)(26005)(2906002)(38350700002)(38100700002)(86362001)(7416002)(6666004)(5660300002)(316002)(478600001)(8936002)(6486002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?V0N/K6BPvC7Q6c5TOeg72ZyKWYgRWYWGUOcMLRABEyVNH9MJ1p2hczoMWZ7p?= =?us-ascii?Q?C9mGAljPcTRWh3o6jjttUKr8+OTtTiV95rgTL0xTPHlT14EVLBuqSaXRXTNq?= =?us-ascii?Q?GsazqAIMsIuFH4mdnnbnOCyOliOsZaovcflcq0BcXLgGanw4CO3qQMomwffi?= =?us-ascii?Q?J/NgAqAJsxCqbj33kqOzmGW9Z4+8Sr5Cy+9aPu1BJF/2S15c2Um7nHpuTsf8?= =?us-ascii?Q?B/1DJKITHhu0X8Wfv1ygDf1Kh76biDZkDCstnHA5dD7wZJF+bnh1xZ/HFL38?= =?us-ascii?Q?5XIuZldCz6jnbgTKxDSApeu3uP+b/3Q2ZXZ1JmR6BZbqkWRQ3pC60ACn22u1?= =?us-ascii?Q?u3qpEnakEx5FJRII5ApxCJLV584MTzRS/TDAIuBqcdeJgNeBdgrRoSjxlmMw?= =?us-ascii?Q?IsoU1YaKcBZt2fzr4MT6H1hrHAzxGTrguHAJ21FcY8aeaFNd5hqEbKw2dqn2?= =?us-ascii?Q?C4qfNrK6nWKGYzF8n7fgOvsfwDGQzyrKBKQ108fSZmCifn/CEJrlSeMnJJ67?= =?us-ascii?Q?1t2v1zl2V1SnEJ4P7bUhLpQ0irEPB4BZWvw7viw1TgOJi3wvUq4vylJgc+xx?= =?us-ascii?Q?KJuNfFURNKwvMakPIfLBqnhZDTCfjx61ndaI+9g8CrUxTvqc3ijEOlLYPmrJ?= =?us-ascii?Q?6vkGG36tWQKudm9/2eZbU1mBJLc7RVPMjzde2NvLrDnp9KySg0LfBIVN3D2w?= =?us-ascii?Q?rLbRUP8ZnIMI+3196+c3YQKzY3cGp+v4dIAAZgH3VdRKQzYdcanr5rPaMzrN?= =?us-ascii?Q?N6HYiI0H0Zt//6B7Bzbio/wXE/+t0sljhTQerZjK66ve2DN+NOBjxKSQerjW?= =?us-ascii?Q?UMlxFefSGPFb75v2HxkhEerfswksMxtOtWg+4Dk1881RttoxpyvMyYUcKRDC?= =?us-ascii?Q?Pafo3H8bibcJC48S5Y72wMIJbgXsGqt3aeouGII0GNcVjNl58zSN30NItspN?= =?us-ascii?Q?tMzYFwuzK4oGVjaF0qwWXvqCHsLOLBrm1Mi5i8hE0ZelB+CyRtH88syCGz/u?= =?us-ascii?Q?8NeD2Lp931bBzBI8UBLBnRhs5KNQ5IYHSfgoConbt3w6qhbVVmk0u789AdS0?= =?us-ascii?Q?gBCPWS9Fyo6H26xIsR2f4OaU2VckLl5Tqw3cD8ReNhiKaKM4/EG2hxChlj/3?= =?us-ascii?Q?B1Wak255SJ350kfIQIChhVTpQEHQ68IJFyrt6WkHUCGmU1PJCwMUYVROtXTj?= =?us-ascii?Q?paCsm6rKgAkwClBG8z2L2PtlzTyVQ9K2Pxhu7NV8t6ws2CjDel1yMzF3MPn+?= =?us-ascii?Q?DzIwgEi4rRMhdwQ35/rE0jAvR0diH88nM8nLIPn1VVkJJ78L4OT+X5Pnllhr?= =?us-ascii?Q?rKc636TRUebu+p3CWJCVWPUQtNdesR2ili1RAylT2/GLKVBPfXNhPA4TnwCM?= =?us-ascii?Q?lplcmNYmh480xG8/UdnH5P4G1ZCgM/a8dsW+NTj+6ZH5sFjAux3g2N2OISrV?= =?us-ascii?Q?00exAy5BvM33QU+NktBfaFr12dVTiN0KEFeo5B9wnhrqDLu3vBScLVNc+7BA?= =?us-ascii?Q?o+hMLljTR7kE+fp3bpSLqd665hXdxFQKccTIV9X+kIiQ8/lTW2zP799j90nn?= =?us-ascii?Q?5mYvfQ7cpQ6reUteppJYGb6FpVSMDKkrqVRTKmfK?= X-OriginatorOrg: analogixsemi.com X-MS-Exchange-CrossTenant-Network-Message-Id: 634590c1-d796-4248-ac9e-08da6eb74fb8 X-MS-Exchange-CrossTenant-AuthSource: BY5PR04MB6739.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2022 03:31:22.3639 (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: 08VpMRB9UG5FfzCzRY9sH09aSOIn+vlZnklkAJMBqxwRzsXJtLVFeqE4P/qzgONQnuJxpbghM2/HngroDfRWKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR04MB8316 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 1. Support HDMI_I2S audio format. 2. Return 0 if there is no sink connection in .hw_param callback. Signed-off-by: Xin Ji --- drivers/gpu/drm/bridge/analogix/anx7625.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index 79fc7a50b497..c74b5df4cade 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -1797,8 +1797,13 @@ static int anx7625_audio_hw_params(struct device *dev, void *data, int wl, ch, rate; int ret = 0; - if (fmt->fmt != HDMI_DSP_A) { - DRM_DEV_ERROR(dev, "only supports DSP_A\n"); + if (anx7625_sink_detect(ctx) == connector_status_disconnected) { + DRM_DEV_DEBUG_DRIVER(dev, "DP not connected\n"); + return 0; + } + + if (fmt->fmt != HDMI_DSP_A && fmt->fmt != HDMI_I2S) { + DRM_DEV_ERROR(dev, "only supports DSP_A & I2S\n"); return -EINVAL; } @@ -1806,10 +1811,16 @@ static int anx7625_audio_hw_params(struct device *dev, void *data, params->sample_rate, params->sample_width, params->cea.channels); - ret |= anx7625_write_and_or(ctx, ctx->i2c.tx_p2_client, - AUDIO_CHANNEL_STATUS_6, - ~I2S_SLAVE_MODE, - TDM_SLAVE_MODE); + if (fmt->fmt == HDMI_DSP_A) + ret = anx7625_write_and_or(ctx, ctx->i2c.tx_p2_client, + AUDIO_CHANNEL_STATUS_6, + ~I2S_SLAVE_MODE, + TDM_SLAVE_MODE); + else + ret = anx7625_write_and_or(ctx, ctx->i2c.tx_p2_client, + AUDIO_CHANNEL_STATUS_6, + ~TDM_SLAVE_MODE, + I2S_SLAVE_MODE); /* Word length */ switch (params->sample_width) { -- 2.25.1