Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751878AbdILPoW (ORCPT ); Tue, 12 Sep 2017 11:44:22 -0400 Received: from mail-by2nam03on0068.outbound.protection.outlook.com ([104.47.42.68]:14560 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751652AbdILPoQ (ORCPT ); Tue, 12 Sep 2017 11:44:16 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@cavium.com; Subject: Re: [PATCH v4 6/6] gpio: uniphier: add UniPhier GPIO controller driver To: Linus Walleij , Masahiro Yamada , David Daney Cc: Marc Zyngier , Thomas Gleixner , "linux-gpio@vger.kernel.org" , Rob Herring , Jassi Brar , "devicetree@vger.kernel.org" , Jason Cooper , Masami Hiramatsu , "linux-kernel@vger.kernel.org" , Mark Rutland , "linux-arm-kernel@lists.infradead.org" References: <1504784522-26841-1-git-send-email-yamada.masahiro@socionext.com> <1504784522-26841-7-git-send-email-yamada.masahiro@socionext.com> From: David Daney Message-ID: <7e46f2a3-114f-0c34-d3c5-49e6422b9200@caviumnetworks.com> Date: Tue, 12 Sep 2017 08:44:09 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: CO2PR07CA0063.namprd07.prod.outlook.com (10.174.192.31) To DM5PR07MB3500.namprd07.prod.outlook.com (10.164.153.31) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fb0c4a69-3f34-4575-d016-08d4f9f51ef6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:DM5PR07MB3500; X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3500;3:1oDUkso9rdNJ+J5fKeZXKUoD/cp9EeQAtCrkAyWDMDbiD01icBql3CtdJ0/oTjPSmm64o0uDJhpyw9x3N+TuWxhELIgBB0ZWKlZAj6BJJAWC8/yziPCEVyxUxdkrWnp44toxc5GnlIwIT6iEK3TpL+n5rVNDdUIbHftQsXlesQQxBxqQEXpdy75baxmLp4USTk56zwqZmXmW+scvGUpszK5CJUKZDHpA+6fjkwHHkOHflGzYmOkAdoTHbqvs1zBg;25:JRE9+rEm6OpW5tgARH/CsBoL7t/nldo3TiREgopOxTWqEy6z9M6BrtbZJ2JEgdQM00shQz968lfIulRXqOQzbMLA3hkgwZBk9qA1nyfEIqzPacwyAuq7CyVCJOeMMBGlficzD+gjFTl6ZdCMzPFs0Ye8OBzyedSJCF5hFVDgG2GV2tKUtJFWzjn3SLVP+C7gCN/GdHIFWd3uBHZuRAdCkFw5BIusVPzG/BKCM8p3h2on+JZeh30uBFMQ1DNbc3vggk2lo/W0vr6tMVdYey4lRH5lnSL1HDRo4fZWILAsOaqbO80ol6Z3PIrc5a+6sXOs4eywaMT4GRJm8YCEvEy0qw==;31:BOHuDRrbO1UqZy0M5acF/v+6Ok9nEJHXClea7zepuIORUXungL9AsAlx5OGtubZf1zei83gIypxB9v990AW7FWQmxO3+4DQCUTkNTMpuWaqgx54+HVtb04dwTucCjd1f0dHRrkPatqmbb2zvFrfMn5VLX8TudWYl5ZjH1SK5QkI7646jsm2mGiiQNXn30hhfQMg6C2aFHAxeipf6ks3LQ312XifWnzHI5txIc7yHH/g= X-MS-TrafficTypeDiagnostic: DM5PR07MB3500: X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3500;20:2jUoBzOCHAxyDc232KPcEtSnSbw0W6ONPMgdt5rPczJApz4E1s+/RvM4knI1LDPx1T1GjcG2P7m2XbDq7uvdFM9HxAX+az/1+SpA1PGZpDX2bRMr3PuPaQaj7czCy64ePyEWSXNniI5AuLs7L7c3+UFDxq1w78SYjNEGJXMFcjpPabFoIwFfWqLFPtcWwI6YiuKSfXzXnodYBqRQnl9/7Qyl4VG4r9+vNxEwztLwr8TEGcJ7Cv1hW9guf7wLZyTZdIDGo6mI2pZfdtwsTn5p4P/8vBhaWBAjgU8ERfTP6lWB6Vnku545gxEpSD9c1c5AGjmj7sdwkFjs0cUOQtAz8FKIxLXe8n05Q0BtLCVe5oc6ZS0ifhSohJ1aQ0WraQFAtyDB8lP1qJB8+q8oYllhrIMPDN8fq1Fozk+koclJExi24cZh24cJCRCT+1rVj5kWLpYj9AD8QhjAEqkt1+E9nBBeDtXei7iweKGwWeowUmzqEvoLqaQLDQ04TcoSMXNMtYzWjw16X4f0JctD5Ve0nhTcv/AMdXQpbFRPDMj8tuRgF1zC9JGrYAgOP2NwFXkWhrMbCHFyInhpbHS0TdmZg8RT8kOizzBX2IV1wwhSwV4=;4:b4EPdxPxcWTKM0rjNztawyh8IULhjXlB6iHFNMGlPSTd0O94LOd5Nc9uY9LLEtXYxHF0CAzNwSIAruQ+huROuewNke4bNe0Vf9JZKnfWbVyuoM5JIVc9wQpKZF1aZfUpgXj3qwJwOwwMSluZwZnx/zF7TtcEvVA9Ctys9iO0i/r9gV98NwlClVzfEGJ4lXVGoZ07K1B4A+AeVj70poaG/ezsANmPaJymP8wf+ctUzX4CE+gLYdXMYsDXj80R0K5b 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)(2401047)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR07MB3500;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR07MB3500; X-Forefront-PRVS: 042857DBB5 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(199003)(377454003)(24454002)(189002)(31686004)(81156014)(8936002)(6512007)(2906002)(7416002)(6246003)(42882006)(2950100002)(65826007)(6306002)(54906002)(83506001)(72206003)(230700001)(189998001)(5660300001)(478600001)(97736004)(53546010)(4326008)(316002)(25786009)(53936002)(69596002)(42186005)(81166006)(6666003)(8676002)(6486002)(305945005)(65806001)(106356001)(33646002)(105586002)(4001350100001)(7736002)(47776003)(66066001)(6506006)(65956001)(68736007)(23676002)(3846002)(101416001)(6116002)(31696002)(76176999)(54356999)(229853002)(50466002)(53416004)(50986999)(36756003)(64126003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR07MB3500;H:ddl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjA3TUIzNTAwOzIzOi9ub3h3U2NuWGViOG54NVFaK1BVa2h4Wk5C?= =?utf-8?B?aGVZTGZWcUJZQjRXVWxBMzRjY0RvMjZKT0xqQW5heFFqekZ4TTRrcExuRTNj?= =?utf-8?B?SERpMGJWWVM3STJNbUc0K2tPZjJBdjNyZy92eUQ3Mmw1Yld3Zko1dkE4Mllt?= =?utf-8?B?UXltNEVIeVlhTmxKeW02NDZXV1NJaGY2bGUrQTRNVERkTEMrMDRnTFFiYlE5?= =?utf-8?B?OTk2ZWVIa0k3ekx4dUc2ZFJKTlBkY1llV3ZEWjFpUGFXZUNuSmFOYnN6Nkln?= =?utf-8?B?bC80TmxSbnh1TzhuWWRCblhxZDBNL1Z4SDNIVTNkMlVMNnY2SDh6RVdjQUZQ?= =?utf-8?B?QktEUzM0LzE4TXpROVlJNldCRzdFNGlRb09GcW9DR0pab2JjUHNiTGZQMGJR?= =?utf-8?B?WW1HMXUzdUR4c2JVUjFPSFNEUmRlK1J3bXF5ekp4M2svZWhqWDJFQ3JRNWcy?= =?utf-8?B?SkF2c25rR3M1ZG4xZVE3RlMzcG9KVWdSeG5VYmNIWnRzelRTcERMVDNldHZk?= =?utf-8?B?Vk9jZ00vaURuekFSckgwY0N0UTFsOGhTUzRuNnJPdVhIWTlDYlBOSVVHZSsy?= =?utf-8?B?L3pGWFhNS1ZBTm90UFRMTHJGUUZBRnRiNitZWnlxb0dvbURYS1ZjUXhhVTNU?= =?utf-8?B?dGZxSnBaY1lYMkREakx1RkpNYVgzNW1XcWN6Mkl0OTNrcEU4bE91eElEOVNa?= =?utf-8?B?ZTVuUXhTYWIzYnZ3cGgwSlk5VWdxSXN1MTJTbzRnOTUrWXk3SXhsYUlDL1g2?= =?utf-8?B?WDVEckRFd2tjZ1o0bnpTL3pJclVCaGFWL2hDbEpxY1BNMjQ2SEcrWUVLOWs2?= =?utf-8?B?TmFRejBkMUxZcDl6VlpyTy81TWdMeW4rYTNmOHh3ekJoQmVlL1pzUzhXcXpF?= =?utf-8?B?S3M0c1VTQ21NN1dHVno3Q0JSMEVublRWOTBFRGtyQmlTZ0l5aVBTTUdFR1Jv?= =?utf-8?B?VDF1aEtzQ1ZidGJOdHlRekRBZEhjNVpSSXhUR01nNTI4aHhQVXNCTFV5Z1hQ?= =?utf-8?B?d2ZCS0szcnhpWnpXYnVXbkZaY3JLaTlxU2d5OTEzTTVYSTdRb2UwWVNLYm5E?= =?utf-8?B?R3czMmVOdGVuaWxEV3o1c1Nkb1NzblFrMVZ1U0k4NGF6b243aFljSUxhKzNV?= =?utf-8?B?dmNYbHROT3lZNFdYaytHb2g0bDhYVEVNZFdWRkVWN2JxK3R1TjN5VG9ianJD?= =?utf-8?B?OTF6SjF1RVFoSk9zeGVFblNWSWpjVm1ud0FYTGROdEJ2dTBQTkFYbEVHbVZ4?= =?utf-8?B?cjZ2RDhTbVBSU3l5VVZiNnAxSHExQ1ZWbmRiNzlUbzFyQlViSXgyM3ZQWjFB?= =?utf-8?B?L0plYk01aE5YRitlQmNhR2lZM1VVbVkvMnBGcHhyWG5DRnNGUDlRWEdaZXFh?= =?utf-8?B?UG1KbWFRWW11UjdmUitIZmQxNEJBWmZNdlFQa3p2MTZoanJnMW5rRU5XOHVW?= =?utf-8?B?VWxIeWVhWHQwUkY3YjBDdFpzOU0wdG9pamN3Z24rYTBmR3ZkbExRVWp1NExE?= =?utf-8?B?d08vcEpORkdwNGl1OG1QUzZNdXRlUVgxU2JUZ2YwMzBkNWI2dGsxTjdSU1pj?= =?utf-8?B?TU82bzFLN2JmMXdLaDJpdlNyOW51UzQ2c1plTGQxeksvTWNkQnQ5YkNNVlA0?= =?utf-8?B?dWRuV2YwTCt1RHN1eTkveXd6WW9VNmFGNGt2REJKZUQrSU1ZUk1zYnZmMElo?= =?utf-8?B?OWhZSHhaOXZjTkZVNG5EUVhLeTlISncxbjdxMmJ5RzRlVU5xQk1TUkRXZlRE?= =?utf-8?B?TTAwem01ZTRYT1lvREJmbzhGK0RiejFGV2ovRkdhMzkyMTJUYWNpbmJMTTFH?= =?utf-8?B?ME9FbHNIbHBjZndycU4zUG5KL1EzamhBVFVDcDI1Y2dMa2lpRC9WWkQyOXc4?= =?utf-8?Q?QKe+5bI1TNfJE1SsJgd626czzQh3YyLA?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3500;6:2ZQjYn8MRStLXXLhvjagnDasjokkTQc337GdQwEUypowZ5G1jy7w1w/H/BRZm4GAciySDtit9ewr2PoX+8kkG2cVke7q0JGJKBTOVFG7GUlIIoHYDuSk59xy+F+Or/Q5xSMHPmT2+S/Rn0GvjnbD9wL3Emh5rwOabopijRNCPpufEW1ULmTTncjlxOXQHWOlMjY2e9MhNszmF7KfMAWwNdaAoqUX0TIsFLTfrpHJGmJfYV2O0ptIW4UEUXH14zph4UCMW7cqgZForTZLNq1m9gRvf69b398DpQlMU/ZQfRmfyrRaMvsq8k6ZAQ2Ce8mnPBq9JT6hnR1w/QtXWpslpA==;5:nJTLyb9P70icVDdDl3val0qmDjwuuXYOnxBkwa+YJS5kQ4Gt8YsCp7FNiP6zsBsA2KobYZa9C3kua60CGfzm7vgpdUklUkgJz1hETQpSSb9EClZVaC0auPKhoCO+M4EQ/ZwRHH9XOB1b2DihH76fMQ==;24:4++7PDHksRdVW9b1VbnnRpRE+qaDdA0pC9Tdjg6kK3ySL3+Y2Co78BzzFslH78y7bYbHVuqsbExiRG3rWICR/1+ZPoC43qBoWO1UrrXJ77g=;7:6KJ0G1PTrM1YLVHEQAQkS+wqZ3q1yCWeH6kKWwZLINVor4MpOY9iZWWxqW6C60mV/uDL3Y8sfvdrPtmbBGFt+olfcJA8H6gqqq1I/K33CIZIFQl8MEVN0AhU/S2RkQbXuvx9A26FU1iLNNb6UY1+qBqhGhBDS2rsdwqN08/UGcGiI0E1AwdLUuDNrOTm70pB3P4EN2Us6DrNuKsb6MQspVUoqsaC1QPv4RJohPDStR8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2017 15:44:13.1638 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3500 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2273 Lines: 59 On 09/12/2017 07:03 AM, Linus Walleij wrote: > On Thu, Sep 7, 2017 at 1:42 PM, Masahiro Yamada > wrote: > >> This GPIO controller device is used on UniPhier SoCs. >> >> It also serves as an interrupt controller, but interrupt signals are >> just delivered to the parent irqchip without any latching or OR'ing. >> This is implemented by using hierarchy IRQ domain. >> >> Implementation note: >> Unfortunately, the IRQ mapping from this controller to the parent is >> random. (48, 49, ..., 63, 154, 155, ...) >> If "interrupts" property is used, IRQ resources may be statically >> allocated when platform devices are populated from DT. This can be >> a problem for the hierarchy IRQ domain because IRQ allocation must >> happen from the outer-most domain up to the root domain in order to >> build up the stacked IRQ. (https://lkml.org/lkml/2017/7/6/758) >> Solutions to work around it could be to hard-code parent hwirqs or >> to invent a driver-specific DT property. >> >> Here, the new API irq_domain_push_irq() was merged by v4.14-rc1. >> It allows to add irq_data to the existing hierarchy. It will help >> to make this driver work whether the parent has already initialized >> the hierarchy or not. >> >> Signed-off-by: Masahiro Yamada >> --- >> >> Changes in v4: >> - Add COMPILE_TEST and select IRQ_DOMAIN_HIERARCHY >> - Reimplement irqchip part by using irq_domain_push_irq() > > Awesome improvement. There was a build error and I also > would like David Daney to have a look at this so we know we > use things the right way, It looks correct to me. I haven't verified it, but I think the OF device-tree probing code for the platform devices will automatically xlat-and-map all those irqs, so that the irq_domain_push_irq() is required to get the domain hierarchy properly configured. It would be similar to the PCI case where we configure all the MSI-X and then do the irq_domain_push_irq() in the Cavium ThunderX driver. If interrupt handling has been verified to work with this driver, I would say that we are probably using things "the right way". David. > but overall I am happy after this > so I hope I will be able to apply next version. > > Yours, > Linus Walleij >