All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Ola LILJA2 <ola.o.lilja@stericsson.com>,
	alsa-devel@alsa-project.org, linus.walleij@stericsson.com,
	arnd@arndb.de, broonie@opensource.wolfsonmicro.com,
	linux-kernel@vger.kernel.org,
	STEricsson_nomadik_linux@list.st.com,
	Patrice CHOTARD <patrice.chotard@stericsson.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 04/22] ASoC: Ux500: Move MSP pinctrl setup into the MSP driver
Date: Mon, 20 Aug 2012 12:59:25 +0100	[thread overview]
Message-ID: <20120820115914.GP8450@gmail.com> (raw)
In-Reply-To: <CACRpkda_xOyu9BFGRK4xTsXOO9RCJu7BbU-kPGpttVkR6mDMZg@mail.gmail.com>

On Tue, Aug 14, 2012 at 10:51:02AM +0200, Linus Walleij wrote:
> On Thu, Aug 9, 2012 at 5:47 PM, Lee Jones <lee.jones@linaro.org> wrote:
> 
> > In the initial submission of the MSP driver msp1 and msp3's associated
> > pinctrl mechanism was passed back to platform code using a plat_init()
> > call-back routine, but it has no place in platform code. The MSP driver
> > should set this up for the appropriate ports. Instead we use a use_pinctrl
> > identifier which is passed from platform_data/Device Tree which indicates
> > which ports should use pinctrl.
> >
> > CC: alsa-devel@alsa-project.org
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> 
> This is very good because it rids platform code and makes the driver
> self-contained without strange platform data hooks.
> 
> Now details...
> 
> > +/* MSP1/3 Tx/Rx usage protection */
> > +static DEFINE_SPINLOCK(msp_rxtx_lock);
> > +
> > +/* Pin modes */
> > +struct pinctrl *pinctrl_p;
> > +struct pinctrl_state *pinctrl_def;
> > +struct pinctrl_state *pinctrl_sleep;
> > +
> > +/* Reference Count */
> > +int pinctrl_rxtx_ref;
> 
> 
> But wait. These are just local statics. Surelty you can put these into
> struct ux500_msp instead? Here it looks like these will be used for
> all ports, so MSP2 will enable the pins requested by MSP1 etc
> completely broken. So put it into the struct ux500_msp state
> container from ux500_msp_i2s.h where it belongs.
> 
> Refer to drivers/tty/serial/amba-pl011.c when in trouble. This
> one is a good pinctrl example.

How do you see the MSP1 and MSP3 usage protection working if I hide it
all away in MSP specific structs?

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/22] ASoC: Ux500: Move MSP pinctrl setup into the MSP driver
Date: Mon, 20 Aug 2012 12:59:25 +0100	[thread overview]
Message-ID: <20120820115914.GP8450@gmail.com> (raw)
In-Reply-To: <CACRpkda_xOyu9BFGRK4xTsXOO9RCJu7BbU-kPGpttVkR6mDMZg@mail.gmail.com>

On Tue, Aug 14, 2012 at 10:51:02AM +0200, Linus Walleij wrote:
> On Thu, Aug 9, 2012 at 5:47 PM, Lee Jones <lee.jones@linaro.org> wrote:
> 
> > In the initial submission of the MSP driver msp1 and msp3's associated
> > pinctrl mechanism was passed back to platform code using a plat_init()
> > call-back routine, but it has no place in platform code. The MSP driver
> > should set this up for the appropriate ports. Instead we use a use_pinctrl
> > identifier which is passed from platform_data/Device Tree which indicates
> > which ports should use pinctrl.
> >
> > CC: alsa-devel at alsa-project.org
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> 
> This is very good because it rids platform code and makes the driver
> self-contained without strange platform data hooks.
> 
> Now details...
> 
> > +/* MSP1/3 Tx/Rx usage protection */
> > +static DEFINE_SPINLOCK(msp_rxtx_lock);
> > +
> > +/* Pin modes */
> > +struct pinctrl *pinctrl_p;
> > +struct pinctrl_state *pinctrl_def;
> > +struct pinctrl_state *pinctrl_sleep;
> > +
> > +/* Reference Count */
> > +int pinctrl_rxtx_ref;
> 
> 
> But wait. These are just local statics. Surelty you can put these into
> struct ux500_msp instead? Here it looks like these will be used for
> all ports, so MSP2 will enable the pins requested by MSP1 etc
> completely broken. So put it into the struct ux500_msp state
> container from ux500_msp_i2s.h where it belongs.
> 
> Refer to drivers/tty/serial/amba-pl011.c when in trouble. This
> one is a good pinctrl example.

