Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dmaengine: stm32-mdma: Use bitfield helpers

Use the FIELD_{GET,PREP}() helpers, instead of defining custom macros
implementing the same operations.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/36ceab242a594233dc7dc6f1dddb4ac32d1e846f.1637593297.git.geert+renesas@glider.be
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Geert Uytterhoeven and committed by
Vinod Koul
de8f2c05 d697e831

+23 -51
+23 -51
drivers/dma/stm32-mdma.c
··· 10 10 * Inspired by stm32-dma.c and dma-jz4780.c 11 11 */ 12 12 13 + #include <linux/bitfield.h> 13 14 #include <linux/clk.h> 14 15 #include <linux/delay.h> 15 16 #include <linux/dmaengine.h> ··· 32 31 #include <linux/slab.h> 33 32 34 33 #include "virt-dma.h" 35 - 36 - /* MDMA Generic getter/setter */ 37 - #define STM32_MDMA_SHIFT(n) (ffs(n) - 1) 38 - #define STM32_MDMA_SET(n, mask) (((n) << STM32_MDMA_SHIFT(mask)) & \ 39 - (mask)) 40 - #define STM32_MDMA_GET(n, mask) (((n) & (mask)) >> \ 41 - STM32_MDMA_SHIFT(mask)) 42 34 43 35 #define STM32_MDMA_GISR0 0x0000 /* MDMA Int Status Reg 1 */ 44 36 #define STM32_MDMA_GISR1 0x0004 /* MDMA Int Status Reg 2 */ ··· 74 80 #define STM32_MDMA_CCR_HEX BIT(13) 75 81 #define STM32_MDMA_CCR_BEX BIT(12) 76 82 #define STM32_MDMA_CCR_PL_MASK GENMASK(7, 6) 77 - #define STM32_MDMA_CCR_PL(n) STM32_MDMA_SET(n, \ 78 - STM32_MDMA_CCR_PL_MASK) 83 + #define STM32_MDMA_CCR_PL(n) FIELD_PREP(STM32_MDMA_CCR_PL_MASK, (n)) 79 84 #define STM32_MDMA_CCR_TCIE BIT(5) 80 85 #define STM32_MDMA_CCR_BTIE BIT(4) 81 86 #define STM32_MDMA_CCR_BRTIE BIT(3) ··· 92 99 #define STM32_MDMA_CTCR_BWM BIT(31) 93 100 #define STM32_MDMA_CTCR_SWRM BIT(30) 94 101 #define STM32_MDMA_CTCR_TRGM_MSK GENMASK(29, 28) 95 - #define STM32_MDMA_CTCR_TRGM(n) STM32_MDMA_SET((n), \ 96 - STM32_MDMA_CTCR_TRGM_MSK) 97 - #define STM32_MDMA_CTCR_TRGM_GET(n) STM32_MDMA_GET((n), \ 98 - STM32_MDMA_CTCR_TRGM_MSK) 102 + #define STM32_MDMA_CTCR_TRGM(n) FIELD_PREP(STM32_MDMA_CTCR_TRGM_MSK, (n)) 103 + #define STM32_MDMA_CTCR_TRGM_GET(n) FIELD_GET(STM32_MDMA_CTCR_TRGM_MSK, (n)) 99 104 #define STM32_MDMA_CTCR_PAM_MASK GENMASK(27, 26) 100 - #define STM32_MDMA_CTCR_PAM(n) STM32_MDMA_SET(n, \ 101 - STM32_MDMA_CTCR_PAM_MASK) 105 + #define STM32_MDMA_CTCR_PAM(n) FIELD_PREP(STM32_MDMA_CTCR_PAM_MASK, (n)) 102 106 #define STM32_MDMA_CTCR_PKE BIT(25) 103 107 #define STM32_MDMA_CTCR_TLEN_MSK GENMASK(24, 18) 104 - #define STM32_MDMA_CTCR_TLEN(n) STM32_MDMA_SET((n), \ 105 - STM32_MDMA_CTCR_TLEN_MSK) 106 - #define STM32_MDMA_CTCR_TLEN_GET(n) STM32_MDMA_GET((n), \ 107 - STM32_MDMA_CTCR_TLEN_MSK) 108 + #define STM32_MDMA_CTCR_TLEN(n) FIELD_PREP(STM32_MDMA_CTCR_TLEN_MSK, (n)) 109 + #define STM32_MDMA_CTCR_TLEN_GET(n) FIELD_GET(STM32_MDMA_CTCR_TLEN_MSK, (n)) 108 110 #define STM32_MDMA_CTCR_LEN2_MSK GENMASK(25, 18) 109 - #define STM32_MDMA_CTCR_LEN2(n) STM32_MDMA_SET((n), \ 110 - STM32_MDMA_CTCR_LEN2_MSK) 111 - #define STM32_MDMA_CTCR_LEN2_GET(n) STM32_MDMA_GET((n), \ 112 - STM32_MDMA_CTCR_LEN2_MSK) 111 + #define STM32_MDMA_CTCR_LEN2(n) FIELD_PREP(STM32_MDMA_CTCR_LEN2_MSK, (n)) 112 + #define STM32_MDMA_CTCR_LEN2_GET(n) FIELD_GET(STM32_MDMA_CTCR_LEN2_MSK, (n)) 113 113 #define STM32_MDMA_CTCR_DBURST_MASK GENMASK(17, 15) 114 - #define STM32_MDMA_CTCR_DBURST(n) STM32_MDMA_SET(n, \ 115 - STM32_MDMA_CTCR_DBURST_MASK) 114 + #define STM32_MDMA_CTCR_DBURST(n) FIELD_PREP(STM32_MDMA_CTCR_DBURST_MASK, (n)) 116 115 #define STM32_MDMA_CTCR_SBURST_MASK GENMASK(14, 12) 117 - #define STM32_MDMA_CTCR_SBURST(n) STM32_MDMA_SET(n, \ 118 - STM32_MDMA_CTCR_SBURST_MASK) 116 + #define STM32_MDMA_CTCR_SBURST(n) FIELD_PREP(STM32_MDMA_CTCR_SBURST_MASK, (n)) 119 117 #define STM32_MDMA_CTCR_DINCOS_MASK GENMASK(11, 10) 120 - #define STM32_MDMA_CTCR_DINCOS(n) STM32_MDMA_SET((n), \ 121 - STM32_MDMA_CTCR_DINCOS_MASK) 118 + #define STM32_MDMA_CTCR_DINCOS(n) FIELD_PREP(STM32_MDMA_CTCR_DINCOS_MASK, (n)) 122 119 #define STM32_MDMA_CTCR_SINCOS_MASK GENMASK(9, 8) 123 - #define STM32_MDMA_CTCR_SINCOS(n) STM32_MDMA_SET((n), \ 124 - STM32_MDMA_CTCR_SINCOS_MASK) 120 + #define STM32_MDMA_CTCR_SINCOS(n) FIELD_PREP(STM32_MDMA_CTCR_SINCOS_MASK, (n)) 125 121 #define STM32_MDMA_CTCR_DSIZE_MASK GENMASK(7, 6) 126 - #define STM32_MDMA_CTCR_DSIZE(n) STM32_MDMA_SET(n, \ 127 - STM32_MDMA_CTCR_DSIZE_MASK) 122 + #define STM32_MDMA_CTCR_DSIZE(n) FIELD_PREP(STM32_MDMA_CTCR_DSIZE_MASK, (n)) 128 123 #define STM32_MDMA_CTCR_SSIZE_MASK GENMASK(5, 4) 129 - #define STM32_MDMA_CTCR_SSIZE(n) STM32_MDMA_SET(n, \ 130 - STM32_MDMA_CTCR_SSIZE_MASK) 124 + #define STM32_MDMA_CTCR_SSIZE(n) FIELD_PREP(STM32_MDMA_CTCR_SSIZE_MASK, (n)) 131 125 #define STM32_MDMA_CTCR_DINC_MASK GENMASK(3, 2) 132 - #define STM32_MDMA_CTCR_DINC(n) STM32_MDMA_SET((n), \ 133 - STM32_MDMA_CTCR_DINC_MASK) 126 + #define STM32_MDMA_CTCR_DINC(n) FIELD_PREP(STM32_MDMA_CTCR_DINC_MASK, (n)) 134 127 #define STM32_MDMA_CTCR_SINC_MASK GENMASK(1, 0) 135 - #define STM32_MDMA_CTCR_SINC(n) STM32_MDMA_SET((n), \ 136 - STM32_MDMA_CTCR_SINC_MASK) 128 + #define STM32_MDMA_CTCR_SINC(n) FIELD_PREP(STM32_MDMA_CTCR_SINC_MASK, (n)) 137 129 #define STM32_MDMA_CTCR_CFG_MASK (STM32_MDMA_CTCR_SINC_MASK \ 138 130 | STM32_MDMA_CTCR_DINC_MASK \ 139 131 | STM32_MDMA_CTCR_SINCOS_MASK \ ··· 129 151 /* MDMA Channel x block number of data register */ 130 152 #define STM32_MDMA_CBNDTR(x) (0x54 + 0x40 * (x)) 131 153 #define STM32_MDMA_CBNDTR_BRC_MK GENMASK(31, 20) 132 - #define STM32_MDMA_CBNDTR_BRC(n) STM32_MDMA_SET(n, \ 133 - STM32_MDMA_CBNDTR_BRC_MK) 134 - #define STM32_MDMA_CBNDTR_BRC_GET(n) STM32_MDMA_GET((n), \ 135 - STM32_MDMA_CBNDTR_BRC_MK) 154 + #define STM32_MDMA_CBNDTR_BRC(n) FIELD_PREP(STM32_MDMA_CBNDTR_BRC_MK, (n)) 155 + #define STM32_MDMA_CBNDTR_BRC_GET(n) FIELD_GET(STM32_MDMA_CBNDTR_BRC_MK, (n)) 136 156 137 157 #define STM32_MDMA_CBNDTR_BRDUM BIT(19) 138 158 #define STM32_MDMA_CBNDTR_BRSUM BIT(18) 139 159 #define STM32_MDMA_CBNDTR_BNDT_MASK GENMASK(16, 0) 140 - #define STM32_MDMA_CBNDTR_BNDT(n) STM32_MDMA_SET(n, \ 141 - STM32_MDMA_CBNDTR_BNDT_MASK) 160 + #define STM32_MDMA_CBNDTR_BNDT(n) FIELD_PREP(STM32_MDMA_CBNDTR_BNDT_MASK, (n)) 142 161 143 162 /* MDMA Channel x source address register */ 144 163 #define STM32_MDMA_CSAR(x) (0x58 + 0x40 * (x)) ··· 146 171 /* MDMA Channel x block repeat address update register */ 147 172 #define STM32_MDMA_CBRUR(x) (0x60 + 0x40 * (x)) 148 173 #define STM32_MDMA_CBRUR_DUV_MASK GENMASK(31, 16) 149 - #define STM32_MDMA_CBRUR_DUV(n) STM32_MDMA_SET(n, \ 150 - STM32_MDMA_CBRUR_DUV_MASK) 174 + #define STM32_MDMA_CBRUR_DUV(n) FIELD_PREP(STM32_MDMA_CBRUR_DUV_MASK, (n)) 151 175 #define STM32_MDMA_CBRUR_SUV_MASK GENMASK(15, 0) 152 - #define STM32_MDMA_CBRUR_SUV(n) STM32_MDMA_SET(n, \ 153 - STM32_MDMA_CBRUR_SUV_MASK) 176 + #define STM32_MDMA_CBRUR_SUV(n) FIELD_PREP(STM32_MDMA_CBRUR_SUV_MASK, (n)) 154 177 155 178 /* MDMA Channel x link address register */ 156 179 #define STM32_MDMA_CLAR(x) (0x64 + 0x40 * (x)) ··· 158 185 #define STM32_MDMA_CTBR_DBUS BIT(17) 159 186 #define STM32_MDMA_CTBR_SBUS BIT(16) 160 187 #define STM32_MDMA_CTBR_TSEL_MASK GENMASK(7, 0) 161 - #define STM32_MDMA_CTBR_TSEL(n) STM32_MDMA_SET(n, \ 162 - STM32_MDMA_CTBR_TSEL_MASK) 188 + #define STM32_MDMA_CTBR_TSEL(n) FIELD_PREP(STM32_MDMA_CTBR_TSEL_MASK, (n)) 163 189 164 190 /* MDMA Channel x mask address register */ 165 191 #define STM32_MDMA_CMAR(x) (0x70 + 0x40 * (x))