From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932167AbbIWQ7r (ORCPT ); Wed, 23 Sep 2015 12:59:47 -0400 Received: from mail-bn1on0056.outbound.protection.outlook.com ([157.56.110.56]:9504 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753348AbbIWQ7o (ORCPT ); Wed, 23 Sep 2015 12:59:44 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@caviumnetworks.com; Message-ID: <5602DA77.9090108@caviumnetworks.com> Date: Wed, 23 Sep 2015 09:59:35 -0700 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Marc Zyngier CC: David Daney , , "Will Deacon" , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , , , "Grant Likely" , Thomas Gleixner , "Jason Cooper" , David Daney Subject: Re: [PATCH v2 2/3] of/irq: Add new function of_msi_map_rid() References: <1442966406-13198-1-git-send-email-ddaney.cavm@gmail.com> <1442966406-13198-3-git-send-email-ddaney.cavm@gmail.com> <20150923175216.3384d7b4@arm.com> In-Reply-To: <20150923175216.3384d7b4@arm.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.2.3.194] X-ClientProxiedBy: BLUPR07CA0034.namprd07.prod.outlook.com (10.255.223.147) To BN3PR0701MB1720.namprd07.prod.outlook.com (25.163.39.19) X-Microsoft-Exchange-Diagnostics: 1;BN3PR0701MB1720;2:IiY+RmJOY9h+IYeCa7ajTepLOgLnTmBt75PeA8uyf6qif/hUdZ1Lac90rQEhI/ZnJRzJxfYJeiBxE+bO2V1tRrcVaSd7Z7Ir4bx01mQmkxAe7laA1tZQes1e6MJhdDewLrhuYO2aSF2dSq5pDrG9v+v0l1regVzZpomxrFs1Fk4=;3:lKWcddUx6+pKGP3WRZUimTwt2EkbwNR7fSo9eP8HOaO8kQZfwsnm+HaYNI+804s4hjga0cfALawArpMSgwYzSHVcCGLUERW2KcW+oWLELSOP3QqzWfeXy0CwUdU3jVxo4ml8oLm7bY3dhVfzuMw4sg==;25:Ws0+yPIf80kk9SCQ7YmeQKdU4uiftdl+zfCQCJJF8bUaeGgF6zMqDNgyS4YKHac+1ge0WwNKTxOesRCQqDMBSpJM/Jx11nQjll5Xhsrzo+QV4XuPb731eOTeRKnxPj06c82V4Vg54jAwrsgIpQDDbHBvTCvpB7aaK1Vc0ZAoPRukIWmEpgQ4JcTWyX/YDLmtb0vGQDbj/v/5gkKQYLqnHUKx7QHE0oVSwq1sSus37GgLpfT+poKYMMn7MAgiT5P04LlioCrVf7LKqXSvqYGCSg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0701MB1720; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0701MB1720;20:RJO6EAx5xF/DMaCHFh8k2NYJnslC12biOUSytj/MhCYd5+YB4Z3Vq4i7/CsNiIJInXG/ZggwDqT8Jnmwmc4O0/gcX/dhcixRb2Vj8PtVODgrqAS+MJogJexYSRFGbmmUzqU/wadH2T3hFDFhRgJrs/wauNLS6/yX5aFTzp3VjbTZ1nj6MT9cicChCE0wJcRLUlb1SScC5wGDWCh11qASSw1icnkKCao8qgdyhCOx/W/J3BPLeEmKLscpNIMRsGKSDsC5P3hE7jDd9F0KnHuz7hUVCeN3HXIXj9t1NhAJcIYFQ+bBHgzprD2//2GLk/WtI8bqETEc0LSDb83twfRKDpdpcaN2Vqcnma9hZCf3FPLViPd2E5MnnP4I4mVapwZIEi16ev95ntGXECybr2uyF/lhnPS/aZttc5yMyqXNqV52x0DH3bHQnGsZKo2kEt7sD6qAetvzyZ/xrNRQGsfoDo+AEnO+8Z9zYR7RioO7yuJ7iGB92jwtOe+JcjKoUhpJrT98ojrrv6F0eJxV6kG9k6KUjB+yQA+Q+1eFfuALKlsJ8iUUUABfJswDs1u2YYpGDJ6eksQtW8/SgIGNjfvI1jSBXtJirLhz/ZJxq/wE1Tg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001);SRVR:BN3PR0701MB1720;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0701MB1720; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0701MB1720;4:1OePQ79+VJWCDA5APCcRXoHjeAhAxz9kZSiQb+t9AjFwYLQmYTIQMccoOyyS4HkeGAAO1+fkoIH5nNXZK39r20bBIICFxnDhdQwdWCHLS6CTPKhSi5Qi5V3ifMOImcQo1hAP58kTUp4oKYdXBiv0VjjWOdPUpriZJ/UeE8jH18CwC/sOtNzGLOelH1FYZTQmNcA15u0J6oBvLvZzwTTsPOf4rutK8NRGtcgUfmt3UHcEkXBCCOuSgnHIS6SVfk9LoqWuKyv+OR2hA0Vmj0NmvI+DSyxIgOyc4XUZnkZSaplNkVoQJd9PAK21eyR7ZjUso6lgN+IOQNmNNbDK83XyyCT6UbIgMq0JLtZVRa6FfFc= X-Forefront-PRVS: 07083FF734 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(479174004)(24454002)(189002)(199003)(377454003)(62966003)(4001540100001)(77156002)(87976001)(42186005)(105586002)(106356001)(53416004)(50986999)(77096005)(5007970100001)(87266999)(68736005)(5004730100002)(65816999)(54356999)(76176999)(36756003)(69596002)(19580405001)(101416001)(33656002)(80316001)(19580395003)(65806001)(47776003)(66066001)(65956001)(83506001)(64126003)(23756003)(50466002)(64706001)(81156007)(5001860100001)(4001350100001)(5001830100001)(97736004)(122386002)(46102003)(59896002)(5001960100002)(5001920100001)(110136002)(92566002)(189998001)(40100003)(2950100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR0701MB1720;H:dl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BN3PR0701MB1720;23:Fem3wpPwHnP+dkxHgM7Z5dxJiLmBYJwkfGYWi?= =?iso-8859-1?Q?yHHgZVILAvb/xwOhzh/qJ2zMcUW8eJgTXWqQdJCLn14q235mJ1bJPEJ4xj?= =?iso-8859-1?Q?z+g8Mr5x+D2PnFpHVSe0Kfd471hI4WsBdtFLL7qbu+bTlBGV1AkzsDZyfk?= =?iso-8859-1?Q?oOjO/ZptqpOYu4DjqxpaZAoN5dmbmb6a+tUQZ82AzLXCEH2ahepDM58qFQ?= =?iso-8859-1?Q?W8JrR6y5C5Y8Ty9DNQm0AAK9FIm8IASvl5+rn0EJtylAWHUoC/FzHW4CqR?= =?iso-8859-1?Q?2ipaYi0/kPy4Hj/HVP7oXYM2EL4+K8fEUk/D8+pDXD2dxceic9smYOKN5J?= =?iso-8859-1?Q?p7BuhvLPgJqj2um63TssYT3wfsM+6fcl3OJxGpsSsWPrZKIAmAhSDiHs9F?= =?iso-8859-1?Q?i2DCNysegazSpNEfYAS1NHFPvwBZS8oXE6OFsTfmRtmjR8fgOSxNijvL/Q?= =?iso-8859-1?Q?UST8AwNNhL2S0r55OH/hpWnOJjN+MRcbnVXheVr5TsSIY0wkYDJczvk5p1?= =?iso-8859-1?Q?44HTNGZ6nLbHjM10smxg/B9nkDXKfR9/0Zes/hRmoT6DOPE5Nj06J//Eqd?= =?iso-8859-1?Q?fbQEevHQz9dARzV9YWCQaEPGMVYI3czxN5p1SR5f9Ifwh1bwG/b1K/VQN1?= =?iso-8859-1?Q?4aRczntmzQG4ENBbNDsTr0iL1Pu8OhfiMEUQziNlMSHvhrLDxdh0GDJjXZ?= =?iso-8859-1?Q?pPFB9L7/I2wxudj7EtwYL0dXIUxeVtBBCFWQHQXCPCPliA+U4TDWu0oucN?= =?iso-8859-1?Q?hskU76GI7AUEUuB+M450jkWa8JX2zgg2m1ziJLgJqfdaHIwSGzGPqifaKX?= =?iso-8859-1?Q?hjbE9wHnFoph28AbDl82HwTBB6LCe7KuQmbK7xcKsWfrcAlhvfvrfW7VVi?= =?iso-8859-1?Q?WDt/6bm5Ju6yBqDoJ10QHSUUYtzQct+hiJTHVKn+hOx7oGgzzOY17Nyi4f?= =?iso-8859-1?Q?KuweZvza0jeVYEaFUQyOIjjWOCdDHd7MB7lBwLQtKQF6wVo54Mwh0hsE9w?= =?iso-8859-1?Q?VXVFaBthNOPSxjAkMlTeSv3TUK3oee8PqrviJ7932ki9p368F3MwaYHvhy?= =?iso-8859-1?Q?DY5vXWrYKBtY7Owrc1uull6KheAn2sxJUr9oQTCFOZrP7zfvEwf5xAjzpt?= =?iso-8859-1?Q?WZpcy7S+VjPUYWZrwAK8+ByfYihcCm0fipP7mD05GpkdmlzeJB9wTSIdEp?= =?iso-8859-1?Q?2bTUNRCwA9NT4W+cgkISjZBqJCK4N4vox127uc9xf6eQudkNXyILaGCUgo?= =?iso-8859-1?Q?wVIpoywFSHNtx0/5A3NLv6HuXG9/VL9MDL4bC5p+tcQMZ49BaSEGzdzLM2?= =?iso-8859-1?Q?M7i9EgKC240EO/KhlF6Tg3P/LLP+KRVwypJ9Qb4f1Yxr/S3sudDK83tWe4?= =?iso-8859-1?Q?/jpRx2VxBP46y63FsQrP3sMi+JUiYR/o6pKVkD9tD1VlFObN/9TPH/7xQS?= =?iso-8859-1?Q?Zn7cXjoKRWbGyN2lmyu8Ug4MBqdOmPNIrCUpC9OGJIjSilrOYfOjIpeHiG?= =?iso-8859-1?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0701MB1720;5:5egeFw3Ycte2S5n2l9gcvIAofqr1bABXBVRE3+7DJagqPufcExEJB/dNVHdvK433HVEqa3wYfROZBe7HwBx6HsRpKxf0UyYbSwBUFW0OXRrBeEdb0V/KFHoVxEoWoOxYjK162lIetL3HA4DEfdfy6w==;24:pLxlnpPjL1GyJrv9HjmjZmDsRBB7iNCSOZvywpUjMnfOe5ynUEihAES2Hey/pXW53lSHxTL6Bfj9M+liAs30sMQNCYyCDOSxqNM+h3CpU6w=;20:4lhT9vuYeXCFNGHOWdg73BGBwFzit59epnwlEk2g6NpKJIs6d4txSR3IwHKXLDxRsL3V/dO4BVgVjw/uq7/+WQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2015 16:59:39.7118 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1720 X-Microsoft-Exchange-Diagnostics: 1;BN3PR0701MB1575;2:NqG+e/OkFkgJl5tTEL3jN3N5qWC/YpID3OWNcBOxj3tsq5W50TGgjvk5VD2ULEfvC91SZf5nv35eLTj9h9meRAZzfyeqeZWF+mmpg0MDQGDBvDCEPtL0O8sN+zprI3pKgSrG/iOc+38bkdiRdmiTB3eVFbSJuGXRgTHHZu+3uY0=;23:leykEdtatZYYV/WyOgfjrrb6rSAdNdsWWKFK/8+sZiQ/dh9LJpyibCgJxlerr5gR5VqL/qT4UgwRDeh2k9nYuCdEjq9CklMu9/szsFb6uJMw8pg3pvMdL8BtKArUNbmOQJvGd39LWNWzXWsFItEsWGmi0Dm8rStt1ONPF4W/UKWLWzK+OVFJl4TvfW++DLq9 X-OriginatorOrg: caviumnetworks.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/23/2015 09:52 AM, Marc Zyngier wrote: > On Tue, 22 Sep 2015 17:00:05 -0700 > David Daney wrote: > >> From: David Daney >> >> The device tree property "msi-map" specifies how to create the PCI >> requester id used in some MSI controllers. Add a new function >> of_msi_map_rid() that finds the msi-map property and applies its >> translation to a given requester id. >> >> Signed-off-by: David Daney >> --- >> drivers/of/irq.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ >> include/linux/of_irq.h | 7 ++++ >> 2 files changed, 93 insertions(+) >> >> diff --git a/drivers/of/irq.c b/drivers/of/irq.c >> index 55317fa..3f64d2e 100644 >> --- a/drivers/of/irq.c >> +++ b/drivers/of/irq.c >> @@ -598,3 +598,89 @@ void of_msi_configure(struct device *dev, struct device_node *np) [...] >> + while (!matched && msi_map_len >= 4 * sizeof(__be32)) { >> + rid_base = be32_to_cpup(msi_map + 0); >> + phandle = be32_to_cpup(msi_map + 1); >> + msi_base = be32_to_cpup(msi_map + 2); >> + rid_len = be32_to_cpup(msi_map + 3); > > Rob did suggest to use of_property_read_u32_index() instead of these > be32_to_cpup(). Not sure if that'd be a major improvement though. > I did think about that, but the micro-optimizer in me didn't feel comfortable with the overhead of rerunning of_find_property() for each value. I decided to run of_find_property() once, and then iterate through the individual values within the property. If there are strong objections to doing it this way, we can change it. David Daney