How do you see the MSP1 and MSP3 usage protection working if I hide it
all away in MSP specific structs?

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org,
	linus.walleij@stericsson.com, arnd@arndb.de,
	broonie@opensource.wolfsonmicro.com,
	STEricsson_nomadik_linux@list.st.com,
	Patrice CHOTARD <patrice.chotard@stericsson.com>,
	Ola LILJA2 <ola.o.lilja@stericsson.com>
Subject: Re: [PATCH 04/22] ASoC: Ux500: Move MSP pinctrl setup into the MSP driver
Date: Mon, 20 Aug 2012 12:59:25 +0100	[thread overview]
Message-ID: <20120820115914.GP8450@gmail.com> (raw)
In-Reply-To: <CACRpkda_xOyu9BFGRK4xTsXOO9RCJu7BbU-kPGpttVkR6mDMZg@mail.gmail.com>

On Tue, Aug 14, 2012 at 10:51:02AM +0200, Linus Walleij wrote:
> On Thu, Aug 9, 2012 at 5:47 PM, Lee Jones <lee.jones@linaro.org> wrote:
> 
> > In the initial submission of the MSP driver msp1 and msp3's associated
> > pinctrl mechanism was passed back to platform code using a plat_init()
> > call-back routine, but it has no place in platform code. The MSP driver
> > should set this up for the appropriate ports. Instead we use a use_pinctrl
> > identifier which is passed from platform_data/Device Tree which indicates
> > which ports should use pinctrl.
> >
> > CC: alsa-devel@alsa-project.org
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> 
> This is very good because it rids platform code and makes the driver
> self-contained without strange platform data hooks.
> 
> Now details...
> 
> > +/* MSP1/3 Tx/Rx usage protection */
> > +static DEFINE_SPINLOCK(msp_rxtx_lock);
> > +
> > +/* Pin modes */
> > +struct pinctrl *pinctrl_p;
> > +struct pinctrl_state *pinctrl_def;
> > +struct pinctrl_state *pinctrl_sleep;
> > +
> > +/* Reference Count */
> > +int pinctrl_rxtx_ref;
> 
> 
> But wait. These are just local statics. Surelty you can put these into
> struct ux500_msp instead? Here it looks like these will be used for
> all ports, so MSP2 will enable the pins requested by MSP1 etc
> completely broken. So put it into the struct ux500_msp state
> container from ux500_msp_i2s.h where it belongs.
> 
> Refer to drivers/tty/serial/amba-pl011.c when in trouble. This
> one is a good pinctrl example.

