From patchwork Sat Sep 30 00:20:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: D Scott Phillips X-Patchwork-Id: 13404881 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3BD57160 for ; Sat, 30 Sep 2023 00:20:47 +0000 (UTC) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2111.outbound.protection.outlook.com [40.107.92.111]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7ADFEAC; Fri, 29 Sep 2023 17:20:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qw373Gk0Gy/cCTlUJELlrzE0kBmRZYUEwMIfCLWDNh4/J1pKvpmJDCmkaLJWh5DhLkeSeVWPM3v0gjhbuT/NvSAD9ByfXaVFwFYm6sLjMiYstrBCT7J8S0imti7nP20HqwjR+vXhaMobkflBbd+1ynhHTJQCSFT+3SYHSVEuzgV87D2d/Uc1BIFECrju/41sRTIZPIrO3S+CpwpHHKUoWLAbHlaF74A8CUagDQWFp1HIcP0hs374zCVOMs5cs+HoLN5Lb2x/ugl5THdrl4o6okpETHYFmiJGPhD++VSzkTbYpKBh2YJFK25OoOL5vmLgqVC3F/pD/VysKsY8WzYxLw== 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=JdGWO4d3/s+VhAuyuxMvjTgCFwfBQAiVr7XS2hAQhis=; b=RJnRq/b0VsBGQw9gFIVcXw51Bw3OFSNzHDw0aEmyG/rq1x5ri5GdhTAe8znUZnJjsVTN1Nc5pcUDRd+IoT5WXeYr5neAz/rbjS3a30MAuWLE97RKchcrMvEwMH5qujfgyMqkkjHEx4qJMgRB66484ewzikWN+6PQGy5hrABqAPIZl6bEIcIqBK8BXOu4Q1NcZjs8xYlmZNOCSyJsWvhsIj6Br1tRJXHP8HOg1wKOFSEph36M6lXVWjDjoVIcjulgn9ou2niRPHFk7aWzRjqiKgbmZKMChjWMtMMxDLGifm+NjteE1kcjEeSR5Qf4O4NFNvpQ01lmVQf080m0YhvMFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JdGWO4d3/s+VhAuyuxMvjTgCFwfBQAiVr7XS2hAQhis=; b=odZ6AhINbBaqewsGVFNQyJo7K+xxrxlRQSOAbAXgBRmaEy1+P/jay+y6POWupA9F3LPDdGAFf8p8sqAhsKx2ej0Rie4otTS4eJMxQmFMBb8ZRQhPoqbWD15lEhgVenVyW6uCwtyJFDN5WWbB95OHJw9WdtskGJgGQuBD7pcd7Fw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from MWHPR0101MB2893.prod.exchangelabs.com (2603:10b6:301:33::25) by BL1PR01MB7553.prod.exchangelabs.com (2603:10b6:208:384::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.23; Sat, 30 Sep 2023 00:20:40 +0000 Received: from MWHPR0101MB2893.prod.exchangelabs.com ([fe80::ac16:89d:a480:ed6e]) by MWHPR0101MB2893.prod.exchangelabs.com ([fe80::ac16:89d:a480:ed6e%4]) with mapi id 15.20.6813.017; Sat, 30 Sep 2023 00:20:40 +0000 From: D Scott Phillips To: linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org, "Rafael J. Wysocki" , Bjorn Helgaas Cc: linux-kernel@vger.kernel.org, Len Brown , Darren Hart , patches@amperecomputing.com Subject: [PATCH v2 1/2] PCI: acpiphp: Allow built-in attention drivers Date: Fri, 29 Sep 2023 17:20:35 -0700 Message-ID: <20230930002036.6491-1-scott@os.amperecomputing.com> X-Mailer: git-send-email 2.41.0 X-ClientProxiedBy: CH2PR04CA0002.namprd04.prod.outlook.com (2603:10b6:610:52::12) To MWHPR0101MB2893.prod.exchangelabs.com (2603:10b6:301:33::25) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR0101MB2893:EE_|BL1PR01MB7553:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b3b86ef-1511-4106-f3bf-08dbc14b13c0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aB7epv4Ew0Z4r48XXYxmwULgeoqgnT/wvAFUidFpPx0FGuzk8sjlzLJTgY1FWy2oF/fXdJLWYp2L/ALCWFLYm6S/SVPlIz7KXnaI0Gg3w8A4GSJchvO5SONH9DmBDFpsfAVZhygmM9USGYj/6jhCDLLW8GmpB5Hbo2G04e0jrI8ezaFfb3SK7kyUjlHF+s1NWN3e7H2WA1Xby/8TDGXYAeQr1qL4Ms5aHkGKngu1TBxO1EG/5zVN25zsqiy0INo2LNPrDzjkaSHqCcUuVqwjQXLKKbOyZBEpQib9nbgSYD0CpDEEMYK/DFX6VEvSLs7DoD4UwtGVzvNuOPmXFr+lAfqB0cxL+hoye8joQcyTDAeMPLivkC4sxghBrxBUBLTbn6CvaovXeJtkigxGAGzI6GlVbjIsP3Ahq3cRILL+iHrj4sFAXPpNcRtfpEJI1BEvl3+zVrl04wiNx23EKYfJ0qMUo7BCKqc5D4RNamdfYyTEYm025jsey+fBm7CmbJPvdzyosIp4/T0HelSiZ08bZaq8+NEIOZHyf/RuYD8PtYpMwA/zt8UAgThY5NEwr1p+ViIwTyxnfShNYJeVh/8uYXz70VXmKr7J6iJ6t/vKgPhOFE8NILbzyYcgNdP276yf X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR0101MB2893.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(39850400004)(136003)(366004)(376002)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(2906002)(38100700002)(38350700002)(86362001)(110136005)(66946007)(6486002)(2616005)(66556008)(4326008)(41300700001)(478600001)(66476007)(54906003)(52116002)(8676002)(6666004)(5660300002)(316002)(83380400001)(6506007)(6512007)(8936002)(107886003)(1076003)(26005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RxXA6rdtVzza6CX3NsRZhsq+HQeucyNQ24+U//TSzo0PFAXAXRyaSO3Tygu68p4KSuSKMfaS0DDAx7LtHZ8pSIn3OqoD7GLsE1k1RMArOnR0uowG2d9zhxP0YUO+69MKHKI9Q9aeE/jCiCl49cid8CDX7qfo5p2JIQUQrzCrV77D88CXxKlyrJQwmiVHoDXu0Dpg2NlJpNDlpRP1sVEkFhUBelatbyPyFCavWZWdaGmM98tdgmIzujTMpFLqb85sxqZQXxBNmZrYeJ0hmTV9EFGqUtPSPZIvnk0UCBH5upgqupfQcXfIydFFIX5t/Ta9stXRTYS1WW6lVB2Y9tc8wxh/VfLBLa1DMr0YQq7mBJQ81pZWr8A6/jF9m/gUeIsRJkqup7jDyrxutTR0m3ImH5M2G9JpHYHYHkL83H93Stss73q6+/7h528H80rbG9T8MGgetUsA/UM40ntI7iail70BtULDW/pCe1NqlkP5DcMvQ8PV+2/cWqUzjje1vkus8/UL4j/PG9PD3CT6hpXwhtiec0OnX+HIUKhHo3WErfwRbT+hGVSVEeaVM88SiqRxd1rh9WYaJtXC+oKM9K2R/ng/ZOQ4umD67tQXZSvUankgEOjlBVjdpAc1UwUmwftZ/RCieDlOBjQ+bB/siUp405QaAKw8M4WVOmxk+cZKGa+YycWIUfnHbAC9YB1Z93aJbr0uXkdHufGNfAlgRL7M/RRUjUYPnViOK7MVPd66Gcmw1YkqIrw+oBC5YSPTsBmZuH433Z2O73vmR8AzusHdVi0h0VEBDFNDcw/L7OHghV97+cdF0NJWWSTJ977tFq6B68YEqqMMzk3iaM3bW3HLciUYANi05SNVtriAN5njF47NMvrP2vUeDnxidrNFI2Iw2S4SkgL7Fex91Y9D3y9oJpkBcitSGziT6IBQKRNtwia5EWxuGHdQlz6Nr8Nmw5i1AYsN8TmXLqOBS+Stri7lMmSg0jjuxgZrzwgGZcFiSD5Cb64V3DgIHlkxIYc+wrk4X0hhpw2/66HZBLKT7H8BVMP5krl5XU6sYmGQOg4XJPMCdD3Zn47q7Tsa4AzLHznDKHLQFJO7nLCIuA3M0uDkWvdM8Z0Vc1EWsdf5MALRmR+ktG85V6AN1FWvbF2R2MLtVaZPy/emW6iQ3sJerFmiuAGDr0nO3ccu7bXuMup9JNVa2lgtW/aPirhkoOg6ydhFbKsjvN5aLxhT+sBZcNHMmw6RtEb7iyMjpSmlj51+xJ1+ZlJezDFy46QVnzAC6canePGBV31w8xL4OYfgVaT9Sscr4EAdUejah8VJB2vM1p50+JmcPo4/FHuyqesk87z9x37RC+DJYLA+M4pnY6k3wTrlf7+2L2BTI1RpL6zlhDTjCnLoklLAlFOppFgDiMZKBRN9jfxTRjM7dIq9aWM6XJfrtkBaq/q7WsvuTL7epuzlsec7eth88zdT9OwL+lBlVn6awQFkvjWw6TE7Rz3gUJhTn4ArCfgiqvHT3NCLxshCNpUxAPndJTcQ+e1LTeTGD5xaLKNleNKZXCLSp/hwR/zAbf0F0ULTbjkNKBryBIPtfFLuXlu1bdqo1LA+GkZYw+vAQ3LeqC3Z+vGCQyywyw0i1/aUusSF9UfI7CNT+C0= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b3b86ef-1511-4106-f3bf-08dbc14b13c0 X-MS-Exchange-CrossTenant-AuthSource: MWHPR0101MB2893.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2023 00:20:40.3450 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OBVUcF+exLBrJ+Q8Q9stLjpABHb+A9mIdfoZDapwrpdeD/B7j5CQNvg+pXRd9ohs9eij4/Ytvvvp2PO1S4Owxi/5DzvT3f8Vo7TLMemfaJEMbHTdsSclFLnqhPljFga7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR01MB7553 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_BLOCKED,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 Starting from the introduction of the attention callback in acpiphp, a non-zero struct module *owner field has been required in acpiphp_register_attention(). Then intent seemed to be that the core code could then hold a refcount on the module while invoking a callback. This check accidentally precludes the possiblity of attention callbacks to drivers which are built-in. Remove the check on `struct module *owner` in acpiphp_register_attention() so that attention callbacks can also be registered from built-in drivers. Signed-off-by: D Scott Phillips --- Changes since v1: - new patch in the series drivers/pci/hotplug/acpiphp_core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/pci/hotplug/acpiphp_core.c b/drivers/pci/hotplug/acpiphp_core.c index c02257f4b61c4..9dad14e80bcf2 100644 --- a/drivers/pci/hotplug/acpiphp_core.c +++ b/drivers/pci/hotplug/acpiphp_core.c @@ -78,8 +78,7 @@ int acpiphp_register_attention(struct acpiphp_attention_info *info) { int retval = -EINVAL; - if (info && info->owner && info->set_attn && - info->get_attn && !attention_info) { + if (info && info->set_attn && info->get_attn && !attention_info) { retval = 0; attention_info = info; } From patchwork Sat Sep 30 00:20:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: D Scott Phillips X-Patchwork-Id: 13404882 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA66F361 for ; Sat, 30 Sep 2023 00:20:48 +0000 (UTC) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2111.outbound.protection.outlook.com [40.107.92.111]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE5441A7; Fri, 29 Sep 2023 17:20:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=awM++BIVz7tya9x/q3/t5LUVHdDix/A3rSFfJbfOgYqOw5imoHOH3XmJZFXgvAjRNNOrLEFYcGueDlXfouRaaz5CX/3PwhFbXXUGbJ633edmrkgwaLFv3yEk/9BVcx1X/JxP7VhwMrRImx8eXgT6ELUHzcCB5hicej/05A/cWlYM4GUuyy4ZiAkHGScaXzlL0pVxEY2L9GEGZARVBdLaVjQxNrzMqysdpZ/E/ObSxmN3hR6gfychprKr9lWbsUt4Bgf4v8Vkn1IP0HpSFjE4mivWDEn5ezfBBNTQrcw/i+1QuOge/sohezFGCpEhVTUGzTVc5At6VuEZY9kAIRSUnA== 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=Y25IT5lecX6hScJkoBx/p8DjppIwug3qEDDixapGhNA=; b=VFl8agkepFuvJpjNVXomBYUgtap/is3pYhGcF2ktB+DYIN8Nym3jElSjCpfoUeqZU7/qgxmrRkRH8e3CnMDk84jN5efPapWXdZfr5NHdUcGaM9KDGzxOrgOfOVIPdoNFFmMEbKm+UOBkczLup1p1LyQDJd3K2GMfBL4P95aZ0aY6SmZKdvM8SqSmm9KXKuo40ugG3fSrDifi5N8qoOlx20kMs7Ly3bJu3wq4DeVi3lW6lOhRirUGtUNKYXXNOVTJ2QAfi9Ds6UojDWUJIEfrzmRWe9Ub7gqDhnMH1Bkx614+cBAmmZBwzAFUFuwKxFX0sRutA4N+UJMpSBGaMuyvsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y25IT5lecX6hScJkoBx/p8DjppIwug3qEDDixapGhNA=; b=Xkt6A+gnZhr8+2xvyYJrJZ40iGctgqLR1oHVTfklSGJOzLo3Rl71QzVlZUC7pRUw70x44DpUfI/sNiHVsXgo3Qp3PlHHE5aZd2g94RoGmRnxWySe1pPfeBQurqoNRabVTGF65+bsKFQrpOcdmc82KpinMVQmFZpI23lLa6xIEPE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from MWHPR0101MB2893.prod.exchangelabs.com (2603:10b6:301:33::25) by BL1PR01MB7553.prod.exchangelabs.com (2603:10b6:208:384::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.23; Sat, 30 Sep 2023 00:20:43 +0000 Received: from MWHPR0101MB2893.prod.exchangelabs.com ([fe80::ac16:89d:a480:ed6e]) by MWHPR0101MB2893.prod.exchangelabs.com ([fe80::ac16:89d:a480:ed6e%4]) with mapi id 15.20.6813.017; Sat, 30 Sep 2023 00:20:43 +0000 From: D Scott Phillips To: linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org, "Rafael J. Wysocki" , Bjorn Helgaas Cc: linux-kernel@vger.kernel.org, Len Brown , Darren Hart , patches@amperecomputing.com Subject: [PATCH v2 2/2] PCI: hotplug: Add extension driver for Ampere Altra hotplug LED control Date: Fri, 29 Sep 2023 17:20:36 -0700 Message-ID: <20230930002036.6491-2-scott@os.amperecomputing.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230930002036.6491-1-scott@os.amperecomputing.com> References: <20230930002036.6491-1-scott@os.amperecomputing.com> X-ClientProxiedBy: CH0P221CA0047.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::28) To MWHPR0101MB2893.prod.exchangelabs.com (2603:10b6:301:33::25) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR0101MB2893:EE_|BL1PR01MB7553:EE_ X-MS-Office365-Filtering-Correlation-Id: 24fb7b0d-e445-4e63-33e3-08dbc14b15d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IMOtCFTcih9u8EVGLJwL9OLkZoHlcXfSneB1cMRx1Zft0sXrf8vnReHn9JZl0R0ql3A1fExvd+aRUU/kdpxhEsyDI4ykJQOaiaU3DAAQ+pIThWXfs3OPrRWPO9E/yPasUE6LSWXkRcPWWpWCj0Qsntl+G4wVqHq2NEI/syirCH5JZkMmDr5iKv6Kgsba5LcIsRNOsdJMfgvFNgApzPLLS7VhAOBFwx5wCSAMyAHTuR5n6ATAMGtbYHQSRw8EVlw3cnnOA4AW0dHUjUlFlOR3+KJy1qKsHPMlmZjqWIeeok6/oaoKCYiAfgk8XUsQ/ZVdd7diOtVl7CKZnl6fdGwWrV0U0mOeAILYNZ+VTIPvG97+atsln4htNuSO96bIMa3JVSWaB8ptkYJRyh17OOjxbB9WMqlIqB8KgVjwwZEXNEwhb/Vi/VWaAmptn0wIuqLzOjWqfUCb/i/GGoP2K6zHz3soOscUFIl3NyUecvFP+POohv48SsEiSNgEZR+O2IjlwZxTjaBXHq5iist/bucxYTePK8QY5Af4HWt+xfvQK/iSI9q2AZGI1SNmz1U1muTg1TnIhs0xnMCq2l8s0DVqpqmyWhvEAuWdCYSWUKLFaZLX8joJHsqRfjm9yXngJlc3 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR0101MB2893.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(39850400004)(136003)(366004)(376002)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(2906002)(38100700002)(38350700002)(86362001)(110136005)(66946007)(6486002)(2616005)(66556008)(4326008)(41300700001)(478600001)(66476007)(54906003)(52116002)(8676002)(6666004)(5660300002)(316002)(83380400001)(6506007)(6512007)(8936002)(107886003)(1076003)(26005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BrGeh39pVwRown9vj0co9VoZTuBo0BCMBbrgzQ6eM+MvLWtnRzzwiOUCLDKldzSgHHYA1sDp7hOvlxgd+mx3ile1A/5wWBX+guDPMdgRXBXZn4p5CqOcZqoj7gb+8APRUksU0VhIIWSZ+l5nr1DL9WhhU1+CWdGiGG9L+CWq8UPeuDVSPsco4CVtNrmJfh8aTTsdLsPy2GaF1rdQIuIM8T4QzuhGZYXHSARO6d0M0zciEx/ziMO3t+bidAGMqhuIIYFZpqsfmXt95Okw4kqtWQWY2dZk/cAHWo878nmBjXNV9bH6x+UzSVt8nV2+J70oc4qFS+V/O5357hLUKtF73w8TePZqi3QvEaPGMoBZuBT/IjyirlkukrVz5rsVlT2ZvHPnRW+s1QYaaYOSFluxgG+dXTSdSSt9Nm3PmdKDllWe0nMmgsc40Dj2M+nDRq63QA1f5DZzRjffFSaYGUp0urqVB4Xyy2pUq1E5bXAlZyLn5BBHu6p3522UqJqcIZ/Uq9szR9cV0zUIR0y3KTVmp6rN75KWAq5vYCYoOMyiz5kR/AQNOIf2kdSKI1N+d1XGeQPcM+n6zmggYGCsqETCZPPWHmrlwzZmsVhj4BxAJjJrLV8ZgLnmundpsbl61LZ/YuWMOd8K15LBbLlwvrQl/aW/j2fFeiqCKppPfSLRVR0UHRx9iL1vo7xwctjY9VhX5xTBv9eyt9qI4CQuEer0SM4RajU7xWQDy80RXyHqk6ydzkyjk8Wn/CQvrGAFbwX+FdbUzUsntYwlnNGRP0Rzry3kNIKSyVD7gfY3HFy+X33VJP8MkpQUsiLTlObf06TnHQZ+ApVSoyWxd0KTVLjTugrC9AGCry6xGjt5p3B8M/2aAaddbl8bnEqAd772QgKRrDClQYG7GdYlF9d4h3slObeeKR8SkJ0sJ+dB/MlD/TbE6ea/H86IFalZNTZBmawM+q0gfFzNsikl3uqbwtp/vUaA5ntOUhwGK+vBsz9DFLIOtLpicfAEhKMSyHxjqyE3dDi98cTZhJYAV5TvAYsfO0FKtouBeRiTUmqemawicua9Ojcp5U26MCBWcDGjleDLqF22JQN8qrbCcrrrixhvtJqn3l6r25ABA0OaK0v/Yh9lf6G+UHLxYYZLlfnSdln/c6PcL681dMsy2FMoo7b3tdcgu6IQJG2Du/MBjhDigSxMaTT/jxQO3UpptiapUgA5O80P2DFkDEjaGo4BQdPmWdf/Ago5KXai1T83hmU84KjcWWg8GIpnlAxL+iNProXI1X+3VFkrVbeBfw4YFw2LoCeulvxr+U3Y8dUUprglqF0BaohsvBJt0nKgA29D3dWFLBDxFylVlE1+P74SR4p1RGSyIKmWm8Mzuz31oXFz7YlHpqPV+HvjOSzcJXv9lGONCOiOuBrQFSgPzuJLVcRwqeqpdE+jcokcIpzms5fzcfuuYwf+OKbRM29CjvyPj6OPac2+vbhdIC6zF+kwJXGOMH31TB+DJ/EANk/qI0cnce4ikqPsPCGx7jOrZvi7ZXcLDVoaRoy8upN8dYbf5k4ob99zRT1mf4qnzPGUrmRyTr1f9w5iXDbYvm63MCOvBJ24nZQU1F2cH+pw/hWdBm4Dw9ZPV80XiAB8nngsicxl3II= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24fb7b0d-e445-4e63-33e3-08dbc14b15d2 X-MS-Exchange-CrossTenant-AuthSource: MWHPR0101MB2893.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2023 00:20:43.8312 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Hw5bJ/fnDB+gsiVtoqsYSZXeM3oSb65nLA0q3p+bItqV4VHGyFtWUjSjECyOjcOUlu6E6leUSq4lU2ybChCJI4Ef7zK/P/JPANjOmilsXfIA41JIhFaM3OkwElo+iHNx X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR01MB7553 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_BLOCKED,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 On Ampere Altra, PCIe hotplug is handled through ACPI. A side interface is also present to request system firmware control of attention LEDs. Add an ACPI PCI Hotplug companion driver to support attention LED control. Signed-off-by: D Scott Phillips Acked-by: Rafael J. Wysocki --- Changes since v1: - remove build-as-module restriction - add some more description - don't open code PCI_SLOT() - convert to a platform driver drivers/pci/hotplug/Kconfig | 12 ++ drivers/pci/hotplug/Makefile | 1 + drivers/pci/hotplug/acpiphp_ampere_altra.c | 127 +++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 drivers/pci/hotplug/acpiphp_ampere_altra.c diff --git a/drivers/pci/hotplug/Kconfig b/drivers/pci/hotplug/Kconfig index 48113b210cf93..1472aef0fb812 100644 --- a/drivers/pci/hotplug/Kconfig +++ b/drivers/pci/hotplug/Kconfig @@ -61,6 +61,18 @@ config HOTPLUG_PCI_ACPI When in doubt, say N. +config HOTPLUG_PCI_ACPI_AMPERE_ALTRA + tristate "ACPI PCI Hotplug driver Ampere Altra extensions" + depends on HOTPLUG_PCI_ACPI + depends on HAVE_ARM_SMCCC_DISCOVERY + help + Say Y here if you have an Ampere Altra system. + + To compile this driver as a module, choose M here: the + module will be called acpiphp_ampere_altra. + + When in doubt, say N. + config HOTPLUG_PCI_ACPI_IBM tristate "ACPI PCI Hotplug driver IBM extensions" depends on HOTPLUG_PCI_ACPI diff --git a/drivers/pci/hotplug/Makefile b/drivers/pci/hotplug/Makefile index 5196983220df6..240c99517d5e9 100644 --- a/drivers/pci/hotplug/Makefile +++ b/drivers/pci/hotplug/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_HOTPLUG_PCI_S390) += s390_pci_hpc.o # acpiphp_ibm extends acpiphp, so should be linked afterwards. +obj-$(CONFIG_HOTPLUG_PCI_ACPI_AMPERE_ALTRA) += acpiphp_ampere_altra.o obj-$(CONFIG_HOTPLUG_PCI_ACPI_IBM) += acpiphp_ibm.o pci_hotplug-objs := pci_hotplug_core.o diff --git a/drivers/pci/hotplug/acpiphp_ampere_altra.c b/drivers/pci/hotplug/acpiphp_ampere_altra.c new file mode 100644 index 0000000000000..1b1fe5d6a3fbf --- /dev/null +++ b/drivers/pci/hotplug/acpiphp_ampere_altra.c @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * ACPI PCI Hot Plug Extension for Ampere Altra. Allows control of + * attention LEDs via requests to system firmware. + * + * Copyright (C) 2023 Ampere Computing LLC + */ + +#define pr_fmt(fmt) "acpiphp_ampere_altra: " fmt + +#include +#include +#include +#include +#include + +#include "acpiphp.h" + +#define HANDLE_OPEN 0xb0200000 +#define HANDLE_CLOSE 0xb0300000 +#define REQUEST 0xf0700000 +#define LED_CMD 0x00000004 +#define LED_ATTENTION 0x00000002 +#define LED_SET_ON 0x00000001 +#define LED_SET_OFF 0x00000002 +#define LED_SET_BLINK 0x00000003 + +static u32 led_service_id[4]; + +static int led_status(u8 status) +{ + switch (status) { + case 1: return LED_SET_ON; + case 2: return LED_SET_BLINK; + default: return LED_SET_OFF; + } +} + +static int set_attention_status(struct hotplug_slot *slot, u8 status) +{ + struct arm_smccc_res res; + struct pci_bus *bus; + struct pci_dev *root_port; + unsigned long flags; + u32 handle; + int ret = 0; + + bus = slot->pci_slot->bus; + root_port = pcie_find_root_port(bus->self); + if (!root_port) + return -ENODEV; + + local_irq_save(flags); + arm_smccc_smc(HANDLE_OPEN, led_service_id[0], led_service_id[1], + led_service_id[2], led_service_id[3], 0, 0, 0, &res); + if (res.a0) { + ret = -ENODEV; + goto out; + } + handle = res.a1 & 0xffff0000; + + arm_smccc_smc(REQUEST, LED_CMD, led_status(status), LED_ATTENTION, + pci_domain_nr(bus) | (PCI_SLOT(root_port->devfn) << 4), 0, 0, + handle, &res); + if (res.a0) + ret = -ENODEV; + + arm_smccc_smc(HANDLE_CLOSE, handle, 0, 0, 0, 0, 0, 0, &res); + + out: + local_irq_restore(flags); + return ret; +} + +static int get_attention_status(struct hotplug_slot *slot, u8 *status) +{ + return -EINVAL; +} + +static struct acpiphp_attention_info ampere_altra_attn = { + .set_attn = set_attention_status, + .get_attn = get_attention_status, + .owner = THIS_MODULE, +}; + +static int altra_led_probe(struct platform_device *pdev) +{ + struct fwnode_handle *fwnode = dev_fwnode(&pdev->dev); + int ret; + + ret = fwnode_property_read_u32_array(fwnode, "uuid", led_service_id, 4); + if (ret) { + dev_err(&pdev->dev, "can't find uuid\n"); + return ret; + } + + ret = acpiphp_register_attention(&ere_altra_attn); + if (ret) { + dev_err(&pdev->dev, "can't register driver\n"); + return ret; + } + return 0; +} + +static void altra_led_remove(struct platform_device *pdev) +{ + acpiphp_unregister_attention(&ere_altra_attn); +} + +static const struct acpi_device_id altra_led_ids[] = { + { "AMPC0008", 0 }, + { } +}; +MODULE_DEVICE_TABLE(acpi, altra_led_ids); + +static struct platform_driver altra_led_driver = { + .driver = { + .name = "ampere-altra-leds", + .acpi_match_table = altra_led_ids, + }, + .probe = altra_led_probe, + .remove_new = altra_led_remove, +}; +module_platform_driver(altra_led_driver); + +MODULE_AUTHOR("D Scott Phillips "); +MODULE_LICENSE("GPL");