All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Paul Walmsley <paul@pwsan.com>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	"Tero Kristo" <t-kristo@ti.com>,
	"Benoît Cousson" <b-cousson@ti.com>,
	"Felipe Balbi" <balbi@ti.com>
Subject: Re: [PATCH 04/11] ARM: OMAP2+: usb_host_fs: add custom reset for usb_host_fs (fsusb)
Date: Thu, 7 Jun 2012 23:38:59 -0700	[thread overview]
Message-ID: <20120608063859.GL12766@atomide.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1206071404470.14977@utopia.booyaka.com>

* Paul Walmsley <paul@pwsan.com> [120607 15:09]:
> On Thu, 7 Jun 2012, Tony Lindgren wrote:
> 
> > Until we have something generic in place to deal with stuff like unused driver
> > reset and idle, how about we set up the driver specific reset parts as inline
> > functions in the driver header?
> 
> You're referring to the driver integration header files in 
> arch/arm/plat-omap/include/ and arch/arm/mach-omap2/, right?  That would 
> avoid the need for "sideways" includes from drivers/.
> 
> > That way the hwmod code can include those functions using the driver register
> > defines. Something like:
> > 
> > static inline int xyz_driver_reset(void __iomem *base, int flags)
> > {
> > 	...
> > }
> > 
> > Then instead of having a separate platform init file for each driver,
> > we could just have a list of reset functions:
> > 
> > static int hwmod_xyz_driver_reset(void __iomem *base, int flags)
> 
> This should probably be passed a struct omap_hwmod * instead of base so 
> it can call the existing hwmod bus related reset functions like 
> omap_hwmod_softreset().  Or were you thinking about open-coding those into 
> this reset function?

Oh OK yeah makes sense as that's hwmod internal function. Then the driver
specific part should use just void __iomem *base and use readl/writel and
live under include/linux/platform_data/omap-usb.h.

> Just as an aside, this function will probably need to be marked 
> __maybe_unused, so the compiler doesn't warn when other files include this 
> header, but don't call the function.

Yeah probably.
 
> > {
> > 	int res;
> > 
> > 	/* do bus related reset here */
> > 	...
> >
> > 	/* call the driver reset */
> > 	res = xyz_driver_reset(base, flags)
> > 
> > 
> > 	/* do more bus related reset here */
> > 	...
> > }
> 
> That's fine with me.  It doesn't matter to me where that code lives as 
> long as it makes technical sense.

OK good. That way we can separate the driver specific part from the bus
code. And the driver maintainers can review the driver specific part of the
idle/reset function. And maybe at some point we'll have device_reset and
device_idle functions and some generic framework in place for it..
 
> I'm hoping that in the near future that we can get rid of these 
> hwmod_xyz_driver_reset() functions.  Instead it should be possible to have 
> the hwmod reset code call functions like xyz_driver_reset_pre_wait() and 
> xyz_driver_reset_post_ocpreset() via optional function pointers at 
> different points in the reset process.  That should allow us to remove the 
> omap_hwmod function calls from the I2C, MSDI, etc. reset functions, and 
> also remove some needlessly duplicated code.

Sounds good to me. Also sounds like that does not need changes to the
driver specific xyz_driver_reset functions.

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 04/11] ARM: OMAP2+: usb_host_fs: add custom reset for usb_host_fs (fsusb)
Date: Thu, 7 Jun 2012 23:38:59 -0700	[thread overview]
Message-ID: <20120608063859.GL12766@atomide.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1206071404470.14977@utopia.booyaka.com>

* Paul Walmsley <paul@pwsan.com> [120607 15:09]:
> On Thu, 7 Jun 2012, Tony Lindgren wrote:
> 
> > Until we have something generic in place to deal with stuff like unused driver
> > reset and idle, how about we set up the driver specific reset parts as inline
> > functions in the driver header?
> 
> You're referring to the driver integration header files in 
> arch/arm/plat-omap/include/ and arch/arm/mach-omap2/, right?  That would 
> avoid the need for "sideways" includes from drivers/.
> 
> > That way the hwmod code can include those functions using the driver register
> > defines. Something like:
> > 
> > static inline int xyz_driver_reset(void __iomem *base, int flags)
> > {
> > 	...
> > }
> > 
> > Then instead of having a separate platform init file for each driver,
> > we could just have a list of reset functions:
> > 
> > static int hwmod_xyz_driver_reset(void __iomem *base, int flags)
> 
> This should probably be passed a struct omap_hwmod * instead of base so 
> it can call the existing hwmod bus related reset functions like 
> omap_hwmod_softreset().  Or were you thinking about open-coding those into 
> this reset function?

