]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: tangier: Fix DMA controller IRQ polarity in CSRT
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 30 Jul 2021 20:15:44 +0000 (23:15 +0300)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 2 Aug 2021 07:11:40 +0000 (15:11 +0800)
IRQ polarity in CSRT has the same definition as by ACPI specification
chapter 19.6.64 "Interrupt (Interrupt Resource Descriptor Macro)", i.e.
ActiveHigh is 0, and ActiveLow is 1. On Intel Tangier the DMA controller
IRQ polarity is ActiveHigh.

Note, in DSDT (see southcluster.asl) it's described correctly.

Fixes: 5e99fde34a77 ("x86: tangier: Populate CSRT for shared DMA controller")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/tangier/acpi.c

index 41bd177e095f5613ea0a329be94449b8ba23151c..82f4ce5a34a40e1180b8e5f7f1c8fdd2de237abc 100644 (file)
@@ -89,8 +89,8 @@ static u32 acpi_fill_csrt_dma(struct acpi_csrt_group *grp)
        si->mmio_base_low = 0xff192000;
        si->mmio_base_high = 0;
        si->gsi_interrupt = 32;
-       si->interrupt_polarity = 1;
-       si->interrupt_mode = 0;
+       si->interrupt_polarity = 0;     /* Active High */
+       si->interrupt_mode = 0;         /* Level triggered */
        si->num_channels = 8;
        si->dma_address_width = 32;
        si->base_request_line = 0;