linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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 03:52:28 -0700	[thread overview]
Message-ID: <20120607105228.GC12766@atomide.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1206070406050.6684@utopia.booyaka.com>

* Paul Walmsley <paul@pwsan.com> [120607 03:24]:
> On Thu, 7 Jun 2012, Tony Lindgren wrote:
> 
> > * Paul Walmsley <paul@pwsan.com> [120607 00:44]:
> > > On Thu, 7 Jun 2012, Tony Lindgren wrote:
> > > 
> > > > Here too I think driver like features like this should live in the
> > > > driver init for omap OHCI driver. In the likely case that FS OHCI is
> > > > not in use on the board, the OHCI glue can just reset it.
> > > 
> > > What if the driver is not compiled into the kernel, but instead is built 
> > > as a loadable module?
> > 
> > You can still have a core piece of the driver that's always built in, such
> > as omap-ohci-common. But it should live under drivers, not in the bus level
> > code. Or you can insmod/rmmod it to reset things properly.
> 
> Do you know of any device drivers that do this now, with a core built-in 
> piece separate from a dynamically loadable part?

Hmm yeah good point, only driver frameworks tend to do that. It would require
the module registering with the core driver.
 
> Seems like it would be tricky to avoid linking in the entire driver, due 
> to the symbol dependencies.  Either that, or an extra, largely useless, 
> layer of indirection would be needed in the shim layer.

Yes probably better approach would be to only build in the reset and idle
part of the driver in the minimal case. And that too can get messy as the
makefiles may not even be included.

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?

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)
{
	int res;

	/* do bus related reset here */
	...

	/* call the driver reset */
	res = xyz_driver_reset(base, flags)


	/* do more bus related reset here */
	...
}

Regards,

Tony

  reply	other threads:[~2012-06-07 10:52 UTC|newest]

Thread overview: 60+ 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 ` [PATCH 01/11] ARM: OMAP2+: hwmod: add setup_preprogram hook 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  7:19   ` Tony Lindgren
2012-06-07  7:31     ` Paul Walmsley
2012-06-07  7:48       ` Tony Lindgren
2012-06-07 10:45         ` Paul Walmsley
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 ` [PATCH 04/11] ARM: OMAP2+: usb_host_fs: add custom reset for usb_host_fs (fsusb) Paul Walmsley
2012-06-07  7:31   ` Tony Lindgren
2012-06-07  7:33     ` Felipe Balbi
2012-06-07  8:00       ` Tony Lindgren
2012-06-07  7:40     ` Paul Walmsley
2012-06-07  7:51       ` Tony Lindgren
2012-06-07  7:55         ` Felipe Balbi
2012-06-07  8:02           ` Cousson, Benoit
2012-06-07  8:10             ` Tony Lindgren
2012-06-07  8:14             ` Felipe Balbi
2012-06-07 10:52             ` Paul Walmsley
2012-06-07 12:30               ` Cousson, Benoit
2012-06-08  1:11                 ` Paul Walmsley
2012-06-08 13:13                   ` Cousson, Benoit
2012-06-08 13:28                     ` Paul Walmsley
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-09  8:39                           ` Hiremath, Vaibhav
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  8:04                         ` Paul Walmsley
2012-06-11  9:24                           ` Cousson, Benoit
2012-06-11 16:20                             ` Paul Walmsley
2012-06-07 10:20         ` Paul Walmsley
2012-06-07 10:52           ` Tony Lindgren [this message]
2012-06-07 22:05             ` Paul Walmsley
2012-06-08  6:38               ` Tony Lindgren
2012-06-09  1:31                 ` Paul Walmsley
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:59   ` Hiremath, Vaibhav
2012-06-07  7:08     ` Paul Walmsley
2012-06-07 18:09       ` Hiremath, Vaibhav
2012-06-07 20:03         ` Paul Walmsley
2012-06-08 19:10           ` Hiremath, Vaibhav
2012-06-11  9:12             ` Cousson, Benoit
2012-06-08 13:22   ` Tero Kristo
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 ` [PATCH 07/11] ARM: OMAP: PM: Lock clocks list while generating summary 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 ` [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 ` [PATCH 09/11] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks Paul Walmsley
2012-06-07  6:39   ` Rajendra Nayak
2012-06-18 17:41     ` Paul Walmsley
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-08 13:30 ` [PATCH 00/11] ARM: OMAP: core/hwmod: first set of fixes for 3.5-rc Tero Kristo
2012-06-09  1:15   ` Paul Walmsley
2012-06-13 23:55   ` Paul Walmsley
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=20120607105228.GC12766@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@lists.infradead.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 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).