Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932955AbbHIIDS (ORCPT ); Sun, 9 Aug 2015 04:03:18 -0400 Received: from mail-bn1bon0142.outbound.protection.outlook.com ([157.56.111.142]:56741 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932865AbbHIIDC (ORCPT ); Sun, 9 Aug 2015 04:03:02 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; arm.com; dkim=none (message not signed) header.d=none; X-WSS-ID: 0NST2CS-08-TYE-02 X-M-MSG: Subject: Re: [PATCH v4 09/10] PCI: ACPI: Bind GIC MSI frame to PCI host bridge To: Marc Zyngier , Hanjun Guo , Jason Cooper , Will Deacon , Catalin Marinas , "Rafael J. Wysocki" References: <1438164539-29256-1-git-send-email-hanjun.guo@linaro.org> <1438164539-29256-10-git-send-email-hanjun.guo@linaro.org> <55C0C685.4000400@arm.com> CC: Thomas Gleixner , Jiang Liu , Bjorn Helgaas , "Lorenzo Pieralisi" , Timur Tabi , Tomasz Nowicki , "grant.likely@linaro.org" , Mark Brown , Wei Huang , "linux-arm-kernel@lists.infradead.org" , "linux-acpi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linaro-acpi@lists.linaro.org" From: Suravee Suthikulpanit Message-ID: <55C70925.2000306@amd.com> Date: Sun, 9 Aug 2015 15:02:45 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <55C0C685.4000400@arm.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.180.168.240] X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD014;1:ahOBHkl+eoZRpGm+7SggvvvzckqoHe5OKudyfISfB8b6IUV34n3qsByvqkAP8c79yWhx5mVe3grtfrLFD2odGt3PAP2ZR42Jpoczs+FFKAZXxR2LIvuGExUfuiYpVkoK4yVF0GAiEcx1+oFGzMNjYwyMC7H9g5DTieQ/C5uUwTQ3eoEwkuBy0a6fTb/Z3AgsMFVkveeI+TfKIoKdpso54t4jxVtW2bgNAsGvv0ZBkW/e93WRngP2WlzdHLalMMnngprW7/ixHCMQ34MX+A9j64/5L1kivnHfhHhFfO888LI= X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(428002)(164054003)(199003)(24454002)(479174004)(189002)(59896002)(77156002)(189998001)(92566002)(50466002)(62966003)(46102003)(36756003)(4001350100001)(86362001)(105586002)(97736004)(2950100001)(76176999)(50986999)(68736005)(4001540100001)(5001770100001)(65816999)(23746002)(5001860100001)(64706001)(47776003)(65956001)(80316001)(19580405001)(101416001)(19580395003)(77096005)(87936001)(33656002)(106466001)(65806001)(54356999)(5001830100001)(83506001)(87266999)(64126003)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR0201MB1475;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1475;2:RPc568rpNDWGjk/SpVT6Z6Pd5Lcu9M0EQaw98h7PP9C5wY8TArKIZQJv6d91NDaANFGv1knmq7wNfy+d9v4t93EXEaQH/hj2AgF0mw3+0GujahZ/sVAMgd4PUCkvBq3PSNdkHSpl4OtNblQ1xYjsBLLliRZD+8MRDWTBmHHSl4A=;3:WWGCVYA2ihJDuPFFAQ32ynjyMkI4QTNjgTBRDTXLN+JOA0ny1ngjthjbzzM/xAvzxgiKCkRWuqGARRJvzhREodgfw0bhMXkqhYTrhnhevjHPs1AQUMiRyaTTS7L4sEpCr8eTh8jV9SqXPyGVqryw+wjR8hN2U5Qpqt+kBk1fPMSY2qju5QoBgZ992UjKa7BTWWTBc75C0+PZ3bXvnodE0QVJTeh9EHnE+asfBJW20VEXWkxR3MX/9UQ42XIszsIV;25:987lpfFjKQclLSeGhxx8XQCYwsQ+LjkE7PJ3qdvmBM5HOB7e3+5Wnjv5iK0Z304dgo8cMiIXSxafJBhp7ZElG4l6MjH1/T4voTp3b89NDbvORS1NVA8L3lRB5tPGn5UOs42CERu2sYP9P45xA7MvPRsD+usJfwVOjm4NbtHr+Sa/wJPU76fXYswoE2tE/FTEBDGpK9GKWXpaklzCKd1HluD1jVKKzg2BVR7bifbTHs+P+xOmk1R65GfByjraef4/uuHGubNPw9nSYvB7JgIwCw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1475;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1585; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1475;20:iGtlOjcRRwjkh98VnjvMqMD9C4ptiFJ6jHAY+DGmdcolx9/AtAdp7VGfKGU+ygc6r8RKI6Byjh2zQ2c8ZgBn9xWLtAIGT8/83KdWOCF1QeZKyZIW7pEOrW4M0tlF1SCT34Ji+2Hkw5sBre97ecgzWoKgWTeKZuo4XCP8IUUZX8HR2NVorTVZqf9fi+uDf+kM5TsG8kqfZ/QTRrXSmOM4tav7JKaOTpAcRcCaJEiTj6HqR9DpCTvObUHeFnzS8PZUdzI4KGoXRIBvXPSRjE2vGcFSI3TLE7qqbZU7fOW7XqUOoTBOzOJL+1OgCl9ekkaUg9Cj1fcjOTL1NA1qj3PhaUuCYZZPozHpQkZyHpys4QD/DuH7Ha9pT119GXyBoArBSj2kv0suzghIKBFrlOCD1MEU/M5Ov+WXM9ucDKQzxv8kGpnIMkFkM4kjuVoKa29wNag0572MLyS6lb+UKWt7/ZqmypxSvBoxOlR32pOBlq9e0kbe8DiZYamo0vrpnahM;4:VWnCgq3DHKYVM7ZsaSgc5qn8h/vgE+t2glriRjsLy43rc5zSutMPZCRHL5QGlsRZxw/ZFmcAorIKt6DuqW2uX/KB+X4jIc51At4UcOPXvzTnFfvgtMcE0QY6vtL+q9/GGzwVxMFu2YpZjFCdR8R08AEqIPeK7nKOgbina001u8ejE25pX++elaQRhDSl3KpmBKcfOsuSORzR6AkzrbKVEL8JbMHLIt4TX1hhaLbmaPNn/I9zgw9tm2NCI8BFOIgJuTq1CAmsbefuB+QVklavRN2jzsr/hrH5T+xVyVf1ziU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BLUPR0201MB1475;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1475; X-Forefront-PRVS: 0663390E1B X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BLUPR0201MB1475;23:a6RblHJJJfuhj74f6M9h+FdCtvh1JqOVqsi?= =?Windows-1252?Q?r9Rzsi81B2JfhsI9o9vrjAVQvD+JSvnVzFdb9EStB65ufIFh2SHWHbcF?= =?Windows-1252?Q?Y1pm0DNnsSMP02o7CssUNIcZ2OH+WWdA9bqCMxXgr4S9PPli4uqQZzy1?= =?Windows-1252?Q?qbcmge4vYmGMljfi30vRti3N3aL/HymTVwRki9GTJp6aqtAtyZAkimHI?= =?Windows-1252?Q?GJelhdbvKMLcGztYlGbFWYpPP7WHjKbWyNmUP2FosFAKfWL7fM5Q3NtM?= =?Windows-1252?Q?erj7/Z9sYPkk8dd1Vm8d5sO8KrPBF13LOgnEUaJsg0LWod8DLteUe4IP?= =?Windows-1252?Q?fK4xBUA/QdAKV2EHaAWR7+7KrRo5naDCyts4RCyyFh7S65jBDK3FKY3i?= =?Windows-1252?Q?LcgNOrcmtuLXVT+rqiwXYN/bDZYGJBs7Fy8wCHC4zAxKkpi2xOFBES75?= =?Windows-1252?Q?wym/+r4otP7qAEXvBqntT/Yfl/7DMLadfv+iO1CoM9UcqmnXHNdM6KPC?= =?Windows-1252?Q?liK0r35bTaFubSraBX2eTNcCmVbAgK8PKikEaZIkrPVi/+G+vK5qly2R?= =?Windows-1252?Q?UrroXGSb1zFd6b9nzduCH+6NQvONppX9ET1WMFt51Q07HdR4taFLPv+Q?= =?Windows-1252?Q?Sp0DqO8LX5gC+bQL37ccoE9vQ+0yUMF6AGnGcCGVNlAe+2bLNbEvQcMd?= =?Windows-1252?Q?xi8PvsNSgSC+81AbS1i+jfzwTRxV7Kec0Yzw+Sb3Jk7EW+xi1p5erfid?= =?Windows-1252?Q?KDyeG47tjJywuoWX2mXH5i/tEK52mkEenEkYHpPBKdoOTO44dITxt021?= =?Windows-1252?Q?okudKQThZWgk+sohtKKYq6I0PypNuCPdYZMuTE78mq4IPtSr18DTElse?= =?Windows-1252?Q?VPOIKgx1ZlW23xL+/LYlb9WKrvxgsxeqdtg7NafhroChzO3VisBnIB4J?= =?Windows-1252?Q?AL9D6mXI8BQejgpyG/aSlWz7y9DN2/vfHev61p8prNLRTuiB0GKxjYf6?= =?Windows-1252?Q?Bt+R08c/6Ji0qJTfAiGfkdhk0laoI81ZVgQ4SMYikIwBikT/qD4/++Fq?= =?Windows-1252?Q?+amZ4RWra+zSoJvJE1B0xnEK6fIKWVMo+5PM6dGntSyw9PIQYkyGfEmX?= =?Windows-1252?Q?ngmo68KwqrDyhaErTk6wnFtN79Cmn7pWI9v2LrBjKKN/PUOmUHDVZ4EI?= =?Windows-1252?Q?URY5UeE1vPr0Uoo6KEZa2um6bILxxnROkzwkClhYKMLbT4IQWIihlnst?= =?Windows-1252?Q?U6WJfwMGlPxJ4LEhQ1KM4jFFArNPV94cO1clsI28fTGAXIqigPIWzpLr?= =?Windows-1252?Q?9tDqTl1dbvKrH8Q/Mi4kmKYTRnA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1475;5:t1D4F1TtbpcU5E8CQeDL1VfXywgBTGUitOE+xv+vCUIJwbEBuVyZqQ3+eU4GoOZTyCQlkjfYtu1DLTypBDvZ//rAQyrwZQOrLRVF8lvRSh4WMxuDn2bFotxt97H4mJo6kIXq0nYNGojnN9Dr87aLOw==;24:23Yd0iv72jkrSvc9fHPrbSVHHyS3dkZpLzZoSONFGE8TOGKm7WZUxOOg/I/nCPzMeyd4TlBv1yZPjk+vNf499yAFH/DNSO/euO5Zi3n9D6Q=;20:ZyC18OB4xUallWtsFKzJtsIv3V1/aw1HuLIHqFWaUVE+x8kKXioyNQUvvwfqWWNtiCFiPf/yXF+2EP5BcDBRrQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2015 08:02:56.4906 (UTC) X-MS-Exchange-CrossTenant-Id: fde4dada-be84-483f-92cc-e026cbee8e96 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fde4dada-be84-483f-92cc-e026cbee8e96;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0201MB1475 X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1585;2:3fREy5HTTG6a+e8U4u5GDz5kp1uYjdYeJsRUgCbqhoOGh9F3E+n3DvI/WvmFLUgDd3avoXRBchLgALjCTQvK5EyRJGAh9KwsSpISbsLFOzJnweGJoVLZKDGvyakLXKeqAvawq3+rlQqJAPjM9EEcVCOFTYXs6wMs7C5AQzPtTrQ=;3:OGPuzhyjaXYFfyrEQFTe6/yJl1XMiXnFK+ch2Cl8Pj29hTbZRlZBwq8gFeM6vtWIGnKTssRbvoEDIW3odcBFoYXPFa0d8aPvJI4zVx9uG0mkjv322L5vlvqyJxxVg1K7JQFuUmZBY2VkW7GoC7sONzjwTZ9UBUNaDlVmZgHV1qDBHg1mNNQkFNNBeJI6apMg/lCWSzf5hVNkyRh+3J7alwd9H6yFzqMpjFruKb4Z4PKXBb3WoTMrg7vTXj2gjFIe;25:NGKcp2yLhs3scYu5wcqvIIO9o1tHMz+DU2G9gTxcNcB+T9ZkudliDxGbntPu2LM2KmGmqFJbgENPPnM4/5BaOaJMJ6V6jV6/FUD0Quy4226Fqb8iw1yJMt399PmQZOkvQpjYEr+q3dwKilyCx0hZv2QR7I55GfRKEyZRr64Lz4DeTNz2VJZIJnU1jW8CPoSwBETl00KTAP0KYQ51dVPPvm110VVptBgcnqpxleZPdfuBnBDQQGodbKnjjNh2ETNWzg9LlCznc4fUz7ptsxn5lw== X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1585;23:Dl9fWG45KqFw9aqgnQ/htpxXqS8okyH5f1a2RnPek+wfN8QAYcvbGKtwmlK3R4de0Ay7XYlyQslxuySTGYwOdACSA5GJR8VvyVG+WsMnV9tLq18LoCkuLmJcRmII1lyG0gLDFK6CzSDf14LugPu1J5tCHP0fLW/90G5IGy0hGWQDy2wVT8yjb7/8F09OTkc40loPcgebXELEnYMgRucN7LVx0eU6yqm8mc7vwsTlKgAYZMtjbY1/Hg+D0jGJ+kkP X-OriginatorOrg: amd.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3933 Lines: 125 Hi Marc, On 8/4/15 21:04, Marc Zyngier wrote: > On 29/07/15 11:08, Hanjun Guo wrote: >> From: Suravee Suthikulpanit >> >> This patch introduces pci_host_bridge_acpi_msi_domain(), which queries >> a GIC MSI irq-domain token and use it to retrieve an irq_domain with >> DOMAIN_BUS_PCI_MSI bus type, and bind it to PCI host-bridge. >> >> Signed-off-by: Suravee Suthikulpanit >> Signed-off-by: Hanjun Guo >> --- >> drivers/pci/pci-acpi.c | 18 ++++++++++++++++++ >> drivers/pci/probe.c | 3 +++ >> include/linux/pci-acpi.h | 4 ++++ >> 3 files changed, 25 insertions(+) >> >> diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c >> index 314a625..5f11653 100644 >> --- a/drivers/pci/pci-acpi.c >> +++ b/drivers/pci/pci-acpi.c >> @@ -9,6 +9,7 @@ >> >> #include >> #include >> +#include >> #include >> #include >> #include >> @@ -16,6 +17,7 @@ >> #include >> #include >> #include >> +#include >> #include "pci.h" >> >> /* >> @@ -681,6 +683,22 @@ static bool pci_acpi_bus_match(struct device *dev) >> return dev_is_pci(dev); >> } >> >> +#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN >> +struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) >> +{ >> + struct irq_domain *d = NULL; >> + void *token = acpi_gic_get_msi_token(&bus->dev); > > Do you see why I positively *hate* having hardware details in generic > layers? They propagate everywhere... > >> + >> + if (token) >> + d = irq_find_matching_host(token, DOMAIN_BUS_PCI_MSI); >> + >> + if (!d) >> + pr_debug("Fail to find domain for MSI\n"); >> + >> + return d; >> +} >> +#endif /*CONFIG_GENERIC_MSI_IRQ_DOMAIN*/ >> + >> static struct acpi_bus_type acpi_pci_bus = { >> .name = "PCI", >> .match = pci_acpi_bus_match, >> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c >> index a7afeac..8c1204c 100644 >> --- a/drivers/pci/probe.c >> +++ b/drivers/pci/probe.c >> @@ -12,6 +12,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include "pci.h" >> >> @@ -670,6 +671,8 @@ static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus) >> * should be called from here. >> */ >> d = pci_host_bridge_of_msi_domain(bus); >> + if (!d) >> + d = pci_host_bridge_acpi_msi_domain(bus); >> >> return d; >> } >> diff --git a/include/linux/pci-acpi.h b/include/linux/pci-acpi.h >> index a965efa..766d045 100644 >> --- a/include/linux/pci-acpi.h >> +++ b/include/linux/pci-acpi.h >> @@ -77,6 +77,8 @@ static inline void acpiphp_remove_slots(struct pci_bus *bus) { } >> static inline void acpiphp_check_host_bridge(struct acpi_device *adev) { } >> #endif >> >> +struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus); >> + >> extern const u8 pci_acpi_dsm_uuid[]; >> #define DEVICE_LABEL_DSM 0x07 >> #define RESET_DELAY_DSM 0x08 >> @@ -85,6 +87,8 @@ extern const u8 pci_acpi_dsm_uuid[]; >> #else /* CONFIG_ACPI */ >> static inline void acpi_pci_add_bus(struct pci_bus *bus) { } >> static inline void acpi_pci_remove_bus(struct pci_bus *bus) { } >> +static inline struct irq_domain * >> +pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) { return NULL; } >> #endif /* CONFIG_ACPI */ >> >> #ifdef CONFIG_ACPI_APEI >> > > Once you solve the HW abstraction issue, this will be OK. > > Thanks, > > M. > Ok. Thanks, Suravee -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/