ASoC: tlv320aic32x4: Remove filename from header and switch to SPDX
Subsystems (3)
PATCH 1/10 ASoC: tlv320aic32x4: Remove filename from header and switch to SPDX
The filename is often wrong after moves and adds nothing of value, lets drop it. While already here, switch to SPDX.
--- sound/soc/codecs/tlv320aic32x4-i2c.c | 13 +------------ sound/soc/codecs/tlv320aic32x4-spi.c | 13 +------------ sound/soc/codecs/tlv320aic32x4.c | 18 +----------------- sound/soc/codecs/tlv320aic32x4.h | 9 +-------- 4 files changed, 4 insertions(+), 49 deletions(-)
sound/soc/codecs/tlv320aic32x4-i2c.c +1 -12
@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. */ #include <linux/i2c.h>
sound/soc/codecs/tlv320aic32x4-spi.c +1 -12
@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-spi.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. */ #include <linux/spi/spi.h>
sound/soc/codecs/tlv320aic32x4.c +1 -17
@@ -1,26 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4.c -* * Copyright 2011 Vista Silicon S.L. * * Author: Javier Martin <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -* MA 02110-1301, USA. */ #include <linux/module.h>
sound/soc/codecs/tlv320aic32x4.h +1 -8
@@ -1,11 +1,4 @@ -/* -* tlv320aic32x4.h -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ - +// SPDX-License-Identifier: GPL-2.0 #ifndef _TLV320AIC32X4_H#define _TLV320AIC32X4_H
Signature · 1 line
2.15.0
PATCH 2/10 ASoC: tlv320aic32x4: Use AIC32X4_REG macro for all register definitions
All register definitions should use the AIC32X4_REG macro, even the ones in page 0. This makes datasheet lookup more consistent and helps with alignment both in this file and across other tlv320aic* drivers.
--- sound/soc/codecs/tlv320aic32x4.h | 152 ++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 75 deletions(-)
sound/soc/codecs/tlv320aic32x4.h +77 -75
@@ -12,81 +12,83 @@ int aic32x4_remove(struct device *dev);/* tlv320aic32x4 register space (in decimal to match datasheet) */ -#define AIC32X4_PAGE1 128 - -#define AIC32X4_PSEL 0 -#define AIC32X4_RESET 1 -#define AIC32X4_CLKMUX 4 -#define AIC32X4_PLLPR 5 -#define AIC32X4_PLLJ 6 -#define AIC32X4_PLLDMSB 7 -#define AIC32X4_PLLDLSB 8 -#define AIC32X4_NDAC 11 -#define AIC32X4_MDAC 12 -#define AIC32X4_DOSRMSB 13 -#define AIC32X4_DOSRLSB 14 -#define AIC32X4_NADC 18 -#define AIC32X4_MADC 19 -#define AIC32X4_AOSR 20 -#define AIC32X4_CLKMUX2 25 -#define AIC32X4_CLKOUTM 26 -#define AIC32X4_IFACE1 27 -#define AIC32X4_IFACE2 28 -#define AIC32X4_IFACE3 29 -#define AIC32X4_BCLKN 30 -#define AIC32X4_IFACE4 31 -#define AIC32X4_IFACE5 32 -#define AIC32X4_IFACE6 33 -#define AIC32X4_GPIOCTL 52 -#define AIC32X4_DOUTCTL 53 -#define AIC32X4_DINCTL 54 -#define AIC32X4_MISOCTL 55 -#define AIC32X4_SCLKCTL 56 -#define AIC32X4_DACSPB 60 -#define AIC32X4_ADCSPB 61 -#define AIC32X4_DACSETUP 63 -#define AIC32X4_DACMUTE 64 -#define AIC32X4_LDACVOL 65 -#define AIC32X4_RDACVOL 66 -#define AIC32X4_ADCSETUP 81 -#define AIC32X4_ADCFGA 82 -#define AIC32X4_LADCVOL 83 -#define AIC32X4_RADCVOL 84 -#define AIC32X4_LAGC1 86 -#define AIC32X4_LAGC2 87 -#define AIC32X4_LAGC3 88 -#define AIC32X4_LAGC4 89 -#define AIC32X4_LAGC5 90 -#define AIC32X4_LAGC6 91 -#define AIC32X4_LAGC7 92 -#define AIC32X4_RAGC1 94 -#define AIC32X4_RAGC2 95 -#define AIC32X4_RAGC3 96 -#define AIC32X4_RAGC4 97 -#define AIC32X4_RAGC5 98 -#define AIC32X4_RAGC6 99 -#define AIC32X4_RAGC7 100 -#define AIC32X4_PWRCFG (AIC32X4_PAGE1 + 1) -#define AIC32X4_LDOCTL (AIC32X4_PAGE1 + 2) -#define AIC32X4_OUTPWRCTL (AIC32X4_PAGE1 + 9) -#define AIC32X4_CMMODE (AIC32X4_PAGE1 + 10) -#define AIC32X4_HPLROUTE (AIC32X4_PAGE1 + 12) -#define AIC32X4_HPRROUTE (AIC32X4_PAGE1 + 13) -#define AIC32X4_LOLROUTE (AIC32X4_PAGE1 + 14) -#define AIC32X4_LORROUTE (AIC32X4_PAGE1 + 15) -#define AIC32X4_HPLGAIN (AIC32X4_PAGE1 + 16) -#define AIC32X4_HPRGAIN (AIC32X4_PAGE1 + 17) -#define AIC32X4_LOLGAIN (AIC32X4_PAGE1 + 18) -#define AIC32X4_LORGAIN (AIC32X4_PAGE1 + 19) -#define AIC32X4_HEADSTART (AIC32X4_PAGE1 + 20) -#define AIC32X4_MICBIAS (AIC32X4_PAGE1 + 51) -#define AIC32X4_LMICPGAPIN (AIC32X4_PAGE1 + 52) -#define AIC32X4_LMICPGANIN (AIC32X4_PAGE1 + 54) -#define AIC32X4_RMICPGAPIN (AIC32X4_PAGE1 + 55) -#define AIC32X4_RMICPGANIN (AIC32X4_PAGE1 + 57) -#define AIC32X4_FLOATINGINPUT (AIC32X4_PAGE1 + 58) -#define AIC32X4_LMICPGAVOL (AIC32X4_PAGE1 + 59) -#define AIC32X4_RMICPGAVOL (AIC32X4_PAGE1 + 60) +#define AIC32X4_REG (page, reg) ((page * 128) + reg) + +#define AIC32X4_PSEL AIC32X4_REG(0, 0) + +#define AIC32X4_RESET AIC32X4_REG(0, 1) +#define AIC32X4_CLKMUX AIC32X4_REG(0, 4) +#define AIC32X4_PLLPR AIC32X4_REG(0, 5) +#define AIC32X4_PLLJ AIC32X4_REG(0, 6) +#define AIC32X4_PLLDMSB AIC32X4_REG(0, 7) +#define AIC32X4_PLLDLSB AIC32X4_REG(0, 8) +#define AIC32X4_NDAC AIC32X4_REG(0, 11) +#define AIC32X4_MDAC AIC32X4_REG(0, 12) +#define AIC32X4_DOSRMSB AIC32X4_REG(0, 13) +#define AIC32X4_DOSRLSB AIC32X4_REG(0, 14) +#define AIC32X4_NADC AIC32X4_REG(0, 18) +#define AIC32X4_MADC AIC32X4_REG(0, 19) +#define AIC32X4_AOSR AIC32X4_REG(0, 20) +#define AIC32X4_CLKMUX2 AIC32X4_REG(0, 25) +#define AIC32X4_CLKOUTM AIC32X4_REG(0, 26) +#define AIC32X4_IFACE1 AIC32X4_REG(0, 27) +#define AIC32X4_IFACE2 AIC32X4_REG(0, 28) +#define AIC32X4_IFACE3 AIC32X4_REG(0, 29) +#define AIC32X4_BCLKN AIC32X4_REG(0, 30) +#define AIC32X4_IFACE4 AIC32X4_REG(0, 31) +#define AIC32X4_IFACE5 AIC32X4_REG(0, 32) +#define AIC32X4_IFACE6 AIC32X4_REG(0, 33) +#define AIC32X4_GPIOCTL AIC32X4_REG(0, 52) +#define AIC32X4_DOUTCTL AIC32X4_REG(0, 53) +#define AIC32X4_DINCTL AIC32X4_REG(0, 54) +#define AIC32X4_MISOCTL AIC32X4_REG(0, 55) +#define AIC32X4_SCLKCTL AIC32X4_REG(0, 56) +#define AIC32X4_DACSPB AIC32X4_REG(0, 60) +#define AIC32X4_ADCSPB AIC32X4_REG(0, 61) +#define AIC32X4_DACSETUP AIC32X4_REG(0, 63) +#define AIC32X4_DACMUTE AIC32X4_REG(0, 64) +#define AIC32X4_LDACVOL AIC32X4_REG(0, 65) +#define AIC32X4_RDACVOL AIC32X4_REG(0, 66) +#define AIC32X4_ADCSETUP AIC32X4_REG(0, 81) +#define AIC32X4_ADCFGA AIC32X4_REG(0, 82) +#define AIC32X4_LADCVOL AIC32X4_REG(0, 83) +#define AIC32X4_RADCVOL AIC32X4_REG(0, 84) +#define AIC32X4_LAGC1 AIC32X4_REG(0, 86) +#define AIC32X4_LAGC2 AIC32X4_REG(0, 87) +#define AIC32X4_LAGC3 AIC32X4_REG(0, 88) +#define AIC32X4_LAGC4 AIC32X4_REG(0, 89) +#define AIC32X4_LAGC5 AIC32X4_REG(0, 90) +#define AIC32X4_LAGC6 AIC32X4_REG(0, 91) +#define AIC32X4_LAGC7 AIC32X4_REG(0, 92) +#define AIC32X4_RAGC1 AIC32X4_REG(0, 94) +#define AIC32X4_RAGC2 AIC32X4_REG(0, 95) +#define AIC32X4_RAGC3 AIC32X4_REG(0, 96) +#define AIC32X4_RAGC4 AIC32X4_REG(0, 97) +#define AIC32X4_RAGC5 AIC32X4_REG(0, 98) +#define AIC32X4_RAGC6 AIC32X4_REG(0, 99) +#define AIC32X4_RAGC7 AIC32X4_REG(0, 100) + +#define AIC32X4_PWRCFG AIC32X4_REG(1, 1) +#define AIC32X4_LDOCTL AIC32X4_REG(1, 2) +#define AIC32X4_OUTPWRCTL AIC32X4_REG(1, 9) +#define AIC32X4_CMMODE AIC32X4_REG(1, 10) +#define AIC32X4_HPLROUTE AIC32X4_REG(1, 12) +#define AIC32X4_HPRROUTE AIC32X4_REG(1, 13) +#define AIC32X4_LOLROUTE AIC32X4_REG(1, 14) +#define AIC32X4_LORROUTE AIC32X4_REG(1, 15) +#define AIC32X4_HPLGAIN AIC32X4_REG(1, 16) +#define AIC32X4_HPRGAIN AIC32X4_REG(1, 17) +#define AIC32X4_LOLGAIN AIC32X4_REG(1, 18) +#define AIC32X4_LORGAIN AIC32X4_REG(1, 19) +#define AIC32X4_HEADSTART AIC32X4_REG(1, 20) +#define AIC32X4_MICBIAS AIC32X4_REG(1, 51) +#define AIC32X4_LMICPGAPIN AIC32X4_REG(1, 52) +#define AIC32X4_LMICPGANIN AIC32X4_REG(1, 54) +#define AIC32X4_RMICPGAPIN AIC32X4_REG(1, 55) +#define AIC32X4_RMICPGANIN AIC32X4_REG(1, 57) +#define AIC32X4_FLOATINGINPUT AIC32X4_REG(1, 58) +#define AIC32X4_LMICPGAVOL AIC32X4_REG(1, 59) +#define AIC32X4_RMICPGAVOL AIC32X4_REG(1, 60)#define AIC32X4_FREQ_12000000 12000000#define AIC32X4_FREQ_24000000 24000000
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use AIC32X4_REG macro for all register definitions" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use AIC32X4_REG macro for all register definitions
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
1714196c7ec540292324d9022c43b5f281dbf74cMon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:03 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use AIC32X4_REG macro for all register
definitions
All register definitions should use the AIC32X4_REG macro, even the ones in page 0. This makes datasheet lookup more consistent and helps with alignment both in this file and across other tlv320aic* drivers.
--- sound/soc/codecs/tlv320aic32x4.h | 152 ++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 75 deletions(-)
sound/soc/codecs/tlv320aic32x4.h +77 -75
@@ -19,81 +19,83 @@ int aic32x4_remove(struct device *dev);/* tlv320aic32x4 register space (in decimal to match datasheet) */ -#define AIC32X4_PAGE1 128 - -#define AIC32X4_PSEL 0 -#define AIC32X4_RESET 1 -#define AIC32X4_CLKMUX 4 -#define AIC32X4_PLLPR 5 -#define AIC32X4_PLLJ 6 -#define AIC32X4_PLLDMSB 7 -#define AIC32X4_PLLDLSB 8 -#define AIC32X4_NDAC 11 -#define AIC32X4_MDAC 12 -#define AIC32X4_DOSRMSB 13 -#define AIC32X4_DOSRLSB 14 -#define AIC32X4_NADC 18 -#define AIC32X4_MADC 19 -#define AIC32X4_AOSR 20 -#define AIC32X4_CLKMUX2 25 -#define AIC32X4_CLKOUTM 26 -#define AIC32X4_IFACE1 27 -#define AIC32X4_IFACE2 28 -#define AIC32X4_IFACE3 29 -#define AIC32X4_BCLKN 30 -#define AIC32X4_IFACE4 31 -#define AIC32X4_IFACE5 32 -#define AIC32X4_IFACE6 33 -#define AIC32X4_GPIOCTL 52 -#define AIC32X4_DOUTCTL 53 -#define AIC32X4_DINCTL 54 -#define AIC32X4_MISOCTL 55 -#define AIC32X4_SCLKCTL 56 -#define AIC32X4_DACSPB 60 -#define AIC32X4_ADCSPB 61 -#define AIC32X4_DACSETUP 63 -#define AIC32X4_DACMUTE 64 -#define AIC32X4_LDACVOL 65 -#define AIC32X4_RDACVOL 66 -#define AIC32X4_ADCSETUP 81 -#define AIC32X4_ADCFGA 82 -#define AIC32X4_LADCVOL 83 -#define AIC32X4_RADCVOL 84 -#define AIC32X4_LAGC1 86 -#define AIC32X4_LAGC2 87 -#define AIC32X4_LAGC3 88 -#define AIC32X4_LAGC4 89 -#define AIC32X4_LAGC5 90 -#define AIC32X4_LAGC6 91 -#define AIC32X4_LAGC7 92 -#define AIC32X4_RAGC1 94 -#define AIC32X4_RAGC2 95 -#define AIC32X4_RAGC3 96 -#define AIC32X4_RAGC4 97 -#define AIC32X4_RAGC5 98 -#define AIC32X4_RAGC6 99 -#define AIC32X4_RAGC7 100 -#define AIC32X4_PWRCFG (AIC32X4_PAGE1 + 1) -#define AIC32X4_LDOCTL (AIC32X4_PAGE1 + 2) -#define AIC32X4_OUTPWRCTL (AIC32X4_PAGE1 + 9) -#define AIC32X4_CMMODE (AIC32X4_PAGE1 + 10) -#define AIC32X4_HPLROUTE (AIC32X4_PAGE1 + 12) -#define AIC32X4_HPRROUTE (AIC32X4_PAGE1 + 13) -#define AIC32X4_LOLROUTE (AIC32X4_PAGE1 + 14) -#define AIC32X4_LORROUTE (AIC32X4_PAGE1 + 15) -#define AIC32X4_HPLGAIN (AIC32X4_PAGE1 + 16) -#define AIC32X4_HPRGAIN (AIC32X4_PAGE1 + 17) -#define AIC32X4_LOLGAIN (AIC32X4_PAGE1 + 18) -#define AIC32X4_LORGAIN (AIC32X4_PAGE1 + 19) -#define AIC32X4_HEADSTART (AIC32X4_PAGE1 + 20) -#define AIC32X4_MICBIAS (AIC32X4_PAGE1 + 51) -#define AIC32X4_LMICPGAPIN (AIC32X4_PAGE1 + 52) -#define AIC32X4_LMICPGANIN (AIC32X4_PAGE1 + 54) -#define AIC32X4_RMICPGAPIN (AIC32X4_PAGE1 + 55) -#define AIC32X4_RMICPGANIN (AIC32X4_PAGE1 + 57) -#define AIC32X4_FLOATINGINPUT (AIC32X4_PAGE1 + 58) -#define AIC32X4_LMICPGAVOL (AIC32X4_PAGE1 + 59) -#define AIC32X4_RMICPGAVOL (AIC32X4_PAGE1 + 60) +#define AIC32X4_REG (page, reg) ((page * 128) + reg) + +#define AIC32X4_PSEL AIC32X4_REG(0, 0) + +#define AIC32X4_RESET AIC32X4_REG(0, 1) +#define AIC32X4_CLKMUX AIC32X4_REG(0, 4) +#define AIC32X4_PLLPR AIC32X4_REG(0, 5) +#define AIC32X4_PLLJ AIC32X4_REG(0, 6) +#define AIC32X4_PLLDMSB AIC32X4_REG(0, 7) +#define AIC32X4_PLLDLSB AIC32X4_REG(0, 8) +#define AIC32X4_NDAC AIC32X4_REG(0, 11) +#define AIC32X4_MDAC AIC32X4_REG(0, 12) +#define AIC32X4_DOSRMSB AIC32X4_REG(0, 13) +#define AIC32X4_DOSRLSB AIC32X4_REG(0, 14) +#define AIC32X4_NADC AIC32X4_REG(0, 18) +#define AIC32X4_MADC AIC32X4_REG(0, 19) +#define AIC32X4_AOSR AIC32X4_REG(0, 20) +#define AIC32X4_CLKMUX2 AIC32X4_REG(0, 25) +#define AIC32X4_CLKOUTM AIC32X4_REG(0, 26) +#define AIC32X4_IFACE1 AIC32X4_REG(0, 27) +#define AIC32X4_IFACE2 AIC32X4_REG(0, 28) +#define AIC32X4_IFACE3 AIC32X4_REG(0, 29) +#define AIC32X4_BCLKN AIC32X4_REG(0, 30) +#define AIC32X4_IFACE4 AIC32X4_REG(0, 31) +#define AIC32X4_IFACE5 AIC32X4_REG(0, 32) +#define AIC32X4_IFACE6 AIC32X4_REG(0, 33) +#define AIC32X4_GPIOCTL AIC32X4_REG(0, 52) +#define AIC32X4_DOUTCTL AIC32X4_REG(0, 53) +#define AIC32X4_DINCTL AIC32X4_REG(0, 54) +#define AIC32X4_MISOCTL AIC32X4_REG(0, 55) +#define AIC32X4_SCLKCTL AIC32X4_REG(0, 56) +#define AIC32X4_DACSPB AIC32X4_REG(0, 60) +#define AIC32X4_ADCSPB AIC32X4_REG(0, 61) +#define AIC32X4_DACSETUP AIC32X4_REG(0, 63) +#define AIC32X4_DACMUTE AIC32X4_REG(0, 64) +#define AIC32X4_LDACVOL AIC32X4_REG(0, 65) +#define AIC32X4_RDACVOL AIC32X4_REG(0, 66) +#define AIC32X4_ADCSETUP AIC32X4_REG(0, 81) +#define AIC32X4_ADCFGA AIC32X4_REG(0, 82) +#define AIC32X4_LADCVOL AIC32X4_REG(0, 83) +#define AIC32X4_RADCVOL AIC32X4_REG(0, 84) +#define AIC32X4_LAGC1 AIC32X4_REG(0, 86) +#define AIC32X4_LAGC2 AIC32X4_REG(0, 87) +#define AIC32X4_LAGC3 AIC32X4_REG(0, 88) +#define AIC32X4_LAGC4 AIC32X4_REG(0, 89) +#define AIC32X4_LAGC5 AIC32X4_REG(0, 90) +#define AIC32X4_LAGC6 AIC32X4_REG(0, 91) +#define AIC32X4_LAGC7 AIC32X4_REG(0, 92) +#define AIC32X4_RAGC1 AIC32X4_REG(0, 94) +#define AIC32X4_RAGC2 AIC32X4_REG(0, 95) +#define AIC32X4_RAGC3 AIC32X4_REG(0, 96) +#define AIC32X4_RAGC4 AIC32X4_REG(0, 97) +#define AIC32X4_RAGC5 AIC32X4_REG(0, 98) +#define AIC32X4_RAGC6 AIC32X4_REG(0, 99) +#define AIC32X4_RAGC7 AIC32X4_REG(0, 100) + +#define AIC32X4_PWRCFG AIC32X4_REG(1, 1) +#define AIC32X4_LDOCTL AIC32X4_REG(1, 2) +#define AIC32X4_OUTPWRCTL AIC32X4_REG(1, 9) +#define AIC32X4_CMMODE AIC32X4_REG(1, 10) +#define AIC32X4_HPLROUTE AIC32X4_REG(1, 12) +#define AIC32X4_HPRROUTE AIC32X4_REG(1, 13) +#define AIC32X4_LOLROUTE AIC32X4_REG(1, 14) +#define AIC32X4_LORROUTE AIC32X4_REG(1, 15) +#define AIC32X4_HPLGAIN AIC32X4_REG(1, 16) +#define AIC32X4_HPRGAIN AIC32X4_REG(1, 17) +#define AIC32X4_LOLGAIN AIC32X4_REG(1, 18) +#define AIC32X4_LORGAIN AIC32X4_REG(1, 19) +#define AIC32X4_HEADSTART AIC32X4_REG(1, 20) +#define AIC32X4_MICBIAS AIC32X4_REG(1, 51) +#define AIC32X4_LMICPGAPIN AIC32X4_REG(1, 52) +#define AIC32X4_LMICPGANIN AIC32X4_REG(1, 54) +#define AIC32X4_RMICPGAPIN AIC32X4_REG(1, 55) +#define AIC32X4_RMICPGANIN AIC32X4_REG(1, 57) +#define AIC32X4_FLOATINGINPUT AIC32X4_REG(1, 58) +#define AIC32X4_LMICPGAVOL AIC32X4_REG(1, 59) +#define AIC32X4_RMICPGAVOL AIC32X4_REG(1, 60)#define AIC32X4_FREQ_12000000 12000000#define AIC32X4_FREQ_24000000 24000000
Signature · 1 line
2.15.1
PATCH 3/10 ASoC: tlv320aic32x4: Drop define mapping from number to number
In reply to Andrew F. DavisDrop definition of frequencies that only map from one number to the same number. This is not needed and if misused can hide bugs.
--- sound/soc/codecs/tlv320aic32x4.c | 46 ++++++++++++++++++++-------------------- sound/soc/codecs/tlv320aic32x4.h | 4 ---- 2 files changed, 23 insertions(+), 27 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +23 -23
@@ -265,34 +265,34 @@ static const struct snd_kcontrol_new aic32x4_snd_controls[] = {static const struct aic32x4_rate_divs aic32x4_divs[] = {/* 8k rate */ - {AIC32X4_FREQ_12000000 ,8000 ,1 ,7 ,6800 ,768 ,5 ,3 ,128 ,5 ,18 ,24 }, - {AIC32X4_FREQ_24000000 ,8000 ,2 ,7 ,6800 ,768 ,15 ,1 ,64 ,45 ,4 ,24 }, - {AIC32X4_FREQ_25000000 ,8000 ,2 ,7 ,3728 ,768 ,15 ,1 ,64 ,45 ,4 ,24 }, + {12000000 ,8000 ,1 ,7 ,6800 ,768 ,5 ,3 ,128 ,5 ,18 ,24 }, + {24000000 ,8000 ,2 ,7 ,6800 ,768 ,15 ,1 ,64 ,45 ,4 ,24 }, + {25000000 ,8000 ,2 ,7 ,3728 ,768 ,15 ,1 ,64 ,45 ,4 ,24 },/* 11.025k rate */ - {AIC32X4_FREQ_12000000 ,11025 ,1 ,7 ,5264 ,512 ,8 ,2 ,128 ,8 ,8 ,16 }, - {AIC32X4_FREQ_24000000 ,11025 ,2 ,7 ,5264 ,512 ,16 ,1 ,64 ,32 ,4 ,16 }, + {12000000 ,11025 ,1 ,7 ,5264 ,512 ,8 ,2 ,128 ,8 ,8 ,16 }, + {24000000 ,11025 ,2 ,7 ,5264 ,512 ,16 ,1 ,64 ,32 ,4 ,16 },/* 16k rate */ - {AIC32X4_FREQ_12000000 ,16000 ,1 ,7 ,6800 ,384 ,5 ,3 ,128 ,5 ,9 ,12 }, - {AIC32X4_FREQ_24000000 ,16000 ,2 ,7 ,6800 ,384 ,15 ,1 ,64 ,18 ,5 ,12 }, - {AIC32X4_FREQ_25000000 ,16000 ,2 ,7 ,3728 ,384 ,15 ,1 ,64 ,18 ,5 ,12 }, + {12000000 ,16000 ,1 ,7 ,6800 ,384 ,5 ,3 ,128 ,5 ,9 ,12 }, + {24000000 ,16000 ,2 ,7 ,6800 ,384 ,15 ,1 ,64 ,18 ,5 ,12 }, + {25000000 ,16000 ,2 ,7 ,3728 ,384 ,15 ,1 ,64 ,18 ,5 ,12 },/* 22.05k rate */ - {AIC32X4_FREQ_12000000 ,22050 ,1 ,7 ,5264 ,256 ,4 ,4 ,128 ,4 ,8 ,8 }, - {AIC32X4_FREQ_24000000 ,22050 ,2 ,7 ,5264 ,256 ,16 ,1 ,64 ,16 ,4 ,8 }, - {AIC32X4_FREQ_25000000 ,22050 ,2 ,7 ,2253 ,256 ,16 ,1 ,64 ,16 ,4 ,8 }, + {12000000 ,22050 ,1 ,7 ,5264 ,256 ,4 ,4 ,128 ,4 ,8 ,8 }, + {24000000 ,22050 ,2 ,7 ,5264 ,256 ,16 ,1 ,64 ,16 ,4 ,8 }, + {25000000 ,22050 ,2 ,7 ,2253 ,256 ,16 ,1 ,64 ,16 ,4 ,8 },/* 32k rate */ - {AIC32X4_FREQ_12000000 ,32000 ,1 ,7 ,1680 ,192 ,2 ,7 ,64 ,2 ,21 ,6 }, - {AIC32X4_FREQ_24000000 ,32000 ,2 ,7 ,1680 ,192 ,7 ,2 ,64 ,7 ,6 ,6 }, + {12000000 ,32000 ,1 ,7 ,1680 ,192 ,2 ,7 ,64 ,2 ,21 ,6 }, + {24000000 ,32000 ,2 ,7 ,1680 ,192 ,7 ,2 ,64 ,7 ,6 ,6 },/* 44.1k rate */ - {AIC32X4_FREQ_12000000 ,44100 ,1 ,7 ,5264 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, - {AIC32X4_FREQ_24000000 ,44100 ,2 ,7 ,5264 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, - {AIC32X4_FREQ_25000000 ,44100 ,2 ,7 ,2253 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {12000000 ,44100 ,1 ,7 ,5264 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, + {24000000 ,44100 ,2 ,7 ,5264 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {25000000 ,44100 ,2 ,7 ,2253 ,128 ,8 ,2 ,64 ,8 ,4 ,4 },/* 48k rate */ - {AIC32X4_FREQ_12000000 ,48000 ,1 ,8 ,1920 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, - {AIC32X4_FREQ_24000000 ,48000 ,2 ,8 ,1920 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, - {AIC32X4_FREQ_25000000 ,48000 ,2 ,7 ,8643 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {12000000 ,48000 ,1 ,8 ,1920 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, + {24000000 ,48000 ,2 ,8 ,1920 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {25000000 ,48000 ,2 ,7 ,8643 ,128 ,8 ,2 ,64 ,8 ,4 ,4 },/* 96k rate */ - {AIC32X4_FREQ_25000000 ,96000 ,2 ,7 ,8643 ,64 ,4 ,4 ,64 ,4 ,4 ,1 }, + {25000000 ,96000 ,2 ,7 ,8643 ,64 ,4 ,4 ,64 ,4 ,4 ,1 }, };static const struct snd_kcontrol_new hpl_output_mixer_controls[] = {
@@ -585,9 +585,9 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,struct aic32x4_priv *aic32x4 =snd_soc_codec_get_drvdata (codec);switch (freq) { -case AIC32X4_FREQ_12000000 : -case AIC32X4_FREQ_24000000 : -case AIC32X4_FREQ_25000000 : +case 12000000 : +case 24000000 : +case 25000000 : aic32x4->sysclk = freq;return 0 ; }
sound/soc/codecs/tlv320aic32x4.h +0 -4
@@ -90,10 +90,6 @@ int aic32x4_remove(struct device *dev);#define AIC32X4_LMICPGAVOL AIC32X4_REG(1, 59)#define AIC32X4_RMICPGAVOL AIC32X4_REG(1, 60) -#define AIC32X4_FREQ_12000000 12000000 -#define AIC32X4_FREQ_24000000 24000000 -#define AIC32X4_FREQ_25000000 25000000 -#define AIC32X4_WORD_LEN_16BITS 0x00#define AIC32X4_WORD_LEN_20BITS 0x01#define AIC32X4_WORD_LEN_24BITS 0x02
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Drop define mapping from number to number" to the asoc tree
The patch
ASoC: tlv320aic32x4: Drop define mapping from number to number
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
7e2a4dc5c1f0875646816c527cad5943cb6d5cc7Mon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:04 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Drop define mapping from number to
number
Drop definition of frequencies that only map from one number to the same number. This is not needed and if misused can hide bugs.
--- sound/soc/codecs/tlv320aic32x4.c | 46 ++++++++++++++++++++-------------------- sound/soc/codecs/tlv320aic32x4.h | 4 ---- 2 files changed, 23 insertions(+), 27 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +23 -23
@@ -281,34 +281,34 @@ static const struct snd_kcontrol_new aic32x4_snd_controls[] = {static const struct aic32x4_rate_divs aic32x4_divs[] = {/* 8k rate */ - {AIC32X4_FREQ_12000000 ,8000 ,1 ,7 ,6800 ,768 ,5 ,3 ,128 ,5 ,18 ,24 }, - {AIC32X4_FREQ_24000000 ,8000 ,2 ,7 ,6800 ,768 ,15 ,1 ,64 ,45 ,4 ,24 }, - {AIC32X4_FREQ_25000000 ,8000 ,2 ,7 ,3728 ,768 ,15 ,1 ,64 ,45 ,4 ,24 }, + {12000000 ,8000 ,1 ,7 ,6800 ,768 ,5 ,3 ,128 ,5 ,18 ,24 }, + {24000000 ,8000 ,2 ,7 ,6800 ,768 ,15 ,1 ,64 ,45 ,4 ,24 }, + {25000000 ,8000 ,2 ,7 ,3728 ,768 ,15 ,1 ,64 ,45 ,4 ,24 },/* 11.025k rate */ - {AIC32X4_FREQ_12000000 ,11025 ,1 ,7 ,5264 ,512 ,8 ,2 ,128 ,8 ,8 ,16 }, - {AIC32X4_FREQ_24000000 ,11025 ,2 ,7 ,5264 ,512 ,16 ,1 ,64 ,32 ,4 ,16 }, + {12000000 ,11025 ,1 ,7 ,5264 ,512 ,8 ,2 ,128 ,8 ,8 ,16 }, + {24000000 ,11025 ,2 ,7 ,5264 ,512 ,16 ,1 ,64 ,32 ,4 ,16 },/* 16k rate */ - {AIC32X4_FREQ_12000000 ,16000 ,1 ,7 ,6800 ,384 ,5 ,3 ,128 ,5 ,9 ,12 }, - {AIC32X4_FREQ_24000000 ,16000 ,2 ,7 ,6800 ,384 ,15 ,1 ,64 ,18 ,5 ,12 }, - {AIC32X4_FREQ_25000000 ,16000 ,2 ,7 ,3728 ,384 ,15 ,1 ,64 ,18 ,5 ,12 }, + {12000000 ,16000 ,1 ,7 ,6800 ,384 ,5 ,3 ,128 ,5 ,9 ,12 }, + {24000000 ,16000 ,2 ,7 ,6800 ,384 ,15 ,1 ,64 ,18 ,5 ,12 }, + {25000000 ,16000 ,2 ,7 ,3728 ,384 ,15 ,1 ,64 ,18 ,5 ,12 },/* 22.05k rate */ - {AIC32X4_FREQ_12000000 ,22050 ,1 ,7 ,5264 ,256 ,4 ,4 ,128 ,4 ,8 ,8 }, - {AIC32X4_FREQ_24000000 ,22050 ,2 ,7 ,5264 ,256 ,16 ,1 ,64 ,16 ,4 ,8 }, - {AIC32X4_FREQ_25000000 ,22050 ,2 ,7 ,2253 ,256 ,16 ,1 ,64 ,16 ,4 ,8 }, + {12000000 ,22050 ,1 ,7 ,5264 ,256 ,4 ,4 ,128 ,4 ,8 ,8 }, + {24000000 ,22050 ,2 ,7 ,5264 ,256 ,16 ,1 ,64 ,16 ,4 ,8 }, + {25000000 ,22050 ,2 ,7 ,2253 ,256 ,16 ,1 ,64 ,16 ,4 ,8 },/* 32k rate */ - {AIC32X4_FREQ_12000000 ,32000 ,1 ,7 ,1680 ,192 ,2 ,7 ,64 ,2 ,21 ,6 }, - {AIC32X4_FREQ_24000000 ,32000 ,2 ,7 ,1680 ,192 ,7 ,2 ,64 ,7 ,6 ,6 }, + {12000000 ,32000 ,1 ,7 ,1680 ,192 ,2 ,7 ,64 ,2 ,21 ,6 }, + {24000000 ,32000 ,2 ,7 ,1680 ,192 ,7 ,2 ,64 ,7 ,6 ,6 },/* 44.1k rate */ - {AIC32X4_FREQ_12000000 ,44100 ,1 ,7 ,5264 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, - {AIC32X4_FREQ_24000000 ,44100 ,2 ,7 ,5264 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, - {AIC32X4_FREQ_25000000 ,44100 ,2 ,7 ,2253 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {12000000 ,44100 ,1 ,7 ,5264 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, + {24000000 ,44100 ,2 ,7 ,5264 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {25000000 ,44100 ,2 ,7 ,2253 ,128 ,8 ,2 ,64 ,8 ,4 ,4 },/* 48k rate */ - {AIC32X4_FREQ_12000000 ,48000 ,1 ,8 ,1920 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, - {AIC32X4_FREQ_24000000 ,48000 ,2 ,8 ,1920 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, - {AIC32X4_FREQ_25000000 ,48000 ,2 ,7 ,8643 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {12000000 ,48000 ,1 ,8 ,1920 ,128 ,2 ,8 ,128 ,2 ,8 ,4 }, + {24000000 ,48000 ,2 ,8 ,1920 ,128 ,8 ,2 ,64 ,8 ,4 ,4 }, + {25000000 ,48000 ,2 ,7 ,8643 ,128 ,8 ,2 ,64 ,8 ,4 ,4 },/* 96k rate */ - {AIC32X4_FREQ_25000000 ,96000 ,2 ,7 ,8643 ,64 ,4 ,4 ,64 ,4 ,4 ,1 }, + {25000000 ,96000 ,2 ,7 ,8643 ,64 ,4 ,4 ,64 ,4 ,4 ,1 }, };static const struct snd_kcontrol_new hpl_output_mixer_controls[] = {
@@ -601,9 +601,9 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,struct aic32x4_priv *aic32x4 =snd_soc_codec_get_drvdata (codec);switch (freq) { -case AIC32X4_FREQ_12000000 : -case AIC32X4_FREQ_24000000 : -case AIC32X4_FREQ_25000000 : +case 12000000 : +case 24000000 : +case 25000000 : aic32x4->sysclk = freq;return 0 ; }
sound/soc/codecs/tlv320aic32x4.h +0 -4
@@ -97,10 +97,6 @@ int aic32x4_remove(struct device *dev);#define AIC32X4_LMICPGAVOL AIC32X4_REG(1, 59)#define AIC32X4_RMICPGAVOL AIC32X4_REG(1, 60) -#define AIC32X4_FREQ_12000000 12000000 -#define AIC32X4_FREQ_24000000 24000000 -#define AIC32X4_FREQ_25000000 25000000 -#define AIC32X4_WORD_LEN_16BITS 0x00#define AIC32X4_WORD_LEN_20BITS 0x01#define AIC32X4_WORD_LEN_24BITS 0x02
Signature · 1 line
2.15.1
PATCH 4/10 ASoC: tlv320aic32x4: Use correct shift definition for DATATYPE bits
In reply to Andrew F. DavisSetting the DATATYPE bit field requires shifting our value by 6. Setting the J value of the PLL also requires a shift by 6. Currently the code abuses this fact and uses the shift for the PLL register to set the data-type register. Fix this here by using the definition meant for this register.
--- sound/soc/codecs/tlv320aic32x4.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +8 -6
@@ -625,21 +625,23 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)case SND_SOC_DAIFMT_I2S :break ;case SND_SOC_DAIFMT_DSP_A : - iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_DSP_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT ); iface_reg_3 |= (1 <<3 );/* invert bit clock */ iface_reg_2 =0x01 ;/* add offset 1 */ break ;case SND_SOC_DAIFMT_DSP_B : - iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_DSP_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT ); iface_reg_3 |= (1 <<3 );/* invert bit clock */ break ;case SND_SOC_DAIFMT_RIGHT_J : - iface_reg_1 |= - (AIC32X4_RIGHT_JUSTIFIED_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_RIGHT_JUSTIFIED_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT );break ;case SND_SOC_DAIFMT_LEFT_J : - iface_reg_1 |= - (AIC32X4_LEFT_JUSTIFIED_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_LEFT_JUSTIFIED_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT );break ;default :printk (KERN_ERR "aic32x4: invalid DAI interface format\n" );
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use correct shift definition for DATATYPE bits" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use correct shift definition for DATATYPE bits
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
4483521d81684764cb7f2569bf3e4b10d38ef9f7Mon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:05 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use correct shift definition for
DATATYPE bits
Setting the DATATYPE bit field requires shifting our value by 6. Setting the J value of the PLL also requires a shift by 6. Currently the code abuses this fact and uses the shift for the PLL register to set the data-type register. Fix this here by using the definition meant for this register.
--- sound/soc/codecs/tlv320aic32x4.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +8 -6
@@ -641,21 +641,23 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)case SND_SOC_DAIFMT_I2S :break ;case SND_SOC_DAIFMT_DSP_A : - iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_DSP_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT ); iface_reg_3 |= (1 <<3 );/* invert bit clock */ iface_reg_2 =0x01 ;/* add offset 1 */ break ;case SND_SOC_DAIFMT_DSP_B : - iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_DSP_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT ); iface_reg_3 |= (1 <<3 );/* invert bit clock */ break ;case SND_SOC_DAIFMT_RIGHT_J : - iface_reg_1 |= - (AIC32X4_RIGHT_JUSTIFIED_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_RIGHT_JUSTIFIED_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT );break ;case SND_SOC_DAIFMT_LEFT_J : - iface_reg_1 |= - (AIC32X4_LEFT_JUSTIFIED_MODE <<AIC32X4_PLLJ_SHIFT ); + iface_reg_1 |= (AIC32X4_LEFT_JUSTIFIED_MODE << +AIC32X4_IFACE1_DATATYPE_SHIFT );break ;default :printk (KERN_ERR "aic32x4: invalid DAI interface format\n" );
Signature · 1 line
2.15.1
PATCH 5/10 ASoC: tlv320aic32x4: Use correct shift definition for DATALEN bits
In reply to Andrew F. DavisSetting the DATALEN bit field requires shifting our value by 4. Setting the OSR value of the PLL divider also requires a shift by 4. Currently the code abuses this fact and uses the shift for the divider register to set the data-length register. Fix this here by using the definition meant for this register.
--- sound/soc/codecs/tlv320aic32x4.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +8 -3
@@ -722,15 +722,20 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, data = data & ~(3 <<4 );switch (params_width (params)) {case 16 : + data |= (AIC32X4_WORD_LEN_16BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 20 : - data |= (AIC32X4_WORD_LEN_20BITS <<AIC32X4_DOSRMSB_SHIFT ); + data |= (AIC32X4_WORD_LEN_20BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 24 : - data |= (AIC32X4_WORD_LEN_24BITS <<AIC32X4_DOSRMSB_SHIFT ); + data |= (AIC32X4_WORD_LEN_24BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 32 : - data |= (AIC32X4_WORD_LEN_32BITS <<AIC32X4_DOSRMSB_SHIFT ); + data |= (AIC32X4_WORD_LEN_32BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ; }snd_soc_write (codec,AIC32X4_IFACE1 , data);
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use correct shift definition for DATALEN bits" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use correct shift definition for DATALEN bits
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
77bdb58795d86262e96ba37524489ba0969de253Mon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:06 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use correct shift definition for DATALEN
bits
Setting the DATALEN bit field requires shifting our value by 4. Setting the OSR value of the PLL divider also requires a shift by 4. Currently the code abuses this fact and uses the shift for the divider register to set the data-length register. Fix this here by using the definition meant for this register.
--- sound/soc/codecs/tlv320aic32x4.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +8 -3
@@ -738,15 +738,20 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, data = data & ~(3 <<4 );switch (params_width (params)) {case 16 : + data |= (AIC32X4_WORD_LEN_16BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 20 : - data |= (AIC32X4_WORD_LEN_20BITS <<AIC32X4_DOSRMSB_SHIFT ); + data |= (AIC32X4_WORD_LEN_20BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 24 : - data |= (AIC32X4_WORD_LEN_24BITS <<AIC32X4_DOSRMSB_SHIFT ); + data |= (AIC32X4_WORD_LEN_24BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 32 : - data |= (AIC32X4_WORD_LEN_32BITS <<AIC32X4_DOSRMSB_SHIFT ); + data |= (AIC32X4_WORD_LEN_32BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ; }snd_soc_write (codec,AIC32X4_IFACE1 , data);
Signature · 1 line
2.15.1
PATCH 6/10 ASoC: tlv320aic32x4: Use BIT and GENMASK for bit field definitions
In reply to Andrew F. DavisInter-register definitions should use BIT and GENMASK definitions and also be grouped by what register they belong to. This makes it easy to cross-check with the datasheet and is consistent with other drivers.
--- sound/soc/codecs/tlv320aic32x4.c | 2 +- sound/soc/codecs/tlv320aic32x4.h | 132 ++++++++++++++++++++++++++------------- 2 files changed, 88 insertions(+), 46 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +1 -1
@@ -670,7 +670,7 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, }/* Use PLL as CODEC_CLKIN and DAC_MOD_CLK as BDIV_CLKIN */ -snd_soc_write (codec,AIC32X4_CLKMUX ,AIC32X4_PLLCLKIN ); +snd_soc_write (codec,AIC32X4_CLKMUX ,AIC32X4_CODEC_CLKIN_PLL );snd_soc_write (codec,AIC32X4_IFACE3 ,AIC32X4_DACMOD2BCLK );/* We will fix R value to 1 and will make P & J=K.D as varialble */
sound/soc/codecs/tlv320aic32x4.h +87 -45
148 lines not on this page · raw message
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use BIT and GENMASK for bit field definitions" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use BIT and GENMASK for bit field definitions
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
0fe7aa39ba0492aabdde67dc1511055c9dc7e960Mon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:07 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use BIT and GENMASK for bit field
definitions
Inter-register definitions should use BIT and GENMASK definitions and also be grouped by what register they belong to. This makes it easy to cross-check with the datasheet and is consistent with other drivers.
--- sound/soc/codecs/tlv320aic32x4.c | 2 +- sound/soc/codecs/tlv320aic32x4.h | 132 ++++++++++++++++++++++++++------------- 2 files changed, 88 insertions(+), 46 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +1 -1
@@ -686,7 +686,7 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, }/* Use PLL as CODEC_CLKIN and DAC_MOD_CLK as BDIV_CLKIN */ -snd_soc_write (codec,AIC32X4_CLKMUX ,AIC32X4_PLLCLKIN ); +snd_soc_write (codec,AIC32X4_CLKMUX ,AIC32X4_CODEC_CLKIN_PLL );snd_soc_write (codec,AIC32X4_IFACE3 ,AIC32X4_DACMOD2BCLK );/* We will fix R value to 1 and will make P & J=K.D as varialble */
sound/soc/codecs/tlv320aic32x4.h +87 -45
148 lines not on this page · raw message
Signature · 1 line
2.15.1
PATCH 7/10 ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_mute()
In reply to Andrew F. DavisSimplify mute function by using snd_soc_update_bits() over read/modify/write style code.
--- sound/soc/codecs/tlv320aic32x4.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +3 -6
@@ -757,13 +757,10 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream,static int aic32x4_mute (struct snd_soc_dai *dai,int mute) {struct snd_soc_codec *codec = dai->codec; -u8 dac_reg; - dac_reg =snd_soc_read (codec,AIC32X4_DACMUTE ) & ~AIC32X4_MUTEON ; -if (mute) -snd_soc_write (codec,AIC32X4_DACMUTE , dac_reg |AIC32X4_MUTEON ); -else -snd_soc_write (codec,AIC32X4_DACMUTE , dac_reg); +snd_soc_update_bits (codec,AIC32X4_DACMUTE , +AIC32X4_MUTEON , mute ?AIC32X4_MUTEON :0 ); +return 0 ; }
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_mute()" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_mute()
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
b7ddd9cab7d1c800db83e442e881d8cb3f755633Mon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:08 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use snd_soc_update_bits() in
aic32x4_mute()
Simplify mute function by using snd_soc_update_bits() over read/modify/write style code.
--- sound/soc/codecs/tlv320aic32x4.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +3 -6
@@ -773,13 +773,10 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream,static int aic32x4_mute (struct snd_soc_dai *dai,int mute) {struct snd_soc_codec *codec = dai->codec; -u8 dac_reg; - dac_reg =snd_soc_read (codec,AIC32X4_DACMUTE ) & ~AIC32X4_MUTEON ; -if (mute) -snd_soc_write (codec,AIC32X4_DACMUTE , dac_reg |AIC32X4_MUTEON ); -else -snd_soc_write (codec,AIC32X4_DACMUTE , dac_reg); +snd_soc_update_bits (codec,AIC32X4_DACMUTE , +AIC32X4_MUTEON , mute ?AIC32X4_MUTEON :0 ); +return 0 ; }
Signature · 1 line
2.15.1
PATCH 8/10 ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_hw_params()
In reply to Andrew F. DavisMake the code easier to read by using snd_soc_update_bits() over read/modify/write sequences. Also use separate per-register variables instead of re-using "data". This can prevent accidental over-writing and makes it clear for which register each bit value is intended.
--- sound/soc/codecs/tlv320aic32x4.c | 90 ++++++++++++++++++++-------------------- sound/soc/codecs/tlv320aic32x4.h | 8 ++++ 2 files changed, 54 insertions(+), 44 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +46 -44
@@ -660,7 +660,8 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, {struct snd_soc_codec *codec = dai->codec;struct aic32x4_priv *aic32x4 =snd_soc_codec_get_drvdata (codec); -u8 data; +u8 iface1_reg =0 ; +u8 dacsetup_reg =0 ;int i; i =aic32x4_get_divs (aic32x4->sysclk,params_rate (params));
@@ -669,87 +670,88 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream,return i; } -/* Use PLL as CODEC_CLKIN and DAC_MOD_CLK as BDIV_CLKIN */ -snd_soc_write (codec,AIC32X4_CLKMUX ,AIC32X4_CODEC_CLKIN_PLL ); -snd_soc_write (codec,AIC32X4_IFACE3 ,AIC32X4_DACMOD2BCLK ); +/* MCLK as PLL_CLKIN */ +snd_soc_update_bits (codec,AIC32X4_CLKMUX ,AIC32X4_PLL_CLKIN_MASK , +AIC32X4_PLL_CLKIN_MCLK <<AIC32X4_PLL_CLKIN_SHIFT ); +/* PLL as CODEC_CLKIN */ +snd_soc_update_bits (codec,AIC32X4_CLKMUX ,AIC32X4_CODEC_CLKIN_MASK , +AIC32X4_CODEC_CLKIN_PLL <<AIC32X4_CODEC_CLKIN_SHIFT ); +/* DAC_MOD_CLK as BDIV_CLKIN */ +snd_soc_update_bits (codec,AIC32X4_IFACE3 ,AIC32X4_BDIVCLK_MASK , +AIC32X4_DACMOD2BCLK <<AIC32X4_BDIVCLK_SHIFT ); -/* We will fix R value to 1 and will make P & J=K.D as varialble */ - data =snd_soc_read (codec,AIC32X4_PLLPR ); - data &= ~(7 <<4 ); -snd_soc_write (codec,AIC32X4_PLLPR , - (data | (aic32x4_divs[i].p_val <<4 ) |0x01 )); +/* We will fix R value to 1 and will make P & J=K.D as variable */ +snd_soc_update_bits (codec,AIC32X4_PLLPR ,AIC32X4_PLL_R_MASK ,0x01 ); +/* PLL P value */ +snd_soc_update_bits (codec,AIC32X4_PLLPR ,AIC32X4_PLL_P_MASK , + aic32x4_divs[i].p_val <<AIC32X4_PLL_P_SHIFT ); + +/* PLL J value */ snd_soc_write (codec,AIC32X4_PLLJ , aic32x4_divs[i].pll_j); +/* PLL D value */ snd_soc_write (codec,AIC32X4_PLLDMSB , (aic32x4_divs[i].pll_d >>8 )); -snd_soc_write (codec,AIC32X4_PLLDLSB , - (aic32x4_divs[i].pll_d &0xff )); +snd_soc_write (codec,AIC32X4_PLLDLSB , (aic32x4_divs[i].pll_d &0xff ));/* NDAC divider value */ - data =snd_soc_read (codec,AIC32X4_NDAC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_NDAC , data | aic32x4_divs[i].ndac); +snd_soc_update_bits (codec,AIC32X4_NDAC , +AIC32X4_NDAC_MASK , aic32x4_divs[i].ndac);/* MDAC divider value */ - data =snd_soc_read (codec,AIC32X4_MDAC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_MDAC , data | aic32x4_divs[i].mdac); +snd_soc_update_bits (codec,AIC32X4_MDAC , +AIC32X4_MDAC_MASK , aic32x4_divs[i].mdac);/* DOSR MSB & LSB values */ snd_soc_write (codec,AIC32X4_DOSRMSB , aic32x4_divs[i].dosr >>8 ); -snd_soc_write (codec,AIC32X4_DOSRLSB , - (aic32x4_divs[i].dosr &0xff )); +snd_soc_write (codec,AIC32X4_DOSRLSB , (aic32x4_divs[i].dosr &0xff ));/* NADC divider value */ - data =snd_soc_read (codec,AIC32X4_NADC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_NADC , data | aic32x4_divs[i].nadc); +snd_soc_update_bits (codec,AIC32X4_NADC , +AIC32X4_NADC_MASK , aic32x4_divs[i].nadc);/* MADC divider value */ - data =snd_soc_read (codec,AIC32X4_MADC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_MADC , data | aic32x4_divs[i].madc); +snd_soc_update_bits (codec,AIC32X4_MADC , +AIC32X4_MADC_MASK , aic32x4_divs[i].madc);/* AOSR value */ snd_soc_write (codec,AIC32X4_AOSR , aic32x4_divs[i].aosr);/* BCLK N divider */ - data =snd_soc_read (codec,AIC32X4_BCLKN ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_BCLKN , data | aic32x4_divs[i].blck_N); +snd_soc_update_bits (codec,AIC32X4_BCLKN , +AIC32X4_BCLK_MASK , aic32x4_divs[i].blck_N); - data =snd_soc_read (codec,AIC32X4_IFACE1 ); - data = data & ~(3 <<4 );switch (params_width (params)) {case 16 : - data |= (AIC32X4_WORD_LEN_16BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_16BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 20 : - data |= (AIC32X4_WORD_LEN_20BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_20BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 24 : - data |= (AIC32X4_WORD_LEN_24BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_24BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 32 : - data |= (AIC32X4_WORD_LEN_32BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_32BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ; } -snd_soc_write (codec,AIC32X4_IFACE1 , data); +snd_soc_update_bits (codec,AIC32X4_IFACE1 , +AIC32X4_IFACE1_DATALEN_MASK , iface1_reg);if (params_channels (params) ==1 ) { - data =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2LCHN ; + dacsetup_reg =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2LCHN ; }else {if (aic32x4->swapdacs) - data =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2RCHN ; + dacsetup_reg =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2RCHN ;else - data =AIC32X4_LDAC2LCHN |AIC32X4_RDAC2RCHN ; + dacsetup_reg =AIC32X4_LDAC2LCHN |AIC32X4_RDAC2RCHN ; } -snd_soc_update_bits (codec,AIC32X4_DACSETUP ,AIC32X4_DAC_CHAN_MASK , - data); +snd_soc_update_bits (codec,AIC32X4_DACSETUP , +AIC32X4_DAC_CHAN_MASK , dacsetup_reg);return 0 ; }
sound/soc/codecs/tlv320aic32x4.h +8 -0
@@ -108,21 +108,29 @@ int aic32x4_remove(struct device *dev);/* AIC32X4_PLLPR */ #define AIC32X4_PLLEN BIT(7) +#define AIC32X4_PLL_P_MASK GENMASK(6, 4) +#define AIC32X4_PLL_P_SHIFT (4) +#define AIC32X4_PLL_R_MASK GENMASK(3, 0)/* AIC32X4_NDAC */ #define AIC32X4_NDACEN BIT(7) +#define AIC32X4_NDAC_MASK GENMASK(6, 0)/* AIC32X4_MDAC */ #define AIC32X4_MDACEN BIT(7) +#define AIC32X4_MDAC_MASK GENMASK(6, 0)/* AIC32X4_NADC */ #define AIC32X4_NADCEN BIT(7) +#define AIC32X4_NADC_MASK GENMASK(6, 0)/* AIC32X4_MADC */ #define AIC32X4_MADCEN BIT(7) +#define AIC32X4_MADC_MASK GENMASK(6, 0)/* AIC32X4_BCLKN */ #define AIC32X4_BCLKEN BIT(7) +#define AIC32X4_BCLK_MASK GENMASK(6, 0)/* AIC32X4_IFACE1 */ #define AIC32X4_IFACE1_DATATYPE_MASK GENMASK(7, 6)
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_hw_params()" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_hw_params()
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
64aab89974ebddf4cc67e4ed8996d879a9d054b9Mon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:09 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use snd_soc_update_bits() in
aic32x4_hw_params()
Make the code easier to read by using snd_soc_update_bits() over read/modify/write sequences. Also use separate per-register variables instead of re-using "data". This can prevent accidental over-writing and makes it clear for which register each bit value is intended.
--- sound/soc/codecs/tlv320aic32x4.c | 90 ++++++++++++++++++++-------------------- sound/soc/codecs/tlv320aic32x4.h | 8 ++++ 2 files changed, 54 insertions(+), 44 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +46 -44
@@ -676,7 +676,8 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, {struct snd_soc_codec *codec = dai->codec;struct aic32x4_priv *aic32x4 =snd_soc_codec_get_drvdata (codec); -u8 data; +u8 iface1_reg =0 ; +u8 dacsetup_reg =0 ;int i; i =aic32x4_get_divs (aic32x4->sysclk,params_rate (params));
@@ -685,87 +686,88 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream,return i; } -/* Use PLL as CODEC_CLKIN and DAC_MOD_CLK as BDIV_CLKIN */ -snd_soc_write (codec,AIC32X4_CLKMUX ,AIC32X4_CODEC_CLKIN_PLL ); -snd_soc_write (codec,AIC32X4_IFACE3 ,AIC32X4_DACMOD2BCLK ); +/* MCLK as PLL_CLKIN */ +snd_soc_update_bits (codec,AIC32X4_CLKMUX ,AIC32X4_PLL_CLKIN_MASK , +AIC32X4_PLL_CLKIN_MCLK <<AIC32X4_PLL_CLKIN_SHIFT ); +/* PLL as CODEC_CLKIN */ +snd_soc_update_bits (codec,AIC32X4_CLKMUX ,AIC32X4_CODEC_CLKIN_MASK , +AIC32X4_CODEC_CLKIN_PLL <<AIC32X4_CODEC_CLKIN_SHIFT ); +/* DAC_MOD_CLK as BDIV_CLKIN */ +snd_soc_update_bits (codec,AIC32X4_IFACE3 ,AIC32X4_BDIVCLK_MASK , +AIC32X4_DACMOD2BCLK <<AIC32X4_BDIVCLK_SHIFT ); -/* We will fix R value to 1 and will make P & J=K.D as varialble */ - data =snd_soc_read (codec,AIC32X4_PLLPR ); - data &= ~(7 <<4 ); -snd_soc_write (codec,AIC32X4_PLLPR , - (data | (aic32x4_divs[i].p_val <<4 ) |0x01 )); +/* We will fix R value to 1 and will make P & J=K.D as variable */ +snd_soc_update_bits (codec,AIC32X4_PLLPR ,AIC32X4_PLL_R_MASK ,0x01 ); +/* PLL P value */ +snd_soc_update_bits (codec,AIC32X4_PLLPR ,AIC32X4_PLL_P_MASK , + aic32x4_divs[i].p_val <<AIC32X4_PLL_P_SHIFT ); + +/* PLL J value */ snd_soc_write (codec,AIC32X4_PLLJ , aic32x4_divs[i].pll_j); +/* PLL D value */ snd_soc_write (codec,AIC32X4_PLLDMSB , (aic32x4_divs[i].pll_d >>8 )); -snd_soc_write (codec,AIC32X4_PLLDLSB , - (aic32x4_divs[i].pll_d &0xff )); +snd_soc_write (codec,AIC32X4_PLLDLSB , (aic32x4_divs[i].pll_d &0xff ));/* NDAC divider value */ - data =snd_soc_read (codec,AIC32X4_NDAC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_NDAC , data | aic32x4_divs[i].ndac); +snd_soc_update_bits (codec,AIC32X4_NDAC , +AIC32X4_NDAC_MASK , aic32x4_divs[i].ndac);/* MDAC divider value */ - data =snd_soc_read (codec,AIC32X4_MDAC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_MDAC , data | aic32x4_divs[i].mdac); +snd_soc_update_bits (codec,AIC32X4_MDAC , +AIC32X4_MDAC_MASK , aic32x4_divs[i].mdac);/* DOSR MSB & LSB values */ snd_soc_write (codec,AIC32X4_DOSRMSB , aic32x4_divs[i].dosr >>8 ); -snd_soc_write (codec,AIC32X4_DOSRLSB , - (aic32x4_divs[i].dosr &0xff )); +snd_soc_write (codec,AIC32X4_DOSRLSB , (aic32x4_divs[i].dosr &0xff ));/* NADC divider value */ - data =snd_soc_read (codec,AIC32X4_NADC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_NADC , data | aic32x4_divs[i].nadc); +snd_soc_update_bits (codec,AIC32X4_NADC , +AIC32X4_NADC_MASK , aic32x4_divs[i].nadc);/* MADC divider value */ - data =snd_soc_read (codec,AIC32X4_MADC ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_MADC , data | aic32x4_divs[i].madc); +snd_soc_update_bits (codec,AIC32X4_MADC , +AIC32X4_MADC_MASK , aic32x4_divs[i].madc);/* AOSR value */ snd_soc_write (codec,AIC32X4_AOSR , aic32x4_divs[i].aosr);/* BCLK N divider */ - data =snd_soc_read (codec,AIC32X4_BCLKN ); - data &= ~(0x7f ); -snd_soc_write (codec,AIC32X4_BCLKN , data | aic32x4_divs[i].blck_N); +snd_soc_update_bits (codec,AIC32X4_BCLKN , +AIC32X4_BCLK_MASK , aic32x4_divs[i].blck_N); - data =snd_soc_read (codec,AIC32X4_IFACE1 ); - data = data & ~(3 <<4 );switch (params_width (params)) {case 16 : - data |= (AIC32X4_WORD_LEN_16BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_16BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 20 : - data |= (AIC32X4_WORD_LEN_20BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_20BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 24 : - data |= (AIC32X4_WORD_LEN_24BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_24BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ;case 32 : - data |= (AIC32X4_WORD_LEN_32BITS << -AIC32X4_IFACE1_DATALEN_SHIFT ); + iface1_reg |= (AIC32X4_WORD_LEN_32BITS << +AIC32X4_IFACE1_DATALEN_SHIFT );break ; } -snd_soc_write (codec,AIC32X4_IFACE1 , data); +snd_soc_update_bits (codec,AIC32X4_IFACE1 , +AIC32X4_IFACE1_DATALEN_MASK , iface1_reg);if (params_channels (params) ==1 ) { - data =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2LCHN ; + dacsetup_reg =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2LCHN ; }else {if (aic32x4->swapdacs) - data =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2RCHN ; + dacsetup_reg =AIC32X4_RDAC2LCHN |AIC32X4_LDAC2RCHN ;else - data =AIC32X4_LDAC2LCHN |AIC32X4_RDAC2RCHN ; + dacsetup_reg =AIC32X4_LDAC2LCHN |AIC32X4_RDAC2RCHN ; } -snd_soc_update_bits (codec,AIC32X4_DACSETUP ,AIC32X4_DAC_CHAN_MASK , - data); +snd_soc_update_bits (codec,AIC32X4_DACSETUP , +AIC32X4_DAC_CHAN_MASK , dacsetup_reg);return 0 ; }
sound/soc/codecs/tlv320aic32x4.h +8 -0
@@ -115,21 +115,29 @@ int aic32x4_remove(struct device *dev);/* AIC32X4_PLLPR */ #define AIC32X4_PLLEN BIT(7) +#define AIC32X4_PLL_P_MASK GENMASK(6, 4) +#define AIC32X4_PLL_P_SHIFT (4) +#define AIC32X4_PLL_R_MASK GENMASK(3, 0)/* AIC32X4_NDAC */ #define AIC32X4_NDACEN BIT(7) +#define AIC32X4_NDAC_MASK GENMASK(6, 0)/* AIC32X4_MDAC */ #define AIC32X4_MDACEN BIT(7) +#define AIC32X4_MDAC_MASK GENMASK(6, 0)/* AIC32X4_NADC */ #define AIC32X4_NADCEN BIT(7) +#define AIC32X4_NADC_MASK GENMASK(6, 0)/* AIC32X4_MADC */ #define AIC32X4_MADCEN BIT(7) +#define AIC32X4_MADC_MASK GENMASK(6, 0)/* AIC32X4_BCLKN */ #define AIC32X4_BCLKEN BIT(7) +#define AIC32X4_BCLK_MASK GENMASK(6, 0)/* AIC32X4_IFACE1 */ #define AIC32X4_IFACE1_DATATYPE_MASK GENMASK(7, 6)
Signature · 1 line
2.15.1
PATCH 9/10 ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_set_dai_fmt()
In reply to Andrew F. DavisMake the code easier to read by using snd_soc_update_bits() over read/modify/write sequences.
--- sound/soc/codecs/tlv320aic32x4.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +13 -15
@@ -598,16 +598,9 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,static int aic32x4_set_dai_fmt (struct snd_soc_dai *codec_dai,unsigned int fmt) {struct snd_soc_codec *codec = codec_dai->codec; -u8 iface_reg_1; -u8 iface_reg_2; -u8 iface_reg_3; - - iface_reg_1 =snd_soc_read (codec,AIC32X4_IFACE1 ); - iface_reg_1 = iface_reg_1 & ~(3 <<6 |3 <<2 ); - iface_reg_2 =snd_soc_read (codec,AIC32X4_IFACE2 ); - iface_reg_2 =0 ; - iface_reg_3 =snd_soc_read (codec,AIC32X4_IFACE3 ); - iface_reg_3 = iface_reg_3 & ~(1 <<3 ); +u8 iface_reg_1 =0 ; +u8 iface_reg_2 =0 ; +u8 iface_reg_3 =0 ;/* set master/slave audio interface */ switch (fmt &SND_SOC_DAIFMT_MASTER_MASK ) {
@@ -627,13 +620,13 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)case SND_SOC_DAIFMT_DSP_A : iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_IFACE1_DATATYPE_SHIFT ); - iface_reg_3 |= (1 <<3 );/* invert bit clock */ + iface_reg_3 |=AIC32X4_BCLKINV_MASK ;/* invert bit clock */ iface_reg_2 =0x01 ;/* add offset 1 */ break ;case SND_SOC_DAIFMT_DSP_B : iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_IFACE1_DATATYPE_SHIFT ); - iface_reg_3 |= (1 <<3 );/* invert bit clock */ + iface_reg_3 |=AIC32X4_BCLKINV_MASK ;/* invert bit clock */ break ;case SND_SOC_DAIFMT_RIGHT_J : iface_reg_1 |= (AIC32X4_RIGHT_JUSTIFIED_MODE <<
@@ -648,9 +641,14 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)return -EINVAL ; } -snd_soc_write (codec,AIC32X4_IFACE1 , iface_reg_1); -snd_soc_write (codec,AIC32X4_IFACE2 , iface_reg_2); -snd_soc_write (codec,AIC32X4_IFACE3 , iface_reg_3); +snd_soc_update_bits (codec,AIC32X4_IFACE1 , +AIC32X4_IFACE1_DATATYPE_MASK | +AIC32X4_IFACE1_MASTER_MASK , iface_reg_1); +snd_soc_update_bits (codec,AIC32X4_IFACE2 , +AIC32X4_DATA_OFFSET_MASK , iface_reg_2); +snd_soc_update_bits (codec,AIC32X4_IFACE3 , +AIC32X4_BCLKINV_MASK , iface_reg_3); +return 0 ; }
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_set_dai_fmt()" to the asoc tree
The patch
ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_set_dai_fmt()
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
60fb4be565c9c44f6999aaa9d18808f1ac49d6efMon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:10 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Use snd_soc_update_bits() in
aic32x4_set_dai_fmt()
Make the code easier to read by using snd_soc_update_bits() over read/modify/write sequences.
--- sound/soc/codecs/tlv320aic32x4.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)
sound/soc/codecs/tlv320aic32x4.c +13 -15
@@ -614,16 +614,9 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,static int aic32x4_set_dai_fmt (struct snd_soc_dai *codec_dai,unsigned int fmt) {struct snd_soc_codec *codec = codec_dai->codec; -u8 iface_reg_1; -u8 iface_reg_2; -u8 iface_reg_3; - - iface_reg_1 =snd_soc_read (codec,AIC32X4_IFACE1 ); - iface_reg_1 = iface_reg_1 & ~(3 <<6 |3 <<2 ); - iface_reg_2 =snd_soc_read (codec,AIC32X4_IFACE2 ); - iface_reg_2 =0 ; - iface_reg_3 =snd_soc_read (codec,AIC32X4_IFACE3 ); - iface_reg_3 = iface_reg_3 & ~(1 <<3 ); +u8 iface_reg_1 =0 ; +u8 iface_reg_2 =0 ; +u8 iface_reg_3 =0 ;/* set master/slave audio interface */ switch (fmt &SND_SOC_DAIFMT_MASTER_MASK ) {
@@ -643,13 +636,13 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)case SND_SOC_DAIFMT_DSP_A : iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_IFACE1_DATATYPE_SHIFT ); - iface_reg_3 |= (1 <<3 );/* invert bit clock */ + iface_reg_3 |=AIC32X4_BCLKINV_MASK ;/* invert bit clock */ iface_reg_2 =0x01 ;/* add offset 1 */ break ;case SND_SOC_DAIFMT_DSP_B : iface_reg_1 |= (AIC32X4_DSP_MODE <<AIC32X4_IFACE1_DATATYPE_SHIFT ); - iface_reg_3 |= (1 <<3 );/* invert bit clock */ + iface_reg_3 |=AIC32X4_BCLKINV_MASK ;/* invert bit clock */ break ;case SND_SOC_DAIFMT_RIGHT_J : iface_reg_1 |= (AIC32X4_RIGHT_JUSTIFIED_MODE <<
@@ -664,9 +657,14 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)return -EINVAL ; } -snd_soc_write (codec,AIC32X4_IFACE1 , iface_reg_1); -snd_soc_write (codec,AIC32X4_IFACE2 , iface_reg_2); -snd_soc_write (codec,AIC32X4_IFACE3 , iface_reg_3); +snd_soc_update_bits (codec,AIC32X4_IFACE1 , +AIC32X4_IFACE1_DATATYPE_MASK | +AIC32X4_IFACE1_MASTER_MASK , iface_reg_1); +snd_soc_update_bits (codec,AIC32X4_IFACE2 , +AIC32X4_DATA_OFFSET_MASK , iface_reg_2); +snd_soc_update_bits (codec,AIC32X4_IFACE3 , +AIC32X4_BCLKINV_MASK , iface_reg_3); +return 0 ; }
Signature · 1 line
2.15.1
PATCH 10/10 ASoC: tlv320aic32x4: Make driver selectable in Kconfig
In reply to Andrew F. Davis--- sound/soc/codecs/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
sound/soc/codecs/Kconfig +2 -2
@@ -913,12 +913,12 @@ config SND_SOC_TLV320AIC32X4 tristate config SND_SOC_TLV320AIC32X4_I2C - tristate + tristate "Texas Instruments TLV320AIC32x4 audio CODECs - I2C" depends on I2C select SND_SOC_TLV320AIC32X4 config SND_SOC_TLV320AIC32X4_SPI - tristate + tristate "Texas Instruments TLV320AIC32x4 audio CODECs - SPI" depends on SPI_MASTER select SND_SOC_TLV320AIC32X4
Signature · 1 line
2.15.0
Mark Brown
maintainerApplied "ASoC: tlv320aic32x4: Make driver selectable in Kconfig" to the asoc tree
The patch
ASoC: tlv320aic32x4: Make driver selectable in Kconfig
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks,
Mark
Quoted 1 line
From
9245f647fc7b82b88587b2d1de02fae66d2d314eMon Sep 17 00:00:00 2001
From: "Andrew F. Davis" <[email protected]>
Date: Tue, 12 Dec 2017 16:43:11 -0600
Subject: [PATCH] ASoC: tlv320aic32x4: Make driver selectable in Kconfig
--- sound/soc/codecs/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
sound/soc/codecs/Kconfig +2 -2
@@ -913,12 +913,12 @@ config SND_SOC_TLV320AIC32X4 tristate config SND_SOC_TLV320AIC32X4_I2C - tristate + tristate "Texas Instruments TLV320AIC32x4 audio CODECs - I2C" depends on I2C select SND_SOC_TLV320AIC32X4 config SND_SOC_TLV320AIC32X4_SPI - tristate + tristate "Texas Instruments TLV320AIC32x4 audio CODECs - SPI" depends on SPI_MASTER select SND_SOC_TLV320AIC32X4
Signature · 1 line
2.15.1
Quoted 2 lines · Andrew F. Davis
The filename is often wrong after moves and adds nothing of value, lets drop it. While already here, switch to SPDX.
[]
sound/soc/codecs/tlv320aic32x4-i2c.c
Quoted 1 line
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-0
[]
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27.
sound/soc/codecs/tlv320aic32x4-i2c.c line 18
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-10-* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details.
nack. Note the "(at your option) any later version"
If you are going to update to spdx and remove the old license verbiage, make sure you are adding the correct spdx tag.
Quoted 29 lines · Joe Perches
Quoted 2 lines · Andrew F. Davis
The filename is often wrong after moves and adds nothing of value, lets drop it. While already here, switch to SPDX.
[]
sound/soc/codecs/tlv320aic32x4-i2c.c
Quoted 1 line
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-0[]
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. sound/soc/codecs/tlv320aic32x4-i2c.c line 18
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-10-* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. nack. Note the "(at your option) any later version"
Quoted 3 lines
If you are going to update to spdx and remove the old license verbiage, make sure you are adding the correct spdx tag.
My bad, will fix.
By the way, do you like these spdx update patch? Or would you rather I drop this one and wait to let some script do it for the whole subsystem?
Quoted 32 lines · Andrew F. Davis
Quoted 31 lines · Joe Perches
Quoted 2 lines · Andrew F. Davis
The filename is often wrong after moves and adds nothing of value, lets drop it. While already here, switch to SPDX.
[]
sound/soc/codecs/tlv320aic32x4-i2c.c
Quoted 1 line
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-0[]
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. sound/soc/codecs/tlv320aic32x4-i2c.c line 18
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-10-* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. nack. Note the "(at your option) any later version"
Quoted 8 lines
Quoted 3 lines
If you are going to update to spdx and remove the old license verbiage, make sure you are adding the correct spdx tag.
My bad, will fix.
By the way, do you like these spdx update patch? Or would you rather I drop this one and wait to let some script do it for the whole subsystem?
I would not touch any license text until an automated tool can properly do a pass over the entire kernel source tree.
All the bsd variants probably require that the original text be left in place too.
Quoted 37 lines · Joe Perches
Quoted 36 lines · Andrew F. Davis
Quoted 34 lines · Joe Perches
Quoted 2 lines · Andrew F. Davis
The filename is often wrong after moves and adds nothing of value, lets drop it. While already here, switch to SPDX.
[]
sound/soc/codecs/tlv320aic32x4-i2c.c
Quoted 1 line
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-0[]
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. sound/soc/codecs/tlv320aic32x4-i2c.c line 18
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-10-* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. nack. Note the "(at your option) any later version"
If you are going to update to spdx and remove the old license verbiage, make sure you are adding the correct spdx tag.
Quoted 8 lines
Quoted 4 lines
My bad, will fix.
By the way, do you like these spdx update patch? Or would you rather I drop this one and wait to let some script do it for the whole subsystem?
I would not touch any license text until an automated tool can properly do a pass over the entire kernel source tree.
Just sent a message agreeing right as I got this one :)
Quoted 3 lines
All the bsd variants probably require that the original text be left in place too.
That's going to be pretty :/
Quoted 30 lines · Andrew F. Davis
Quoted 29 lines · Joe Perches
Quoted 2 lines · Andrew F. Davis
The filename is often wrong after moves and adds nothing of value, lets drop it. While already here, switch to SPDX.
[]
sound/soc/codecs/tlv320aic32x4-i2c.c
Quoted 1 line
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-0[]
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * * Author: Jeremy McDermond <[email protected]> * * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. sound/soc/codecs/tlv320aic32x4-i2c.c line 18
Quoted 10 lines
sound/soc/codecs/tlv320aic32x4-i2c.c +0
-10-* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. nack. Note the "(at your option) any later version"
Quoted 9 lines
Quoted 3 lines
If you are going to update to spdx and remove the old license verbiage, make sure you are adding the correct spdx tag.
My bad, will fix.
By the way, do you like these spdx update patch? Or would you rather I drop this one and wait to let some script do it for the whole subsystem?
This last question was directed at Mark btw :)
Actually, I'll just drop the spdx change from this patch, no reason to do these manually.
Mark Brown
maintainerQuoted 9 lines · Andrew F. Davis
Quoted 2 lines · Andrew F. Davis
By the way, do you like these spdx update patch? Or would you rather I drop this one and wait to let some script do it for the whole subsystem?
This last question was directed at Mark btw :)
Actually, I'll just drop the spdx change from this patch, no reason to do these manually.
It's fine for me, probably nicer if anything since it avoids issues like mixing C and C++ comments in an ugly fashion.
Mark Brown
maintainersound/soc/codecs/tlv320aic32x4-i2c.c line 4
Quoted 7 lines · Andrew F. Davis
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio *
Having the C++ comment next to a C comment is very ugly, if you're going to do this convert the entire comment block to C++ style.
Quoted 13 lines · Mark Brown
sound/soc/codecs/tlv320aic32x4-i2c.c line 4
Quoted 7 lines · Andrew F. Davis
sound/soc/codecs/tlv320aic32x4-i2c.c +1
-2@@ -1,21 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 /* -* linux/sound/soc/codecs/tlv320aic32x4-i2c.c -* * Copyright 2011 NW Digital Radio * Having the C++ comment next to a C comment is very ugly, if you're going to do this convert the entire comment block to C++ style.
Any C++ comments in non-C99 code is ugly.. Or whatever C standard the kernel claims to use these days.
My regex is a bit too rusty right now to handle searching for multi-line examples, do you know of anyone else converting the whole block to C++ style?
Things will look a lot uglier if we do this inconsistently, if it is now the law of the land we do this for the first line, then we should have it be the only exception. Everywhere else remaining old style comments, IMHO.
Mark Brown
maintainerQuoted 8 lines · Andrew F. Davis
My regex is a bit too rusty right now to handle searching for multi-line examples, do you know of anyone else converting the whole block to C++ style?
Things will look a lot uglier if we do this inconsistently, if it is now the law of the land we do this for the first line, then we should have it be the only exception. Everywhere else remaining old style comments, IMHO.
I think that's just the limited tooling people are using right now, we'll need to clean up the automatically generated output. Unless people provide tools to enforce styles we're going to end up with divergence anyway as people start adding new files, they ought to be going in with SPDX headers.