From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752560AbdHIWvu (ORCPT ); Wed, 9 Aug 2017 18:51:50 -0400 Received: from mail-sn1nam01on0060.outbound.protection.outlook.com ([104.47.32.60]:33216 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752231AbdHIWvr (ORCPT ); Wed, 9 Aug 2017 18:51:47 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@cavium.com; From: David Daney To: Linus Walleij , Alexandre Courbot , Mark Rutland , Marc Zyngier , Thomas Gleixner , linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org, David Daney Subject: [PATCH v7 0/5] genirq/gpio: Add driver for ThunderX and OCTEON-TX SoCs Date: Wed, 9 Aug 2017 15:51:34 -0700 Message-Id: <1502319099-2782-1-git-send-email-david.daney@cavium.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: CO2PR07CA0057.namprd07.prod.outlook.com (10.174.192.25) To MWHPR07MB3503.namprd07.prod.outlook.com (10.164.192.30) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 732e2115-13cb-45b3-42fa-08d4df793599 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:MWHPR07MB3503; X-Microsoft-Exchange-Diagnostics: 1;MWHPR07MB3503;3:a0zSgB8hnBYkZ3YzTC75ynzh6fy1u0YbE2+mlYTZNvpvdkfHb8HfDMKGWWAOZZyv1u0euPdTAZ31vZLdirGpOsjvI31wdQaUwY5n2JDJJbMvlNTeotaqwn8eVPj4zS89VrSLquOu394aGlq6lEBpmgmawfABG1mMcRZ6zlAr89k2ZqVjrF6aOUDlr4zELWiIiUPn0PTdmlmATjwv15b2hmC5LQQCLKhlid+7cD4IMxzlzt2hOVXDrBloaCuJlLOn;25:7Ev1C+Z1D9JSBTJfWDgIszjD2k2GlawzMI5zJ7mgYHal4rqwlZQ+huGqn7bqWOUmiTsx9MyEQaswk+6emCm0S31awWAgi7h8blGqt2qVawyjUeAMzzaIC6FZJnmOh8Iq+8Nm8ep+3XOP+vvbCeBdKARQNwig6KxvF7dcxpcExvSPxvb2HbnovIEMyXIN0rc0EKY/YlCOhCVmBBT/2WgxYDLanqecMYeorfx2TC9S4UaQZby7VNM3aoaqommC25nx6ikgX+R3kaupY6WiZ+G0I8uXxUSoeLJuHOgW40VjGC8lak/Y4vBM8W3BNm/YwkO7+aBp8OsBPLRTDLFbWVhqOQ==;31:j1RqSqnSXsUL5Ofkp5rl31+CzGY7aULTWthukhhHidgOwyOjIae3qjL8eZGlXyUK3LUJpIAiy50si4K9xqmVYi9d36zBxmo8QZdl21X1yPTtTmViPvYa9Y33UuJnrpIsnk6VF/cQ5SS/f+wd/OLwjX/xNyehVGiB4zLXTVGrpDueHrrvmLkftQeioZ79V588MXQnMx8zoz/TmrkOpIebH52yOBryml2hRTVy6GVtoT8= X-MS-TrafficTypeDiagnostic: MWHPR07MB3503: X-Microsoft-Exchange-Diagnostics: 1;MWHPR07MB3503;20:ZX9Dhzwv+PD+NdNwhyxbtPBzwc7vIdQFFr4Y8HgLxXnDZr7Uc1qhARlZGao9UpbvwAmRJlj8MIwJg7K56K7WfUB4n0Q/wskSRhENQ21lA4vgg/QhhOE5KeG2EfjvHfLKwoGH25uFhfpHrq5DuZ1cl3klxVIRXfrlpjlQHsZ3y8wTRkok4fQq4dRalUiEzP19gHnfZ99hqF38+xzOnl90czQPDH3bdTukSsGX9JS/xa1H+7pfQBaXbiyTpgi0g2w0xEMfL2iPSE/4/U6nDyu8QzaCB2JEz+MS2185wmvg5zbk5ZT//hJudkL6CSd2sKFFWKsjTfXtkVt0NVUqJ/lT0diJcIgjKPyp1n4XgFhAbt6PjQFMMTRKNYWOvHUfIeisC1Fn5blArAhaGaGPUJuBRvbJTccPDj6A5ZkkZ/Bzk/k8wxagQOTKwB9uJ2urB5HleM4imCJZqjFU9XbrUO8XMpxHVlaO73Y9O5RBiNUrZGoFPnoCQdmoquKnn1pTEF/z;4:thXtig9drK6g5KI5TVo/Tc9gIoTmzFaL1lrZ90RR8MX/XfMizgtTwfGV/67/SmWKbe+HpZW9OmLKI+CDcvJAqKE5bj8W4mMZVH3hus1cSjyowl4qlU7b1e4owUxZ+wfxw9uRkV7ia+3pVUj9Y8PE15DK/ixmmrRzAjuau2DnWodQGAQedWc8d/v+PnkMUy9antY/8k0OzGNKEifYLMl96PMfgbkZrdtxLcntcBfbZckbn1bn6loiUsHqP/d7oslH X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR07MB3503;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR07MB3503; X-Forefront-PRVS: 0394259C80 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(6029001)(39400400002)(39410400002)(39850400002)(39840400002)(39450400003)(189002)(199003)(4720700003)(69596002)(4326008)(478600001)(6512007)(53936002)(107886003)(38730400002)(66066001)(72206003)(47776003)(81166006)(86362001)(5660300001)(105586002)(53416004)(33646002)(68736007)(50226002)(42186005)(25786009)(2906002)(81156014)(106356001)(50466002)(305945005)(189998001)(48376002)(5003940100001)(7736002)(97736004)(6116002)(36756003)(3846002)(50986999)(6666003)(101416001)(8676002)(7350300001)(6486002)(6506006);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR07MB3503;H:ubuntu.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR07MB3503;23:1ONTGOPCH/zIcHYR5KCjYFGLcKctAVJWcBdJJBhkM?= =?us-ascii?Q?jfF5vKv6zAyPIyvw8XXInWOo3LexAhNDgLj0PMWT5ZhL6fM7bMLk9j4nr3Xi?= =?us-ascii?Q?nTlIKhotCdsTLLslIlUD6oh0fuF4gnUwMT4O1N8uQnwwJVcWiVWErBFp/PjK?= =?us-ascii?Q?5q5bdTIp1pdcRR0JiBRvm4gWpF9Yf1LlyN/0uReJYDBgrDI8sWKgYjObKVNF?= =?us-ascii?Q?2UeENjw2mbtmjcPd6/eS1PQLrtD13V8xZ8Su3m4r1x2/fUInscvBcJ22Vjh0?= =?us-ascii?Q?Z626ytUReTLqNXCMDp8X28n8Sso7zBJKKEBYkJZ0F9J3e3TIMGz/o3TTgoL9?= =?us-ascii?Q?KCWLtysYKhKJFPvkpX4NEd7+zomZwmh+2xk/lzqBBUNWVbFcFkEy50DczV/i?= =?us-ascii?Q?+tiuJ8/8cUWNhCPs4Re/BOHaV/ByxaIPLysHDjD6pqmQOIRp5FwYnQmvD6bE?= =?us-ascii?Q?34AMAGtbZguq0ZQtaZbE4I/U2W/f3I3/KU/DJxEdooSHGsQ3wsqX1A/lvRyE?= =?us-ascii?Q?+eiDRvz4HAxvwloITBboBWXuLAVqFhAiems3SCxkbc3X2nGvksR/BMgQwcFQ?= =?us-ascii?Q?OaY4BPws2HWc+1aKDZgB8yakpcWk/L6MpL09e2Pg8AzYe9TBhKEjzYjg0tC8?= =?us-ascii?Q?c0VSI3kerjTJhMPY52a8Pc0Sk3XnS0yd6ZYmb4Y1cGZB69dGvCXOiFmheY5E?= =?us-ascii?Q?S+bUNLOPc9qh6UJbdIe2WklUQc5aG0BRnH/P8SlLLFetFN00pa9nBNdf5o+5?= =?us-ascii?Q?JoX636tELgxEhOy5TFrqR/7flMrHvlBnjJVON3gNP31VSA+tiffBJEwqKA8f?= =?us-ascii?Q?CySSgImPjbUjJtj+de2wSktXvsQfqpQgSzcGyLpE2zDOTB3KQx55iwOVt3jU?= =?us-ascii?Q?K++cU5MQwjsMsUDQcMxv6oETOtyFHSv7bUElZ4VCpBH0cIg/nbfocvGYX6OA?= =?us-ascii?Q?NJ07A8XZTDaWIgq2QTWblkJTng7krlBJmG+Qq5iuTSViFkwU0wfIVTWt0ySH?= =?us-ascii?Q?Wqrc2+YnQWiiGatfn33jwDbaCfq59M9Mo0j0Zgr0PtFayjKaNe+hxM8PV5mp?= =?us-ascii?Q?Y9leQorhI5kBTYH9gmw7lRx8Zj4B++kKDlbMXuhww+B72RxzgeSU8ShdjEr8?= =?us-ascii?Q?ifCia+/AzSz+zXdvEu6NKRrqLd1g7KMV3HFistVcRcsitqoloWMZjuPqirxo?= =?us-ascii?Q?N6ADFag9bTiqlJP0kjteC6xU4oovhuFSl55oD4k5OhX7XbJIiE8zUe6U/jq1?= =?us-ascii?Q?M49etbrNtDtLgSZxQLpSlK3S/yiyqYi29RzQop5BxUmujDPcLb8NNNquJkS4?= =?us-ascii?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR07MB3503;6:Ky4DOUSqEZit2HvVvmcngMTnoS+2tobHF4c+9Cm9FtxspBAItQt4RaKoyin4d7W88kDHr3ZQg9y0CoNkJJtj29heLH/IPLS7J7WIi/WzKcpyr/NP1iI4fOGthEZMIokXh0oS+Y7gVyCwJR8i6iutXbqmx4LEOY0+VrvVAqrLwdONTuR3WRh7RmbZ4EgSLrAny+b5vPtVy9WtzfFdwoZSwxt2uWm3Q6v+MTJ+PYLgxXjaFLO+BlVPNrzRHU+0RidJIWLXLVAO+v7J5cnHMaDD7PC25YbcltvxqSDZhuRqS75EZoevW62tvA4KCFuiGiVoSsX1GwP58JfdH9a2HERbwg==;5:pivEZfSxg9eu6lxiyCT7r+MqEYocEioYvycGcNkfHJ4BX/ZooDnhGJArkK8nOhekG1kqlpPohfJG+ychD7YDUf+lYZcShh/QF37nbBIKgqUCywz5KhOBABocytfVX235K9kFMhUTdKOheBJJV5Fi1A==;24:dwMq7ojgLIe0NHABNwLfAM0BIeMhgVrQWA6MHMxpdu99Cb1X1Z9tsRqtYVR3HH4MIces8wSXWgK/R3wR+QU3863AwKIzq22AhyaCU6JSw3E=;7:xKQUcJcYTPlQOCBx74lTwBUekN2v3hZ63/ArwjLKrLwFBehy+EY/f4ecRfrLXCWqZiyFxKsIrPVln9Hlehaa4OiyPlS5Y/paWAXRtbFzO7tzcUV7AdMEXBgh7Cl79aRVQJlyzj02Klofvcsp1sTKlKUYpijqMd+2hQu1Jt58DtthxE6VTxKzngy0J64KubHZFYIS6Zcym5E7o37IrJAgy4K5zBosEZDb6zxYply2GME= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2017 22:51:44.6855 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3503 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The ThunderX/OCTEON-TX GPIO hardware looks like a PCIe device, with the interrupt signal from each GPIO line being routed to a dedicated MSI-X. This interrupt routing requires that we add some custom processing to the beginning of the MSI-X irqdomain hierarchy. Changes from v6: - Trivial rebase to v4.13.0-rc4: Omit device tree bindings patch, which was already merged, and fix MAINTAINERS patch collision. Changes from v5: - Added .irq_{request,release}_resources() functions to irq_chip. - Quit calling irq_set_irq_type() in the irq_map() function. - Added more error condition checking to irq_domain_{push,pop}_irq() Changes from v4: - Rebased to post-v4.10 to support .set_config() function. - Added .get_direction() support. - Added PIN_CONFIG_INPUT_DEBOUNCE support. - Removed some improper use of ENOSYS. Changes from v3: - Add some "depends on" to the driver Kconfig to avoid build errors in some architectures when doing COMPILE_TEST builds. Changes from v2: - in 4/6: Added Rob Harring's Acked-by - Added three patches to genirq/irqdomain to support interrupt code in the driver. - Rewrite irq code in driver to use irqdomain hierarchy. - Other naming and style changes as recommended by Linus Walleij. Changes from v1: - in 1/3: Addressed Rob Harring's comments. - in 2/3: Trivial cleanups found in internal review + add some comments. David Daney (5): genirq: Export more irq_chip_*_parent() functions. genirq: Add handle_fasteoi_{level,edge}_irq flow handlers. irqdomain: Add irq_domain_{push,pop}_irq() functions. gpio: Add gpio driver support for ThunderX and OCTEON-TX MAINTAINERS: Add entry for THUNDERX GPIO Driver. MAINTAINERS | 5 + drivers/gpio/Kconfig | 8 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-thunderx.c | 639 +++++++++++++++++++++++++++++++++++++++++++ include/linux/irq.h | 2 + include/linux/irqdomain.h | 3 + kernel/irq/chip.c | 105 +++++++ kernel/irq/irqdomain.c | 178 ++++++++++++ 8 files changed, 941 insertions(+) create mode 100644 drivers/gpio/gpio-thunderx.c -- 1.8.3.1