Oh OK yeah makes sense as that's hwmod internal function. Then the driver
specific part should use just void __iomem *base and use readl/writel and
live under include/linux/platform_data/omap-usb.h.

> Just as an aside, this function will probably need to be marked 
> __maybe_unused, so the compiler doesn't warn when other files include this 
> header, but don't call the function.

Yeah probably.
 
> > {
> > 	int res;
> > 
> > 	/* do bus related reset here */
> > 	...
> >
> > 	/* call the driver reset */
> > 	res = xyz_driver_reset(base, flags)
> > 
> > 
> > 	/* do more bus related reset here */
> > 	...
> > }
> 
> That's fine with me.  It doesn't matter to me where that code lives as 
> long as it makes technical sense.

OK good. That way we can separate the driver specific part from the bus
code. And the driver maintainers can review the driver specific part of the
idle/reset function. And maybe at some point we'll have device_reset and
device_idle functions and some generic framework in place for it..
 
> I'm hoping that in the near future that we can get rid of these 
> hwmod_xyz_driver_reset() functions.  Instead it should be possible to have 
> the hwmod reset code call functions like xyz_driver_reset_pre_wait() and 
> xyz_driver_reset_post_ocpreset() via optional function pointers at 
> different points in the reset process.  That should allow us to remove the 
> omap_hwmod function calls from the I2C, MSDI, etc. reset functions, and 
> also remove some needlessly duplicated code.

Sounds good to me. Also sounds like that does not need changes to the
driver specific xyz_driver_reset functions.

Regards,

