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: [RFC/NOT FOR MERGING 2/3] serial: omap: remove hwmod dependency
Date: Tue, 19 Feb 2013 08:38:20 -0800	[thread overview]
Message-ID: <20130219163820.GF5724@atomide.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1302191516150.32069@utopia.booyaka.com>

* Paul Walmsley <paul@pwsan.com> [130219 07:30]:
> Hi,
> 
> On Thu, 14 Feb 2013, Tony Lindgren wrote:
> 
> > * Paul Walmsley <paul@pwsan.com> [130214 12:51]:
> > > On Thu, 14 Feb 2013, Tony Lindgren wrote:
> > > 
> > > > I don't think so as hwmod should only touch the sysconfig space
> > > > when no driver has claimed it.
> > > 
> > > hwmod does need to touch the SYSCONFIG register during pm_runtime suspend 
> > > and resume operations, and during device enable and disable operations.  
> > > Here's the relevant code:
> > > 
> > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/arm/mach-omap2/omap_hwmod.c;h=4653efb87a2721ea20a9fe06a30a6c204d6d2282;hb=HEAD#l2157
> > > 
> > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/arm/mach-omap2/omap_hwmod.c;h=4653efb87a2721ea20a9fe06a30a6c204d6d2282;hb=HEAD#l2195
> > 
> > But that's triggered by runtime PM from the device driver, right?
> 
> Yes - for devices with drivers, it will hopefully be called by the 
> driver.
> 
> > I think it's fine for hwmod to do that as requested by the device
> > driver via runtime PM since hwmod is the bus glue making the drivers arch
> > independent.
> > 
> > I think the only piece we're missing for that is for driver to run
> > something like pm_runtime_init() that initializes the address space
> > to hwmod. 
> 
> In the current design, we might be able to do this during the driver's 
> first call to pm_runtime_get*().  I think that's the first point that we 
> can hook into the PM runtime code.

Sounds doable and generic for now.
 
