All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Dave Gerlach <d-gerlach@ti.com>
Cc: Ohad Ben-Cohen <ohad@wizery.com>,
	devicetree@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	linux-kernel@vger.kernel.org, balbi@ti.com,
	Kevin Hilman <khilman@linaro.org>,
	Benoit Cousson <bcousson@baylibre.com>,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 2/3] soc: ti: Add wkup_m3_ipc driver
Date: Fri, 27 Feb 2015 09:09:29 -0800	[thread overview]
Message-ID: <20150227170928.GZ11056@atomide.com> (raw)
In-Reply-To: <54F0A2C4.1060401@ti.com>

* Dave Gerlach <d-gerlach@ti.com> [150227 09:04]:
> Tony,
> On 02/26/2015 04:08 PM, Tony Lindgren wrote:
> > * Dave Gerlach <d-gerlach@ti.com> [150226 12:05]:
> >> Tony,
> >> On 01/05/2015 04:51 PM, Tony Lindgren wrote:
> >>> * Dave Gerlach <d-gerlach@ti.com> [150105 14:51]:
> >>>> Felipe,
> >>>> On 01/02/2015 02:16 PM, Felipe Balbi wrote:
> >>>>> On Fri, Jan 02, 2015 at 02:00:16PM -0600, Dave Gerlach wrote:
> >>>>>> Introduce a wkup_m3_ipc driver to handle communication between the MPU
> >>>>>> and Cortex M3 wkup_m3 present on am335x.
> >>>>>>
> >>>>>> This driver is responsible for actually booting the wkup_m3_rproc and
> >>>>>> also handling all IPC which is done using the IPC registers in the control
> >>>>>> module, a mailbox, and a separate interrupt back from the wkup_m3. A small
> >>>>>> API is exposed for executing specific power commands, which include
> >>>>>> configuring for low power mode, request a transition to a low power mode,
> >>>>>> and status info on a previous transition.
> >>>>>>
> >>>>>> Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
> >>>>>> ---
> >>>>>>  drivers/soc/ti/Kconfig       |  11 ++
> >>>>>>  drivers/soc/ti/Makefile      |   1 +
> >>>>>>  drivers/soc/ti/wkup_m3_ipc.c | 451 +++++++++++++++++++++++++++++++++++++++++++
> >>>>>>  include/linux/wkup_m3_ipc.h  |  33 ++++
> >>>>>>  4 files changed, 496 insertions(+)
> >>>>>>  create mode 100644 drivers/soc/ti/wkup_m3_ipc.c
> >>>>>>  create mode 100644 include/linux/wkup_m3_ipc.h
> >>>>>>
> >>>>>> diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig
> >>>>>> index 7266b21..61cda85 100644
> >>>>>> --- a/drivers/soc/ti/Kconfig
> >>>>>> +++ b/drivers/soc/ti/Kconfig
> >>>>>> @@ -28,4 +28,15 @@ config KEYSTONE_NAVIGATOR_DMA
> >>>>>>  
> >>>>>>  	  If unsure, say N.
> >>>>>>  
> >>>>>> +config WKUP_M3_IPC
> >>>>>> +	bool "TI AM33XX Wkup-M3 IPC Driver"
> >>>>>
> >>>>> tristate ?
> >>>>
> >>>> If we want to allow this and the rproc driver to be built as modules than we can
> >>>> change this.
> >>>
> >>> Yes please, the PM is never needed early, and should be optional.
> >>> And doing that will make it a lot easier for you to do further work
> >>> on your driver ;)
> >>>
> >>> And it will also make it easier to add support for other SoCs as
> >>> it seems the same M3 is used at least on am437x.
> >>>  
> >>
> >> I can not build the PM code as a module at this time due to many mach-omap
> >> function calls it uses which are not exported, so I need handles to all five
> >> functions in this driver used in pm33xx to call from built-in PM code. Do you
> >> have a preference on how these function handles get passed?
> > 
> > OK, you can pass the function pointers in platform_data. Care to
> > list those functions? That might allow us to make other omap PM
> > code into loadable modules in drivers/* :)
> 
> Sure, apart from the dependencies I create for myself in other modules that I
> introduce I see:
> 
> ERROR: "omap_pm_clkdms_setup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_for_each" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_lookup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_lookup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_post_transition" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_sleep" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_wakeup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_read_pwrst" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "cpu_suspend" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "omap_set_pwrdm_state" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> 
> So the mach-omap2 clockdomain and power domain functions along with arch arm
> cpu_suspend code. I see similar dependencies in the other mach-omap2/pmxxxx.c
> code also.

OK thanks for the list.

Regards,

Tony

WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/3] soc: ti: Add wkup_m3_ipc driver
Date: Fri, 27 Feb 2015 09:09:29 -0800	[thread overview]
Message-ID: <20150227170928.GZ11056@atomide.com> (raw)
In-Reply-To: <54F0A2C4.1060401@ti.com>

* Dave Gerlach <d-gerlach@ti.com> [150227 09:04]:
> Tony,
> On 02/26/2015 04:08 PM, Tony Lindgren wrote:
> > * Dave Gerlach <d-gerlach@ti.com> [150226 12:05]:
> >> Tony,
> >> On 01/05/2015 04:51 PM, Tony Lindgren wrote:
> >>> * Dave Gerlach <d-gerlach@ti.com> [150105 14:51]:
> >>>> Felipe,
> >>>> On 01/02/2015 02:16 PM, Felipe Balbi wrote:
> >>>>> On Fri, Jan 02, 2015 at 02:00:16PM -0600, Dave Gerlach wrote:
> >>>>>> Introduce a wkup_m3_ipc driver to handle communication between the MPU
> >>>>>> and Cortex M3 wkup_m3 present on am335x.
> >>>>>>
> >>>>>> This driver is responsible for actually booting the wkup_m3_rproc and
> >>>>>> also handling all IPC which is done using the IPC registers in the control
> >>>>>> module, a mailbox, and a separate interrupt back from the wkup_m3. A small
> >>>>>> API is exposed for executing specific power commands, which include
> >>>>>> configuring for low power mode, request a transition to a low power mode,
> >>>>>> and status info on a previous transition.
> >>>>>>
> >>>>>> Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
> >>>>>> ---
> >>>>>>  drivers/soc/ti/Kconfig       |  11 ++
> >>>>>>  drivers/soc/ti/Makefile      |   1 +
> >>>>>>  drivers/soc/ti/wkup_m3_ipc.c | 451 +++++++++++++++++++++++++++++++++++++++++++
> >>>>>>  include/linux/wkup_m3_ipc.h  |  33 ++++
> >>>>>>  4 files changed, 496 insertions(+)
> >>>>>>  create mode 100644 drivers/soc/ti/wkup_m3_ipc.c
> >>>>>>  create mode 100644 include/linux/wkup_m3_ipc.h
> >>>>>>
> >>>>>> diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig
> >>>>>> index 7266b21..61cda85 100644
> >>>>>> --- a/drivers/soc/ti/Kconfig
> >>>>>> +++ b/drivers/soc/ti/Kconfig
> >>>>>> @@ -28,4 +28,15 @@ config KEYSTONE_NAVIGATOR_DMA
> >>>>>>  
> >>>>>>  	  If unsure, say N.
> >>>>>>  
> >>>>>> +config WKUP_M3_IPC
> >>>>>> +	bool "TI AM33XX Wkup-M3 IPC Driver"
> >>>>>
> >>>>> tristate ?
> >>>>
> >>>> If we want to allow this and the rproc driver to be built as modules than we can
> >>>> change this.
> >>>
> >>> Yes please, the PM is never needed early, and should be optional.
> >>> And doing that will make it a lot easier for you to do further work
> >>> on your driver ;)
> >>>
> >>> And it will also make it easier to add support for other SoCs as
> >>> it seems the same M3 is used at least on am437x.
> >>>  
> >>
> >> I can not build the PM code as a module at this time due to many mach-omap
> >> function calls it uses which are not exported, so I need handles to all five
> >> functions in this driver used in pm33xx to call from built-in PM code. Do you
> >> have a preference on how these function handles get passed?
> > 
> > OK, you can pass the function pointers in platform_data. Care to
> > list those functions? That might allow us to make other omap PM
> > code into loadable modules in drivers/* :)
> 
> Sure, apart from the dependencies I create for myself in other modules that I
> introduce I see:
> 
> ERROR: "omap_pm_clkdms_setup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_for_each" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_lookup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_lookup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_post_transition" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_sleep" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_wakeup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_read_pwrst" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "cpu_suspend" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "omap_set_pwrdm_state" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> 
> So the mach-omap2 clockdomain and power domain functions along with arch arm
> cpu_suspend code. I see similar dependencies in the other mach-omap2/pmxxxx.c
> code also.

OK thanks for the list.

Regards,

Tony

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Dave Gerlach <d-gerlach@ti.com>
Cc: balbi@ti.com, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
	devicetree@vger.kernel.org,
	Benoit Cousson <bcousson@baylibre.com>,
	Ohad Ben-Cohen <ohad@wizery.com>, Suman Anna <s-anna@ti.com>,
	Arnd Bergmann <arnd@arndb.de>, Kevin Hilman <khilman@linaro.org>
Subject: Re: [PATCH 2/3] soc: ti: Add wkup_m3_ipc driver
Date: Fri, 27 Feb 2015 09:09:29 -0800	[thread overview]
Message-ID: <20150227170928.GZ11056@atomide.com> (raw)
In-Reply-To: <54F0A2C4.1060401@ti.com>

* Dave Gerlach <d-gerlach@ti.com> [150227 09:04]:
> Tony,
> On 02/26/2015 04:08 PM, Tony Lindgren wrote:
> > * Dave Gerlach <d-gerlach@ti.com> [150226 12:05]:
> >> Tony,
> >> On 01/05/2015 04:51 PM, Tony Lindgren wrote:
> >>> * Dave Gerlach <d-gerlach@ti.com> [150105 14:51]:
> >>>> Felipe,
> >>>> On 01/02/2015 02:16 PM, Felipe Balbi wrote:
> >>>>> On Fri, Jan 02, 2015 at 02:00:16PM -0600, Dave Gerlach wrote:
> >>>>>> Introduce a wkup_m3_ipc driver to handle communication between the MPU
> >>>>>> and Cortex M3 wkup_m3 present on am335x.
> >>>>>>
> >>>>>> This driver is responsible for actually booting the wkup_m3_rproc and
> >>>>>> also handling all IPC which is done using the IPC registers in the control
> >>>>>> module, a mailbox, and a separate interrupt back from the wkup_m3. A small
> >>>>>> API is exposed for executing specific power commands, which include
> >>>>>> configuring for low power mode, request a transition to a low power mode,
> >>>>>> and status info on a previous transition.
> >>>>>>
> >>>>>> Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
> >>>>>> ---
> >>>>>>  drivers/soc/ti/Kconfig       |  11 ++
> >>>>>>  drivers/soc/ti/Makefile      |   1 +
> >>>>>>  drivers/soc/ti/wkup_m3_ipc.c | 451 +++++++++++++++++++++++++++++++++++++++++++
> >>>>>>  include/linux/wkup_m3_ipc.h  |  33 ++++
> >>>>>>  4 files changed, 496 insertions(+)
> >>>>>>  create mode 100644 drivers/soc/ti/wkup_m3_ipc.c
> >>>>>>  create mode 100644 include/linux/wkup_m3_ipc.h
> >>>>>>
> >>>>>> diff --git a/drivers/soc/ti/Kconfig b/drivers/soc/ti/Kconfig
> >>>>>> index 7266b21..61cda85 100644
> >>>>>> --- a/drivers/soc/ti/Kconfig
> >>>>>> +++ b/drivers/soc/ti/Kconfig
> >>>>>> @@ -28,4 +28,15 @@ config KEYSTONE_NAVIGATOR_DMA
> >>>>>>  
> >>>>>>  	  If unsure, say N.
> >>>>>>  
> >>>>>> +config WKUP_M3_IPC
> >>>>>> +	bool "TI AM33XX Wkup-M3 IPC Driver"
> >>>>>
> >>>>> tristate ?
> >>>>
> >>>> If we want to allow this and the rproc driver to be built as modules than we can
> >>>> change this.
> >>>
> >>> Yes please, the PM is never needed early, and should be optional.
> >>> And doing that will make it a lot easier for you to do further work
> >>> on your driver ;)
> >>>
> >>> And it will also make it easier to add support for other SoCs as
> >>> it seems the same M3 is used at least on am437x.
> >>>  
> >>
> >> I can not build the PM code as a module at this time due to many mach-omap
> >> function calls it uses which are not exported, so I need handles to all five
> >> functions in this driver used in pm33xx to call from built-in PM code. Do you
> >> have a preference on how these function handles get passed?
> > 
> > OK, you can pass the function pointers in platform_data. Care to
> > list those functions? That might allow us to make other omap PM
> > code into loadable modules in drivers/* :)
> 
> Sure, apart from the dependencies I create for myself in other modules that I
> introduce I see:
> 
> ERROR: "omap_pm_clkdms_setup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_for_each" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_lookup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_lookup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_post_transition" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_sleep" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "clkdm_wakeup" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "pwrdm_read_pwrst" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "cpu_suspend" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> ERROR: "omap_set_pwrdm_state" [arch/arm/mach-omap2/pm33xx.ko] undefined!
> 
> So the mach-omap2 clockdomain and power domain functions along with arch arm
> cpu_suspend code. I see similar dependencies in the other mach-omap2/pmxxxx.c
> code also.

OK thanks for the list.

Regards,

Tony

  reply	other threads:[~2015-02-27 17:09 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-02 20:00 [PATCH 0/3] drivers: soc: ti: Introduce wkup_m3_ipc driver Dave Gerlach
2015-01-02 20:00 ` Dave Gerlach
2015-01-02 20:00 ` Dave Gerlach
2015-01-02 20:00 ` [PATCH 1/3] Documentation: dt: add ti,am3353-wkup-m3-ipc bindings Dave Gerlach
2015-01-02 20:00   ` Dave Gerlach
2015-01-02 20:00   ` Dave Gerlach
2015-01-02 20:00 ` [PATCH 2/3] soc: ti: Add wkup_m3_ipc driver Dave Gerlach
2015-01-02 20:00   ` Dave Gerlach
2015-01-02 20:00   ` Dave Gerlach
2015-01-02 20:16   ` Felipe Balbi
2015-01-02 20:16     ` Felipe Balbi
2015-01-02 20:16     ` Felipe Balbi
2015-01-02 20:33     ` Felipe Balbi
2015-01-02 20:33       ` Felipe Balbi
2015-01-02 20:33       ` Felipe Balbi
2015-01-05 22:49     ` Dave Gerlach
2015-01-05 22:49       ` Dave Gerlach
2015-01-05 22:49       ` Dave Gerlach
     [not found]       ` <54AB14E4.2010607-l0cyMroinI0@public.gmane.org>
2015-01-05 22:51         ` Tony Lindgren
2015-01-05 22:51           ` Tony Lindgren
2015-01-05 22:51           ` Tony Lindgren
2015-02-26 20:01           ` Dave Gerlach
2015-02-26 20:01             ` Dave Gerlach
2015-02-26 20:01             ` Dave Gerlach
2015-02-26 22:08             ` Tony Lindgren
2015-02-26 22:08               ` Tony Lindgren
     [not found]               ` <20150226220817.GR11056-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2015-02-27 17:00                 ` Dave Gerlach
2015-02-27 17:00                   ` Dave Gerlach
2015-02-27 17:00                   ` Dave Gerlach
2015-02-27 17:09                   ` Tony Lindgren [this message]
2015-02-27 17:09                     ` Tony Lindgren
2015-02-27 17:09                     ` Tony Lindgren
2015-01-06  2:10         ` Felipe Balbi
2015-01-06  2:10           ` Felipe Balbi
2015-01-06  2:10           ` Felipe Balbi
2015-01-02 20:00 ` [PATCH 3/3] ARM: dts: am33xx: Add wkup_m3_ipc node Dave Gerlach
2015-01-02 20:00   ` Dave Gerlach
2015-01-02 20:00   ` Dave Gerlach

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=20150227170928.GZ11056@atomide.com \
    --to=tony@atomide.com \
    --cc=arnd@arndb.de \
    --cc=balbi@ti.com \
    --cc=bcousson@baylibre.com \
    --cc=d-gerlach@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=khilman@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=ohad@wizery.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.