diff --git a/firmware/target/arm/imx233/dma-imx233.c b/firmware/target/arm/imx233/dma-imx233.c index eba41958a9..97001210d2 100644 --- a/firmware/target/arm/imx233/dma-imx233.c +++ b/firmware/target/arm/imx233/dma-imx233.c @@ -28,8 +28,8 @@ void imx233_dma_init(void) { /* Enable APHB and APBX */ - __REG_CLR(HW_APBH_CTRL0) = __BLOCK_CLKGATE | __BLOCK_SFTRST; - __REG_CLR(HW_APBX_CTRL0) = __BLOCK_CLKGATE | __BLOCK_SFTRST; + imx233_reset_block(&HW_APBH_CTRL0); + imx233_reset_block(&HW_APBX_CTRL0); } void imx233_dma_reset_channel(unsigned chan) diff --git a/firmware/target/arm/imx233/dma-imx233.h b/firmware/target/arm/imx233/dma-imx233.h index bb88a746d0..c0727a51e1 100644 --- a/firmware/target/arm/imx233/dma-imx233.h +++ b/firmware/target/arm/imx233/dma-imx233.h @@ -152,6 +152,9 @@ struct apb_dma_command_t #define HW_APB_CHx_SEMA__PHORE_BM 0xff0000 #define HW_APB_CHx_SEMA__PHORE_BP 16 +/* A single descriptor cannot transfer more than 2^16 bytes */ +#define IMX233_MAX_SINGLE_DMA_XFER_SIZE (1 << 16) + void imx233_dma_init(void); void imx233_dma_reset_channel(unsigned chan); /* only apbh channel have clkgate control */