]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: tangier: Fix off-by-one error when preparing CSRT
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 29 Aug 2019 14:04:20 +0000 (17:04 +0300)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 10 Sep 2019 08:19:03 +0000 (16:19 +0800)
Intel iDMA 32-bit controller has 17 bits for the maximum block size value.
Due to nature of the binary number representation the maximum value is
2^17 - 1. The original code misses the latter part in equation.

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>
arch/x86/cpu/tangier/acpi.c

index 362e133cf14858d5f73bbba868fdcf2dccdbfd57..8b128138b0d866dbda9a229c35280d00f381b935 100644 (file)
@@ -95,7 +95,7 @@ static u32 acpi_fill_csrt_dma(struct acpi_csrt_group *grp)
        si->dma_address_width = 32;
        si->base_request_line = 0;
        si->num_handshake_signals = 16;
-       si->max_block_size = 0x20000;
+       si->max_block_size = 0x1ffff;
 
        return grp->length;
 }