mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-18 02:06:49 +07:00
dmaengine: acpi: Set up DMA mask based on CSRT
CSRT has an information about address width, which is supported by the certain DMA controller. Use information from CSRT to set up DMA mask for shared controller. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20190820131546.75744-2-andriy.shevchenko@linux.intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
d071fd294f
commit
a6bc332373
@ -10,6 +10,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
@ -82,6 +83,12 @@ static int acpi_dma_parse_resource_group(const struct acpi_csrt_group *grp,
|
||||
if (si->base_request_line == 0 && si->num_handshake_signals == 0)
|
||||
return 0;
|
||||
|
||||
/* Set up DMA mask based on value from CSRT */
|
||||
ret = dma_coerce_mask_and_coherent(&adev->dev,
|
||||
DMA_BIT_MASK(si->dma_address_width));
|
||||
if (ret)
|
||||
return 0;
|
||||
|
||||
adma->base_request_line = si->base_request_line;
|
||||
adma->end_request_line = si->base_request_line +
|
||||
si->num_handshake_signals - 1;
|
||||
|
Loading…
Reference in New Issue
Block a user