Tony

  reply	other threads:[~2012-06-08  6:39 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07  6:13 [PATCH 00/11] ARM: OMAP: core/hwmod: first set of fixes for 3.5-rc Paul Walmsley
2012-06-07  6:13 ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 01/11] ARM: OMAP2+: hwmod: add setup_preprogram hook Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 02/11] ARM: OMAP4+: AESS: enable internal auto-gating during initial setup Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  7:19   ` Tony Lindgren
2012-06-07  7:19     ` Tony Lindgren
2012-06-07  7:31     ` Paul Walmsley
2012-06-07  7:31       ` Paul Walmsley
2012-06-07  7:48       ` Tony Lindgren
2012-06-07  7:48         ` Tony Lindgren
2012-06-07 10:45         ` Paul Walmsley
2012-06-07 10:45           ` Paul Walmsley
2012-06-07 11:08           ` Tony Lindgren
2012-06-07 11:08             ` Tony Lindgren
2012-06-07  6:13 ` [PATCH 03/11] ARM: OMAP4: hwmod data: add SL2IF hardreset line Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 04/11] ARM: OMAP2+: usb_host_fs: add custom reset for usb_host_fs (fsusb) Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  7:31   ` Tony Lindgren
2012-06-07  7:31     ` Tony Lindgren
2012-06-07  7:33     ` Felipe Balbi
2012-06-07  7:33       ` Felipe Balbi
2012-06-07  8:00       ` Tony Lindgren
2012-06-07  8:00         ` Tony Lindgren
2012-06-07  7:40     ` Paul Walmsley
2012-06-07  7:40       ` Paul Walmsley
2012-06-07  7:51       ` Tony Lindgren
2012-06-07  7:51         ` Tony Lindgren
2012-06-07  7:55         ` Felipe Balbi
2012-06-07  7:55           ` Felipe Balbi
2012-06-07  8:02           ` Cousson, Benoit
2012-06-07  8:02             ` Cousson, Benoit
2012-06-07  8:10             ` Tony Lindgren
2012-06-07  8:10               ` Tony Lindgren
2012-06-07  8:14             ` Felipe Balbi
2012-06-07  8:14               ` Felipe Balbi
2012-06-07 10:52             ` Paul Walmsley
2012-06-07 10:52               ` Paul Walmsley
2012-06-07 12:30               ` Cousson, Benoit
2012-06-07 12:30                 ` Cousson, Benoit
2012-06-08  1:11                 ` Paul Walmsley
2012-06-08  1:11                   ` Paul Walmsley
2012-06-08 13:13                   ` Cousson, Benoit
2012-06-08 13:13                     ` Cousson, Benoit
2012-06-08 13:28                     ` Paul Walmsley
2012-06-08 13:28                       ` Paul Walmsley
2012-06-08 19:32                       ` Hiremath, Vaibhav
2012-06-08 19:32                         ` Hiremath, Vaibhav
2012-06-08 23:10                         ` AM335x CPSW reset (was "RE: [PATCH 04/11] ARM: OMAP2+: usb_host_fs: add custom reset for usb_host_fs (fsusb)") Paul Walmsley
2012-06-08 23:10                           ` Paul Walmsley
2012-06-09  8:39                           ` Hiremath, Vaibhav
2012-06-09  8:39                             ` Hiremath, Vaibhav
2012-06-09 16:05                             ` Paul Walmsley
2012-06-09 16:05                               ` Paul Walmsley
2012-06-11  6:15                       ` [PATCH 04/11] ARM: OMAP2+: usb_host_fs: add custom reset for usb_host_fs (fsusb) Tony Lindgren
2012-06-11  6:15                         ` Tony Lindgren
2012-06-11  8:04                         ` Paul Walmsley
2012-06-11  8:04                           ` Paul Walmsley
2012-06-11  9:24                           ` Cousson, Benoit
2012-06-11  9:24                             ` Cousson, Benoit
2012-06-11 16:20                             ` Paul Walmsley
2012-06-11 16:20                               ` Paul Walmsley
2012-06-07 10:20         ` Paul Walmsley
2012-06-07 10:20           ` Paul Walmsley
2012-06-07 10:52           ` Tony Lindgren
2012-06-07 10:52             ` Tony Lindgren
2012-06-07 22:05             ` Paul Walmsley
2012-06-07 22:05               ` Paul Walmsley
2012-06-08  6:38               ` Tony Lindgren [this message]
2012-06-08  6:38                 ` Tony Lindgren
2012-06-09  1:31                 ` Paul Walmsley
2012-06-09  1:31                   ` Paul Walmsley
2012-06-11  6:21                   ` Tony Lindgren
2012-06-11  6:21                     ` Tony Lindgren
2012-06-07  6:13 ` [PATCH 05/11] ARM: OMAP2+: hwmod code/data: fix 32K sync timer Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:59   ` Hiremath, Vaibhav
2012-06-07  6:59     ` Hiremath, Vaibhav
2012-06-07  7:08     ` Paul Walmsley
2012-06-07  7:08       ` Paul Walmsley
2012-06-07 18:09       ` Hiremath, Vaibhav
2012-06-07 18:09         ` Hiremath, Vaibhav
2012-06-07 20:03         ` Paul Walmsley
2012-06-07 20:03           ` Paul Walmsley
2012-06-08 19:10           ` Hiremath, Vaibhav
2012-06-08 19:10             ` Hiremath, Vaibhav
2012-06-11  9:12             ` Cousson, Benoit
2012-06-11  9:12               ` Cousson, Benoit
2012-06-08 13:22   ` Tero Kristo
2012-06-08 13:22     ` Tero Kristo
2012-06-08 23:18     ` Paul Walmsley
2012-06-08 23:18       ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 06/11] ARM: OMAP4+: hwmod: fix issue causing IPs not going back to Smart-Standby Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 07/11] ARM: OMAP: PM: Lock clocks list while generating summary Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 08/11] ARM: OMAP2+: CM: increase the module disable timeout Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 10/11] ARM: OMAP2+: hwmod: add flag to prevent hwmod code from touching IP block during init Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:13 ` [PATCH 09/11] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-07  6:39   ` Rajendra Nayak
2012-06-07  6:39     ` Rajendra Nayak
2012-06-18 17:41     ` Paul Walmsley
2012-06-18 17:41       ` Paul Walmsley
2012-06-19  5:15       ` Rajendra Nayak
2012-06-19  5:15         ` Rajendra Nayak
2012-06-07  6:13 ` [PATCH 11/11] ARM: OMAP4: hwmod data: do not enable or reset the McPDM during kernel init Paul Walmsley
2012-06-07  6:13   ` Paul Walmsley
2012-06-08 13:30 ` [PATCH 00/11] ARM: OMAP: core/hwmod: first set of fixes for 3.5-rc Tero Kristo
2012-06-08 13:30   ` Tero Kristo
2012-06-09  1:15   ` Paul Walmsley
2012-06-09  1:15     ` Paul Walmsley
2012-06-13 23:55   ` Paul Walmsley
2012-06-13 23:55     ` Paul Walmsley
2012-06-14  7:36     ` Tero Kristo
2012-06-14  7:36       ` Tero Kristo

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=20120608063859.GL12766@atomide.com \
    --to=tony@atomide.com \
    --cc=b-cousson@ti.com \
    --cc=balbi@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=t-kristo@ti.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.