From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AB265C3ABBC for ; Fri, 9 May 2025 04:55:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QB5SI/pQkLAzQB7bn5/uxcb06qJhknkRL6GHx+86AbY=; b=nbb+Z+dr1aRHd+DQSHUYhwG47x NzT+1kSCOTKtxt4fn3azjubdGO4SwaO0JVEnjlYN0/Wfv1oD5ALuiJ6jSz9aEGt7kl5EmZ2EjKM+J f9izmtUu64b6e7eJ22UVVd0Sj2irTvpoUKTcc45Zy+4Aazhrzkf2GxMuwpEt7Wa5K/xpWTTdt/+Pf rn7BbwKl3hMi4dKR4eu0k2WxkEs6A6mOP+zuIJj56ejoUDKxVEQJjVcPSNNjtn2ZaiNVW/yOop1K8 MANyznR9453ILGHxF8H8nru/3ihxC5LLfwFEm+Zftk9V3m3Ong6xq1KtQtiABhbpjTNaP1YwwFtLv aCrEWNww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDFlf-00000002TOC-45ZZ; Fri, 09 May 2025 04:55:27 +0000 Received: from mail-am0eur02on2061b.outbound.protection.outlook.com ([2a01:111:f403:2606::61b] helo=EUR02-AM0-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDFdn-00000002SJ4-36hf for linux-arm-kernel@lists.infradead.org; Fri, 09 May 2025 04:47:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uduUeNKHmsaewsLx75DizQUBSR7oMV9aJNxbIFY842FEnISxFd8d4aWazfhAxalejIRFBwCRKUUBNzJFxLpndeM8cHVDcQINUBxTxDztytHUiI5/sZkFjRddP8KP16re++b9bIwfLsCAFqjtEN4TVoDb9LsJtfjDHQ5gouJRvjoAXwvKJgGjZOwLbJ9UQlZrFr4lbUJ2LxR6PwbH0FO+1DqHXnvlTbQ2CQmpjKYA7zHYfzHL6wfIihJguOJJ7xEgckmDWsR3v/KAycwZoFW//rtzgLunb1yR25T9hhYznJaikk75L2rwAnJewH/asNJ/tksK2jvB0tgweEms2nCH8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=QB5SI/pQkLAzQB7bn5/uxcb06qJhknkRL6GHx+86AbY=; b=voKa/mO8UMfuECBB83jSsceLkxTj66Id56atHTUPA1Vu5VeCsou8sxFpIbdhtCMOf9caA7il/m6KASkCXWbCSbx8YyaflVsZrjlcoaIIWrw+J3M9J/DwRb9RAhEG0nJ6DWr77oj9dr8E+K9TvjavcGn5hnsPgv+pde8HdK3Zfi+3ZJXvGtgosxzrYIt7N1ZpyPFEVffPHLXppF4yTqrX5unS/1dOBIRmpxutzWx478WxST183DE43Hwl+ra0zdSBzizxN+89Caw1vS+qfpbQPKmvp36ujjYHMwcD9D4mqPuz7okKlLRlmkR2tKs9qRPwCIcWcCptC4x+PtVOZd7FrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QB5SI/pQkLAzQB7bn5/uxcb06qJhknkRL6GHx+86AbY=; b=IWwIhGQovonO0miXtWNfmpIoFWlHhehZXljTuQdmLHEXbcQzbistJM2qKx+fRLQkTGt/hDyBMKwHxw7yDq24rD77oJFAxaOLfbuvJRr1FLy/P9rGeMyu8ok1YP2RiIN8Fkb21aeUUK0v7V3HK0G5FW55PHIjfhs9RbJCHLchJildc9GN8z5Im4fE7rd3jT899FgjzFUpQKgQ4J8kVHKGCXUnVEOfVkgOpn6JIsnEN7cg2+3xBqEEK2nOiXWsoXdgX8C8hkTUuD1jx0oycWoffs2DrAX7S5RnbNRutfjxFGlg6WPeR2o7fAdL+YGYNZ3tt2xvQz1c8Su2vb+SLfnJRw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by PAXPR04MB8736.eurprd04.prod.outlook.com (2603:10a6:102:20c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.23; Fri, 9 May 2025 04:47:15 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%5]) with mapi id 15.20.8722.020; Fri, 9 May 2025 04:47:15 +0000 From: "Peng Fan (OSS)" Date: Fri, 09 May 2025 12:45:34 +0800 Subject: [PATCH RFC 3/9] gpio: lpc18xx: Make irq_chip immutable Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250509-gpio-v1-3-639377c98288@nxp.com> References: <20250509-gpio-v1-0-639377c98288@nxp.com> In-Reply-To: <20250509-gpio-v1-0-639377c98288@nxp.com> To: Ray Jui , Broadcom internal kernel review list , Linus Walleij , Bartosz Golaszewski , Florian Fainelli , Scott Branden , Vladimir Zapolskiy , Keerthy , Robert Jarzmik Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1746765944; l=2380; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=Qz241mmKXCwKGOl5Ksj3hwc0ajIp1wg0T0UUbiHF2G8=; b=/sGu+t2jBMw40Hk0hIoEvAC3uraOpUSl/uAuVH6rdqEp1F6QchTJOv9cAskhW2mj3mwaJdKqG i40llae4LFfBbtXlP6GIZe5GkeoA2UqHPnK0Pl7dzySwr6Asjz4ORUB X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0011.apcprd02.prod.outlook.com (2603:1096:4:1f7::19) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|PAXPR04MB8736:EE_ X-MS-Office365-Filtering-Correlation-Id: 4cc04183-980b-4428-375d-08dd8eb4922d X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|376014|7416014|1800799024|366016|38350700014|41080700001; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eDY4RXRaYVlJc3F6bmJrTTdsdXpHaWlVY1AvZHp6SnB0S2l1ZmlOVlMyRm1T?= =?utf-8?B?RVRvZWxROU80amRWSGJFUStRVjljbjdJUmIwMTJxV0xDazRKSjNQaG1xdWpS?= =?utf-8?B?TTVPUjZOcWlIeGpGSWhLZ1VldklwRzVZVGVUR1hWS0xiOGJQN01WRjR1WHp1?= =?utf-8?B?SldaVVFRRW9mdDh5dkRDcjRnN2JGRGVjcWxlakZYeDNVZUZpSGRsaEwrZndI?= =?utf-8?B?RlU5dUtIenprL3lYUVM2N01CTGlzQmtmbmhGbFdBeEFHTGRzZUVxSlhEUkhT?= =?utf-8?B?M3daN0VjRSs2SjZLQ3FnKzM1MU5LaDMvdUZmMGt4a2gyMlNxaVk3bEtJb3gz?= =?utf-8?B?QnBlb04zQ0YreFowQ1k2ZG1VYXBFemU0c1hQNDgvUEUvK0svMEJBZTFONEFW?= =?utf-8?B?ZmNxc2RYL2JyRXFWMzZ3TmJXbUdPWkpIN0NlTjBWSGdyUlhqVDl4VkljeVgy?= =?utf-8?B?NkFUeitCYVdZZEd2aXBUZkFJZUEzNEx3Q2ZXbVNxbXhzTDg5Nkl0czFqU0hG?= =?utf-8?B?RDl3SVlSTnh4a0x6dHMyVUFXaVhLZ1hreFZ0S3BOeHphd2VrRnh2eHd6cVdX?= =?utf-8?B?b3FqVEl0Yldyd09MT29ONDByVkhyczkwdzdZalBxU28xUXhaeHRoZDVmcHAy?= =?utf-8?B?M05mSjdqcWdPTW8yRTQrMjhOemdYR3J1WUtHUFpqM1JKUEpCM3pqRWpsL2Fw?= =?utf-8?B?clN2TWMwN1J4RGFSRXhHd2VrYWRvWGliRFJsN3JVRCtrUVdpRzlHTUVmZlFx?= =?utf-8?B?S09OWTZIT3Q2dFdySHlFQlRoNklWQkUvbHJnV05TZ3lZd2Z2aldWTmUwMFJK?= =?utf-8?B?dlkvUnR4VFZWUGN3b2ttdFZ5dE5QQzJDYmNqLytKN0x0WUM5akRoei8vRjUx?= =?utf-8?B?a2VWa2N6czJKL1F5Nm1hSWhjRGhtczNvUVV5a1I5bUNpT2dONFNiQ25GRmhn?= =?utf-8?B?UHdOeEZOT3ZHZFl1NzlITEtGbGEwSWxybFRoZS9yRm5lZVhETWo3dkIyRTIw?= =?utf-8?B?NS96aFNKVWVNNnFpR3djQXJIeFJHTUdSVDNnVDh0ZWE0aFNzbFJNNnF5SWd0?= =?utf-8?B?MGRwMjh1S2hXbGFqZEo2OXhFQ0RlZXRWQzNSYThVSDdHY2lyek1HMVRTNk1D?= =?utf-8?B?RGpQNWFEY1pnbUFyVWNwMjJqdkxvYlcwSnA1WFBsbFpIZ0xrUUhmbGRGQ1cz?= =?utf-8?B?c1Y4TWdWL3ZiOGp2WW9PVnpUU3k4Z3Y1YjUxdTRDUllWRkNXTmJkenpYSDVG?= =?utf-8?B?YlBPQXBIbHlDWlBuMkZiR0FrbktubUU0K2M0UGl5RncyZmdVc1FFZHRibUYz?= =?utf-8?B?d3IrdC8xakZGQytQTU9BeFBHZkpZenAxcGE1OC83MkhyQStQMStEZDVUdTht?= =?utf-8?B?SFc0Z0RyRTdWdGxsTXpQazhmS0RtNkhrUDdIOVpPSTN6VTU2dSt3ZHk4STBp?= =?utf-8?B?Qkc3eUZmRS9WVTBOa3dOQmRLTnhFRHNpbFFTR1pEWXhvc1d1TE1kVGMvbW1z?= =?utf-8?B?R2hmc2thSis0ekNHYldKb1IrODQ2YXVvcGZVRVpyR0xFODhzV3JrRzBjVUhq?= =?utf-8?B?KzBCTEpDYTVPSWVJcGFsZGRBaWtvUHhldGJvYm4wcHQxSnhKeEJBaStkcDl4?= =?utf-8?B?OWY3QnQ3MVBzMmNDeXg2OWF2Z0NWT2Rvd3dld3llbW1WRUJuNk8zcGQ4UC9u?= =?utf-8?B?TmcyQTYwcTlWTUViclFmSVMxSGY2Yk5NM3VscUVpak9iNFJDR0pTWTYxQlhO?= =?utf-8?B?bDBaUlc5SDNkM3VDeE42ZnFScUtibm9Uc3UrRUs5andHMmZnSzlmQXdhVzJY?= =?utf-8?B?eDFST2RZOHk0T0RFcW8wRXlKVVhGZkFPaUdiRENwWXdKeDYyMzBxUjV6Sith?= =?utf-8?B?VnNqSmhMTWJHZ0VtVXBrUkJIZVorYk54WCt4dUhIVzlQeStZUjFFd0lSTEQz?= =?utf-8?B?L1Z0R1poMzRLcVJIVGJOUk1ndHhDZFhyWmJzVm54K1N1b0tNcGw2ZkVqd2FM?= =?utf-8?B?MlFWMGhaemg2cjhCUHozYldhdlkyd1NyY1hraGYvSVRPWXY2TTlPUUpiZHJC?= =?utf-8?Q?WWV8Og?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(7416014)(1800799024)(366016)(38350700014)(41080700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Qi9PVTJLZWhsYkFPOWxScit5dElpQkQycmgvYnVCWFZBb28xN3ZHWVQ5Mkg2?= =?utf-8?B?ekVTZEpGQU5wUGc3dmpvbUNHWG1zWGdsUDJCZTU0TUpHZUVESHdVWEZZVVJw?= =?utf-8?B?Tnc5bTJxcGJtWmx0MUtwMnIwbUtjenkzVWxXdEV6amowb0M2ZVBXZ3JmRmc0?= =?utf-8?B?cVRZTlVqOFVQWWdPcVJyYTdqanV3YytscWZHRVcwT2ZVQm1tbzRpL3B5Sk5Y?= =?utf-8?B?ajRoTUNRUTlBUWJMajBiZG1SSCtJL3lxVDlVT2kxbk8vWHJmZng5SVhzSG9p?= =?utf-8?B?Z2JIbitBNmI0Tk0yNEJ1cmRQSDBsU2d3WDFYMWVRWHE4M2FyN0UvTkV5b0wr?= =?utf-8?B?WTVVdUpXd0FMYXZpcXd5ZS96WmdMR1RHWExnbE1FVXU0bFhGa3l0VkRGSjJT?= =?utf-8?B?N3NMUjdhQkZ5MFdwYndreFRlcXpCZnRJbENUNEljZElZM1I2UkltRlhpRllx?= =?utf-8?B?N3psMTBnQjJMcGVwSVBxKzlPMXUrWUpLYTlvTGdZb2ZVcTVxemlxNHgrNVIw?= =?utf-8?B?b0k0OXIvcm0zT3ZzYlpGSjJ1Z3ZVMUlGVisrSXpqcUNZRlJOMlFsUjV5bmtJ?= =?utf-8?B?aDkyWFZucmJMY2oxMXo0aXdqeWxmQUdMcHFKdVRpRmxVSE1ZYlhUOFlRMmMw?= =?utf-8?B?UDJhQ2dBdGVOUHR0d2gvZkdHM2JaSXp1VmJPN3pVUnRDc2Q3cUJKZTFRL1o0?= =?utf-8?B?N1NCbGpUaDcza1NScHdTR3RPL3FJV0VaeVVPMnhyMjYydHJOWXl5eU5Pdk00?= =?utf-8?B?WjdWWFdRRVJpd1Jra1dlc1NWc2Yvd0VYK21VanZCREF4ZlNpZXg3bzFnT2I2?= =?utf-8?B?UUpQN1NvaHJ0aG12RnVXeWxSUldhRUhpSXRSUzhLQ0pvL2J6MHZaSGZpSHl0?= =?utf-8?B?RTlLRlF5dmlCbkdWOG9DYnhJUzJ5N3orY3YyRjRhalErUHVjV0svQUNRYVFS?= =?utf-8?B?UVRwMElNOEJsQnNpK0NVNzMzMzlmNmNvME9iUmZpYld2K01PeHprUnU5a1NY?= =?utf-8?B?Skl0aEhDK0VIZS9YRXRTTElCYzZYT2Q1blNoTjVxbFF3QnNNeFhJd0FGSkVt?= =?utf-8?B?aEVMV2Y0RzQza2lWU0Ira0kzU1M0MnZEb1I1dHUyM3AxeTh6a1J4SSswU1ZR?= =?utf-8?B?b3RSZnJuV0FjSlUrOUE2VDJtanBVZGFSSkt2dUdSejJMbCtUdXcwWk5FMjVz?= =?utf-8?B?a0kvMDZOK1FiSHoyeFo5bnNvTmpQMzVNWHdXUGZtTnZ1b1Y3V3JXLzBDQkRY?= =?utf-8?B?TDJlbGlCaVByN1FFallqbnRNTUVVcWNQT0RDZGFrcGhybW5ha1ZKM050ZFA3?= =?utf-8?B?YWgzenlmMWpQeW9sbUovQnVaeDE3RU1yblNGMTQzeEpSOUM1RUorbEVtUVNZ?= =?utf-8?B?eGFaZEJuR3YrVWVqZ1JHVHdJSUFyeTk2aFduc3hPV3JTNC80cVB4WWE5NVp4?= =?utf-8?B?TnNrVlNkT1ptdDJHcS8xMkUvaWtLSysyUURDQ0RJZkpKN3ovRkIyd1V5RFdM?= =?utf-8?B?L2oydHMrbFFsa3BJbE02cVdPTzMzZGtrSFFOVjFaUzh2ZHZWejRyaFJFVnVy?= =?utf-8?B?WVhoMXp4TTJTQzZTaEYwc2MyMGRhT3UvR0IwNTVmbmtmYTZmRDVpbDUwTCtC?= =?utf-8?B?R01objY5cFZWbnBhaEFYY1AzMXJrLzN0ZXpCZ1gzRW9kcWdEazAxVjlZUXdD?= =?utf-8?B?enRLZUUzSXNGZHl2Nk1IeUpFVDJWVk5JZEVkdk1VV00xTlZwaTVNZ1hrN3lH?= =?utf-8?B?WjIzSmY2ZFpyaVYrcmpRaE5kVTJHOEQ0VlBNRGJOdmU0Q0ZaWmJ2WjdJZjVS?= =?utf-8?B?dnpkd2JrNy9mR1lDa1RTTWYyOTlIcUV4bTZseU9TcTBsMUI1NkhiblFCMUR2?= =?utf-8?B?dElhaVpZVDRib0tIQjNRZUdYOC9oakpDYWI5cDBQd0RoNGhXSVp0VmloY3Fu?= =?utf-8?B?SFlZSXlnNCs4THhnamQ5NHh4ZFJOaEo3cWNFRXdPMy82VWFJTXZ1d2UwTWtP?= =?utf-8?B?MDRXWUpDMGZPSUdXeUtWaFM3UGN6T2RZaFpOSm1EamR6OGk0SG4rMGZUR1Nz?= =?utf-8?B?OEtldm8xUDJvRVFiOWRnd0ZvU0RlTXdRMTFHYzNvdzZpOFYyQ2F4M09vOGtC?= =?utf-8?Q?f6148VFLVzBU5zUiOJoVrAmOx?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cc04183-980b-4428-375d-08dd8eb4922d X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2025 04:47:15.5456 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TtjAAz6fuHfZxpt+uW8k1naOpJqbY+uv4E6HifmU1JvEvJ8Uk6i70P4IvkkMGptyp99Qdw0tZgylA/JNhTt7lA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8736 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250508_214719_805134_054DD9CB X-CRM114-Status: GOOD ( 14.90 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Peng Fan Kernel warns about mutable irq_chips: "not an immutable chip, please consider fixing!" Constify lpc18xx_gpio_pin_ic, flag the irq_chip as IRQCHIP_IMMUTABLE, add the new helper functions, and call the appropriate gpiolib functions. Signed-off-by: Peng Fan --- drivers/gpio/gpio-lpc18xx.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-lpc18xx.c b/drivers/gpio/gpio-lpc18xx.c index ae6182cce7234166fe94ab0c8d5e07c11bb71101..a2e316d9350b736e8bb89c17845d70cc74481d1b 100644 --- a/drivers/gpio/gpio-lpc18xx.c +++ b/drivers/gpio/gpio-lpc18xx.c @@ -42,6 +42,7 @@ struct lpc18xx_gpio_pin_ic { void __iomem *base; struct irq_domain *domain; struct raw_spinlock lock; + struct gpio_chip *gpio; }; struct lpc18xx_gpio_chip { @@ -74,6 +75,7 @@ static void lpc18xx_gpio_pin_ic_mask(struct irq_data *d) { struct lpc18xx_gpio_pin_ic *ic = d->chip_data; u32 type = irqd_get_trigger_type(d); + irq_hw_number_t hwirq = irqd_to_hwirq(d); raw_spin_lock(&ic->lock); @@ -88,12 +90,17 @@ static void lpc18xx_gpio_pin_ic_mask(struct irq_data *d) raw_spin_unlock(&ic->lock); irq_chip_mask_parent(d); + + gpiochip_disable_irq(ic->gpio, hwirq); } static void lpc18xx_gpio_pin_ic_unmask(struct irq_data *d) { struct lpc18xx_gpio_pin_ic *ic = d->chip_data; u32 type = irqd_get_trigger_type(d); + irq_hw_number_t hwirq = irqd_to_hwirq(d); + + gpiochip_enable_irq(ic->gpio, hwirq); raw_spin_lock(&ic->lock); @@ -149,13 +156,14 @@ static int lpc18xx_gpio_pin_ic_set_type(struct irq_data *d, unsigned int type) return 0; } -static struct irq_chip lpc18xx_gpio_pin_ic = { +static const struct irq_chip lpc18xx_gpio_pin_ic = { .name = "LPC18xx GPIO pin", .irq_mask = lpc18xx_gpio_pin_ic_mask, .irq_unmask = lpc18xx_gpio_pin_ic_unmask, .irq_eoi = lpc18xx_gpio_pin_ic_eoi, .irq_set_type = lpc18xx_gpio_pin_ic_set_type, - .flags = IRQCHIP_SET_TYPE_MASKED, + .flags = IRQCHIP_IMMUTABLE | IRQCHIP_SET_TYPE_MASKED, + GPIOCHIP_IRQ_RESOURCE_HELPERS, }; static int lpc18xx_gpio_pin_ic_domain_alloc(struct irq_domain *domain, @@ -249,6 +257,7 @@ static int lpc18xx_gpio_pin_ic_probe(struct lpc18xx_gpio_chip *gc) goto free_iomap; } + ic->gpio = &gc->gpio; gc->pin_ic = ic; return 0; -- 2.37.1