All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
Cc: Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Jaroslav Kysela <perex-/Fr2/VpizcU@public.gmane.org>,
	Takashi Iwai <tiwai-IBi9RG/b67k@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Russell King <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org>,
	Linux-ALSA <alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org>,
	linux-arm-kernel
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	linux-kernel
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: [PATCH 05/12] ASoC: sun4i-codec: Add support for A31 playback through headphone output
Date: Mon, 10 Oct 2016 12:04:44 +0200	[thread overview]
Message-ID: <20161010100444.GD3462@lukather> (raw)
In-Reply-To: <CAGb2v66b_zG=xK_JVBnwY=SPtvJ+c-fZjuugAHUybzZdkkcScg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2065 bytes --]

On Tue, Oct 04, 2016 at 12:26:08PM +0800, Chen-Yu Tsai wrote:
> >> +struct sun4i_codec_regs {
> >> +     u32     adc_fifoc;
> >> +     u32     adc_fifos;
> >> +     u32     adc_rxdata;
> >> +};
> >> +
> >>  struct sun4i_codec {
> >>       struct device   *dev;
> >>       struct regmap   *regmap;
> >>       struct clk      *clk_apb;
> >>       struct clk      *clk_module;
> >>       struct gpio_desc *gpio_pa;
> >> +     const struct sun4i_codec_regs *regs;
> >
> > You're reimplementing reg_field here.
> 
> Are you suggesting we do reg_fields for each register?
> Or all the bit fields separately. The latter would add
> quite a few pointers.

only the one that change, so judging from your structure, only the ADC
fifo control, status and data registers.
> >> +static const struct of_device_id sun4i_codec_of_match[] = {
> >> +     {
> >> +             .compatible = "allwinner,sun4i-a10-codec",
> >> +             .data = &sun4i_codec_quirks,
> >> +     },
> >> +     {
> >> +             .compatible = "allwinner,sun6i-a31-codec",
> >> +             .data = &sun6i_a31_codec_quirks,
> >> +     },
> >> +     {
> >> +             .compatible = "allwinner,sun7i-a20-codec",
> >> +             .data = &sun7i_codec_quirks,
> >> +     },
> >> +     {}
> >> +};
> >> +MODULE_DEVICE_TABLE(of, sun4i_codec_of_match);
> >> +
> >
> > I don't really like moving blocks of code over and over again,
> > especially in the middle of an unrelated patch.
> 
> It's not completely unrelated. I want different create_card
> functions for the different SoCs, and that has to be part of the
> quirks, so the quirks and the of_match list have to be moved
> below them. I suppose I could leave the regmap parts in place,
> but keeping them together is nicer.
> 
> If I split out the addition of the .create_card field and
> code movement into a separate patch, would that be OK?

Yep, that would work.

Thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 05/12] ASoC: sun4i-codec: Add support for A31 playback through headphone output
Date: Mon, 10 Oct 2016 12:04:44 +0200	[thread overview]
Message-ID: <20161010100444.GD3462@lukather> (raw)
In-Reply-To: <CAGb2v66b_zG=xK_JVBnwY=SPtvJ+c-fZjuugAHUybzZdkkcScg@mail.gmail.com>

