| From 6c6381ff4d66d31c9c5fc1a64bb30a35fc7913cd Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 7 Oct 2021 14:12:28 +0300 |
| Subject: dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro |
| |
| From: Claudiu Beznea <claudiu.beznea@microchip.com> |
| |
| [ Upstream commit 320c88a3104dc955f928a1eecebd551ff89530c0 ] |
| |
| AT_XDMAC_CC_PERID() should be used to setup bits 24..30 of XDMAC_CC |
| register. Using it without parenthesis around 0x7f & (i) will lead to |
| setting all the time zero for bits 24..30 of XDMAC_CC as the << operator |
| has higher precedence over bitwise &. Thus, add paranthesis around |
| 0x7f & (i). |
| |
| Fixes: 15a03850ab8f ("dmaengine: at_xdmac: fix macro typo") |
| Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> |
| Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com> |
| Link: https://lore.kernel.org/r/20211007111230.2331837-3-claudiu.beznea@microchip.com |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/dma/at_xdmac.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c |
| index b58ac720d9a12..6f1e97ba3e786 100644 |
| --- a/drivers/dma/at_xdmac.c |
| +++ b/drivers/dma/at_xdmac.c |
| @@ -145,7 +145,7 @@ |
| #define AT_XDMAC_CC_WRIP (0x1 << 23) /* Write in Progress (read only) */ |
| #define AT_XDMAC_CC_WRIP_DONE (0x0 << 23) |
| #define AT_XDMAC_CC_WRIP_IN_PROGRESS (0x1 << 23) |
| -#define AT_XDMAC_CC_PERID(i) (0x7f & (i) << 24) /* Channel Peripheral Identifier */ |
| +#define AT_XDMAC_CC_PERID(i) ((0x7f & (i)) << 24) /* Channel Peripheral Identifier */ |
| #define AT_XDMAC_CDS_MSP 0x2C /* Channel Data Stride Memory Set Pattern */ |
| #define AT_XDMAC_CSUS 0x30 /* Channel Source Microblock Stride */ |
| #define AT_XDMAC_CDUS 0x34 /* Channel Destination Microblock Stride */ |
| -- |
| 2.33.0 |
| |