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:30:53 -0800 [thread overview]
Message-ID: <20130219163053.GE5724@atomide.com> (raw)
In-Reply-To: <20130219154511.GU17852@n2100.arm.linux.org.uk>
* Russell King - ARM Linux <linux@arm.linux.org.uk> [130219 07:49]:
> On Tue, Feb 19, 2013 at 03:30:01PM +0000, Paul Walmsley wrote:
> > Hi,
> >
> > On Thu, 14 Feb 2013, Tony Lindgren wrote:
> >
> > > The other option could be to allow custom ioremap function pointers
> > > based on address range in __arm_ioremap_pfn_caller() the same way as
> > > the SoC specific static mappings are allowed. That would require adding
> > > a function pointer to struct map_desc.
> > >
> > > Maybe that would do the trick?
> >
> > That sounds fine to me too.
> >
> > To me it makes sense to eventually handle the I/O mappings automatically
> > from data in the DT -- hence the association with a bus device, which
> > should be present in DT data.
>
> No. I really don't get why OMAP thinks it's soo special that it needs
> to go around adding lots and lots of new abstractions all over the
> place.
Hey it's actually quite the opposite. We're trying to find a generic
way of doing things in order to avoid omap specific driver hacks.
> Indirect ioremap() through a function pointer so you can overload it with
> OMAP specific crap? No way. Function pointers in map_desc - what the hell
> for?
>
> You must be totally mad if you think that's a way forward, I really don't
> see how you think this kind of crap would be remotely acceptable.
>
> Ok, so you have this problem that you need hwmod to touch a register which
> is also contained within the device resources as well. That's fine. You
> can do it one of two ways:
>
> 1. Call out from the driver at the appropriate points (which seems to be
> _after_ you've ioremapped it) to access the register.
>
> 2. Find the resource, temporarily map the register, access it, and then
> unmap it.
>
> No requirement what so ever to override ioremap(). AT ALL. So stop this
> madness now.
>
> As for a function pointer in struct map_desc. You're bonkers, the lot of
> you. map_desc is a structure describing the boot time static mappings
> which gets discarded. Nothing keeps any references around to it, and it
> is used at a time when *NOTHING ELSE* should be going on in the kernel
> other than building those static mappings. Not even any arch code poking
> about at devices. Or anything like that. Because if you think that's
> acceptable, then we'll need to flush the cache and TLB after each and
> every map_desc entry is touched - which brings a whole load of new pain
> and slowness to the kernel boot.
>
> So please, stop this idiotic madness now.
OK good point. Also it would be risky for things going wrong trying to try
set up more complex stuff that early as then debugging it again depends on
DEBUG_LL.
> If you want such things as pci_enable_device(), then what you're actually
> asking for is omap_enable_device() for OMAP devices. OMAP devices are
> already specific enough to OMAP SoCs (god knows, they have really complex
> and obscure behaviours that no one else in their right mind would want
> to copy) that calling out to omap specific functions would never really
> be a problem.
I'd rather avoid adding omap_enable_device() calls to drivers as we really
want to keep the drivers generic. But maybe there could be some generic
bus_enable_device() function pointer that could be populated by the bus
code during init.
> No need for any of this crazy dev->bus shit either.
Paul's suggestion on configuring things with pm_runtime_get()
seems doable and is generic.
Regards,
Tony
next prev parent reply other threads:[~2013-02-19 16:30 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 [this message]
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
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=20130219163053.GE5724@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).