On Tue, Oct 04, 2016 at 12:26:08PM +0800, Chen-Yu Tsai wrote:
> >> +struct sun4i_codec_regs {
> >> +     u32     adc_fifoc;
> >> +     u32     adc_fifos;
> >> +     u32     adc_rxdata;
> >> +};
> >> +
> >>  struct sun4i_codec {
> >>       struct device   *dev;
> >>       struct regmap   *regmap;
> >>       struct clk      *clk_apb;
> >>       struct clk      *clk_module;
> >>       struct gpio_desc *gpio_pa;
> >> +     const struct sun4i_codec_regs *regs;
> >
> > You're reimplementing reg_field here.
> 
> Are you suggesting we do reg_fields for each register?
> Or all the bit fields separately. The latter would add
> quite a few pointers.

only the one that change, so judging from your structure, only the ADC
fifo control, status and data registers.
> >> +static const struct of_device_id sun4i_codec_of_match[] = {
> >> +     {
> >> +             .compatible = "allwinner,sun4i-a10-codec",
> >> +             .data = &sun4i_codec_quirks,
> >> +     },
> >> +     {
> >> +             .compatible = "allwinner,sun6i-a31-codec",
> >> +             .data = &sun6i_a31_codec_quirks,
> >> +     },
> >> +     {
> >> +             .compatible = "allwinner,sun7i-a20-codec",
> >> +             .data = &sun7i_codec_quirks,
> >> +     },
> >> +     {}
> >> +};
> >> +MODULE_DEVICE_TABLE(of, sun4i_codec_of_match);
> >> +
> >
> > I don't really like moving blocks of code over and over again,
> > especially in the middle of an unrelated patch.
> 
> It's not completely unrelated. I want different create_card
> functions for the different SoCs, and that has to be part of the
> quirks, so the quirks and the of_match list have to be moved
> below them. I suppose I could leave the regmap parts in place,
> but keeping them together is nicer.
> 
> If I split out the addition of the .create_card field and
> code movement into a separate patch, would that be OK?

Yep, that would work.

Thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161010/0827457c/attachment.sig>

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Chen-Yu Tsai <wens@csie.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
	Takashi Iwai <tiwai@suse.com>, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	Linux-ALSA <alsa-devel@alsa-project.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	linux-sunxi <linux-sunxi@googlegroups.com>
Subject: Re: [PATCH 05/12] ASoC: sun4i-codec: Add support for A31 playback through headphone output
Date: Mon, 10 Oct 2016 12:04:44 +0200	[thread overview]
Message-ID: <20161010100444.GD3462@lukather> (raw)
In-Reply-To: <CAGb2v66b_zG=xK_JVBnwY=SPtvJ+c-fZjuugAHUybzZdkkcScg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2065 bytes --]

