From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marc Zyngier Subject: Re: Defining polarity and trigger mode for static interrupts in _PRT Date: Wed, 24 Aug 2016 16:26:41 +0100 Message-ID: <20160824162641.06a9438a@arm.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: Received: from foss.arm.com ([217.140.101.70]:49743 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932339AbcHXP0o (ORCPT ); Wed, 24 Aug 2016 11:26:44 -0400 In-Reply-To: Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: Duc Dang Cc: Lorenzo Pieralisi , Rafael Wysocki , linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, patches On Wed, 24 Aug 2016 04:06:13 -0700 Duc Dang wrote: > [Resend in plain text mode] > > Hi Lorenzo, Rafael, > > ACPI 6.1 spec does not specify how to set interrupt polarity and > trigger mode in _PRT when the interrupts are static (hardwired to > specific interrupt inputs in interrupt controller). In current > acpi_pci_irq_enable (drivers/acpi/pci_irq.c) implementation, by > default the trigger mode is set to LEVEL_SENSITIVE, polarity is set to > ACTIVE_LOW. This default setting won't work for ARM64 GICv2, GICv2m, > GICv3 controllers and will cause failures in PCIe AER, PME services > (on X-Gene platforms). > > Is there any way to specify polarity and trigger mode for static > interrupts in _PRT? If not, can we introduce a _weak_ hook to specify > default polarity and trigger mode for for ARM64 PCIe INTx in > drivers/acpi/pci_irq.c? A weak symbol is going to affect all arm64 platforms, which then would need to be quirked accordingly depending on the PCIe controller being used. This feels very cumbersome, and probably unmaintainable in the long run. I'd rather explore Lorenzo's option of using interrupt links to describe this. Thanks, M. -- Jazz is not dead. It just smells funny. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 24 Aug 2016 16:26:41 +0100 From: Marc Zyngier To: Duc Dang Cc: Lorenzo Pieralisi , Rafael Wysocki , , , patches Subject: Re: Defining polarity and trigger mode for static interrupts in _PRT Message-ID: <20160824162641.06a9438a@arm.com> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-acpi-owner@vger.kernel.org List-ID: On Wed, 24 Aug 2016 04:06:13 -0700 Duc Dang wrote: > [Resend in plain text mode] > > Hi Lorenzo, Rafael, > > ACPI 6.1 spec does not specify how to set interrupt polarity and > trigger mode in _PRT when the interrupts are static (hardwired to > specific interrupt inputs in interrupt controller). In current > acpi_pci_irq_enable (drivers/acpi/pci_irq.c) implementation, by > default the trigger mode is set to LEVEL_SENSITIVE, polarity is set to > ACTIVE_LOW. This default setting won't work for ARM64 GICv2, GICv2m, > GICv3 controllers and will cause failures in PCIe AER, PME services > (on X-Gene platforms). > > Is there any way to specify polarity and trigger mode for static > interrupts in _PRT? If not, can we introduce a _weak_ hook to specify > default polarity and trigger mode for for ARM64 PCIe INTx in > drivers/acpi/pci_irq.c? A weak symbol is going to affect all arm64 platforms, which then would need to be quirked accordingly depending on the PCIe controller being used. This feels very cumbersome, and probably unmaintainable in the long run. I'd rather explore Lorenzo's option of using interrupt links to describe this. Thanks, M. -- Jazz is not dead. It just smells funny.