Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752776AbdGEHQT (ORCPT ); Wed, 5 Jul 2017 03:16:19 -0400 Received: from mail-dm3nam03on0056.outbound.protection.outlook.com ([104.47.41.56]:33663 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751604AbdGEHQI (ORCPT ); Wed, 5 Jul 2017 03:16:08 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; From: Zhiqiang Hou To: , , , , , , , , , , CC: Hou Zhiqiang Subject: [PATCHv4 8/9] irqchip/ls-scfg-msi: add LS1043a v1.1 MSI support Date: Wed, 5 Jul 2017 14:59:02 +0800 Message-ID: <1499237943-24203-8-git-send-email-Zhiqiang.Hou@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1499237943-24203-1-git-send-email-Zhiqiang.Hou@nxp.com> References: <1499237943-24203-1-git-send-email-Zhiqiang.Hou@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131437125656194736;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(336005)(39850400002)(39380400002)(39410400002)(39860400002)(39400400002)(39450400003)(39840400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(50986999)(6666003)(189998001)(7416002)(8656002)(356003)(76176999)(86362001)(230783001)(81166006)(104016004)(53936002)(50226002)(2906002)(8676002)(2201001)(50466002)(5660300001)(36756003)(305945005)(48376002)(498600001)(4326008)(5003940100001)(47776003)(72206003)(38730400002)(626005)(6636002)(2950100002)(77096006)(8936002)(105606002)(106466001)(85426001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0301MB0602;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;MLV:ovrnspm;MX:1;A:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN1AFFO11FD014;1:M+b9nOtDNTC/LJ0hdBCLWHzWI6k8CNJ8htZ08AwEf?= =?us-ascii?Q?MsVD8nZVkWK91ts7DmumGvSGM/L7bdokF8+2F7Sp7FkQBG5Z/SdkL0AVVOS0?= =?us-ascii?Q?XbisB3MjhvLyBeuQjhdvCYtaT5z5qG1/+sF/4qQ7sdcxip9fMUMGBRqJ1M99?= =?us-ascii?Q?N1UScHzZYouYbppb3PRXR0FjvES8i184n8uuJ6H+WU6pqHiyuWl2wXwl/kL0?= =?us-ascii?Q?/4rPodTAs3yjubTVbFn9nqnhFSeJEMDmpQGLF+ucFXSbh3eksr0PhtF+znyu?= =?us-ascii?Q?S96xglWTRhiGa33o3W6wRsz2oxXVSKST14ycx6gZ6e75PeMwEUB61tfudZq8?= =?us-ascii?Q?rZge3RkfNxvUnoub5f+ifevu3NyjsjAYasslpLt2l/0YdmDKO5hRQRERPSDz?= =?us-ascii?Q?JAAF+kb6DyyqzbRxOAbvQoHqC1+iyri8FBnHzjmQ6BDRByWQK17s3AMTRnkZ?= =?us-ascii?Q?2U0m4Pu7iP32Ovp9YJuR3rk+OPA8NuNilmp3i0JfUo1Ef11udWN3F9ETc67u?= =?us-ascii?Q?rdLcxss6UGr738ddrGuRLBjyO+Rnq8vfUBfu3k9s2dNfo7yq0uRS5SB3RE0Z?= =?us-ascii?Q?PjepkU1O462mrdrQhuuf5AGRob/wOK3WsBQiouvPiI1o5YP7Uspnfrp/5ulr?= =?us-ascii?Q?7sXO1jyz/X6gJEm7iY59uy8fnc46rvbHbOEZxchMVUYq9w3cpcFr09ImM1KY?= =?us-ascii?Q?+MlkIxWDgrMGpk0iC5wlbURUFk6n09swmmcqNs+v6mlwSBV/YZsNjaR7NAoV?= =?us-ascii?Q?IBUojtk6dzxdJZBXX1u9UWI707AbrUg0Rn0AJ0SXRoKMi9iS/IrFm9xTkB/v?= =?us-ascii?Q?iPDazTIz4bNOUizkJMqOU9/Q0sPgOt80mz0/sB9xX7I0N1kvwMmQwhk27nnV?= =?us-ascii?Q?Bi+Gpdu9PQL/1l0u4dfh3WYOd94VHkWdb8y7QkE6/YZOmH0EqW8abUjjXsrA?= =?us-ascii?Q?ZcR9tEqcdD0BgOEPkxd4HDdEm6CHqachgmnpKLSrPFdqzE2JyRFsjBaGbaU+?= =?us-ascii?Q?lkql3OTVq+UeajKW4iZNAZr2n8Pv75RnqFsKp7gFIKgtpyZ4c6YL7O5kRSwh?= =?us-ascii?Q?KxcsZk=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dc528957-5c4e-4f0f-cd50-08d4c375b37d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:CY1PR0301MB0602; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0602;3:UI7MNNjUW8I78gRBY0qfTXvgk28JGdZBqwVHnfruspmES+QhU3pxjJ4NlBmMaWgdRF1E1T42SxsRlylw+wxGooswR8om+cTNnKjPf0wyKM1Chge3rt2GuUM2Ze6QT6zZ3XrVIFYLrILilZmi8POxuhJ9M3s35D1I6FbmkPYB2oqJlVw4ZN0DbSpdQKB4BfIsqTqw4QTGeslgTy6QrQ3tQ3z5Hpdofnl0/T2LpFijwKflLUCqS9/xFkoRVY3E218xvm5JZFiOSVu7X7Rl3NHmscrRNDSaLLO+KVV4EO7r3cJU8JxTZCnLdhuCjSLQOJvsm5e46Z1Xvfbmj0yTXF5pGIiPO9eFiWOoxs5KGf9Mxqn+6rs/2HFrfBmESXhYlFk1fISKOD/EbFkeLXV8U1mFqomF+VSQ6qzzDHv0NjwkVr07O8wfqgmdnc9dcNXH1UK+z3vJ07uQnvWeKQFAlXvMXOxcOr1whycijlkxE3gMY6RKHoah98kfXutiyPnwwFSXoPGW5irO7y0Ic5dFKvaHfSdY0KrT3inD9SAmIfAshEfUnJxSg9f4ftNRYtE6E+MehtmGcIHnENreL+MoSvgXLu+BfONxJGAmBtquEO0F54jH5HWV1+yfl0dexBS6I9EG8M86f94eLHi2gbxi5aQ/84HOLGKphA41Zr6wV7M+LKrqc0l3RLA64srlh3rsgRg3dpcIeQDzBDcVcqz3r0hwiZmjws6st7skbgN0wGwyvhgrhaBiiecKpJ6LiFE+PVeFGc1YD5N6WAEYKjXoxVpPAwgWucNinpPfEjW0pAJ9Y+pTZLdsqrYql/DRHTJ4dTtioV35xJBDjV2tXFNYU0ez86m49OsHvIPrAVGFKk1W+uQL4AoFYk2Db3hLI22v76ZN X-MS-TrafficTypeDiagnostic: CY1PR0301MB0602: X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0602;25:A28nH41g7S+1sbEIneckNTPuWjm0f2Y+blzzRIj4mZhF7PKNJhvLMrOrEZl40qte8mqMHtyX0/RbktPrcJLEoI7fQMYgwS0ynvZSRSZUuYqTSG/k1Up3UjPc3uJB9QatH/64cE5CUhXfpxPXfjztStPPPxrRA0HCB5rv9JLS4wE96bCOIcEENCL+h27dBUTxOYafRwvYIPDYgyIN2RDbcbDVCZayB/466wsHBJtPnZqme4FiKY1FR1OXbyNCFs9XMp+JfMQFiicY8BRdhPDQqjadVBeSCOXNi1fT9D8naCZh2ZCRwTcZ3MGcSuz71rkVgUdkrG2D+htn60KJSC8Ia6PflPgVfh37P/zZo1jij7r7yUB17m4sz8iZx3QhnziAOWSZYmk1j0BWXHn8+i1SSDGAI8AhtsWvnPAHAmMlDO6dqzXqZJqfJG2U61dNqInrylfjOhS4jdFqibgZvFdKCzZ9pDtjvj9n5G8AyYIkjlkzBsDAAiNhBReP/4P4mB0g9ZQbssvPOfq4FclZp0L/MX5GOxNS6+Nda68bAfLJtaaZaVzW4jVMZHFdbiaW/gOis1vaJxyl9W6VolDYI9P/7wFz3H2GpQAXTYvnv7B6WdGYhmHAX02GpIU9TbC+znmcxLF1R4bGT6fhK+faSBxCg6+jAhpyPBuWl2Xt7r5OGKiOpP38zTI1Lq7UwWyKQCQbmOSeuiqcuO10aP2NaF5QjaAEdFMu7MgA5ogl71IpnDxqzFO/I8sW1HjiwRP3zjfbbEeEwcZPnsllu6fYiY9FCd92F35hPMnmZltVirerd6WGg+SjprymTYXqf4+lKzZgFZl3zOrJLna4qap5vNYEL9SvK3OVJH+gn2w4sl9OuhyY9StLV/z+I5GI8KM8kUHjNxhg4wdVvhso6yKbrBuTifzwYnTUEUGRhdYXxYbyd88= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0602;31:DJJuOu1Vx0QJ+EK+0ktwn4MONULBIY375dTaz6m68gLFNmxpYIkcNyvE82Qc4CNNzIesi+xwp+YsbbEKbklUlNIW2pzlS89o7nfr8XJzU2qJLOxLUcI+LQFiFOjHZ+KUwq9/se3KofwaW3cG8PNDJXOX/tdGPs7jh0mSNJ2skEYGyiZtjJZ9ahaU9o2Ti6rcDkYLQ8lWT6xDd70Vc1VTwETlZEFqhmmZte2XQIqXrY8pWTV2N7trrT9nZWG85XE/gR3qfZEd9Bph0miTxrJb0r48Oh7XeacxEThkG+d+KFA4FISEiX2oLLHr/X+x7ugnb2av0AB7CzkaIPcfCPQrvDGajwj9l0IDI4tm5+6sBpyb+1pTYJnKGuuoQBilIliYTqhIfrpdY74cDRt9/ci6slCmRn4wsdLo2S522qOTveiqsq7FkSASi5tXUUXIZ4aD79CaorIOt4bYZAy7m1gpyvngInAGPtI949duR0rJBGASGcdl2XtyJWnPH0hFHRdWl6cGV9GJGjtRlCltrmyCjsft9ZatOqwQAu3Rbto00IuKuENUfpy+bN7THkb/72ChABIBEDWEDtmF1Up+uXat44zE4ccnRWcFqTguOQw1GKo7pqAkUz9EtGdP/rC31dmT486REfSoTTogSdc2cK9qsvSminW4R/FNOz5sk8RQjhqdsL1hfeoxwDUiRWVirHyHBM9W0Pd3FeREf1JSmCfYlw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(185117386973197)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(13016025)(13018025)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6096035)(20161123559100)(20161123561025)(20161123563025)(20161123556025)(20161123565025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY1PR0301MB0602;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY1PR0301MB0602; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB0602;4:stHi38s8mNbUkIjrjBPYtCJiMJYLwpSBwEt+rmcT?= =?us-ascii?Q?A4JIs9gHgpK1XfXrmObOrUhCdGatHg+Gq0XwnOs72NcHjXFzvAEzfmHcyHq8?= =?us-ascii?Q?dmDuVExdmwA4VmVkk6fDiq8enCC8drYcCsPQgS6UTyPIiXw6Iimfg5s9FEqE?= =?us-ascii?Q?u28bt90RbGMreBPx131xKQCst0bBMIJAG2ScNrvQVhi4kIAY1lWiR2xdbpXC?= =?us-ascii?Q?pFYQ8SwMmARQ1sL5QqaEQJ8WqZrJQ69C7Omc/LooZIiznQzI7HAnye1LDVVM?= =?us-ascii?Q?4nHKpDHDvSAjmFoMKbnkUzBP5hk7wwlkycUTRYszzsKrBXUesE4iNyUrfPmr?= =?us-ascii?Q?VB6nbC7o5DnZxnsRqVCAeHlppZTpWDieeHw7t7+uEqvorXmXCRcid8hN7+Yy?= =?us-ascii?Q?9HTTCKLFi6pUAg9xHZWwNSmTHK1ZNB7yj45S3djxbk55a94VmXha/tn0fwoy?= =?us-ascii?Q?D2p1gSa2n4E7Aul4/62IpyZHlHZc3fegZ8zmPG760S+iW1b54dOl+BpjpfJX?= =?us-ascii?Q?YrST22hZYd2U8EqVicp+/0rqIObh+c9t7uhT6sVfCC4oJMzPeZ90JLuSZfaY?= =?us-ascii?Q?SSdgQkVTXuvwIJh0w83x+o0/xYgn2ksW1ODO871SVEN+eh9tQaa9vW3paIKd?= =?us-ascii?Q?c2fZIx8RuhNR7GC2FeFLjw7zyUShGI0Qw40BtzzxAqNjBpZat83bKNr9w5L6?= =?us-ascii?Q?nB0IKwgz1f4OlBeh10VK2APDW0f7X5AqEfrGNKGNi8ZkCZdXCS6Cxn0BDv8Z?= =?us-ascii?Q?Wi2sNRISyhyqTiEeDxMmecIgivX684OudqZ7gQNOTvvX0/sVtyP5U8W1Jkqs?= =?us-ascii?Q?dofIxbh/cyL0nZZTdAIhKme/r8bLaK9LTzA9a6YJr84B3f0Gu1UNjN5tpwXf?= =?us-ascii?Q?myK85FkecNZtxPRd6ckJbk4RF1uQJbMzmUfMkDBIoXN3Vi/gGHo+tIQ9axLA?= =?us-ascii?Q?aYYYdFb2O8rvuHhrHstuDdnxbDf9SdPdTuVomZv+sFFNu3qJ18FfF3+Ezwxo?= =?us-ascii?Q?KlC5l3jlpkwLF+awlrtY4UwBH9AvOXkGeSG7BAZeyJb82SUmxpghLL4PhBai?= =?us-ascii?Q?GkOMkfz0+/0AcgmtrkWv2Chzxm1yLOe4qYD5N9f7MLqKFO85QBq1hE03OdzC?= =?us-ascii?Q?v+FKT4gllemPZp9NnMAzKrOlEJbl2q1qUgoLRPbRn5dqNDPS5vmm76nah4LB?= =?us-ascii?Q?uDkdMtw7cvBcpvJYsVTnOeVPrUEYtblz5aZ+pSZY4a8XlLm/+IeJtYeRoWFc?= =?us-ascii?Q?f5amJKGutO2//sjrqoEWhYqPZ3mqJv51pcnszj+4npdbZdYvS79bF66KpZc7?= =?us-ascii?Q?MLitgYNQ7Pj2EBIknMZh09N4zAhAvoy68i42hoeuqHNeDDPUN7KKNt8GBuTK?= =?us-ascii?Q?NxJ9XillrJPYqQ4bTWstpdD2sIo=3D?= X-Forefront-PRVS: 0359162B6D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB0602;23:FKzVPq1f85vMtbIt12DN00YZP6EM3rGRuhTsecz?= =?us-ascii?Q?P5JDTmbPGTkYbtcNiI3WLNzV/2/GtZ5PSAZnE6npmpWHQm7Nw47oigEWkJjZ?= =?us-ascii?Q?Isu4btKGPGUbx76RCqq7oeJUYZngD7lsPT5OM3EWXxiPAH3KWnpWPQsanmkw?= =?us-ascii?Q?sbxo1xdh12cmsnkIvkKhqvKufzcO/6Ykn+5PsqF+zusq2ACBY4w4zMTYGFb+?= =?us-ascii?Q?/DEL41crq8O1/RPOKUIMKN6zYL2X9bZ2soClMJrUSHR11k5teENqrO8OIxiF?= =?us-ascii?Q?nDnR0R/KoSV2HGOeQxypjYo6YPUB2Gy70fYuofuinc4lKxKHBaNGwvGO0eIL?= =?us-ascii?Q?3bDKemor4TNwI8pKchTG4duuHfP5KgcSAx29Lbn2xmzwaZU5cnN7GxvmdSn8?= =?us-ascii?Q?YdGqNXXURjblCDxwNXBGcLzb2TXQv+SBZlKNALJXq9yDsNDGK2qGv2tNcSeo?= =?us-ascii?Q?oVpWIQZzuE0z/jQNJ94Qr6qdcKPQmlJUuFEU6LDug9/HMEEEB2HqhPGKKCc/?= =?us-ascii?Q?mmeYB5r8Soj7E4g8d6ESMhMaxESQ5Mn/TVLoWOTQmQF8dIvnzmSjRsCXZNnO?= =?us-ascii?Q?41q1hxQ/L4pBRmqB7nQnZLDtQkmafy4n1uyEepfhk4CFFeW1UbRaQo6J/kwV?= =?us-ascii?Q?UdlZdYky2NCGJZW9xDmd9jjrce/tPNR8rAIfw32JeAQhjh+oF6PP+furc7Dh?= =?us-ascii?Q?AZeoWltNWB2jfRH2PSf9geFf9Kyk/Ov+/QbugpjoeFEiBaO/hp5ieoXa+Mce?= =?us-ascii?Q?Q9kQq2rFq5751D2tvqgW1CIB9YPeYoOKz2ia5ag8F/oBT2ysdsq3EnFTD7Mo?= =?us-ascii?Q?7XTnOCeXt+YPlsqAsLwObqZw7fR/K+4NJdAy0tSW3YVAheJS3/6O43zd76QT?= =?us-ascii?Q?vgAHZ6otbP1LzA/Us6F/O/JODmVONOUELu8uyx05BNloLEOmGVyLoUxCsp0X?= =?us-ascii?Q?sIHK1YR3HllUC41R8ctxWX9tTBUuLbia58UdhxKsAtJlF+NI2lkz/rEgNL55?= =?us-ascii?Q?t8T/CMBp9CqORj+7TlnQfse+Gm13QjDB5G/GBRxjszf7gH7FOU1fPF67H3MS?= =?us-ascii?Q?cDvwmkMcw/+May8kRlslMr5fTp87xOPWUL8yg3cpTf8634bEiyq9PgAHpAoi?= =?us-ascii?Q?6LMO9Fqkq9u9MwYTHQdC0wUBJMMihVmt5z84IWT8wh6H0dbkypl6coEWuIGV?= =?us-ascii?Q?0EsTzY/GS1izmmQVMgq4SrpSjs+4cWugj43M4RqNHl1eGtAj4p30sj3/zyom?= =?us-ascii?Q?iD0y4nf31pmcUPTLW1pVyVno0n8p5wzFsuRvcdH69X5QY8WyDne2tuCLCP+o?= =?us-ascii?Q?lkA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB0602;6:0lK+GnTaHoHxovMRzIYCJ6Cigxgypw2lf6bjBZvL?= =?us-ascii?Q?5VY3Ii4lupfqypKSMMQWawgJcRmi1YXJA0MFo9/x1MRdPm/osIejpPSRb4r7?= =?us-ascii?Q?vRrGhzf5zKpd2BvMbcGczcw8DeA8Iao08zRhDlRXrRIbPyS6jFnXXwV9JUN1?= =?us-ascii?Q?A9MoDzaOD6uI/qKsWda8uZn3rbaCMyrKZVbTCACGkv75xHYd/3YUc0ZYsxKu?= =?us-ascii?Q?NsBZocYqdIXUCOBx8DBcoPQPr4SklKDFhbwDn5RkXgra5WGxgL3dLiUuswVt?= =?us-ascii?Q?8PQhFmf4TipeJ32k/2LWlUYHiq0NL423h1cwYTxBl9jHzgL1rNf745qWQOZi?= =?us-ascii?Q?MrcBYfnA9Pws4KB3E9rW8CLSOe74LD+iVQUiQNFLAM9ouJvI96ObtpUMvUu6?= =?us-ascii?Q?pNOxco/ZxBqGqKN/s1nSNYLRSPUXd2Zn3N3qP8RJZZWk1qgerqp3xRJMbrSb?= =?us-ascii?Q?5veLENDCCp8zQwhxccf1uDoDJwGmzQM7FrPN1Y/cc9+iCGnBnWjYPX2uvwF0?= =?us-ascii?Q?SEberYNaqoIxWTg2qVxdb+c9ryKcpyxN/GI8RE8I2WIFO9zS8aiFPjmicUEE?= =?us-ascii?Q?HOoCFLf9T6IZ6qQlIpnhGgGabzazkrp7Z55+5q0ouGziJ/QonLwwaLpaxNE0?= =?us-ascii?Q?HaZqq53BG+NIwn9PPCEpwXCV/pxFH6QSYfCO907d3og0QTZuJcxhlIUBIrVf?= =?us-ascii?Q?SeWUZ7MUVu2iqwNE760zfP1gE42NKD8pIXc7flU05E4589gHc7uH+HDddTqV?= =?us-ascii?Q?ZyfXWqvlqHAyH0hq5yMZYi7+Q9FJ8zE/5Pzjpd43blaabSOH8zi34b4jqGkT?= =?us-ascii?Q?uVVoE7DeqwgWuXuSdEU3jIKzVQbcXBQWLcOLaNt0spznd1+dDUgd9UtoxAz9?= =?us-ascii?Q?dDEt7hBSXkpGrBKDtbBS52qvcoKg5BkR/XRjhr7YBC8URJIl4fzNX/MKseO6?= =?us-ascii?Q?3gWdFozgIRGfIqZ+fm3R/WCORJIhDw8mxrqePAgdFSkW/m3q7kSAOykix9ET?= =?us-ascii?Q?6ZI=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0602;5:NjYitlXyMp81+7/nLaCSO1WYs5hlwbyF1wBiyxpi+nnESXzKh51GYJbmJ263I5Okj54CtOkvacIEM6/q3szH3oX7kpOLSWoaRk3xAkusqbqPYC9zmVWkMCrJu3p6cootRuwPv33S12XCV2utTJGboRVfjjgX2mmd3kW6MN177/9sAMlMv7pRz6AGhEg7NwrNm3egsYaZIREbN8B9oIb4NGvG6mmemF5Op9zuWDuSebM0uyWtpjjX/51EcfyrJzCl9N530b704t+u3lHWTH6SsCBo1SS987lhZulQ5XzH4MJYuUcceYAUJBRMjRqRPQV1W6FrmAHO761n7UKx9byENe1slKEFkesWP8EFqciUXLZ1x8gHR2WI3LmZULJVGuWrTGX+bm5aGq1Cm4ekItZt1QHosBuHcGEGdByoVUOMnbi8MUjvYXjT5TVEZWA/3wT6m0RUG1uFpQGkO4Z9H3BPV2SeMVcNwkEoMu6Lb1Is4y73lFRLLe9Yu+c0zQxlWzB70Poepllhztl7gALA04fUUA==;24:yc4H4jC2Fc69Y0E5811vFgCwb0dwKT3CDKc+epENEHTxRVE4pnDpkrH1+gXQ6C1yaCn2CJcfsWk3SZhHEsCvwWZGULlE+T++EKXx0f54OCw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0602;7:y4zwq62QhAVfuNfa3xKPp0VkcXVcdwF8vOv/Q8MCkLP7QK8pKP0s3cIBBBd3gcF7NS+XT6NjAcTQRyPrw7xC5QIUys0VVQ/wm8QsfhBFWdrkivtqOuefk8Ko8u3nLD5dgE3aFx4KRkyylytvNt1ZP4G3eub9WhSLWYz8iGluxxf/hi3ovZBkYWu1EaCIzwVGqcbFconc76hOZlLdIkYrvn6gYJ2ZF4aHtZ3vuUHCxJRlzkb8QdYcdxKDm2nH1256YAt4tjX6tx3GXEPwvdDgJ1DldO0xXZ4xxBwGL1fheK5MG5vCOlWEozIz77ICuv5m10klo2Bv/J9K6dHXeg00iP+lRQlMOoj4k8pzVrDuJnFdK6Reb1t76rKpCp344g545sbsYJH5DM9P8uvma46fyXA5RLJ5jkEq0s5ZXOXlcSSHaqC6g6LgV8oZ3Cou0NYv3JLDp274JqTTS8n1nu/7MTqW6uvLJkJWtXBMpkL4tMGhdORCMPATJ9Rw52HfecKbRKdXiJ82WncDTHiYW1hxdPsYkgOk3W5VYgLFRf1ZEY8mvaJrGXEjOVDVkyj4zqrai1b7KYAksQ1qDnqBH3VRUEpO8dOj3NdgVgT1h0E9CPM+GOiRTk4dnyQuBNPyFMn0etXTA0VhQavHKAF8nC+Fa9YSWY+XtqeBS2NWogiApLQfVDJe3zIBDQfz7pgZsJo0h8dSLliFb70tv53TSXF6oMQLbm46cNJZpj1zKi1x1MdFj9tVdMa89xXslF7lZT+rlVdWnjL1v1iEs0x7wRZbl9uwFlytsR+Deubdg+c0MzE= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2017 07:16:05.4322 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB0602 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5374 Lines: 149 From: Minghuan Lian A MSI controller of LS1043a v1.0 only includes one MSIR and is assigned one GIC interrupt. In order to support affinity, LS1043a v1.1 MSI is assigned 4 MSIRs and 4 GIC interrupts. But the MSIR has the different offset and only supports 8 MSIs. The bits between variable bit_start and bit_end in structure ls_scfg_msir are used to show 8 MSI interrupts. msir_irqs and msir_base are added to describe the difference of MSI between LS1043a v1.1 and other SoCs. Signed-off-by: Minghuan Lian Acked-by: Rob Herring Signed-off-by: Hou Zhiqiang --- v4-v1: - None .../interrupt-controller/fsl,ls-scfg-msi.txt | 1 + drivers/irqchip/irq-ls-scfg-msi.c | 45 +++++++++++++++++++--- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt index dde4552..49ccabb 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt @@ -7,6 +7,7 @@ Required properties: "fsl,ls1021a-msi" "fsl,ls1043a-msi" "fsl,ls1046a-msi" + "fsl,ls1043a-v1.1-msi" - msi-controller: indicates that this is a PCIe MSI controller node - reg: physical base address of the controller and length of memory mapped. - interrupts: an interrupt to the parent interrupt controller. diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c index 0b1f34d..8d57a59 100644 --- a/drivers/irqchip/irq-ls-scfg-msi.c +++ b/drivers/irqchip/irq-ls-scfg-msi.c @@ -25,14 +25,21 @@ #define MSI_IRQS_PER_MSIR 32 #define MSI_MSIR_OFFSET 4 +#define MSI_LS1043V1_1_IRQS_PER_MSIR 8 +#define MSI_LS1043V1_1_MSIR_OFFSET 0x10 + struct ls_scfg_msi_cfg { u32 ibs_shift; /* Shift of interrupt bit select */ + u32 msir_irqs; /* The irq number per MSIR */ + u32 msir_base; /* The base address of MSIR */ }; struct ls_scfg_msir { struct ls_scfg_msi *msi_data; unsigned int index; unsigned int gic_irq; + unsigned int bit_start; + unsigned int bit_end; void __iomem *reg; }; @@ -140,13 +147,18 @@ static void ls_scfg_msi_irq_handler(struct irq_desc *desc) struct ls_scfg_msir *msir = irq_desc_get_handler_data(desc); struct ls_scfg_msi *msi_data = msir->msi_data; unsigned long val; - int pos, virq, hwirq; + int pos, size, virq, hwirq; chained_irq_enter(irq_desc_get_chip(desc), desc); val = ioread32be(msir->reg); - for_each_set_bit(pos, &val, MSI_IRQS_PER_MSIR) { - hwirq = ((31 - pos) << msi_data->cfg->ibs_shift) | msir->index; + + pos = msir->bit_start; + size = msir->bit_end + 1; + + for_each_set_bit_from(pos, &val, size) { + hwirq = ((msir->bit_end - pos) << msi_data->cfg->ibs_shift) | + msir->index; virq = irq_find_mapping(msi_data->parent, hwirq); if (virq) generic_handle_irq(virq); @@ -193,14 +205,24 @@ static int ls_scfg_msi_setup_hwirq(struct ls_scfg_msi *msi_data, int index) msir->index = index; msir->msi_data = msi_data; msir->gic_irq = virq; - msir->reg = msi_data->regs + MSI_MSIR_OFFSET + 4 * index; + msir->reg = msi_data->regs + msi_data->cfg->msir_base + 4 * index; + + if (msi_data->cfg->msir_irqs == MSI_LS1043V1_1_IRQS_PER_MSIR) { + msir->bit_start = 32 - ((msir->index + 1) * + MSI_LS1043V1_1_IRQS_PER_MSIR); + msir->bit_end = msir->bit_start + + MSI_LS1043V1_1_IRQS_PER_MSIR - 1; + } else { + msir->bit_start = 0; + msir->bit_end = msi_data->cfg->msir_irqs - 1; + } irq_set_chained_handler_and_data(msir->gic_irq, ls_scfg_msi_irq_handler, msir); /* Release the hwirqs corresponding to this MSIR */ - for (i = 0; i < MSI_IRQS_PER_MSIR; i++) { + for (i = 0; i < msi_data->cfg->msir_irqs; i++) { hwirq = i << msi_data->cfg->ibs_shift | msir->index; bitmap_clear(msi_data->used, hwirq, 1); } @@ -216,7 +238,7 @@ static int ls_scfg_msi_teardown_hwirq(struct ls_scfg_msir *msir) if (msir->gic_irq > 0) irq_set_chained_handler_and_data(msir->gic_irq, NULL, NULL); - for (i = 0; i < MSI_IRQS_PER_MSIR; i++) { + for (i = 0; i < msi_data->cfg->msir_irqs; i++) { hwirq = i << msi_data->cfg->ibs_shift | msir->index; bitmap_set(msi_data->used, hwirq, 1); } @@ -226,10 +248,20 @@ static int ls_scfg_msi_teardown_hwirq(struct ls_scfg_msir *msir) static struct ls_scfg_msi_cfg ls1021_msi_cfg = { .ibs_shift = 3, + .msir_irqs = MSI_IRQS_PER_MSIR, + .msir_base = MSI_MSIR_OFFSET, }; static struct ls_scfg_msi_cfg ls1046_msi_cfg = { .ibs_shift = 2, + .msir_irqs = MSI_IRQS_PER_MSIR, + .msir_base = MSI_MSIR_OFFSET, +}; + +static struct ls_scfg_msi_cfg ls1043_v1_1_msi_cfg = { + .ibs_shift = 2, + .msir_irqs = MSI_LS1043V1_1_IRQS_PER_MSIR, + .msir_base = MSI_LS1043V1_1_MSIR_OFFSET, }; static const struct of_device_id ls_scfg_msi_id[] = { @@ -239,6 +271,7 @@ static const struct of_device_id ls_scfg_msi_id[] = { { .compatible = "fsl,ls1021a-msi", .data = &ls1021_msi_cfg }, { .compatible = "fsl,ls1043a-msi", .data = &ls1021_msi_cfg }, + { .compatible = "fsl,ls1043a-v1.1-msi", .data = &ls1043_v1_1_msi_cfg }, { .compatible = "fsl,ls1046a-msi", .data = &ls1046_msi_cfg }, {}, }; -- 2.1.0.27.g96db324