* [PATCH v3 0/3] ASoC: sun4i-codec: Distinguish sun4i from sun7i @ 2016-09-15 14:39 Danny Milosavljevic 2016-09-15 14:39 ` [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name Danny Milosavljevic ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Danny Milosavljevic @ 2016-09-15 14:39 UTC (permalink / raw) To: linux-arm-kernel Introduce mechanism to detect sun7i and provide a different regmap different compared to sun4i Allwinner A10. The controls will be extended in a forthcoming patch - it is necessary to distinguish between sun4i and sun7i controls because they have different registers. Renamed SUN4I_CODEC_AC_SYS_VERI to SUN7I_CODEC_AC_DAC_CAL and renamed SUN4I_CODEC_AC_MIC_PHONE_CAL to SUN7I_CODEC_AC_MIC_PHONE_CAL because these are actually not present on Allwinner A10. Handle quirks by regmap config and codec and select the correct quirks automatically. Danny Milosavljevic (3): ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name. ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL". ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants. sound/soc/sunxi/sun4i-codec.c | 45 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name. 2016-09-15 14:39 [PATCH v3 0/3] ASoC: sun4i-codec: Distinguish sun4i from sun7i Danny Milosavljevic @ 2016-09-15 14:39 ` Danny Milosavljevic 2016-09-15 15:22 ` Chen-Yu Tsai 2016-09-26 16:43 ` Applied "ASoC: sun4i-codec: Rename sun4i_codec_widgets for consistency" to the asoc tree Mark Brown 2016-09-15 14:39 ` [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL" Danny Milosavljevic 2016-09-15 14:39 ` [PATCH v3 3/3] ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants Danny Milosavljevic 2 siblings, 2 replies; 9+ messages in thread From: Danny Milosavljevic @ 2016-09-15 14:39 UTC (permalink / raw) To: linux-arm-kernel ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> --- sound/soc/sunxi/sun4i-codec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 0e19c50..c2c0583 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -509,7 +509,7 @@ static const struct snd_kcontrol_new sun4i_codec_pa_mute = static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1); -static const struct snd_kcontrol_new sun4i_codec_widgets[] = { +static const struct snd_kcontrol_new sun4i_codec_controls[] = { SOC_SINGLE_TLV("Power Amplifier Volume", SUN4I_CODEC_DAC_ACTL, SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0, sun4i_codec_pa_volume_scale), @@ -629,8 +629,8 @@ static const struct snd_soc_dapm_route sun4i_codec_codec_dapm_routes[] = { static struct snd_soc_codec_driver sun4i_codec_codec = { .component_driver = { - .controls = sun4i_codec_widgets, - .num_controls = ARRAY_SIZE(sun4i_codec_widgets), + .controls = sun4i_codec_controls, + .num_controls = ARRAY_SIZE(sun4i_codec_controls), .dapm_widgets = sun4i_codec_codec_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(sun4i_codec_codec_dapm_widgets), .dapm_routes = sun4i_codec_codec_dapm_routes, ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name. 2016-09-15 14:39 ` [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name Danny Milosavljevic @ 2016-09-15 15:22 ` Chen-Yu Tsai 2016-09-26 16:43 ` Applied "ASoC: sun4i-codec: Rename sun4i_codec_widgets for consistency" to the asoc tree Mark Brown 1 sibling, 0 replies; 9+ messages in thread From: Chen-Yu Tsai @ 2016-09-15 15:22 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 15, 2016 at 10:39 PM, Danny Milosavljevic <dannym@scratchpost.org> wrote: > ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for > consistency with the struct field name. Subject is way too long. The commit messages should be straight forward sentences, not in the format of patch subjects. Subject could read "ASoC: sun4i-codec: rename sun4i_codec_widgets for consistency". Then in the commit message you could elaborate on consistency with what, as you did here in the subject. Regards ChenYu > > Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> > --- > sound/soc/sunxi/sun4i-codec.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c > index 0e19c50..c2c0583 100644 > --- a/sound/soc/sunxi/sun4i-codec.c > +++ b/sound/soc/sunxi/sun4i-codec.c > @@ -509,7 +509,7 @@ static const struct snd_kcontrol_new sun4i_codec_pa_mute = > > static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1); > > -static const struct snd_kcontrol_new sun4i_codec_widgets[] = { > +static const struct snd_kcontrol_new sun4i_codec_controls[] = { > SOC_SINGLE_TLV("Power Amplifier Volume", SUN4I_CODEC_DAC_ACTL, > SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0, > sun4i_codec_pa_volume_scale), > @@ -629,8 +629,8 @@ static const struct snd_soc_dapm_route sun4i_codec_codec_dapm_routes[] = { > > static struct snd_soc_codec_driver sun4i_codec_codec = { > .component_driver = { > - .controls = sun4i_codec_widgets, > - .num_controls = ARRAY_SIZE(sun4i_codec_widgets), > + .controls = sun4i_codec_controls, > + .num_controls = ARRAY_SIZE(sun4i_codec_controls), > .dapm_widgets = sun4i_codec_codec_dapm_widgets, > .num_dapm_widgets = ARRAY_SIZE(sun4i_codec_codec_dapm_widgets), > .dapm_routes = sun4i_codec_codec_dapm_routes, ^ permalink raw reply [flat|nested] 9+ messages in thread
* Applied "ASoC: sun4i-codec: Rename sun4i_codec_widgets for consistency" to the asoc tree 2016-09-15 14:39 ` [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name Danny Milosavljevic 2016-09-15 15:22 ` Chen-Yu Tsai @ 2016-09-26 16:43 ` Mark Brown 1 sibling, 0 replies; 9+ messages in thread From: Mark Brown @ 2016-09-26 16:43 UTC (permalink / raw) To: linux-arm-kernel The patch ASoC: sun4i-codec: Rename sun4i_codec_widgets for consistency has been applied to the asoc tree at git://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 >From c9e902f4b37a3c108eb5dc51f1340c09becd7232 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic <dannym@scratchpost.org> Date: Sat, 24 Sep 2016 22:05:01 +0200 Subject: [PATCH] ASoC: sun4i-codec: Rename sun4i_codec_widgets for consistency Rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mark Brown <broonie@kernel.org> --- sound/soc/sunxi/sun4i-codec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index e51f363ff786..e047ec06d538 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -509,7 +509,7 @@ static const struct snd_kcontrol_new sun4i_codec_pa_mute = static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1); -static const struct snd_kcontrol_new sun4i_codec_widgets[] = { +static const struct snd_kcontrol_new sun4i_codec_controls[] = { SOC_SINGLE_TLV("Power Amplifier Volume", SUN4I_CODEC_DAC_ACTL, SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0, sun4i_codec_pa_volume_scale), @@ -629,8 +629,8 @@ static const struct snd_soc_dapm_route sun4i_codec_codec_dapm_routes[] = { static struct snd_soc_codec_driver sun4i_codec_codec = { .component_driver = { - .controls = sun4i_codec_widgets, - .num_controls = ARRAY_SIZE(sun4i_codec_widgets), + .controls = sun4i_codec_controls, + .num_controls = ARRAY_SIZE(sun4i_codec_controls), .dapm_widgets = sun4i_codec_codec_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(sun4i_codec_codec_dapm_widgets), .dapm_routes = sun4i_codec_codec_dapm_routes, -- 2.9.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL". 2016-09-15 14:39 [PATCH v3 0/3] ASoC: sun4i-codec: Distinguish sun4i from sun7i Danny Milosavljevic 2016-09-15 14:39 ` [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name Danny Milosavljevic @ 2016-09-15 14:39 ` Danny Milosavljevic 2016-09-15 15:16 ` Chen-Yu Tsai 2016-09-25 5:58 ` Applied "ASoC: sun4i-codec: Rename some sun7i-only registers" to the asoc tree Mark Brown 2016-09-15 14:39 ` [PATCH v3 3/3] ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants Danny Milosavljevic 2 siblings, 2 replies; 9+ messages in thread From: Danny Milosavljevic @ 2016-09-15 14:39 UTC (permalink / raw) To: linux-arm-kernel This patch renames some sun7i-only registers to reflect that fact. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> --- sound/soc/sunxi/sun4i-codec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index c2c0583..3b53b78 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -96,8 +96,8 @@ /* Other various ADC registers */ #define SUN4I_CODEC_DAC_TXCNT (0x30) #define SUN4I_CODEC_ADC_RXCNT (0x34) -#define SUN4I_CODEC_AC_SYS_VERI (0x38) -#define SUN4I_CODEC_AC_MIC_PHONE_CAL (0x3c) +#define SUN7I_CODEC_AC_DAC_CAL (0x38) +#define SUN7I_CODEC_AC_MIC_PHONE_CAL (0x3c) struct sun4i_codec { struct device *dev; @@ -682,7 +682,7 @@ static const struct regmap_config sun4i_codec_regmap_config = { .reg_bits = 32, .reg_stride = 4, .val_bits = 32, - .max_register = SUN4I_CODEC_AC_MIC_PHONE_CAL, + .max_register = SUN7I_CODEC_AC_MIC_PHONE_CAL, }; static const struct of_device_id sun4i_codec_of_match[] = { ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL". 2016-09-15 14:39 ` [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL" Danny Milosavljevic @ 2016-09-15 15:16 ` Chen-Yu Tsai 2016-09-25 5:58 ` Applied "ASoC: sun4i-codec: Rename some sun7i-only registers" to the asoc tree Mark Brown 1 sibling, 0 replies; 9+ messages in thread From: Chen-Yu Tsai @ 2016-09-15 15:16 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 15, 2016 at 10:39 PM, Danny Milosavljevic <dannym@scratchpost.org> wrote: > This patch renames some sun7i-only registers to reflect that fact. The subject line is way longer than it should be. Perhaps you could use the above message as the description part of the subject? ChenYu > > Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> > --- > sound/soc/sunxi/sun4i-codec.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c > index c2c0583..3b53b78 100644 > --- a/sound/soc/sunxi/sun4i-codec.c > +++ b/sound/soc/sunxi/sun4i-codec.c > @@ -96,8 +96,8 @@ > /* Other various ADC registers */ > #define SUN4I_CODEC_DAC_TXCNT (0x30) > #define SUN4I_CODEC_ADC_RXCNT (0x34) > -#define SUN4I_CODEC_AC_SYS_VERI (0x38) > -#define SUN4I_CODEC_AC_MIC_PHONE_CAL (0x3c) > +#define SUN7I_CODEC_AC_DAC_CAL (0x38) > +#define SUN7I_CODEC_AC_MIC_PHONE_CAL (0x3c) > > struct sun4i_codec { > struct device *dev; > @@ -682,7 +682,7 @@ static const struct regmap_config sun4i_codec_regmap_config = { > .reg_bits = 32, > .reg_stride = 4, > .val_bits = 32, > - .max_register = SUN4I_CODEC_AC_MIC_PHONE_CAL, > + .max_register = SUN7I_CODEC_AC_MIC_PHONE_CAL, > }; > > static const struct of_device_id sun4i_codec_of_match[] = { ^ permalink raw reply [flat|nested] 9+ messages in thread
* Applied "ASoC: sun4i-codec: Rename some sun7i-only registers" to the asoc tree 2016-09-15 14:39 ` [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL" Danny Milosavljevic 2016-09-15 15:16 ` Chen-Yu Tsai @ 2016-09-25 5:58 ` Mark Brown 1 sibling, 0 replies; 9+ messages in thread From: Mark Brown @ 2016-09-25 5:58 UTC (permalink / raw) To: linux-arm-kernel The patch ASoC: sun4i-codec: Rename some sun7i-only registers has been applied to the asoc tree at git://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 >From 4f0c4e99312d8887483474d60e47ab4e24713114 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic <dannym@scratchpost.org> Date: Thu, 22 Sep 2016 09:13:12 +0200 Subject: [PATCH] ASoC: sun4i-codec: Rename some sun7i-only registers Some of the registers defined in the driver are only usable on the A20. Rename these registers. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mark Brown <broonie@kernel.org> --- sound/soc/sunxi/sun4i-codec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 44f170c73b06..9d8c027f7c55 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -96,8 +96,8 @@ /* Other various ADC registers */ #define SUN4I_CODEC_DAC_TXCNT (0x30) #define SUN4I_CODEC_ADC_RXCNT (0x34) -#define SUN4I_CODEC_AC_SYS_VERI (0x38) -#define SUN4I_CODEC_AC_MIC_PHONE_CAL (0x3c) +#define SUN7I_CODEC_AC_DAC_CAL (0x38) +#define SUN7I_CODEC_AC_MIC_PHONE_CAL (0x3c) struct sun4i_codec { struct device *dev; @@ -680,7 +680,7 @@ static const struct regmap_config sun4i_codec_regmap_config = { .reg_bits = 32, .reg_stride = 4, .val_bits = 32, - .max_register = SUN4I_CODEC_AC_MIC_PHONE_CAL, + .max_register = SUN7I_CODEC_AC_MIC_PHONE_CAL, }; static const struct of_device_id sun4i_codec_of_match[] = { -- 2.9.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/3] ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants. 2016-09-15 14:39 [PATCH v3 0/3] ASoC: sun4i-codec: Distinguish sun4i from sun7i Danny Milosavljevic 2016-09-15 14:39 ` [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name Danny Milosavljevic 2016-09-15 14:39 ` [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL" Danny Milosavljevic @ 2016-09-15 14:39 ` Danny Milosavljevic 2016-09-15 15:19 ` Chen-Yu Tsai 2 siblings, 1 reply; 9+ messages in thread From: Danny Milosavljevic @ 2016-09-15 14:39 UTC (permalink / raw) To: linux-arm-kernel ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> --- sound/soc/sunxi/sun4i-codec.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 3b53b78..c5d6d84c 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -682,12 +682,37 @@ static const struct regmap_config sun4i_codec_regmap_config = { .reg_bits = 32, .reg_stride = 4, .val_bits = 32, + .max_register = SUN4I_CODEC_ADC_RXCNT, +}; + +static const struct regmap_config sun7i_codec_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, .max_register = SUN7I_CODEC_AC_MIC_PHONE_CAL, }; +struct sun4i_codec_quirks { + const struct regmap_config *regmap_config; +}; + +static const struct sun4i_codec_quirks sun4i_codec_quirks = { + .regmap_config = &sun4i_codec_regmap_config, +}; + +static const struct sun4i_codec_quirks sun7i_codec_quirks = { + .regmap_config = &sun7i_codec_regmap_config, +}; + static const struct of_device_id sun4i_codec_of_match[] = { - { .compatible = "allwinner,sun4i-a10-codec" }, - { .compatible = "allwinner,sun7i-a20-codec" }, + { + .compatible = "allwinner,sun4i-a10-codec", + .data = &sun4i_codec_quirks, + }, + { + .compatible = "allwinner,sun7i-a20-codec", + .data = &sun7i_codec_quirks, + }, {} }; MODULE_DEVICE_TABLE(of, sun4i_codec_of_match); @@ -760,6 +785,7 @@ static int sun4i_codec_probe(struct platform_device *pdev) { struct snd_soc_card *card; struct sun4i_codec *scodec; + const struct sun4i_codec_quirks *quirks; struct resource *res; void __iomem *base; int ret; @@ -777,8 +803,9 @@ static int sun4i_codec_probe(struct platform_device *pdev) return PTR_ERR(base); } + quirks = of_device_get_match_data(&pdev->dev); scodec->regmap = devm_regmap_init_mmio(&pdev->dev, base, - &sun4i_codec_regmap_config); + quirks->regmap_config); if (IS_ERR(scodec->regmap)) { dev_err(&pdev->dev, "Failed to create our regmap\n"); return PTR_ERR(scodec->regmap); ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/3] ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants. 2016-09-15 14:39 ` [PATCH v3 3/3] ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants Danny Milosavljevic @ 2016-09-15 15:19 ` Chen-Yu Tsai 0 siblings, 0 replies; 9+ messages in thread From: Chen-Yu Tsai @ 2016-09-15 15:19 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 15, 2016 at 10:39 PM, Danny Milosavljevic <dannym@scratchpost.org> wrote: > ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants. The commit message should be a straight forward description about what the patch does and why you did it, not a direct copy of the subject. Something along the lines of "The A20 has a few extra registers that the A10 doesn't have ..." will do for the why. Regards ChenYu > > Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> > --- > sound/soc/sunxi/sun4i-codec.c | 33 ++++++++++++++++++++++++++++++--- > 1 file changed, 30 insertions(+), 3 deletions(-) > > diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c > index 3b53b78..c5d6d84c 100644 > --- a/sound/soc/sunxi/sun4i-codec.c > +++ b/sound/soc/sunxi/sun4i-codec.c > @@ -682,12 +682,37 @@ static const struct regmap_config sun4i_codec_regmap_config = { > .reg_bits = 32, > .reg_stride = 4, > .val_bits = 32, > + .max_register = SUN4I_CODEC_ADC_RXCNT, > +}; > + > +static const struct regmap_config sun7i_codec_regmap_config = { > + .reg_bits = 32, > + .reg_stride = 4, > + .val_bits = 32, > .max_register = SUN7I_CODEC_AC_MIC_PHONE_CAL, > }; > > +struct sun4i_codec_quirks { > + const struct regmap_config *regmap_config; > +}; > + > +static const struct sun4i_codec_quirks sun4i_codec_quirks = { > + .regmap_config = &sun4i_codec_regmap_config, > +}; > + > +static const struct sun4i_codec_quirks sun7i_codec_quirks = { > + .regmap_config = &sun7i_codec_regmap_config, > +}; > + > static const struct of_device_id sun4i_codec_of_match[] = { > - { .compatible = "allwinner,sun4i-a10-codec" }, > - { .compatible = "allwinner,sun7i-a20-codec" }, > + { > + .compatible = "allwinner,sun4i-a10-codec", > + .data = &sun4i_codec_quirks, > + }, > + { > + .compatible = "allwinner,sun7i-a20-codec", > + .data = &sun7i_codec_quirks, > + }, > {} > }; > MODULE_DEVICE_TABLE(of, sun4i_codec_of_match); > @@ -760,6 +785,7 @@ static int sun4i_codec_probe(struct platform_device *pdev) > { > struct snd_soc_card *card; > struct sun4i_codec *scodec; > + const struct sun4i_codec_quirks *quirks; > struct resource *res; > void __iomem *base; > int ret; > @@ -777,8 +803,9 @@ static int sun4i_codec_probe(struct platform_device *pdev) > return PTR_ERR(base); > } > > + quirks = of_device_get_match_data(&pdev->dev); > scodec->regmap = devm_regmap_init_mmio(&pdev->dev, base, > - &sun4i_codec_regmap_config); > + quirks->regmap_config); > if (IS_ERR(scodec->regmap)) { > dev_err(&pdev->dev, "Failed to create our regmap\n"); > return PTR_ERR(scodec->regmap); ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-09-26 16:43 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-09-15 14:39 [PATCH v3 0/3] ASoC: sun4i-codec: Distinguish sun4i from sun7i Danny Milosavljevic 2016-09-15 14:39 ` [PATCH v3 1/3] ASoC: sun4i-codec: rename "sun4i_codec_widgets" to "sun4i_codec_controls" for consistency with the struct field name Danny Milosavljevic 2016-09-15 15:22 ` Chen-Yu Tsai 2016-09-26 16:43 ` Applied "ASoC: sun4i-codec: Rename sun4i_codec_widgets for consistency" to the asoc tree Mark Brown 2016-09-15 14:39 ` [PATCH v3 2/3] ASoC: rename "SUN4I_CODEC_SYS_VERI" to "SUN7I_CODEC_AC_DAC_CAL"; rename "SUN4I_CODEC_AC_MIC_PHONE_CAL" to "SUN7I_CODEC_AC_MIC_PHONE_CAL" Danny Milosavljevic 2016-09-15 15:16 ` Chen-Yu Tsai 2016-09-25 5:58 ` Applied "ASoC: sun4i-codec: Rename some sun7i-only registers" to the asoc tree Mark Brown 2016-09-15 14:39 ` [PATCH v3 3/3] ASoC: sun4i-codec: Add custom regmap configs for the A10 and A20 variants Danny Milosavljevic 2016-09-15 15:19 ` Chen-Yu Tsai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).