diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2015-11-17 13:37:08 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2015-12-05 13:54:28 +0530 |
commit | e3fdb1894cfac6dd4a5bb24d3232fd97ddf74c93 (patch) | |
tree | 8916c7ada04d6831f6a75dde70aa98885ed35c7a | |
parent | 37580559f314bfba0c8bdae002bc5c10088ac457 (diff) |
dmaengine: idma64: set maximum allowed segment size for DMA
This tells, for example, IOMMU what the maximum size of a segment
the DMA controller can send.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r-- | drivers/dma/idma64.c | 2 | ||||
-rw-r--r-- | drivers/dma/idma64.h | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c index 6bba0907c263..97802be31588 100644 --- a/drivers/dma/idma64.c +++ b/drivers/dma/idma64.c @@ -588,6 +588,8 @@ static int idma64_probe(struct idma64_chip *chip) idma64->dma.dev = chip->dev; + dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK); + ret = dma_async_device_register(&idma64->dma); if (ret) return ret; diff --git a/drivers/dma/idma64.h b/drivers/dma/idma64.h index f6aeff0af8a5..8423f13ed0da 100644 --- a/drivers/dma/idma64.h +++ b/drivers/dma/idma64.h @@ -54,7 +54,8 @@ #define IDMA64C_CTLL_LLP_S_EN (1 << 28) /* src block chain */ /* Bitfields in CTL_HI */ -#define IDMA64C_CTLH_BLOCK_TS(x) ((x) & ((1 << 17) - 1)) +#define IDMA64C_CTLH_BLOCK_TS_MASK ((1 << 17) - 1) +#define IDMA64C_CTLH_BLOCK_TS(x) ((x) & IDMA64C_CTLH_BLOCK_TS_MASK) #define IDMA64C_CTLH_DONE (1 << 17) /* Bitfields in CFG_LO */ |