> Once the hwmod code is moved out to be a bus, I'm hoping we can do this 
> through the driver making a dev->bus->enable_device() call - similar to 
> the way PCI drivers call pci_enable_device(), but not bus-specific.  That 
> should remove our current dependency on CONFIG_PM_RUNTIME for OMAP devices 
> to work correctly :-(
> 
> > Just to recap what we've discussed earlier, the reasons why we want
> > reset and idle functions should be in the driver specific header are:
> > 
> > 1. There's often driver specific logic needed in addition to the
> >    syconfig tinkering in the reset/idle functions.
> 
> It's been a while since I last tabulated this.  But my recollection was 
> that some kind of IP block-specific reset code is needed for about 7% to 
> 10% of the OMAP IP blocks.

Yes it's not too many, but the issue there is the driver specific code
that's duplicated in both places. And sounds like the solution to that
is to make driver specific reset code a static inline function in the
driver header as discussed earlier so bus code can call it when there's
no driver loaded.
 
> One thing that's unclear to me for the DT case is how we'll bind the 
> driver-specific parts of the reset code to the device, particularly in the 
> case where there's no driver present.  It should be possible to place an 
> initcall in the driver-specific header, but that seems like a hack.  Any 
> thoughts on this?

I think we can just initialize the driver-specific reset functions
in hwmod code and those can just call the driver specific inline functions
as needed in the driver specific header files.
 
> > 2. We need to be able to reset and idle some hardware even if the
> >    driver is not compiled in.
> 
> Yep.

Regards,

Tony

  reply	other threads:[~2013-02-19 16:38 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-14 11:15 [RFC/NOT FOR MERGING 1/3] arm: omap: use generic implementation if !od Felipe Balbi
2013-02-14 11:20 ` Russell King - ARM Linux
2013-02-14 17:57   ` Felipe Balbi
     [not found] ` <1360840554-26901-2-git-send-email-balbi@ti.com>
2013-02-14 17:12   ` [RFC/NOT FOR MERGING 2/3] serial: omap: remove hwmod dependency Tony Lindgren
2013-02-14 17:56     ` Felipe Balbi
2013-02-14 18:12       ` Tony Lindgren
2013-02-14 19:27         ` Felipe Balbi
2013-02-14 19:39           ` Tony Lindgren
2013-02-14 20:47             ` Paul Walmsley
2013-02-14 21:40               ` Paul Walmsley
2013-02-14 22:47                 ` Tony Lindgren
2013-02-15  6:46                   ` Felipe Balbi
2013-02-15  7:29                     ` Santosh Shilimkar
2013-02-19 15:30                   ` Paul Walmsley
2013-02-19 15:45                     ` Russell King - ARM Linux
2013-02-19 16:30                       ` Tony Lindgren
2013-02-19 18:22                         ` Russell King - ARM Linux
2013-02-19 19:31                           ` Tony Lindgren
2013-02-19 19:43                             ` hwmod data duplication (was: Re: [RFC/NOT FOR MERGING 2/3] serial: omap: remove hwmod dependency) Felipe Balbi
2013-02-19 22:09                               ` Tony Lindgren
2013-02-19 22:22                                 ` Felipe Balbi
2013-02-19 22:31                                   ` Tony Lindgren
2013-02-19 22:51                                     ` Felipe Balbi
2013-02-15 10:26                 ` [RFC/NOT FOR MERGING 2/3] serial: omap: remove hwmod dependency Russell King - ARM Linux
2013-02-14 21:56               ` Paul Walmsley
2013-02-14 22:22               ` Tony Lindgren
2013-02-15  6:53                 ` Felipe Balbi
2013-02-15  7:27                   ` Bedia, Vaibhav
2013-02-19 15:27                 ` Paul Walmsley
2013-02-19 16:38                   ` Tony Lindgren [this message]
2013-02-19 16:57                     ` Felipe Balbi
2013-02-19 17:43                       ` Tony Lindgren
2013-02-19 18:34                         ` Felipe Balbi
2013-02-19 19:16                     ` Kevin Hilman
2013-02-19 19:32                       ` Felipe Balbi
2013-02-19 19:50                         ` Kevin Hilman
2013-02-19 20:10                           ` OMAP reset requirements (was: Re: [RFC/NOT FOR MERGING 2/3] serial: omap: remove hwmod dependency)^[:x Felipe Balbi
2013-02-19 20:25                             ` OMAP reset requirements Kevin Hilman
2013-02-20  6:26                       ` [RFC/NOT FOR MERGING 2/3] serial: omap: remove hwmod dependency Santosh Shilimkar
2013-02-15  6:44               ` Felipe Balbi
2013-02-15  7:27                 ` Bedia, Vaibhav
2013-02-20 17:38                 ` Paul Walmsley
2013-02-20 19:16                   ` Felipe Balbi
2013-02-20 20:03                     ` Paul Walmsley
2013-02-20 20:37                     ` Russell King - ARM Linux
2013-02-21 10:16                     ` Peter De Schrijver
2013-02-21 12:09                       ` Peter Korsgaard
2013-02-15 10:16               ` Russell King - ARM Linux
2013-02-15 13:26                 ` Santosh Shilimkar
2013-02-15 13:27                   ` Russell King - ARM Linux
2013-02-15 13:31                     ` Santosh Shilimkar
2013-02-15 16:30                       ` Tony Lindgren
2013-02-15 16:42                         ` Felipe Balbi
2013-02-16  6:01                           ` Santosh Shilimkar
2013-02-16  8:55                             ` Felipe Balbi
2013-02-16  9:17                               ` Santosh Shilimkar
2013-02-16  9:22                                 ` Felipe Balbi
2013-02-16  9:31                                   ` Santosh Shilimkar
2013-02-18 15:27                               ` Kevin Hilman
2013-02-16  5:31                         ` Santosh Shilimkar
2013-02-16  5:36                         ` Nicolas Pitre
2013-02-16  5:48                           ` Santosh Shilimkar
2013-02-18  8:08                             ` Bedia, Vaibhav
2013-02-18  8:28                               ` Santosh Shilimkar
2013-02-15 15:40   ` Kevin Hilman
2013-02-15 16:03     ` Felipe Balbi
2013-02-16  4:59     ` Santosh Shilimkar
2013-02-18 14:52       ` Kevin Hilman
2013-02-15 15:28 ` [RFC/NOT FOR MERGING 1/3] arm: omap: use generic implementation if !od Kevin Hilman
2013-02-15 16:04   ` Felipe Balbi

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=20130219163820.GF5724@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).