On Tue, Oct 04, 2016 at 12:26:08PM +0800, Chen-Yu Tsai wrote:
> >> +struct sun4i_codec_regs {
> >> +     u32     adc_fifoc;
> >> +     u32     adc_fifos;
> >> +     u32     adc_rxdata;
> >> +};
> >> +
> >>  struct sun4i_codec {
> >>       struct device   *dev;
> >>       struct regmap   *regmap;
> >>       struct clk      *clk_apb;
> >>       struct clk      *clk_module;
> >>       struct gpio_desc *gpio_pa;
> >> +     const struct sun4i_codec_regs *regs;
> >
> > You're reimplementing reg_field here.
> 
> Are you suggesting we do reg_fields for each register?
> Or all the bit fields separately. The latter would add
> quite a few pointers.

only the one that change, so judging from your structure, only the ADC
fifo control, status and data registers.
> >> +static const struct of_device_id sun4i_codec_of_match[] = {
> >> +     {
> >> +             .compatible = "allwinner,sun4i-a10-codec",
> >> +             .data = &sun4i_codec_quirks,
> >> +     },
> >> +     {
> >> +             .compatible = "allwinner,sun6i-a31-codec",
> >> +             .data = &sun6i_a31_codec_quirks,
> >> +     },
> >> +     {
> >> +             .compatible = "allwinner,sun7i-a20-codec",
> >> +             .data = &sun7i_codec_quirks,
> >> +     },
> >> +     {}
> >> +};
> >> +MODULE_DEVICE_TABLE(of, sun4i_codec_of_match);
> >> +
> >
> > I don't really like moving blocks of code over and over again,
> > especially in the middle of an unrelated patch.
> 
> It's not completely unrelated. I want different create_card
> functions for the different SoCs, and that has to be part of the
> quirks, so the quirks and the of_match list have to be moved
> below them. I suppose I could leave the regmap parts in place,
> but keeping them together is nicer.
> 
> If I split out the addition of the .create_card field and
> code movement into a separate patch, would that be OK?

Yep, that would work.

Thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2016-10-10 10:04 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-03 11:07 [PATCH 00/12] ASoC: sun4i-codec: Add support for A31 Codec Chen-Yu Tsai
2016-10-03 11:07 ` Chen-Yu Tsai
     [not found] ` <20161003110804.28235-1-wens-jdAy2FN1RRM@public.gmane.org>
2016-10-03 11:07   ` [PATCH 01/12] ASoC: dapm: Support second register for DAPM control updates Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07   ` [PATCH 02/12] ASoC: dapm: Implement stereo mixer control support Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
     [not found]     ` <20161003110804.28235-3-wens-jdAy2FN1RRM@public.gmane.org>
2016-10-26 16:57       ` Mark Brown
2016-10-26 16:57         ` Mark Brown
2016-10-26 16:57         ` Mark Brown
     [not found]         ` <20161026165753.GC25322-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2016-10-27  1:20           ` Chen-Yu Tsai
2016-10-27  1:20             ` Chen-Yu Tsai
2016-10-27  1:20             ` Chen-Yu Tsai
2016-10-26 17:50       ` Mark Brown
2016-10-26 17:50         ` Mark Brown
2016-10-26 17:50         ` Mark Brown
     [not found]         ` <20161026175052.GE25322-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2016-10-27 14:02           ` Chen-Yu Tsai
2016-10-27 14:02             ` Chen-Yu Tsai
2016-10-27 14:02             ` Chen-Yu Tsai
2016-10-03 11:07   ` [PATCH 03/12] ASoC: dapm: Introduce DAPM_DOUBLE dual channel control type Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-11-02 16:47     ` Applied "ASoC: dapm: Introduce DAPM_DOUBLE dual channel control type" to the asoc tree Mark Brown
2016-11-02 16:47       ` Mark Brown
2016-11-02 16:47       ` Mark Brown
2016-10-03 11:07   ` [PATCH 04/12] ASoC: dapm: Introduce DAPM_DOUBLE_R dual channel dual register control type Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-11-02 16:46     ` Applied "ASoC: dapm: Introduce DAPM_DOUBLE_R dual channel dual register control type" to the asoc tree Mark Brown
2016-11-02 16:46       ` Mark Brown
2016-11-02 16:46       ` Mark Brown
2016-10-03 11:07   ` [PATCH 05/12] ASoC: sun4i-codec: Add support for A31 playback through headphone output Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:47     ` Maxime Ripard
2016-10-03 11:47       ` Maxime Ripard
2016-10-04  4:26       ` Chen-Yu Tsai
2016-10-04  4:26         ` Chen-Yu Tsai
     [not found]         ` <CAGb2v66b_zG=xK_JVBnwY=SPtvJ+c-fZjuugAHUybzZdkkcScg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-10-10 10:04           ` Maxime Ripard [this message]
2016-10-10 10:04             ` Maxime Ripard
2016-10-10 10:04             ` Maxime Ripard
     [not found]     ` <20161003110804.28235-6-wens-jdAy2FN1RRM@public.gmane.org>
2016-10-09  1:29       ` Rob Herring
2016-10-09  1:29         ` Rob Herring
2016-10-09  1:29         ` Rob Herring
2016-10-03 11:07   ` [PATCH 06/12] ASoC: sun4i-codec: Add support for A31 Line In playback Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
     [not found]     ` <20161003110804.28235-7-wens-jdAy2FN1RRM@public.gmane.org>
2016-11-03 20:33       ` Applied "ASoC: sun4i-codec: Add support for A31 Line In playback" to the asoc tree Mark Brown
2016-11-03 20:33         ` Mark Brown
2016-11-03 20:33         ` Mark Brown
2016-10-03 11:07   ` [PATCH 07/12] ASoC: sun4i-codec: Add support for A31 Line Out playback Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:07     ` Chen-Yu Tsai
2016-10-03 11:08   ` [PATCH 08/12] ASoC: sun4i-codec: Add support for A31 analog microphone inputs Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08   ` [PATCH 09/12] ASoC: sun4i-codec: Add support for A31 ADC capture path Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-11-09 14:59     ` Applied "ASoC: sun4i-codec: Add support for A31 ADC capture path" to the asoc tree Mark Brown
2016-11-09 14:59       ` Mark Brown
2016-11-09 14:59       ` Mark Brown
2016-10-03 11:08   ` [PATCH 10/12] ASoC: sun4i-codec: Add support for A31 board level audio routing Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
     [not found]     ` <20161003110804.28235-11-wens-jdAy2FN1RRM@public.gmane.org>
2016-10-09  1:29       ` Rob Herring
2016-10-09  1:29         ` Rob Herring
2016-10-09  1:29         ` Rob Herring
2016-10-03 11:08   ` [PATCH 11/12] ARM: dts: sun6i: Add audio codec device node Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08   ` [PATCH 12/12] ARM: dts: sun6i: hummingbird: Enable internal audio codec Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai
2016-10-03 11:08     ` Chen-Yu Tsai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161010100444.GD3462@lukather \
    --to=maxime.ripard-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
    --cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=perex-/Fr2/VpizcU@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=tiwai-IBi9RG/b67k@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.