How do you see the MSP1 and MSP3 usage protection working if I hide it
all away in MSP specific structs?

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  parent reply	other threads:[~2012-08-20 11:59 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-09 15:47 [PATCH 00/22] mop500 related Audio reorganisation and fixups Lee Jones
2012-08-09 15:47 ` Lee Jones
2012-08-09 15:47 ` [PATCH 01/22] ARM: ux500: Fix merge error, no matching driver name for 'snd_soc_u8500' Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14  8:38   ` Linus Walleij
2012-08-14  8:38     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 02/22] ARM: ux500: Ensure probing of Audio devices when Device Tree is enabled Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14  8:40   ` Linus Walleij
2012-08-14  8:40     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 03/22] ASoC: ab8500: Inform SoC Core that we have our own I/O arrangements Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14  8:40   ` Linus Walleij
2012-08-14  8:40     ` Linus Walleij
2012-08-14  8:40     ` Linus Walleij
2012-08-14 12:17   ` Takashi Iwai
2012-08-14 12:17     ` [alsa-devel] " Takashi Iwai
2012-08-14 12:17     ` Takashi Iwai
2012-08-15 14:01   ` Mark Brown
2012-08-15 14:01     ` Mark Brown
2012-08-09 15:47 ` [PATCH 04/22] ASoC: Ux500: Move MSP pinctrl setup into the MSP driver Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14  8:51   ` Linus Walleij
2012-08-14  8:51     ` Linus Walleij
2012-08-14  8:51     ` Linus Walleij
2012-08-20  8:09     ` Lee Jones
2012-08-20  8:09       ` Lee Jones
2012-08-20 11:59     ` Lee Jones [this message]
2012-08-20 11:59       ` Lee Jones
2012-08-20 11:59       ` Lee Jones
2012-08-27 23:09       ` Linus Walleij
2012-08-27 23:09         ` Linus Walleij
2012-08-27 23:09         ` Linus Walleij
2012-08-30 13:18         ` Lee Jones
2012-08-30 13:18           ` Lee Jones
2012-08-30 13:18           ` Lee Jones
2012-08-09 15:47 ` [PATCH 05/22] ASoC: Ux500: Enable MOP500 driver for Device Tree Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14  8:52   ` Linus Walleij
2012-08-14  8:52     ` Linus Walleij
2012-08-14  8:52     ` Linus Walleij
2012-09-10 16:45     ` Lee Jones
2012-09-10 16:45       ` Lee Jones
2012-09-10 16:45       ` Lee Jones
2012-08-09 15:47 ` [PATCH 06/22] ASoC: Ux500: Enable ux500 MSP " Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14  8:55   ` Linus Walleij
2012-08-14  8:55     ` Linus Walleij
2012-09-10 16:45     ` Lee Jones
2012-09-10 16:45       ` Lee Jones
2012-09-10 16:45       ` Lee Jones
2012-08-09 15:47 ` [PATCH 07/22] ASoC: Ux500: Initialise PCM from MSP probe rather than as a device Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:08   ` Linus Walleij
2012-08-14 11:08     ` Linus Walleij
2012-08-14 11:08     ` Linus Walleij
     [not found]     ` <002801cd7c31$14d3d0c0$3e7b7240$@se>
     [not found]       ` <20120820085111.GJ8450@gmail.com>
     [not found]         ` <006d01cd7f5a$65937840$30ba68c0$@se>
2012-08-23  9:22           ` Lee Jones
2012-08-23  9:22             ` Lee Jones
2012-08-23 11:39             ` Mark Brown
2012-08-23 11:39               ` Mark Brown
2012-08-23 12:20               ` Lee Jones
2012-08-23 12:20                 ` Lee Jones
2012-08-23 12:59                 ` Mark Brown
2012-08-23 12:59                   ` Mark Brown
2012-08-23 13:26                   ` Lee Jones
2012-08-23 13:26                     ` Lee Jones
2012-08-23 14:37                     ` Mark Brown
2012-08-23 14:37                       ` Mark Brown
2012-08-23 14:59                       ` Lee Jones
2012-08-23 14:59                         ` Lee Jones
2012-08-23 15:00                         ` Mark Brown
2012-08-23 15:00                           ` Mark Brown
2012-09-19 12:29                   ` Lee Jones
2012-09-19 12:29                     ` Lee Jones
2012-09-19 13:33     ` [RESENDING] " Lee Jones
2012-09-19 13:33       ` Lee Jones
2012-09-19 13:33       ` Lee Jones
2012-09-20  9:03       ` Ola Lilja
2012-09-20  9:03         ` Ola Lilja
2012-09-20  9:03         ` Ola Lilja
2012-09-20 12:49         ` Mark Brown
2012-09-20 12:49           ` Mark Brown
2012-09-20 12:49           ` Mark Brown
2012-09-20 12:52         ` Lee Jones
2012-09-20 12:52           ` Lee Jones
2012-09-20 12:52           ` Lee Jones
2012-11-22 14:05           ` Lee Jones
2012-11-22 14:05             ` Lee Jones
2012-11-22 14:05             ` Lee Jones
2012-11-23  1:58             ` Mark Brown
2012-11-23  1:58               ` Mark Brown
2012-11-23  9:12               ` Lee Jones
2012-11-23  9:12                 ` Lee Jones
2012-11-23 10:09                 ` Mark Brown
2012-11-23 10:09                   ` Mark Brown
2012-11-23 10:09                   ` Mark Brown
2012-08-09 15:47 ` [PATCH 08/22] ASoC: codecs: Enable AB8500 CODEC for Device Tree Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:09   ` Linus Walleij
2012-08-14 11:09     ` Linus Walleij
2012-08-14 11:09     ` Linus Walleij
2012-08-14 12:17   ` Takashi Iwai
2012-08-14 12:17     ` [alsa-devel] " Takashi Iwai
2012-08-14 12:17     ` Takashi Iwai
2012-08-20 11:34     ` [PATCH 1/1] " Lee Jones
2012-08-20 11:34       ` Lee Jones
2012-08-20 11:34       ` Lee Jones
2012-08-20 14:36       ` Mark Brown
2012-08-20 14:36         ` Mark Brown
2012-08-20 14:36         ` Mark Brown
2012-08-21 11:51         ` Lee Jones
2012-08-21 11:51           ` Lee Jones
2012-08-21 11:51           ` Lee Jones
2012-08-21 12:39           ` Mark Brown
2012-08-21 12:39             ` Mark Brown
2012-08-21 12:39             ` Mark Brown
2012-08-21 12:58             ` Lee Jones
2012-08-21 12:58               ` Lee Jones
2012-08-21 12:58               ` Lee Jones
2012-08-21 13:40               ` Mark Brown
2012-08-21 13:40                 ` Mark Brown
2012-08-21 13:40                 ` Mark Brown
2012-08-09 15:47 ` [PATCH 09/22] Documentation: Define the MOP500 Audio Machine Driver Device Tree bindings Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47 ` [PATCH 10/22] Documentation: Define the MSP " Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-09 15:47 ` [PATCH 11/22] ARM: ux500: Clean-up MSP platform code Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:12   ` Linus Walleij
2012-08-14 11:12     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 12/22] ARM: ux500: Add AB8500 CODEC node to DB8500 Device Tree Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-20 14:34   ` Linus Walleij
2012-08-20 14:34     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 13/22] ARM: ux500: Fork MSP platform registration for step-by-step DT enablement Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:13   ` Linus Walleij
2012-08-14 11:13     ` Linus Walleij
2012-08-20  8:06     ` Lee Jones
2012-08-20  8:06       ` Lee Jones
2012-08-27 23:07       ` Linus Walleij
2012-08-27 23:07         ` Linus Walleij
2012-08-28  7:48         ` Lee Jones
2012-08-28  7:48           ` Lee Jones
2012-08-30 23:56           ` Linus Walleij
2012-08-30 23:56             ` Linus Walleij
2012-08-09 15:47 ` [PATCH 14/22] ARM: ux500: Pass MSP DMA platform data though AUXDATA Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:14   ` Linus Walleij
2012-08-14 11:14     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 15/22] ARM: ux500: Stop registering the MOP500 Audio driver from platform code Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:16   ` Linus Walleij
2012-08-14 11:16     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 16/22] ARM: ux500: Stop registering the PCM " Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:16   ` Linus Walleij
2012-08-14 11:16     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 17/22] ARM: ux500: Remove platform registration of MSP devices Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:18   ` Linus Walleij
2012-08-14 11:18     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 18/22] ARM: ux500: Rename MSP board file to something more meaningful Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:20   ` Linus Walleij
2012-08-14 11:20     ` Linus Walleij
2012-08-30 12:31     ` Lee Jones
2012-08-30 12:31       ` Lee Jones
2012-08-09 15:47 ` [PATCH 19/22] ARM: ux500: Rename db8500.dtsi to dbx5x0.dtsi to encompass the u9500, u8540 and u9540 Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:22   ` Linus Walleij
2012-08-14 11:22     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 20/22] ARM: ux500: Add nodes for the MSP into Device Tree Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:23   ` Linus Walleij
2012-08-14 11:23     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 21/22] ARM: ux500: Add all encompassing sound node to the Snowball " Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:23   ` Linus Walleij
2012-08-14 11:23     ` Linus Walleij
2012-08-09 15:47 ` [PATCH 22/22] Documentation: Add the AB8500 CODEC device to the MFD AB8500 doc Lee Jones
2012-08-09 15:47   ` Lee Jones
2012-08-14 11:24   ` Linus Walleij
2012-08-14 11:24     ` Linus Walleij
2012-08-14 11:24     ` Linus Walleij
2012-08-09 18:50 ` [PATCH 00/22] mop500 related Audio reorganisation and fixups Mark Brown
2012-08-09 18:50   ` Mark Brown
2012-08-09 19:40   ` Lee Jones
2012-08-09 19:40     ` Lee Jones
2012-08-10  8:48     ` Linus Walleij
2012-08-10  8:48       ` Linus Walleij
2012-08-10  9:37       ` Lee Jones
2012-08-10  9:37         ` Lee Jones
2012-08-14 11:34   ` Linus Walleij
2012-08-14 11:34     ` Linus Walleij

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=20120820115914.GP8450@gmail.com \
    --to=lee.jones@linaro.org \
    --cc=STEricsson_nomadik_linux@list.st.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=linus.walleij@linaro.org \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ola.o.lilja@stericsson.com \
    --cc=patrice.chotard@stericsson.com \
    /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.