Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp1169039rwp; Thu, 13 Jul 2023 07:09:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlFYKQClq2CfMbYPfVF/SmTDXEMgRjv9cQE9Jth2ngvdMOMejwckNP3/CJIOXPoaW2FguVWq X-Received: by 2002:aa7:c696:0:b0:514:9eae:b0a7 with SMTP id n22-20020aa7c696000000b005149eaeb0a7mr1731727edq.17.1689257391046; Thu, 13 Jul 2023 07:09:51 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1689257391; cv=pass; d=google.com; s=arc-20160816; b=mE+KCXHKcMB7AlCTZpqbCCzmAxTXZLaqJO9Pe/3Us3CRz/v4z71nAqabZ/9/e8X6jZ Xss69sj8LpFWlp+g3gtIWeckWxdqrLBodIJL5gRwovNW/5Wv9pkbWiCkEaMWIZLuWCKy F46nnqSa1YtdVHBGvlikPvodNQEi5tJmMuNTVIgadVTNJjAq/soXCc9JpQBa35moNrtx R8Hk+UUHuGVnWH0jDy/WaVtMTl79MdI5jTYnnucM5Qh6zTa4NeCXenfEKEja3os1u+mo fdCZq/bK4i4KKA3kG7ujeSD8IhOXgA+haCfGyi2AwOOJcdMssO8/CdjEnbK3qNW5CSsQ oaRw== 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=Q2R7AIAXQSBoQ4lD/ydBuXX+CA6cPmpgWbd2F7HkpDs=; fh=otlmbcfCOvdMdG3FV6cjqGE4lCJjg13i/CoF8DddZWI=; b=i2i3K0IJhKZTwjvfIk2P6In/QjyN1YEdnv2FRpqnXO5jh+wCkugKTfsJuRmCQmMuXy I1ldj1iWvOdNG4IQOanUDlkjyxnkDMkSd5t4vcapDH91Yz6WnzwL/73CWyHHmacw2CZS UMYFSPFbTrnU1Irc02YD4tlQeDzATdkADPWSc/Fu1/aZTvtprvMNKKxnUAtMxDoH7GhC Bx1kD1DR3E8J0QQIAhAXZZ64hzwvw3/kv1Rf+g8/VPgpBgCHCYg0/bu1eaTUZANPRD/3 SZS5glZtKTJ+i8dmqq0dn5ByG/D7MtYx43+HbkpJqF1zaQ8yzQOXxgnpUW2sr81Aij+e 2FJQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hotmail.com header.s=selector1 header.b=e8EC7YTq; arc=pass (i=1); 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=pass (p=NONE sp=NONE dis=NONE) header.from=hotmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w10-20020aa7cb4a000000b0051e0c1e0782si7269582edt.148.2023.07.13.07.09.26; Thu, 13 Jul 2023 07:09:51 -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=@hotmail.com header.s=selector1 header.b=e8EC7YTq; arc=pass (i=1); 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=pass (p=NONE sp=NONE dis=NONE) header.from=hotmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233726AbjGMNgZ (ORCPT + 99 others); Thu, 13 Jul 2023 09:36:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233943AbjGMNgX (ORCPT ); Thu, 13 Jul 2023 09:36:23 -0400 Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2166.outbound.protection.outlook.com [40.92.63.166]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 673502117; Thu, 13 Jul 2023 06:36:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mxNQClUl2kkYypFC0l5TDFnohK2hKE1Mnje9xn/cA8pZGyAT719dYmPRpC8EBudzbzn6DwP4Eauh2ATQG1gcO7dq5HHt4TBsW9Lia+9Y03cBQcnC2sHARBCDfo1CtKaYBSqXfArwvIQ5CeN29SYhGY98fZJKuL6S1rUO4SNL79hQi6kabtBEleRZ3sLYN9colDk6H9AXN9e+2mY2hyK8R0ia2dUkxGu8F4/aT991btPGhTcfgaVi6+jGbz5Evy70WtOSBPeLIToZo7PtKl7yBLVOMfPndZaGJv/GEHG9XUTNPV4hnDOPZ/tfgMWw4ovdcB6kJjHxZCpM65vaLo3L3w== 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=Q2R7AIAXQSBoQ4lD/ydBuXX+CA6cPmpgWbd2F7HkpDs=; b=Y35v8hi8okQLGZ+KDmnQMJBk8t81fqP/JZEiVmNf9FVlJTZw1gD+ypiN6RBY0CNyDzvNF+I+HLztMvj6Zk6oxFfkOOvsHdmQ1vbw38paiSrdptVAnRL10hEHzQu0aGtKPnoViwzRh/K7wKPFmDoItDsGkbkeRCLL0usBCcnP1gQVhlHL9h5oNWk0JakCgDTkSii7TTWVuGB4WvlG9PIp/obUbc4TC+PG1DT5KlnEmtf0H43BYRDEoSnU6RTwwmclvJP9S+4EE5RHy1nUhoAP07mxZ+Imz8m08ZRG3tzZ9d8ckFZQTwJ6FuWxyJqDRMEmPzIp65ASfm5EZ7M8kK9XoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q2R7AIAXQSBoQ4lD/ydBuXX+CA6cPmpgWbd2F7HkpDs=; b=e8EC7YTqHMpkgYEowCfTYz4JL+Jnjy4o6gTj5BuAlakX4eapofEfEmAU6i6/BSQYKsdbWQS2WK+Ssd4fUV1mm+e6lwGRcYTeJoOHq05L+PX6Mmey0ptvQSRSok3kTr/FC2Y7Vb9dVO4g3SQACNK7DK5VnVWkGbaHtCYFPJyyiIHP4uHIG337rGE4Ie30ilR6AtdJzc6VGnpTduzL0mZd+qc9+k0VAvDzE4tVaqYJr35fEAOl+wKWPpRPG9VX2bkF31ImXFGknpAGmX/DuvrQ5yxoC28NhwlsMmMXZ2waSGIZgAkM96LWBvy4f47TSbX8maO7C936KCczPPmaLGqkpg== Received: from SY4P282MB1835.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:c2::7) by ME4P282MB0935.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:9f::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.26; Thu, 13 Jul 2023 13:36:06 +0000 Received: from SY4P282MB1835.AUSP282.PROD.OUTLOOK.COM ([fe80::8302:9e75:933d:b45]) by SY4P282MB1835.AUSP282.PROD.OUTLOOK.COM ([fe80::8302:9e75:933d:b45%6]) with mapi id 15.20.6588.024; Thu, 13 Jul 2023 13:36:06 +0000 From: David Xu To: hdegoede@redhat.com, markgross@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, xuwd1@hotmail.com Subject: [PATCH] platform/x86: serial-multi-instantiate: Auto detect IRQ resource for CSC3551 Date: Thu, 13 Jul 2023 21:35:28 +0800 Message-ID: X-Mailer: git-send-email 2.41.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-TMN: [0ECX7ySrbZC4lACPEPl/5jGvP22+Zf0V] X-ClientProxiedBy: SI2P153CA0017.APCP153.PROD.OUTLOOK.COM (2603:1096:4:140::10) To SY4P282MB1835.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:c2::7) X-Microsoft-Original-Message-ID: <20230713133528.6017-1-xuwd1@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SY4P282MB1835:EE_|ME4P282MB0935:EE_ X-MS-Office365-Filtering-Correlation-Id: 66c175c4-a2f9-4fba-cdea-08db83a61c2a X-MS-Exchange-SLBlob-MailProps: 0wLWl8rLpvs46l3gX9vBVjaw7zgiAvRIH1VTORd8VCBR1gHLX7V+zWcUNNbEde0wEuErj9FJTnPThz4rNSVhMOHwd0yOwLN8B/jGZp/oB3qA0CGgtciLDNDxjE1WVIfkrs2Zcx74KMavVZvrhUODuKaQFp80OWZV0TVpT8Ne7SbI7AZwjuvGwnLQenKwYK9Jm9NTuKQyHk5onr8DXncY4cTNyJPxODASbiivLO0sYy1lFQxVjI15tdoQZF9uXAnCW3wBVOL6e31xsnksU/PpSgqP/81dKIFND3gfbnUOk3ePmqiZddQlO9JtbHCi3CFbnVLt3w4xHw3a/4Mg47XDFlqXui2aqZpr3JOWLEsCcRNYQJlFznF3D8aHbYUXiyTSNmeriV4+kWL62gApfGtp2a91dJa8YcArOdHLCgRvDNSkZ1bCsbQNzCWW0TSABcolxdUXO6WLApjb8bs9PMiEaNkmxiQQKQQ3+AuWHDtFHeO+6OXZDAm+egS05e/8EnbSbKrkNN7SuqlC4T4/9yMA/w5o/wdZEj7J/tMRKQr4NB9RPqNs0Sqdi0YZ8iNDvWPzCQ+zdj3QC8Rt41RGzjK1InhxHokbF/rs+yOVdDWOMAZRJhEXfYrR4vgGj8YmatXeac50puqpko4PecYsKYw6gt2MogQjx0pkuMI3D5MfSFTI2YJAm5e6BW3HYQQDmbVYgvKt0jPHfsDKp27CvzOhDAIg3gz1lpEG6Sm4FtNpnP+4Woju0jDOYnumVkv4dpbkSZRTt3apayQ= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: phOGmUPF5W41DhpTMidTRmZaP3jhEk4lAkZJG8xOLRl7wDlSkVu8Gu+V1ul5ncKVmv34WSVpocS/+swpBu+l/Gu/VgGOXs8tdCg9/PJTBMIYxwvunRLvXXSHiwUvV5PrwJ8ooh/WJ39ANWsLMYdkEmGPjzJWIN+7nZ9W7/ee37CYzWMtipq/Fj1qMTlXOQtc8rgzewPQkMVMaiKuwFZT3CJtGoPDmMCkYnc+7X90k9n+MMXHdUDD7OtL17zO4v7qK7Q2ZMsYycRWtYdYPGEUBeCySIzazn/aKJQwsNlLZ8oBb50tMgrgcWYEo0zKCgplgxDr2MpMc/DRvhT24qRcxTb6rvxNq54/klRaYjq+QP521H2dbxYpcxVZLKYTgssEREjCJfp6m8cCNRnL+VIU9vsLvQDs7dr1UNIgk8LwGx+dd6Sl9Upo1Ft0fYRL/fCnvT2ztwTLvoIUZeuu5egN7F8kxw078hB/NGk3kQBcZOkGTAbU3vHp344/BNbZxptscnYt+L0NemL7yZDCSRcxoa4nJIWAI/koH7qo0ABKQINzhfGfqHc5b9+eXGirdcdAM/+E9dsxOQFNJ/m5zB7WRYEnfCUzm7LxX7KiDfDWaOGCPzzlEMp6DgXTsVcObsKT X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/PI96fxpFggyMQf/vtpcloupuqrybSXNQ32OHtw/+b4YutwDtKXQqss+Jqm0?= =?us-ascii?Q?y9ac2m+8CKDwpkLOJr1qdnukVVWT8MROQUkIMtH7rjFFZtdFP2r52+v7b0F7?= =?us-ascii?Q?5iOH8dCyAC+P0QrgDg/5RkxpeyFZWMS7MPgmtHn5dhuBOYdzvZSPb2W7Cziy?= =?us-ascii?Q?ITOveHceWy6oo9aLNpuU9KCiCWmcA83AYceV1a0Qtm4izilJjuzW8IZLJ4ux?= =?us-ascii?Q?Ak0yvou7dLuCeR6Qq321J3jYXrDCSlJPWWvzipZ4YgdiiJFPNHWgMotWqYLD?= =?us-ascii?Q?5avG5kQuaUU7zvLvoRADLtzF8aUUW9EYwoeNulxS6rQUzmIUBt6sCmbXNlUp?= =?us-ascii?Q?4jYghuFeoCMeLdjtlW20XqwkAESrEv/C3Z96PKsKZTooJWI8fM0SEly0/ijy?= =?us-ascii?Q?02myyJgfCaKfNSFFbyd8GkpBlc9HDbiKgbiSi//y/vsMsRLjEM3T3D7Db+LD?= =?us-ascii?Q?52oowJJyf7zj4S4NK/cyxRBYT8smowNddJygO2JQT84TirZ+B3x/ix7F+qXq?= =?us-ascii?Q?hEWTBoVblexZxJ6zYxCQhTCLTlu41a8WBztm7J8nmT5WJuuH+IL1xsSOvy47?= =?us-ascii?Q?E2L5+qYODc1XDFQ794DhskoyRBFGQnIxYPt4RxxRX3EC/bzByRpd1kifX/Qf?= =?us-ascii?Q?SrbYQujxDrB0zlvoyV6yKBkIDCLLS9zNft35I8RZvyJUpJAmjwP7V7MJu0bT?= =?us-ascii?Q?/qtoG0DWnLlhBcMjHxwGYm+LigwQP9BspZxkr9aG/ga4uQyqISN7kF5ISCaV?= =?us-ascii?Q?Y8Gwm0SvY6xxMsEiA1KCKUECW7/d6/e+S5z+VykIBnBOqYsjNPDM2GgbERt6?= =?us-ascii?Q?dNa4zf7R775HBSOoklk2fFmZ1iJUyoS/3xWDJfcipA7BT+lS9/DN9Wn2KLml?= =?us-ascii?Q?86xZWeEwqE9drdZWfXn4UwVaYpc+Jv7GDtvdMBI/eSV5mo+8K3Y93a6GzOLv?= =?us-ascii?Q?6vY0Xdpj8ugI6PbZFDRwzpw2SPQrO/800xxzLupFcYkx7A8U+nXR6HaXiYbf?= =?us-ascii?Q?X+TZeD1q+SkuI5fQA9asxq+dIzxhS2taTFfm5uWDNT5dK8acEI0et0DY2wWw?= =?us-ascii?Q?Cp8T20OBxZzrOvxWfJLJ6Eg+WfffVxI/LZdeKEXhK+Ftmzz+v4ALrpHM0D9y?= =?us-ascii?Q?DRn9QW+g1RHDhGTdL8At7EP+pMUH1OcTPuIAXRRJTfLy8Z/BaxetCZDhAVU2?= =?us-ascii?Q?xk20PvIo1jum3GgQjegSiNikTfg1PBvX6Xa0Cg=3D=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-746f3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 66c175c4-a2f9-4fba-cdea-08db83a61c2a X-MS-Exchange-CrossTenant-AuthSource: SY4P282MB1835.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2023 13:36:06.5433 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: ME4P282MB0935 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE 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 The current code assumes that the CSC3551(multiple cs35l41) always have its interrupt pin connected to GPIO thus the IRQ can be acquired with acpi_dev_gpio_irq_get. However on some newer laptop models this is no longer the case as they have the CSC3551's interrupt pin connected to APIC. This causes smi_i2c_probe to fail on these machines. To support these machines, a new macro IRQ_RESOURCE_AUTO was introduced for cs35l41 smi_node, and smi_get_irq function was modified so it tries to get GPIO irq resource first and if failed, tries to get APIC irq resource for cs35l41. This patch affects only the cs35l41's probing and brings no negative influence on machines that indeed have the cs35l41's interrupt pin connected to GPIO. Signed-off-by: David Xu --- .../platform/x86/serial-multi-instantiate.c | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/platform/x86/serial-multi-instantiate.c b/drivers/platform/x86/serial-multi-instantiate.c index f3dcbdd72fec..2c2abf69f049 100644 --- a/drivers/platform/x86/serial-multi-instantiate.c +++ b/drivers/platform/x86/serial-multi-instantiate.c @@ -21,6 +21,7 @@ #define IRQ_RESOURCE_NONE 0 #define IRQ_RESOURCE_GPIO 1 #define IRQ_RESOURCE_APIC 2 +#define IRQ_RESOURCE_AUTO 3 enum smi_bus_type { SMI_I2C, @@ -52,6 +53,18 @@ static int smi_get_irq(struct platform_device *pdev, struct acpi_device *adev, int ret; switch (inst->flags & IRQ_RESOURCE_TYPE) { + case IRQ_RESOURCE_AUTO: + ret = acpi_dev_gpio_irq_get(adev, inst->irq_idx); + if (ret > 0) { + dev_dbg(&pdev->dev, "Using gpio irq\n"); + break; + } + ret = platform_get_irq(pdev, inst->irq_idx); + if (ret > 0) { + dev_dbg(&pdev->dev, "Using platform irq\n"); + break; + } + break; case IRQ_RESOURCE_GPIO: ret = acpi_dev_gpio_irq_get(adev, inst->irq_idx); break; @@ -307,10 +320,10 @@ static const struct smi_node int3515_data = { static const struct smi_node cs35l41_hda = { .instances = { - { "cs35l41-hda", IRQ_RESOURCE_GPIO, 0 }, - { "cs35l41-hda", IRQ_RESOURCE_GPIO, 0 }, - { "cs35l41-hda", IRQ_RESOURCE_GPIO, 0 }, - { "cs35l41-hda", IRQ_RESOURCE_GPIO, 0 }, + { "cs35l41-hda", IRQ_RESOURCE_AUTO, 0 }, + { "cs35l41-hda", IRQ_RESOURCE_AUTO, 0 }, + { "cs35l41-hda", IRQ_RESOURCE_AUTO, 0 }, + { "cs35l41-hda", IRQ_RESOURCE_AUTO, 0 }, {} }, .bus_type = SMI_AUTO_DETECT, -- 2.41.0