* DT vs ARM static mappings
From: Arnd Bergmann @ 2011-09-20 19:28 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316535403.4611.534.camel@hornet.cambridge.arm.com>
On Tuesday 20 September 2011, Pawel Moll wrote:
> On Tue, 2011-09-20 at 15:37 +0100, Rob Herring wrote
> > > My point is that we should be able to handle _all_ of them using one
> > > DT_MACHINE_START with a single compat value "arm,vexpress". The only
> > > problem with this (so far) is the mapping.
> >
> > Yes, you should have 1 DT_MACHINE_START, but arm,vexpress is too
> > generic. You can and should have a list of compatible strings for each
> > board/machine.
>
> Our DTS has:
>
> compatible = "arm,vexpress-v2p-ca9", "arm,vexpress";
>
> and v2m.c:
>
> static const char *v2m_dt_match[] __initconst = {
> "arm,vexpress",
> NULL,
> };
>
> DT_MACHINE_START(VEXPRESS_DT, "ARM Versatile Express")
> .map_io = v2m_map_io,
> .init_early = v2m_init_early,
> .init_irq = v2m_init_irq,
> .timer = &v2m_timer,
> .init_machine = v2m_dt_init,
> .dt_compat = v2m_dt_match,
> MACHINE_END
>
> Isn't it what you meant?
>
> Essentially I see two ways of doing what we are discussing:
>
> 1. Two DT_MACHINE_START, one matching "arm,vexpress-legacy" with map_io
> = v2m_map_io_legacy and second matching "arm,vexpress-rs1" with map_io =
> v2m_map_io_rs1,
>
> 2. Single DT_MACHINE_START matching (the most generic) "arm,vexpress"
> and doing (rougly) this in v2m_map_io:
>
> of_scan_flat_dt(v2m_dt_iotable_init, NULL);
>
> v2m_dt_iotable_init(...)
> {
> if (depth != 0)
> return 0;
> if (of_flat_dt_is_compatible(node, "arm,vexpress-legacy"))
> iotable_init(v2m_io_desc_legacy);
> else (of_flat_dt_is_compatible(node, "arm,vexpress-rs1"))
> iotable_init(v2m_io_desc_rs1);
> else
> panic();
> }
>
> Neither of them seem particularly appealing... ;-)
But I think both ways would be acceptable in the end. It's not a lot
of extra code either way. In the second case, I would probably have
the legacy case as a special variant of the map_io function and have
all others be the default instead of falling back to panic though.
> > >> In "chosen" like the kernel command line would be the place, but I don't
> > >> think that is the right approach. Chosen is really for things that
> > >> change frequently and this doesn't really fall in that category.
> > >
> > > Again, no argument from me here :-)
> > >
> > > The question is - where should it be?
> >
> > Nowhere. It's an OS specific issue, not a h/w issue.
>
> That's exactly why I didn't like this idea in the first place. This
> doesn't change the fact that current infrastructure isn't really helpful
> here.
Agreed, I think that approach would be much worse.
> > >> Generally, the trend is to get rid of static mappings as much as
> > >> possible. Doing that first might simplify things.
> > >
> > > You can't do ioremap() before kmalloc() is up and running (correct me if
> > > I am wrong), at least you can't do this in map_io. So the static mapping
> > > is a must sometimes. And actually, with the latest Nico's changes:
> > >
> > Correct. You can't do ioremap until init_irq. map_io and init_early are
> > too early. My point was if you can delay h/w access then you can remove
> > the static mappings. But yes, we generally can't remove them all. SCU
> > and LL debug uart are 2 examples.
>
> In my case it's sysreg and sysctl. There are two more users of static
> mappings: timer01 and timer23, but they could at some point do ioremap()
> on their own (especially with Nico's changes).
Well, I think with Nico's cahnges, you /can/ actually do ioremap for
areas that have been mapped through the iotable before kmalloc is up.
IIRC, omap does this for a number of peripherals.
It's a bit of a hack, but I think it's much better than taking hardcoded
addresses.
> > For the short term, I would just have 2 static iotables and select the
> > right one based on the board's (or motherboard's) compatible string.
>
> Yes, as mentioned above. This doesn't help with the sysreg offset
> problem though. I may just scan the flat tree looking for their
> particular names and getting raw offset from their regs... Sounds like a
> hack, though.
With the combination of the points mentioned above, you should be
able to do:
- map the entire I/O area in map_io(), depending on the board
- have an __iomem pointer for the sysreg
- populate that pointer using of_iomap from the device tree address
before you first access it.
Do you think that would work?
Arnd
^ permalink raw reply
* Link failures due to __bug_table in current -next
From: Arnd Bergmann @ 2011-09-20 19:13 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20110920185121.GA17169@n2100.arm.linux.org.uk>
On Tuesday 20 September 2011, Russell King - ARM Linux wrote:
> On Tue, Sep 20, 2011 at 10:00:06AM -0700, Simon Glass wrote:
>
> That was the same thought for the SMP alternatives problem - I think
> Nicolas proposed that there should be some way that the linker can
> do sections based on the current section name. That'd allow us to
> have .alt.smp.exit.text and __bug_table.exit.text etc.
Right. also *.pv_table, which is another section that has this problem.
> > In any case, it sounds from the next email in this thread that your
> > patch has fixed the problem! So, where does that leave us?
>
> I think we apply the patch, which resolves the problem, and point it
> out to whoever looks after the asm-generic/vmlinux.lds.S file (Arnd?
> I'll check when I re-dock the laptop later this evening.) I suspect
> Arnd is already reading some of these messages...
While I'm looking after asm-generic in general, I tend to just ack
the patches and let them go through someone else's tree most of
the time, because there are usually dependencies and the number of
patches for asm-generic is not high enough to require a tree on
its own.
For the vmlinux.lds.h file, I think the people that have contributed
to it the most are Sam Ravnborg and Tim Abbott (added to Cc).
The best way to get the right people to hear about it should be
to send the patch to linux-arch with these two on Cc.
Arnd
^ permalink raw reply
* [PATCH 3/4] net/fec: set phy_speed to the optimal frequency 2.5 MHz
From: David Miller @ 2011-09-20 19:11 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20110920081438.GB28389@S2100-06.ap.freescale.net>
From: Shawn Guo <shawn.guo@freescale.com>
Date: Tue, 20 Sep 2011 16:14:39 +0800
> I should have done that before sending this patch. I'm working home
> these days and have not got the chance get into the lab. Yes, I
> should have sent this patch as an RFC at least. Sorry about this,
> and thank you for pointing this out.
>
> Will drop this patch from the v2 of the series.
As mentioned you need to respin this anyways against net-next
^ permalink raw reply
* [PATCH 0/4] add fec support for imx6q
From: David Miller @ 2011-09-20 19:08 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316346852-17090-1-git-send-email-shawn.guo@linaro.org>
From: Shawn Guo <shawn.guo@linaro.org>
Date: Sun, 18 Sep 2011 19:54:08 +0800
> This series adds imx6q enet support. The imx6q enet is a derivative of
> imx28 enet controller. It fixed the frame endian issue found on imx28,
> and added 1 Gbps support.
>
> It's based on v3.1-rc6.
>
> Shawn Guo (4):
> net/fec: change phy-reset-gpio request warning to debug message
> net/fec: fix fec1 check in fec_enet_mii_init()
> net/fec: set phy_speed to the optimal frequency 2.5 MHz
> net/fec: add imx6q enet support
Please respin this against the net-next tree as that's where these
changes should be targetted and all the ethernet drivers have moved
to different directories in net-next.
Thanks.
^ permalink raw reply
* [PATCH v2 0/3] ARM: imx: Add cpuidle for imx platforms
From: Sascha Hauer @ 2011-09-20 19:07 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAMXH7KHKhMSY6zW_Dyu1QWq-Q4siqBm5Epz8C_Pqc=UjJWHVPQ@mail.gmail.com>
On Tue, Sep 20, 2011 at 10:40:49AM -0500, Rob Lee wrote:
> Hello Sascha,
>
> On 20 September 2011 02:16, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > Hi Robert,
> >
> > On Fri, Sep 16, 2011 at 12:27:47PM -0500, Robert Lee wrote:
> >> This patch series adds a common imx cpuidle driver, some common
> >> mach-mx5 level cpuidle functionality, and an i.MX51 instance of
> >> using this driver.
> >>
> >> The patch series is based on v3.1-rc2.
> >>
> >> Changes since v1:
> >> * To address all the problems found during review of v1, a complete
> >> re-write was needed.
> >
> > Much better than the last version, thanks.
> >
>
> Thanks to Shawn Guo for thoroughly reviewing and providing
> feedback on this version and Jason Hui contributed to the reviewing
> as well despite both of them being very busy with there own
> submissions.
>
> >>
> >> Robert Lee (3):
> >> ? ARM: imx: Add imx cpuidle driver
> >> ? ARM: imx: Add cpuidle for mach-mx5
> >> ? ARM: imx: Add cpuidle for i.MX51
> >>
> >> ?arch/arm/mach-mx5/Makefile ? ? ? ? ? ? ? | ? ?3 +-
> >> ?arch/arm/mach-mx5/cpu_op-mx51.c ? ? ? ? ?| ? 35 +++++++-
> >
> > Your additions to this file...
> >
> >> ?arch/arm/mach-mx5/cpu_op-mx51.h ? ? ? ? ?| ? ?1 +
> >> ?arch/arm/mach-mx5/mm.c ? ? ? ? ? ? ? ? ? | ? ?4 +
> >> ?arch/arm/mach-mx5/system.c ? ? ? ? ? ? ? | ? 35 +++++++
> >
> > And this one should go to arch/arm/mach-mx5/cpuidle.c, then we have
> > all i.MX5 specific cpuidle stuff together without ifdeffing the code.
> > I assume that cpuidle support for i.MX53 will look identically, right?
> >
>
> After considering it further after the first patch, there can be differences
> between the i.MX51 and i.MX53 state data as i.MX51 supports an
> additional idle state that i.MX53 does not. This state was not added
> to this version of the patch because it's additional power savings is very
> small and there is fairly time consuming characterization needed to
> come up with accurate cpuidle state data. But to allow for the
> possibility that this state could be added in the future, it seemed the
> choice was to add this init data to the an i.MX51 specific file such as
> cpu_op-mx51.c/h and add ifdefs for cpuidle and cpufreq. Or, make
> a cpuidle.c file as you suggest and add ifdefs for the different mx5
> SoCs. Just let me know which way you think is better given this
> information.
Just put it in cpuidle.c for now. Better to have the cpuidle stuff
together in one file. We can still decide to move it to another place
should the need arise.
>
> For the call to imx_cpuidle_init from imx51_soc_init in mm.c, this
> seems like a good location to initialize for all imx51_soc. If I don't
> call the init from here, can you recommend another location that I
> should call it from?
Calling it from mm.c is fine.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply
* [PATCH 1/3] include: fb: Add definiton for window positioning structure
From: Tomi Valkeinen @ 2011-09-20 18:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <4E78C579.9060305@gmx.de>
On Tue, 2011-09-20 at 16:55 +0000, Florian Tobias Schandinat wrote:
> Did you have a look at the (existing) API [1] Laurent proposed for discovering
> the internal connections between the framebuffers (or with any other devices)?
I know the basics of media controller, but I haven't really looked at
the code.
> If you agree that it'd be a good idea to use it I feel that we should make the
> windowing API more compatible with it. So basically what we want to have as a
I can't say if MC should be used for fb or not, but I think something
similar should be used if we want to get overlays etc. supported. But
even with MC (or something else) there, I'm not quite sure how they fit
into the fb model.
I think the core problem here is that in a more complex setup (at least
as I see it for OMAP) the fb should be just a framebuffer in memory,
without any direct relation to hardware. The hardware part (an overlay,
or whichever is the corresponding element) will then use the framebuffer
as the pixel source.
However, the current fb model combines those two things into one. If we
manage to separate them, and add MC or similar, I think it'll work.
> window is one or more sunk pads so the pad-index should be also part of the
> interface. I'm still confused with how OMAP works when it does not have a "root"
Do you mean how the hardware works, or how I've designed omapfb driver?
> window/framebuffer. Normally I feel that the window position should be a
> property of the parent window as this is what the position is relative too. But
> if the parent is no framebuffer, should we also include the entity into the
> interface to allow configuring things that are nor even framebuffers?
Right, I think you're pondering the core problem here =).
On OMAP we have the display (the whole area shown on the panel/tv),
which has video timings and things like that. But no pixel data as such
(a configurable background color is there, though).
And then we have the overlays, which are somewhere on the display, and
the overlays get pixel data from memory (framebuffers).
So in a way we have a contentless root window, but presenting that with
an fb device doesn't feel right. And the fb device would logically be
fb0, and if it couldn't show any content it couldn't be used as default
framebuffer.
> Also I think we need a z-index in case overlays overlap (might happen or?) and
> enforcing that all z-indexes are different for the same entity.
Yes, free z-order is supported in OMAP4. Previous OMAPs had fixed
z-order, although in certain configuration (enable/disable alpha
blending) the fixed z-order does change...
> As I see it xres/yres (together with xoffset/yoffset) is always the visible part
> of the framebuffer. Typically that's also part of the timings as they define
> what is visible. With the introduction of overlays (and maybe even for some
> hardware anyway) it is no longer always true to have any timings at all. So on
> all framebuffer that do not have physical timings the timing interpretation is
> useless anyway (I'm thinking about adding a FB_CAP_NOTIMING) and what remains is
> the interpretation of xres/yres as visible screen region.
For a system where there's always a root window for every output, plus
variable size overlays, FB_CAP_NOTIMING makes sense. But it would still
leave the problem if there's no root window. How to change timings on a
system like OMAP?
Tomi
^ permalink raw reply
* Link failures due to __bug_table in current -next
From: Russell King - ARM Linux @ 2011-09-20 18:51 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAPnjgZ2-Ttmoa8zwSVqL70vXDoJv=-Z2XyVBuTi-bm4-0c6E-Q@mail.gmail.com>
On Tue, Sep 20, 2011 at 10:00:06AM -0700, Simon Glass wrote:
> On Tue, Sep 20, 2011 at 12:59 AM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
> > It's not that simple though - if you read the quote from the linker manual,
> > the implication is that the linker would be entirely free to discard an
> > input section as a priority if it appears in a discard section anywhere
> > in the linker script. ?There's nothing to say future linkers won't do
> > this. ?It would still be conformant to the linker manual.
>
> Oh dear. That is why it might be a good idea to hassle the linker
> people, since relying on experiments on how things currently work
> might be risky if someone leaps in and changes the algorithm.
Or we just ensure that we conform to the apparant looseness of the
manual, and make the addition of EXIT_TEXT etc in DISCARDS conditional
(which is effectively what I'm doing with my patch.)
That means we're no longer reliant on trusting the linker to do what
we want for this (we _do_ still trust it for the unwind information,
but I think that's less of an issue.)
> Hmm even more out there, I wonder if we can modify the BUG macro to
> put the bug table entry into one of two separate depending on whether
> BUG is in an __exit function or not? Then at link time, either concat
> the two tables, or just ignore the exit one...
That was the same thought for the SMP alternatives problem - I think
Nicolas proposed that there should be some way that the linker can
do sections based on the current section name. That'd allow us to
have .alt.smp.exit.text and __bug_table.exit.text etc.
> In any case, it sounds from the next email in this thread that your
> patch has fixed the problem! So, where does that leave us?
I think we apply the patch, which resolves the problem, and point it
out to whoever looks after the asm-generic/vmlinux.lds.S file (Arnd?
I'll check when I re-dock the laptop later this evening.) I suspect
Arnd is already reading some of these messages...
^ permalink raw reply
* [PATCH REPOST 1/2] arm/dt: Tegra: Update SDHCI nodes to match bindings
From: Grant Likely @ 2011-09-20 18:07 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <201109201943.29510.arnd@arndb.de>
On Tue, Sep 20, 2011 at 07:43:29PM +0200, Arnd Bergmann wrote:
> On Tuesday 20 September 2011, Stephen Warren wrote:
> > The bindings were recently updated to have separate properties for each
> > type of GPIO. Update the Device Tree source to match that.
> >
> > Signed-off-by: Stephen Warren <swarren@nvidia.com>
> > Acked-by: Olof Johansson <olof@lixom.net>
> > ---
> > I'd previously sent these to Grant assuming they'd go in his dt/next branch,
> > but perhaps these should go in through Arnd's arm-soc next/dt branch?
> >
>
> Which tree has the update that changed the bindings? I think it should
> go into the same one.
>
> If it's already upstream, I can take it into the fixes branch.
Already upstream
g.
^ permalink raw reply
* [PATCH REPOST 1/2] arm/dt: Tegra: Update SDHCI nodes to match bindings
From: Chris Ball @ 2011-09-20 18:07 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF04B732161E@HQMAIL01.nvidia.com>
Hi,
On Tue, Sep 20 2011, Stephen Warren wrote:
> Arnd Bergmann wrote at Tuesday, September 20, 2011 11:43 AM:
>> On Tuesday 20 September 2011, Stephen Warren wrote:
>> > The bindings were recently updated to have separate properties for each
>> > type of GPIO. Update the Device Tree source to match that.
>> >
>> > Signed-off-by: Stephen Warren <swarren@nvidia.com>
>> > Acked-by: Olof Johansson <olof@lixom.net>
>> > ---
>> > I'd previously sent these to Grant assuming they'd go in his dt/next branch,
>> > but perhaps these should go in through Arnd's arm-soc next/dt branch?
>> >
>>
>> Which tree has the update that changed the bindings? I think it should
>> go into the same one.
>>
>> If it's already upstream, I can take it into the fixes branch.
>
> Chris applied them to the mmc-next tree:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
>
> which appears to be temporarily at:
>
> git://dev.laptop.org/users/cjb/mmc
Sending these via Arnd's next/dt sounds good to me. I know we'd usually
take changes that require an atomic update through the same tree, but
Stephen said in https://lkml.org/lkml/2011/8/30/352 :
I don't think there's actually any need for that; initializing
Tegra's SDHCI from device-tree has never worked in mainline to date;
it relies on patch 1 being there. And if patch 2 was there without
patch 3, the worst that will happen is some port runs in 4-bit mode
instead of 8-bit, which evidently works fine since I didn't even
notice 8-bit support was missing...
Thanks,
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply
* [GIT PULL] ux500-core for 3.2
From: Nicolas Pitre @ 2011-09-20 18:06 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CACRpkdZofKjOrPFWNR-2D0LWx3NGMiLwyhf7gAVdvBGvQHqJLQ@mail.gmail.com>
On Tue, 20 Sep 2011, Linus Walleij wrote:
> Hi Arnd,
>
> could you please pull:
>
> git://git.linaro.org/people/triad/linux-stericsson.git for-arnd
[...]
> Barry Song (1):
> ARM: mach-ux500: add explicit cpu_relax() for busy wait loop
>
> Fredrik Svensson (1):
> mach-ux500: remove pull-pinconfig and add SPI2
>
> Lee Jones (1):
> mach-ux500: remove most of the ugly machine_is_*() calls
>
> Linus Walleij (2):
> mach-ux500: factor out l2x0 handling code
> mach-ux500: unlock I&D l2x0 caches before init
>
> srinidhi kasagar (1):
> mach-ux500: enable fix for ARM errata 754322
Please try to include the "ARM: " prefix (or ask the people you merge
from) in all the patch titles. Once in mainline with all the other
stuff this helps others making sense of the log summaries.
no need to redo this lot though.
Nicolas
^ permalink raw reply
* [PATCH REPOST 1/2] arm/dt: Tegra: Update SDHCI nodes to match bindings
From: Stephen Warren @ 2011-09-20 17:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <201109201943.29510.arnd@arndb.de>
Arnd Bergmann wrote at Tuesday, September 20, 2011 11:43 AM:
> On Tuesday 20 September 2011, Stephen Warren wrote:
> > The bindings were recently updated to have separate properties for each
> > type of GPIO. Update the Device Tree source to match that.
> >
> > Signed-off-by: Stephen Warren <swarren@nvidia.com>
> > Acked-by: Olof Johansson <olof@lixom.net>
> > ---
> > I'd previously sent these to Grant assuming they'd go in his dt/next branch,
> > but perhaps these should go in through Arnd's arm-soc next/dt branch?
> >
>
> Which tree has the update that changed the bindings? I think it should
> go into the same one.
>
> If it's already upstream, I can take it into the fixes branch.
Chris applied them to the mmc-next tree:
git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
which appears to be temporarily at:
git://dev.laptop.org/users/cjb/mmc
--
nvpublic
^ permalink raw reply
* Pull request: removal of most instances of mach/memory.h
From: Nicolas Pitre @ 2011-09-20 17:53 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <alpine.LFD.2.00.1109130849590.20358@xanadu.home>
Re-ping.
Please let me know if there is something wrong with this series as I
would like to have sufficient time to fix it if needed.
On Tue, 13 Sep 2011, Nicolas Pitre wrote:
>
> Ping.
>
>
> On Tue, 6 Sep 2011, Nicolas Pitre wrote:
>
> > Russell, please consider this pull request for the next merge window:
> >
> > git://git.linaro.org/people/nico/linux mach_memory_h
> >
> > The bulk of the patches included in there were already posted on the
> > list on July 5th. Some others like the OMAP debug macro cleanups were
> > posted and reviewed more recently.
> >
> > The base for this series is your devel-stable branch where some
> > prerequisite series are, into which I also merged commit daece59689 in
> > order to get ARM_PATCH_PHYS_VIRT enabled by default as this series also
> > depends on this.
> >
> > I also merged the patch entitled "get rid of a few StrongARM
> > cache-related build time constants" as this is a prerequisite for the
> > removal of mach/memory.h in mach-ebsa110 and mach-shark (more if the
> > sparsemem stuff gets moved). If you don't feel comfortable having this
> > patch merged then I can remove it along with those commits that depend
> > on it.
> >
> > And the last commit switches the initially introduced logic with the
> > Kconfig symbol NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H since not having a
> > mach/memory.h has become the dominant case. However this makes for a
> > long and boringly trivial patch, especially if posted alone, so I didn't
> > post it.
> >
> > The summary stat is a net reduction of almost 1000 lines, and another
> > step towards the ability to combine multiple SOCs in the same kernel
> > binary.
> >
> > Here's the shortlog and diffstat:
> >
> > Nicolas Pitre (53):
> > Merge the enabling by default of ARM_PATCH_PHYS_VIRT
> > ARM: mach-prima2: move ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
> > ARM: get rid of a few StrongARM cache-related build time constants
> > musb_debugfs.c: remove unneeded includes on ARM
> > ARM: add an extra temp register to the addruart low level debugging macro
> > ARM: plat-omap: make OMAP_UART_INFO into a relative offset
> > ARM: mach-omap1: clean up debug-macro.S
> > ARM: mach-omap2: clean up debug-macro.S
> > ARM: mach-davinci: make DAVINCI_UART_INFO into a relative offset
> > ARM: mach-davinci: clean up debug-macro.S
> > ARM: prepare for removal of a bunch of <mach/memory.h> files
> > ARM: mach-dove: remove include/mach/memory.h
> > ARM: mach-kirkwood: remove mach/memory.h
> > ARM: mach-orion5x: remove mach/memory.h
> > ARM: OMAP: move OMAP1 memory config from plat/memory.h to its mach/memory.h
> > ARM: mach-omap2: remove mach/memory.h
> > ARM: mach-iop33x: remove mach/memory.h
> > ARM: mach-ep93xx: remove mach/memory.h and Kconfig selection of SDRAM bank
> > ARM: mach-s3c2410: remove memory.h
> > ARM: mach-mv78xx0: remove mach/memory.h
> > ARM: mach-vexpress: remove mach/memory.h
> > ARM: mach-w90x900: remove mach/memory.h
> > ARM: mach-pnx4008: remove mach/memory.h
> > ARM: mach-iop32x: remove mach/memory.h
> > ARM: mach-nomadik: remove mach/memory.h
> > ARM: mach-ux500: remove mach/memory.h
> > ARM: mach-versatile: remove mach/memory.h
> > ARM: mach-netx: remove mach/memory.h
> > ARM: mach-lpc32xx: remove mach/memory.h
> > ARM: mach-gemini: remove mach/memory.h
> > ARM: mach-msm: remove mach/memory.h
> > ARM: spear: remove mach/memory.h and plat/memory.h
> > ARM: mach-mxs: remove mach/memory.h
> > ARM: mach-nuc93x: remove mach/memory.h
> > ARM: mach-cns3xxx: remove mach/memory.h
> > ARM: mach-mmp: remove mach/memory.h
> > ARM: plat-tcc: remove mach/memory.h
> > ARM: mach-tegra: remove mach/memory.h
> > ARM: mach-s5pc100: remove mach/memory.h
> > ARM: mach-vt8500: remove mach/memory.h
> > ARM: mach-shark: remove mach/memory.h
> > ARM: mach-ebsa110: remove mach/memory.h
> > ARM: mach-h720x: remove mach/memory.h
> > ARM: mach-ixp4xx: remove mach/memory.h
> > ARM: mach-pxa: remove mach/memory.h
> > ARM: mach-davinci: remove mach/memory.h
> > ARM: mach-bcmring: remove mach/memory.h
> > ARM: mach-zynq: remove mach/memory.h
> > ARM: mach-prima2: remove mach/memory.h
> > ARM: plat-mxc: remove mach/memory.h
> > ARM: mach-s3c64xx: remove mach/memory.h
> > ARM: mach-s5p64x0: remove mach/memory.h
> > ARM: switch from NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H
> >
> > Documentation/arm/memory.txt | 7 +-
> > arch/arm/Kconfig | 28 ++++
> > arch/arm/include/asm/cacheflush.h | 10 ++
> > arch/arm/include/asm/memory.h | 9 ++-
> > arch/arm/kernel/debug.S | 2 +-
> > arch/arm/kernel/head.S | 4 +-
> > arch/arm/mach-at91/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-bcmring/include/mach/hardware.h | 3 +-
> > arch/arm/mach-bcmring/include/mach/memory.h | 28 ----
> > arch/arm/mach-clps711x/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-cns3xxx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-cns3xxx/include/mach/memory.h | 26 ----
> > arch/arm/mach-davinci/cpuidle.c | 2 +-
> > arch/arm/mach-davinci/include/mach/ddr2.h | 4 +
> > arch/arm/mach-davinci/include/mach/debug-macro.S | 52 ++++-----
> > arch/arm/mach-davinci/include/mach/memory.h | 39 ------
> > arch/arm/mach-davinci/include/mach/serial.h | 3 +-
> > arch/arm/mach-davinci/include/mach/uncompress.h | 7 +-
> > arch/arm/mach-davinci/sleep.S | 2 +-
> > arch/arm/mach-dove/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-dove/include/mach/memory.h | 10 --
> > arch/arm/mach-ebsa110/core.c | 4 +
> > arch/arm/mach-ebsa110/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ebsa110/include/mach/hardware.h | 5 -
> > arch/arm/mach-ebsa110/include/mach/memory.h | 30 -----
> > arch/arm/mach-ep93xx/Kconfig | 53 --------
> > arch/arm/mach-ep93xx/Makefile.boot | 14 --
> > arch/arm/mach-ep93xx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ep93xx/include/mach/memory.h | 22 ----
> > arch/arm/mach-exynos4/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-footbridge/common.c | 3 +
> > .../arm/mach-footbridge/include/mach/debug-macro.S | 4 +-
> > arch/arm/mach-footbridge/include/mach/hardware.h | 2 -
> > arch/arm/mach-footbridge/include/mach/memory.h | 7 -
> > arch/arm/mach-gemini/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-gemini/include/mach/memory.h | 19 ---
> > arch/arm/mach-h720x/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-h720x/include/mach/memory.h | 11 --
> > .../arm/mach-integrator/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-iop13xx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-iop32x/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-iop32x/include/mach/memory.h | 13 --
> > arch/arm/mach-iop33x/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-iop33x/include/mach/memory.h | 13 --
> > arch/arm/mach-ixp2000/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ixp23xx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ixp4xx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ixp4xx/include/mach/memory.h | 17 ---
> > arch/arm/mach-kirkwood/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-kirkwood/include/mach/memory.h | 10 --
> > arch/arm/mach-ks8695/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-l7200/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-lpc32xx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-lpc32xx/include/mach/memory.h | 27 ----
> > arch/arm/mach-mmp/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-mmp/include/mach/memory.h | 14 --
> > arch/arm/mach-msm/include/mach/debug-macro.S | 4 +-
> > arch/arm/mach-msm/include/mach/memory.h | 35 ------
> > arch/arm/mach-mv78xx0/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-mv78xx0/include/mach/memory.h | 10 --
> > arch/arm/mach-mxs/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-mxs/include/mach/memory.h | 24 ----
> > arch/arm/mach-netx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-netx/include/mach/memory.h | 26 ----
> > arch/arm/mach-nomadik/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-nomadik/include/mach/memory.h | 28 ----
> > arch/arm/mach-nuc93x/include/mach/memory.h | 21 ---
> > arch/arm/mach-omap1/include/mach/debug-macro.S | 48 +++----
> > arch/arm/mach-omap1/include/mach/memory.h | 53 ++++++++-
> > arch/arm/mach-omap2/include/mach/debug-macro.S | 81 ++++++-------
> > arch/arm/mach-omap2/include/mach/memory.h | 5 -
> > arch/arm/mach-orion5x/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-orion5x/include/mach/memory.h | 12 --
> > arch/arm/mach-pnx4008/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-pnx4008/include/mach/memory.h | 21 ---
> > arch/arm/mach-prima2/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-prima2/include/mach/memory.h | 21 ---
> > arch/arm/mach-prima2/l2x0.c | 5 +-
> > arch/arm/mach-prima2/prima2.c | 1 +
> > arch/arm/mach-pxa/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-pxa/include/mach/memory.h | 20 ---
> > arch/arm/mach-pxa/z2.c | 2 +-
> > arch/arm/mach-realview/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-rpc/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-rpc/include/mach/hardware.h | 2 -
> > arch/arm/mach-rpc/include/mach/memory.h | 6 -
> > arch/arm/mach-rpc/riscpc.c | 4 +
> > arch/arm/mach-s3c2400/include/mach/memory.h | 20 ---
> > arch/arm/mach-s3c2410/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-s3c2410/include/mach/memory.h | 16 ---
> > arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-s3c64xx/include/mach/memory.h | 18 ---
> > arch/arm/mach-s5p64x0/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-s5p64x0/include/mach/memory.h | 18 ---
> > arch/arm/mach-s5pc100/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-s5pc100/include/mach/memory.h | 18 ---
> > arch/arm/mach-s5pv210/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-sa1100/generic.c | 5 +
> > arch/arm/mach-sa1100/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-sa1100/include/mach/hardware.h | 4 -
> > arch/arm/mach-sa1100/include/mach/memory.h | 7 -
> > arch/arm/mach-shark/core.c | 2 +
> > arch/arm/mach-shark/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-shark/include/mach/hardware.h | 16 ---
> > arch/arm/mach-shark/include/mach/memory.h | 26 ----
> > arch/arm/mach-spear3xx/include/mach/memory.h | 19 ---
> > arch/arm/mach-spear6xx/include/mach/memory.h | 19 ---
> > arch/arm/mach-tegra/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-tegra/include/mach/memory.h | 28 ----
> > arch/arm/mach-u300/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ux500/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-ux500/include/mach/memory.h | 18 ---
> > arch/arm/mach-versatile/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-versatile/include/mach/memory.h | 28 ----
> > arch/arm/mach-vexpress/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-vexpress/include/mach/memory.h | 25 ----
> > arch/arm/mach-vt8500/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-vt8500/include/mach/memory.h | 28 ----
> > arch/arm/mach-w90x900/include/mach/memory.h | 23 ----
> > arch/arm/mach-zynq/include/mach/debug-macro.S | 2 +-
> > arch/arm/mach-zynq/include/mach/memory.h | 22 ----
> > arch/arm/mm/Makefile | 2 +-
> > arch/arm/mm/cache-v4wb-init.c | 89 ++++++++++++++
> > arch/arm/mm/cache-v4wb.S | 31 +----
> > arch/arm/mm/mmu.c | 43 ++-----
> > arch/arm/mm/proc-sa110.S | 6 +-
> > arch/arm/mm/proc-sa1100.S | 6 +-
> > arch/arm/plat-mxc/include/mach/debug-macro.S | 2 +-
> > arch/arm/plat-mxc/include/mach/memory.h | 43 -------
> > arch/arm/plat-omap/Kconfig | 1 +
> > arch/arm/plat-omap/include/plat/memory.h | 89 --------------
> > arch/arm/plat-omap/include/plat/serial.h | 6 +-
> > arch/arm/plat-omap/include/plat/uncompress.h | 8 +-
> > arch/arm/plat-spear/include/plat/debug-macro.S | 2 +-
> > arch/arm/plat-spear/include/plat/memory.h | 20 ---
> > arch/arm/plat-tcc/include/mach/debug-macro.S | 2 +-
> > arch/arm/plat-tcc/include/mach/memory.h | 18 ---
> > drivers/usb/musb/musb_debugfs.c | 6 -
> > 138 files changed, 400 insertions(+), 1357 deletions(-)
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> >
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
^ permalink raw reply
* [PATCH v2] mach-ep93xx: break out GPIO driver specifics
From: H Hartley Sweeten @ 2011-09-20 17:43 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316508132-20020-1-git-send-email-linus.walleij@stericsson.com>
On Tuesday, September 20, 2011 1:42 AM, Linus Walleij wrote:
>
> From: Linus Walleij <linus.walleij@linaro.org>
>
> The <mach/gpio.h> file is included from upper directories
> and deal with generic GPIO and gpiolib stuff. Break out the
> platform and driver specific defines and functions into its own
> header file.
>
> Cc: Hartley Sweeten <hsweeten@visionengravers.com>
> Cc: Ryan Mallon <rmallon@gmail.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ChangeLog v1->v2:
> - Move the irq_to_gpio() into the driver since it was the only
> thing actually using it, as a result the ep93xx gpio.h
> is trivial and becomes empty.
> - Putting this into the patch tracker as 7042/2 soon-ish.
> ---
> arch/arm/mach-ep93xx/core.c | 1 +
> arch/arm/mach-ep93xx/edb93xx.c | 1 +
> arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h | 100 +++++++++++++++++++++
> arch/arm/mach-ep93xx/include/mach/gpio.h | 105 -----------------------
> arch/arm/mach-ep93xx/simone.c | 2 +-
> arch/arm/mach-ep93xx/snappercl15.c | 2 +-
> drivers/gpio/gpio-ep93xx.c | 3 +
> 7 files changed, 107 insertions(+), 107 deletions(-)
> create mode 100644 arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Thanks!
^ permalink raw reply
* [PATCH REPOST 1/2] arm/dt: Tegra: Update SDHCI nodes to match bindings
From: Arnd Bergmann @ 2011-09-20 17:43 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316537186-26753-1-git-send-email-swarren@nvidia.com>
On Tuesday 20 September 2011, Stephen Warren wrote:
> The bindings were recently updated to have separate properties for each
> type of GPIO. Update the Device Tree source to match that.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> Acked-by: Olof Johansson <olof@lixom.net>
> ---
> I'd previously sent these to Grant assuming they'd go in his dt/next branch,
> but perhaps these should go in through Arnd's arm-soc next/dt branch?
>
Which tree has the update that changed the bindings? I think it should
go into the same one.
If it's already upstream, I can take it into the fixes branch.
Arnd
^ permalink raw reply
* [PATCH REPOST 1/2] arm/dt: Tegra: Update SDHCI nodes to match bindings
From: Grant Likely @ 2011-09-20 17:42 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316537186-26753-1-git-send-email-swarren@nvidia.com>
On Tue, Sep 20, 2011 at 10:46:25AM -0600, Stephen Warren wrote:
> The bindings were recently updated to have separate properties for each
> type of GPIO. Update the Device Tree source to match that.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
> ---
> I'd previously sent these to Grant assuming they'd go in his dt/next branch,
> but perhaps these should go in through Arnd's arm-soc next/dt branch?
Yes, they should probably go via Arnd's tree.
g.
>
> arch/arm/boot/dts/tegra-harmony.dts | 12 ++++++------
> arch/arm/boot/dts/tegra-seaboard.dts | 6 +++---
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts
> index 4c05334..e581866 100644
> --- a/arch/arm/boot/dts/tegra-harmony.dts
> +++ b/arch/arm/boot/dts/tegra-harmony.dts
> @@ -57,14 +57,14 @@
> };
>
> sdhci at c8000200 {
> - gpios = <&gpio 69 0>, /* cd, gpio PI5 */
> - <&gpio 57 0>, /* wp, gpio PH1 */
> - <&gpio 155 0>; /* power, gpio PT3 */
> + cd-gpios = <&gpio 69 0>; /* gpio PI5 */
> + wp-gpios = <&gpio 57 0>; /* gpio PH1 */
> + power-gpios = <&gpio 155 0>; /* gpio PT3 */
> };
>
> sdhci at c8000600 {
> - gpios = <&gpio 58 0>, /* cd, gpio PH2 */
> - <&gpio 59 0>, /* wp, gpio PH3 */
> - <&gpio 70 0>; /* power, gpio PI6 */
> + cd-gpios = <&gpio 58 0>; /* gpio PH2 */
> + wp-gpios = <&gpio 59 0>; /* gpio PH3 */
> + power-gpios = <&gpio 70 0>; /* gpio PI6 */
> };
> };
> diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts
> index 1940cae..64cedca 100644
> --- a/arch/arm/boot/dts/tegra-seaboard.dts
> +++ b/arch/arm/boot/dts/tegra-seaboard.dts
> @@ -21,8 +21,8 @@
> };
>
> sdhci at c8000400 {
> - gpios = <&gpio 69 0>, /* cd, gpio PI5 */
> - <&gpio 57 0>, /* wp, gpio PH1 */
> - <&gpio 70 0>; /* power, gpio PI6 */
> + cd-gpios = <&gpio 69 0>; /* gpio PI5 */
> + wp-gpios = <&gpio 57 0>; /* gpio PH1 */
> + power-gpios = <&gpio 70 0>; /* gpio PI6 */
> };
> };
> --
> 1.7.0.4
>
^ permalink raw reply
* [PATCH REPOST 2/2] arm/dt: Tegra: Add support-8bit to SDHCI nodes
From: Grant Likely @ 2011-09-20 17:41 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316537186-26753-2-git-send-email-swarren@nvidia.com>
On Tue, Sep 20, 2011 at 10:46:26AM -0600, Stephen Warren wrote:
> For Seaboard's internal eMMC, this makes the difference between a
> 5.5MB/s and 10.2MB/s transfer rate. On Harmony, there wasn't any
> measurable difference on my cheap/slow ~2MB/s card.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
> ---
> arch/arm/boot/dts/tegra-harmony.dts | 1 +
> arch/arm/boot/dts/tegra-seaboard.dts | 4 ++++
> 2 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts
> index e581866..0e225b8 100644
> --- a/arch/arm/boot/dts/tegra-harmony.dts
> +++ b/arch/arm/boot/dts/tegra-harmony.dts
> @@ -66,5 +66,6 @@
> cd-gpios = <&gpio 58 0>; /* gpio PH2 */
> wp-gpios = <&gpio 59 0>; /* gpio PH3 */
> power-gpios = <&gpio 70 0>; /* gpio PI6 */
> + support-8bit;
> };
> };
> diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts
> index 64cedca..a72299b 100644
> --- a/arch/arm/boot/dts/tegra-seaboard.dts
> +++ b/arch/arm/boot/dts/tegra-seaboard.dts
> @@ -25,4 +25,8 @@
> wp-gpios = <&gpio 57 0>; /* gpio PH1 */
> power-gpios = <&gpio 70 0>; /* gpio PI6 */
> };
> +
> + sdhci at c8000600 {
> + support-8bit;
> + };
> };
> --
> 1.7.0.4
>
^ permalink raw reply
* [PATCH v2] mach-ep93xx: break out GPIO driver specifics
From: Grant Likely @ 2011-09-20 17:40 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316508132-20020-1-git-send-email-linus.walleij@stericsson.com>
On Tue, Sep 20, 2011 at 10:42:12AM +0200, Linus Walleij wrote:
> From: Linus Walleij <linus.walleij@linaro.org>
>
> The <mach/gpio.h> file is included from upper directories
> and deal with generic GPIO and gpiolib stuff. Break out the
> platform and driver specific defines and functions into its own
> header file.
>
> Cc: Hartley Sweeten <hsweeten@visionengravers.com>
> Cc: Ryan Mallon <rmallon@gmail.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ChangeLog v1->v2:
> - Move the irq_to_gpio() into the driver since it was the only
> thing actually using it, as a result the ep93xx gpio.h
> is trivial and becomes empty.
> - Putting this into the patch tracker as 7042/2 soon-ish.
> ---
> arch/arm/mach-ep93xx/core.c | 1 +
> arch/arm/mach-ep93xx/edb93xx.c | 1 +
> arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h | 100 +++++++++++++++++++++
> arch/arm/mach-ep93xx/include/mach/gpio.h | 105 -----------------------
Please use the --find-renames flag for patches like this, but otherwise:
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Which tree will this go through? I don't think it should go via the
gpio tree since it is mostly within arch/arm.
g.
> arch/arm/mach-ep93xx/simone.c | 2 +-
> arch/arm/mach-ep93xx/snappercl15.c | 2 +-
> drivers/gpio/gpio-ep93xx.c | 3 +
> 7 files changed, 107 insertions(+), 107 deletions(-)
> create mode 100644 arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h
>
> diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
> index a82265b..2432a6b 100644
> --- a/arch/arm/mach-ep93xx/core.c
> +++ b/arch/arm/mach-ep93xx/core.c
> @@ -39,6 +39,7 @@
> #include <mach/fb.h>
> #include <mach/ep93xx_keypad.h>
> #include <mach/ep93xx_spi.h>
> +#include <mach/gpio-ep93xx.h>
>
> #include <asm/mach/map.h>
> #include <asm/mach/time.h>
> diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c
> index ace49ee..70ef8c5 100644
> --- a/arch/arm/mach-ep93xx/edb93xx.c
> +++ b/arch/arm/mach-ep93xx/edb93xx.c
> @@ -37,6 +37,7 @@
> #include <mach/hardware.h>
> #include <mach/fb.h>
> #include <mach/ep93xx_spi.h>
> +#include <mach/gpio-ep93xx.h>
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h b/arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h
> new file mode 100644
> index 0000000..8aff2ea
> --- /dev/null
> +++ b/arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h
> @@ -0,0 +1,100 @@
> +/* Include file for the EP93XX GPIO controller machine specifics */
> +
> +#ifndef __GPIO_EP93XX_H
> +#define __GPIO_EP93XX_H
> +
> +/* GPIO port A. */
> +#define EP93XX_GPIO_LINE_A(x) ((x) + 0)
> +#define EP93XX_GPIO_LINE_EGPIO0 EP93XX_GPIO_LINE_A(0)
> +#define EP93XX_GPIO_LINE_EGPIO1 EP93XX_GPIO_LINE_A(1)
> +#define EP93XX_GPIO_LINE_EGPIO2 EP93XX_GPIO_LINE_A(2)
> +#define EP93XX_GPIO_LINE_EGPIO3 EP93XX_GPIO_LINE_A(3)
> +#define EP93XX_GPIO_LINE_EGPIO4 EP93XX_GPIO_LINE_A(4)
> +#define EP93XX_GPIO_LINE_EGPIO5 EP93XX_GPIO_LINE_A(5)
> +#define EP93XX_GPIO_LINE_EGPIO6 EP93XX_GPIO_LINE_A(6)
> +#define EP93XX_GPIO_LINE_EGPIO7 EP93XX_GPIO_LINE_A(7)
> +
> +/* GPIO port B. */
> +#define EP93XX_GPIO_LINE_B(x) ((x) + 8)
> +#define EP93XX_GPIO_LINE_EGPIO8 EP93XX_GPIO_LINE_B(0)
> +#define EP93XX_GPIO_LINE_EGPIO9 EP93XX_GPIO_LINE_B(1)
> +#define EP93XX_GPIO_LINE_EGPIO10 EP93XX_GPIO_LINE_B(2)
> +#define EP93XX_GPIO_LINE_EGPIO11 EP93XX_GPIO_LINE_B(3)
> +#define EP93XX_GPIO_LINE_EGPIO12 EP93XX_GPIO_LINE_B(4)
> +#define EP93XX_GPIO_LINE_EGPIO13 EP93XX_GPIO_LINE_B(5)
> +#define EP93XX_GPIO_LINE_EGPIO14 EP93XX_GPIO_LINE_B(6)
> +#define EP93XX_GPIO_LINE_EGPIO15 EP93XX_GPIO_LINE_B(7)
> +
> +/* GPIO port C. */
> +#define EP93XX_GPIO_LINE_C(x) ((x) + 40)
> +#define EP93XX_GPIO_LINE_ROW0 EP93XX_GPIO_LINE_C(0)
> +#define EP93XX_GPIO_LINE_ROW1 EP93XX_GPIO_LINE_C(1)
> +#define EP93XX_GPIO_LINE_ROW2 EP93XX_GPIO_LINE_C(2)
> +#define EP93XX_GPIO_LINE_ROW3 EP93XX_GPIO_LINE_C(3)
> +#define EP93XX_GPIO_LINE_ROW4 EP93XX_GPIO_LINE_C(4)
> +#define EP93XX_GPIO_LINE_ROW5 EP93XX_GPIO_LINE_C(5)
> +#define EP93XX_GPIO_LINE_ROW6 EP93XX_GPIO_LINE_C(6)
> +#define EP93XX_GPIO_LINE_ROW7 EP93XX_GPIO_LINE_C(7)
> +
> +/* GPIO port D. */
> +#define EP93XX_GPIO_LINE_D(x) ((x) + 24)
> +#define EP93XX_GPIO_LINE_COL0 EP93XX_GPIO_LINE_D(0)
> +#define EP93XX_GPIO_LINE_COL1 EP93XX_GPIO_LINE_D(1)
> +#define EP93XX_GPIO_LINE_COL2 EP93XX_GPIO_LINE_D(2)
> +#define EP93XX_GPIO_LINE_COL3 EP93XX_GPIO_LINE_D(3)
> +#define EP93XX_GPIO_LINE_COL4 EP93XX_GPIO_LINE_D(4)
> +#define EP93XX_GPIO_LINE_COL5 EP93XX_GPIO_LINE_D(5)
> +#define EP93XX_GPIO_LINE_COL6 EP93XX_GPIO_LINE_D(6)
> +#define EP93XX_GPIO_LINE_COL7 EP93XX_GPIO_LINE_D(7)
> +
> +/* GPIO port E. */
> +#define EP93XX_GPIO_LINE_E(x) ((x) + 32)
> +#define EP93XX_GPIO_LINE_GRLED EP93XX_GPIO_LINE_E(0)
> +#define EP93XX_GPIO_LINE_RDLED EP93XX_GPIO_LINE_E(1)
> +#define EP93XX_GPIO_LINE_DIORn EP93XX_GPIO_LINE_E(2)
> +#define EP93XX_GPIO_LINE_IDECS1n EP93XX_GPIO_LINE_E(3)
> +#define EP93XX_GPIO_LINE_IDECS2n EP93XX_GPIO_LINE_E(4)
> +#define EP93XX_GPIO_LINE_IDEDA0 EP93XX_GPIO_LINE_E(5)
> +#define EP93XX_GPIO_LINE_IDEDA1 EP93XX_GPIO_LINE_E(6)
> +#define EP93XX_GPIO_LINE_IDEDA2 EP93XX_GPIO_LINE_E(7)
> +
> +/* GPIO port F. */
> +#define EP93XX_GPIO_LINE_F(x) ((x) + 16)
> +#define EP93XX_GPIO_LINE_WP EP93XX_GPIO_LINE_F(0)
> +#define EP93XX_GPIO_LINE_MCCD1 EP93XX_GPIO_LINE_F(1)
> +#define EP93XX_GPIO_LINE_MCCD2 EP93XX_GPIO_LINE_F(2)
> +#define EP93XX_GPIO_LINE_MCBVD1 EP93XX_GPIO_LINE_F(3)
> +#define EP93XX_GPIO_LINE_MCBVD2 EP93XX_GPIO_LINE_F(4)
> +#define EP93XX_GPIO_LINE_VS1 EP93XX_GPIO_LINE_F(5)
> +#define EP93XX_GPIO_LINE_READY EP93XX_GPIO_LINE_F(6)
> +#define EP93XX_GPIO_LINE_VS2 EP93XX_GPIO_LINE_F(7)
> +
> +/* GPIO port G. */
> +#define EP93XX_GPIO_LINE_G(x) ((x) + 48)
> +#define EP93XX_GPIO_LINE_EECLK EP93XX_GPIO_LINE_G(0)
> +#define EP93XX_GPIO_LINE_EEDAT EP93XX_GPIO_LINE_G(1)
> +#define EP93XX_GPIO_LINE_SLA0 EP93XX_GPIO_LINE_G(2)
> +#define EP93XX_GPIO_LINE_SLA1 EP93XX_GPIO_LINE_G(3)
> +#define EP93XX_GPIO_LINE_DD12 EP93XX_GPIO_LINE_G(4)
> +#define EP93XX_GPIO_LINE_DD13 EP93XX_GPIO_LINE_G(5)
> +#define EP93XX_GPIO_LINE_DD14 EP93XX_GPIO_LINE_G(6)
> +#define EP93XX_GPIO_LINE_DD15 EP93XX_GPIO_LINE_G(7)
> +
> +/* GPIO port H. */
> +#define EP93XX_GPIO_LINE_H(x) ((x) + 56)
> +#define EP93XX_GPIO_LINE_DD0 EP93XX_GPIO_LINE_H(0)
> +#define EP93XX_GPIO_LINE_DD1 EP93XX_GPIO_LINE_H(1)
> +#define EP93XX_GPIO_LINE_DD2 EP93XX_GPIO_LINE_H(2)
> +#define EP93XX_GPIO_LINE_DD3 EP93XX_GPIO_LINE_H(3)
> +#define EP93XX_GPIO_LINE_DD4 EP93XX_GPIO_LINE_H(4)
> +#define EP93XX_GPIO_LINE_DD5 EP93XX_GPIO_LINE_H(5)
> +#define EP93XX_GPIO_LINE_DD6 EP93XX_GPIO_LINE_H(6)
> +#define EP93XX_GPIO_LINE_DD7 EP93XX_GPIO_LINE_H(7)
> +
> +/* maximum value for gpio line identifiers */
> +#define EP93XX_GPIO_LINE_MAX EP93XX_GPIO_LINE_H(7)
> +
> +/* maximum value for irq capable line identifiers */
> +#define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7)
> +
> +#endif /* __GPIO_EP93XX_H */
> diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h
> index 76c68fa..e69de29 100644
> --- a/arch/arm/mach-ep93xx/include/mach/gpio.h
> +++ b/arch/arm/mach-ep93xx/include/mach/gpio.h
> @@ -1,105 +0,0 @@
> -/*
> - * arch/arm/mach-ep93xx/include/mach/gpio.h
> - */
> -
> -#ifndef __ASM_ARCH_GPIO_H
> -#define __ASM_ARCH_GPIO_H
> -
> -/* GPIO port A. */
> -#define EP93XX_GPIO_LINE_A(x) ((x) + 0)
> -#define EP93XX_GPIO_LINE_EGPIO0 EP93XX_GPIO_LINE_A(0)
> -#define EP93XX_GPIO_LINE_EGPIO1 EP93XX_GPIO_LINE_A(1)
> -#define EP93XX_GPIO_LINE_EGPIO2 EP93XX_GPIO_LINE_A(2)
> -#define EP93XX_GPIO_LINE_EGPIO3 EP93XX_GPIO_LINE_A(3)
> -#define EP93XX_GPIO_LINE_EGPIO4 EP93XX_GPIO_LINE_A(4)
> -#define EP93XX_GPIO_LINE_EGPIO5 EP93XX_GPIO_LINE_A(5)
> -#define EP93XX_GPIO_LINE_EGPIO6 EP93XX_GPIO_LINE_A(6)
> -#define EP93XX_GPIO_LINE_EGPIO7 EP93XX_GPIO_LINE_A(7)
> -
> -/* GPIO port B. */
> -#define EP93XX_GPIO_LINE_B(x) ((x) + 8)
> -#define EP93XX_GPIO_LINE_EGPIO8 EP93XX_GPIO_LINE_B(0)
> -#define EP93XX_GPIO_LINE_EGPIO9 EP93XX_GPIO_LINE_B(1)
> -#define EP93XX_GPIO_LINE_EGPIO10 EP93XX_GPIO_LINE_B(2)
> -#define EP93XX_GPIO_LINE_EGPIO11 EP93XX_GPIO_LINE_B(3)
> -#define EP93XX_GPIO_LINE_EGPIO12 EP93XX_GPIO_LINE_B(4)
> -#define EP93XX_GPIO_LINE_EGPIO13 EP93XX_GPIO_LINE_B(5)
> -#define EP93XX_GPIO_LINE_EGPIO14 EP93XX_GPIO_LINE_B(6)
> -#define EP93XX_GPIO_LINE_EGPIO15 EP93XX_GPIO_LINE_B(7)
> -
> -/* GPIO port C. */
> -#define EP93XX_GPIO_LINE_C(x) ((x) + 40)
> -#define EP93XX_GPIO_LINE_ROW0 EP93XX_GPIO_LINE_C(0)
> -#define EP93XX_GPIO_LINE_ROW1 EP93XX_GPIO_LINE_C(1)
> -#define EP93XX_GPIO_LINE_ROW2 EP93XX_GPIO_LINE_C(2)
> -#define EP93XX_GPIO_LINE_ROW3 EP93XX_GPIO_LINE_C(3)
> -#define EP93XX_GPIO_LINE_ROW4 EP93XX_GPIO_LINE_C(4)
> -#define EP93XX_GPIO_LINE_ROW5 EP93XX_GPIO_LINE_C(5)
> -#define EP93XX_GPIO_LINE_ROW6 EP93XX_GPIO_LINE_C(6)
> -#define EP93XX_GPIO_LINE_ROW7 EP93XX_GPIO_LINE_C(7)
> -
> -/* GPIO port D. */
> -#define EP93XX_GPIO_LINE_D(x) ((x) + 24)
> -#define EP93XX_GPIO_LINE_COL0 EP93XX_GPIO_LINE_D(0)
> -#define EP93XX_GPIO_LINE_COL1 EP93XX_GPIO_LINE_D(1)
> -#define EP93XX_GPIO_LINE_COL2 EP93XX_GPIO_LINE_D(2)
> -#define EP93XX_GPIO_LINE_COL3 EP93XX_GPIO_LINE_D(3)
> -#define EP93XX_GPIO_LINE_COL4 EP93XX_GPIO_LINE_D(4)
> -#define EP93XX_GPIO_LINE_COL5 EP93XX_GPIO_LINE_D(5)
> -#define EP93XX_GPIO_LINE_COL6 EP93XX_GPIO_LINE_D(6)
> -#define EP93XX_GPIO_LINE_COL7 EP93XX_GPIO_LINE_D(7)
> -
> -/* GPIO port E. */
> -#define EP93XX_GPIO_LINE_E(x) ((x) + 32)
> -#define EP93XX_GPIO_LINE_GRLED EP93XX_GPIO_LINE_E(0)
> -#define EP93XX_GPIO_LINE_RDLED EP93XX_GPIO_LINE_E(1)
> -#define EP93XX_GPIO_LINE_DIORn EP93XX_GPIO_LINE_E(2)
> -#define EP93XX_GPIO_LINE_IDECS1n EP93XX_GPIO_LINE_E(3)
> -#define EP93XX_GPIO_LINE_IDECS2n EP93XX_GPIO_LINE_E(4)
> -#define EP93XX_GPIO_LINE_IDEDA0 EP93XX_GPIO_LINE_E(5)
> -#define EP93XX_GPIO_LINE_IDEDA1 EP93XX_GPIO_LINE_E(6)
> -#define EP93XX_GPIO_LINE_IDEDA2 EP93XX_GPIO_LINE_E(7)
> -
> -/* GPIO port F. */
> -#define EP93XX_GPIO_LINE_F(x) ((x) + 16)
> -#define EP93XX_GPIO_LINE_WP EP93XX_GPIO_LINE_F(0)
> -#define EP93XX_GPIO_LINE_MCCD1 EP93XX_GPIO_LINE_F(1)
> -#define EP93XX_GPIO_LINE_MCCD2 EP93XX_GPIO_LINE_F(2)
> -#define EP93XX_GPIO_LINE_MCBVD1 EP93XX_GPIO_LINE_F(3)
> -#define EP93XX_GPIO_LINE_MCBVD2 EP93XX_GPIO_LINE_F(4)
> -#define EP93XX_GPIO_LINE_VS1 EP93XX_GPIO_LINE_F(5)
> -#define EP93XX_GPIO_LINE_READY EP93XX_GPIO_LINE_F(6)
> -#define EP93XX_GPIO_LINE_VS2 EP93XX_GPIO_LINE_F(7)
> -
> -/* GPIO port G. */
> -#define EP93XX_GPIO_LINE_G(x) ((x) + 48)
> -#define EP93XX_GPIO_LINE_EECLK EP93XX_GPIO_LINE_G(0)
> -#define EP93XX_GPIO_LINE_EEDAT EP93XX_GPIO_LINE_G(1)
> -#define EP93XX_GPIO_LINE_SLA0 EP93XX_GPIO_LINE_G(2)
> -#define EP93XX_GPIO_LINE_SLA1 EP93XX_GPIO_LINE_G(3)
> -#define EP93XX_GPIO_LINE_DD12 EP93XX_GPIO_LINE_G(4)
> -#define EP93XX_GPIO_LINE_DD13 EP93XX_GPIO_LINE_G(5)
> -#define EP93XX_GPIO_LINE_DD14 EP93XX_GPIO_LINE_G(6)
> -#define EP93XX_GPIO_LINE_DD15 EP93XX_GPIO_LINE_G(7)
> -
> -/* GPIO port H. */
> -#define EP93XX_GPIO_LINE_H(x) ((x) + 56)
> -#define EP93XX_GPIO_LINE_DD0 EP93XX_GPIO_LINE_H(0)
> -#define EP93XX_GPIO_LINE_DD1 EP93XX_GPIO_LINE_H(1)
> -#define EP93XX_GPIO_LINE_DD2 EP93XX_GPIO_LINE_H(2)
> -#define EP93XX_GPIO_LINE_DD3 EP93XX_GPIO_LINE_H(3)
> -#define EP93XX_GPIO_LINE_DD4 EP93XX_GPIO_LINE_H(4)
> -#define EP93XX_GPIO_LINE_DD5 EP93XX_GPIO_LINE_H(5)
> -#define EP93XX_GPIO_LINE_DD6 EP93XX_GPIO_LINE_H(6)
> -#define EP93XX_GPIO_LINE_DD7 EP93XX_GPIO_LINE_H(7)
> -
> -/* maximum value for gpio line identifiers */
> -#define EP93XX_GPIO_LINE_MAX EP93XX_GPIO_LINE_H(7)
> -
> -/* maximum value for irq capable line identifiers */
> -#define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7)
> -
> -#define gpio_to_irq __gpio_to_irq
> -#define irq_to_gpio(irq) ((irq) - gpio_to_irq(0))
> -
> -#endif
> diff --git a/arch/arm/mach-ep93xx/simone.c b/arch/arm/mach-ep93xx/simone.c
> index 9ae4ea1..52e090d 100644
> --- a/arch/arm/mach-ep93xx/simone.c
> +++ b/arch/arm/mach-ep93xx/simone.c
> @@ -18,12 +18,12 @@
> #include <linux/kernel.h>
> #include <linux/init.h>
> #include <linux/platform_device.h>
> -#include <linux/gpio.h>
> #include <linux/i2c.h>
> #include <linux/i2c-gpio.h>
>
> #include <mach/hardware.h>
> #include <mach/fb.h>
> +#include <mach/gpio-ep93xx.h>
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-ep93xx/snappercl15.c b/arch/arm/mach-ep93xx/snappercl15.c
> index 3cea81f..8121e3a 100644
> --- a/arch/arm/mach-ep93xx/snappercl15.c
> +++ b/arch/arm/mach-ep93xx/snappercl15.c
> @@ -20,7 +20,6 @@
> #include <linux/kernel.h>
> #include <linux/init.h>
> #include <linux/io.h>
> -#include <linux/gpio.h>
> #include <linux/i2c.h>
> #include <linux/i2c-gpio.h>
> #include <linux/fb.h>
> @@ -30,6 +29,7 @@
>
> #include <mach/hardware.h>
> #include <mach/fb.h>
> +#include <mach/gpio-ep93xx.h>
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c
> index 6a56895..386d9ff 100644
> --- a/drivers/gpio/gpio-ep93xx.c
> +++ b/drivers/gpio/gpio-ep93xx.c
> @@ -24,6 +24,9 @@
> #include <linux/module.h>
>
> #include <mach/hardware.h>
> +#include <mach/gpio-ep93xx.h>
> +
> +#define irq_to_gpio(irq) ((irq) - gpio_to_irq(0))
>
> struct ep93xx_gpio {
> void __iomem *mmio_base;
> --
> 1.7.3.2
>
^ permalink raw reply
* [PATCH 2/2] gpio/nomadik: use genirq core to track enablement
From: Grant Likely @ 2011-09-20 17:37 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316508615-20351-1-git-send-email-linus.walleij@stericsson.com>
On Tue, Sep 20, 2011 at 10:50:15AM +0200, Linus Walleij wrote:
> From: Linus Walleij <linus.walleij@linaro.org>
>
> Currently the Nomadik GPIO driver tracks enabled/disabled interrupt
> status with a local variable, switch to using the interrupt core.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Applied both, thanks.
g.
> ---
> drivers/gpio/gpio-nomadik.c | 11 ++---------
> 1 files changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
> index 97e9be9..0b7ec12 100644
> --- a/drivers/gpio/gpio-nomadik.c
> +++ b/drivers/gpio/gpio-nomadik.c
> @@ -58,7 +58,6 @@ struct nmk_gpio_chip {
> u32 rwimsc;
> u32 fwimsc;
> u32 slpm;
> - u32 enabled;
> u32 pull_up;
> };
>
> @@ -605,11 +604,6 @@ static int nmk_gpio_irq_maskunmask(struct irq_data *d, bool enable)
> if (!nmk_chip)
> return -EINVAL;
>
> - if (enable)
> - nmk_chip->enabled |= bitmask;
> - else
> - nmk_chip->enabled &= ~bitmask;
> -
> clk_enable(nmk_chip->clk);
> spin_lock_irqsave(&nmk_gpio_slpm_lock, flags);
> spin_lock(&nmk_chip->lock);
> @@ -653,7 +647,7 @@ static int nmk_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
> spin_lock_irqsave(&nmk_gpio_slpm_lock, flags);
> spin_lock(&nmk_chip->lock);
>
> - if (!(nmk_chip->enabled & bitmask))
> + if (irqd_irq_disabled(d))
> __nmk_gpio_set_wake(nmk_chip, gpio, on);
>
> if (on)
> @@ -670,7 +664,7 @@ static int nmk_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
>
> static int nmk_gpio_irq_set_type(struct irq_data *d, unsigned int type)
> {
> - bool enabled;
> + bool enabled = !irqd_irq_disabled(d);
> bool wake = irqd_is_wakeup_set(d);
> int gpio;
> struct nmk_gpio_chip *nmk_chip;
> @@ -691,7 +685,6 @@ static int nmk_gpio_irq_set_type(struct irq_data *d, unsigned int type)
> clk_enable(nmk_chip->clk);
> spin_lock_irqsave(&nmk_chip->lock, flags);
>
> - enabled = !!(nmk_chip->enabled & bitmask);
> if (enabled)
> __nmk_gpio_irq_modify(nmk_chip, gpio, NORMAL, false);
>
> --
> 1.7.3.2
>
^ permalink raw reply
* [PATCH V2 0/6] spi/spi-pl022 fixes
From: Grant Likely @ 2011-09-20 17:23 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <4E78761C.9030908@st.com>
On Tue, Sep 20, 2011 at 04:46:44PM +0530, Viresh Kumar wrote:
> On 9/1/2011 4:26 PM, Linus Walleij wrote:
> > I agree. Acked-by: Linus Walleij <linus.walleij@linaro.org> for
> > all except 6/6, it's probably just as possible to keep the channel handle
> > taken in the driver if we modify the affected DMA driver instead.
> > This would be better for performance I think.
>
> Hi Grant,
>
> Any updates on this?
Applied 1-5, thanks.
g.
>
> --
> viresh
^ permalink raw reply
* [PATCH V2 1/6] spi/spi-pl022: Resolve formatting issues
From: Grant Likely @ 2011-09-20 17:17 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <a72e7189be95278b97614fe9ab7d307d422d54e4.1312965741.git.viresh.kumar@st.com>
On Wed, Aug 10, 2011 at 02:20:54PM +0530, Viresh Kumar wrote:
> There were few formatting related issues in code. This patch fixes them.
> Fixes include:
> - Remove extra blank lines
> - align code to 80 cols
> - combine several lines to one line
> - Replace multiple spaces with tabs
> - Remove spaces before labels
>
> Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
> Tested-by: Linus Walleij <linus.walleij@linaro.org>
> @@ -2243,23 +2233,23 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id)
> amba_vcore_disable(adev);
> return 0;
>
> - err_spi_register:
> - err_start_queue:
> - err_init_queue:
> +err_spi_register:
> +err_start_queue:
> +err_init_queue:
> destroy_queue(pl022);
> pl022_dma_remove(pl022);
> free_irq(adev->irq[0], pl022);
> pm_runtime_disable(&adev->dev);
> - err_no_irq:
> +err_no_irq:
> clk_put(pl022->clk);
> - err_no_clk:
> +err_no_clk:
> iounmap(pl022->virtbase);
> - err_no_ioremap:
> +err_no_ioremap:
> amba_release_regions(adev);
> - err_no_ioregion:
> +err_no_ioregion:
> spi_master_put(master);
> - err_no_master:
> - err_no_pdata:
> +err_no_master:
> +err_no_pdata:
These label indentations are actually on purpose. I'll apply the rest
of the patch, but I'm going to remove this hunk. Indenting error
labels by 1 space makes 'diff' show the function name instead of the
label in the context line.
g.
^ permalink raw reply
* [PATCH 1/3] include: fb: Add definiton for window positioning structure
From: Baruch Siach @ 2011-09-20 17:08 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAEC9eQOpwfmRfcxHoiA00xX0a=dxXj1xJDpW14DozGXKXPJ3Xg@mail.gmail.com>
Hi Ajay,
On Tue, Sep 20, 2011 at 08:56:57PM +0530, Ajay kumar wrote:
> Hi Baruch,
> On Tue, Sep 20, 2011 at 4:54 PM, Baruch Siach <baruch@tkos.co.il> wrote:
> > Hi Ajay,
> >
> > On Tue, Sep 20, 2011 at 11:30:39AM -0400, Ajay Kumar wrote:
> >> This patch adds a data structure definiton to hold framebuffer windows/planes.
> >> An ioctl number is also added to provide user access
> >> to change window position dynamically.
> >
> > [snip]
> >
> >> +/* Window overlaying */
> >> +struct fb_overlay_win_pos {
> >> + ? ? __u32 win_pos_x; ? ? ? ?/* x-offset from LCD(0,0) where window starts */
> >> + ? ? __u32 win_pos_y; ? ? ? ?/* y-offset from LCD(0,0) where window starts */
> >> +};
> >
> > Why not allow negative offsets where the left or upper part of the framebuffer
> > is hidden?
>
> Thanks for pointing it out. Are there drivers which place the overlay
> windows such that some part of the window is hidden from being
> displayed on the screen?
I don't know. However, since this is new userspace ABI which should stay
compatible forever, we should make sure to do it right. Using __s32 instead of
__u32 won't limit us in the future.
baruch
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
^ permalink raw reply
* Link failures due to __bug_table in current -next
From: Simon Glass @ 2011-09-20 17:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20110920075916.GD16381@n2100.arm.linux.org.uk>
Hi Russell,
On Tue, Sep 20, 2011 at 12:59 AM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Tue, Sep 20, 2011 at 12:06:22AM -0700, Simon Glass wrote:
>> Hi Russell,
>>
>> On Mon, Sep 19, 2011 at 1:03 PM, Russell King - ARM Linux
>> <linux@arm.linux.org.uk> wrote:
>> > On Mon, Sep 19, 2011 at 01:09:54PM +0100, Mark Brown wrote:
>> >> I'm seeing linker failures in -next as of today:
>> >>
>> >> `.exit.text' referenced in section `__bug_table' of fs/built-in.o:
>> >> defined in discarded section `.exit.text' of fs/built-in.o
>> >> `.exit.text' referenced in section `__bug_table' of crypto/built-in.o:
>> >> defined in discarded section `.exit.text' of crypto/built-in.o
>> >> `.exit.text' referenced in section `__bug_table' of net/built-in.o:
>> >> defined in discarded section `.exit.text' of net/built-in.o
>> >> `.exit.text' referenced in section `__bug_table' of net/built-in.o:
>> >> defined in discarded section `.exit.text' of net/built-in.o
>> >>
>> >> which appears to be due to the chnage to use generic BUG() introduced in
>> >> commit 5254a3 (ARM: 7017/1: Use generic BUG() handler), reverting that
>> >> commit resolves the issue for me.
>>
>> Gosh this does seem a bit odd. Ordering seems to be clearly implied by
>> the file syntax and I agree we should seek guidance from binutils
>> people.
>
> I'm not sure that there's any value in seeking guidance from the linker
> folk - we can see what's going on with a few experiments. ?That's fine
> to find out what current linker behaviour is, but unless the manual
> documents it, its something that shouldn't be relied upon.
>
> Here's where I researched what the manual says and what practically happens
> with the linker:
>
> http://lists.arm.linux.org.uk/lurker/message/20110808.195805.a073e07d.en.html
Yes that was what I read first (at least twice :-). It is
counter-intuitive given the way the linker encourages us to lay out
scripts - as I said I believe that some sort of ordering is at least
implied by the docs.
>
>> I added the BUG condition to CONFIG_SMP_ON_UP and
>> CONFIG_DEBUG_SPINLOCK which were already there. If BUG is causing
>> problems, I wonder why these are not? Have we just been lucky, or have
>> I crossed a line? Or perhaps there are no spinlocks in exit text?
>
> The other stuff is also having problems. ?Rob Herring's report was about
> the SMP alternatives causing the same problem:
>
> http://lists.arm.linux.org.uk/lurker/message/20110808.184931.a38e1c4e.en.html
OK I see.
>
>> One option is to keep all exit text around - i.e. never discard it at
>> link time. From memory it is only 4-8KB. Doubtless many would be upset
>> with this, but it could be an option until this binutils behaviour is
>> resolved.
>
> We are trying to keep .exit.text around (when certain config options are
> set - and they are set - but the linker is deciding to discard it for us
> anyway, because asm-generic/vmlinux.lds.S always lists .exit.text in its
> discard section.
Yes what I meant was to not discard it - i.e. remove it from that link
script altogether.
>
> As we have a discard section at the beginning of the file to discard the
> unwinder information for other sections, the one from the generic file
> gets merged at the _start_ of the linker file, which results in .exit.text
> first appearance to be in the discard section.
>
> It's not that simple though - if you read the quote from the linker manual,
> the implication is that the linker would be entirely free to discard an
> input section as a priority if it appears in a discard section anywhere
> in the linker script. ?There's nothing to say future linkers won't do
> this. ?It would still be conformant to the linker manual.
Oh dear. That is why it might be a good idea to hassle the linker
people, since relying on experiments on how things currently work
might be risky if someone leaps in and changes the algorithm.
>
>> Another is to declare that it is a bug to use BUG in an exit section.
>> I was thinking about that at the time, but decided it was probably too
>> radical. There are only a small number of references in the kernel I
>> think (again from memory - this was back in April I think). Not
>> trivial to enforce, and the error you get is not exactly informative.
>
> When a BUG() is inside an inline function which is used in an exit path,
> it becomes non-trivial to eliminate. ?That means there will be hidden
> BUG() instances and we really can't ask people to avoid inline functions.
>
You mean that the BUG() call is not obvious. However, it can be found,
if necessary by inspection of assembler output :-) An easy workaround
is to put that code into a non-__exit function and call it from the
__exit function. If we enforced that then I think it would be one
solution to the problem. Given the tiny size of exit code in the
kernel it can be hoped that the impact would be minimal. My main
concern with this approach is that it introduces a build problem which
will only occur on some machines and builds, which can be painful.
Sorry if I restate the obvious, but with generic BUG patch, BUG inside
an inline function (or anywhere else) just becomes an undef
instruction. There is no function call. The only reason we have a
problem at all is that we want to eliminate the code section
containing this undef instruction, but every one of these instructions
also creates an entry in the bug table (which exists in its own
separate section), and we cannot selectively eliminate those entries
in the linker. Specifically there is an entry which points to the PC
of the undef instruction. If this could be made a weak reference then
perhaps it might fix things.
It is easy enough for the handler to just not report the information
if it doesn't have it. This is hypothetical anyway since if you are
eliminating exit code it is presumably because you will never exit.
Hmm even more out there, I wonder if we can modify the BUG macro to
put the bug table entry into one of two separate depending on whether
BUG is in an __exit function or not? Then at link time, either concat
the two tables, or just ignore the exit one...
In any case, it sounds from the next email in this thread that your
patch has fixed the problem! So, where does that leave us?
Regards,
Simon
^ permalink raw reply
* [PATCH 1/3] include: fb: Add definiton for window positioning structure
From: Florian Tobias Schandinat @ 2011-09-20 16:55 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316533193.18781.12.camel@deskari>
On 09/20/2011 03:39 PM, Tomi Valkeinen wrote:
> On Tue, 2011-09-20 at 20:16 +0530, Ajay kumar wrote:
>> Hi Tomi,
>>
>> On Tue, Sep 20, 2011 at 4:40 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>> On Tue, 2011-09-20 at 11:30 -0400, Ajay Kumar wrote:
>>>> This patch adds a data structure definiton to hold framebuffer windows/planes.
>>>> An ioctl number is also added to provide user access
>>>> to change window position dynamically.
Ajay, do you need this urgently or can we delay this one merge window? I don't
think that a week or so is enough to get a consistent API that gets everything
right. So if you have a pressing need to have it within the 3.2 kernel I'd
prefer to do it only for your driver now and adjust it when we get the thing
done, probably in 3.3.
>>>>
>>>> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
>>>> Signed-off-by: Banajit Goswami <banajit.g@samsung.com>
>>>> Suggested-by: Marek Szyprowski <m.szyprowski@samsung.com>
>>>> ---
>>>> include/linux/fb.h | 7 +++++++
>>>> 1 files changed, 7 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/include/linux/fb.h b/include/linux/fb.h
>>>> index 1d6836c..2141941 100644
>>>> --- a/include/linux/fb.h
>>>> +++ b/include/linux/fb.h
>>>> @@ -39,6 +39,7 @@
>>>> #define FBIOPUT_MODEINFO 0x4617
>>>> #define FBIOGET_DISPINFO 0x4618
>>>> #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
>>>> +#define FBIOPOS_OVERLAY_WIN _IOW('F', 0x21, struct fb_overlay_win_pos)
>>>>
>>>> #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
>>>> #define FB_TYPE_PLANES 1 /* Non interleaved planes */
>>>> @@ -366,6 +367,12 @@ struct fb_image {
>>>> struct fb_cmap cmap; /* color map info */
>>>> };
>>>>
>>>> +/* Window overlaying */
>>>> +struct fb_overlay_win_pos {
>>>> + __u32 win_pos_x; /* x-offset from LCD(0,0) where window starts */
>>>> + __u32 win_pos_y; /* y-offset from LCD(0,0) where window starts */
>>>> +};
>>>
>>> Shouldn't this also include the window size (in case scaling is
>>> supported)?
>>
>> The "xres" and "yres" fields in fb_var_screeninfo are being used to
>> represent the size of the window (visible resolution). So we have,
>>
>> win_pos_x: x-offset from LCD(0,0) where window starts.
>> win_pos_y: y-offset from LCD(0,0) where window starts.
>> (win_pos_x + xres) : x-offset from LCD(0,0) where window ends.
>> (win_pos_y + yres) : y-offset from LCD(0,0) where window ends.
>
> Sure, but the xres and yres tell the _input_ resolution, i.e. how many
> pixels are read from the memory. What is missing is the _output_
> resolution, which is the size of the window. These are not necessarily
> the same, if the system supports scaling.
I agree, scaling is an issue that should get solved on the way. So adding
u32 width, height;
with an initial/special value of 0 which means just take what the source
width/height is.
>>> This also won't work for setups where the same framebuffer is used by
>>> multiple overlays. For example, this is the case on OMAP when the same
>>> content is cloned to, say, LCD and TV, each of which is showing an
>>> overlay.
>>
>> These x and y position are used to configure the display controller
>> (for LCD only) and not to alter the data in physical buffer
>> (framebuffer). Could you elaborate the above use case you have
>> mentioned and how adding the x and y offsets would not meet that
>> requirement.
>
> Nothing wrong with adding x/y offsets, but the problem is in configuring
> the two overlays. If the framebuffer data is used by two overlays, each
> overlay should be configured separately. And your ioctl does not have
> any way to define which overlay is being affected.
Did you have a look at the (existing) API [1] Laurent proposed for discovering
the internal connections between the framebuffers (or with any other devices)?
If you agree that it'd be a good idea to use it I feel that we should make the
windowing API more compatible with it. So basically what we want to have as a
window is one or more sunk pads so the pad-index should be also part of the
interface. I'm still confused with how OMAP works when it does not have a "root"
window/framebuffer. Normally I feel that the window position should be a
property of the parent window as this is what the position is relative too. But
if the parent is no framebuffer, should we also include the entity into the
interface to allow configuring things that are nor even framebuffers?
Also I think we need a z-index in case overlays overlap (might happen or?) and
enforcing that all z-indexes are different for the same entity.
> Of course, if we specify that a single framebuffer will ever go only to
> one output, the problem disappears.
>
> However, even if we specify so, this will make the fbdev a bit weird:
> what is x/yres after this patch? In the current fbdev x/yres is the size
> of the output, and x/yres are part of video timings. After this patch
> this is no longer the case: x/yres will be the size of the overlay. But
> the old code will still use x/yres as part of video timings, making
> things confusing.
As I see it xres/yres (together with xoffset/yoffset) is always the visible part
of the framebuffer. Typically that's also part of the timings as they define
what is visible. With the introduction of overlays (and maybe even for some
hardware anyway) it is no longer always true to have any timings at all. So on
all framebuffer that do not have physical timings the timing interpretation is
useless anyway (I'm thinking about adding a FB_CAP_NOTIMING) and what remains is
the interpretation of xres/yres as visible screen region.
> And generally I can't really make my mind about adding these more
> complex features. On one hand it would be very nice to have fbdev
> supporting overlays and whatnot, but on the other hand, I can't figure
> out how to add them properly.
I don't see it as adding new features, rather unifying what is already there for
easier use. Sure it should be done in a consistent way.
Best regards,
Florian Tobias Schandinat
[1] http://linuxtv.org/downloads/v4l-dvb-apis/media_common.html
^ permalink raw reply
* [PATCH] i2c/tegra: I2C driver uses the suspend_noirq/resume_noirq
From: Stephen Warren @ 2011-09-20 16:51 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF04B3279D4F@HQMAIL01.nvidia.com>
Stephen Warren wrote at Tuesday, August 30, 2011 10:25 AM:
> Ben, Arnd,
>
> Could you please ack/nack the patch at the start of this thread for Colin;
> see below.
Ben, can you please comment on the acceptability of this patch?
Or Arnd, did Mark's most recent explanation of the situation provide enough
context for you to ack/nak it?
Thanks.
> Thanks.
>
> Colin Cross wrote at Wednesday, August 24, 2011 3:34 PM:
> > On Wed, Aug 24, 2011 at 2:28 PM, Stephen Warren <swarren@nvidia.com> wrote:
> > > Mark Brown wrote at Thursday, August 11, 2011 9:15 PM:
> > >> On Thu, Aug 11, 2011 at 07:59:27PM -0700, Colin Cross wrote:
> > >> > On Thu, Aug 11, 2011 at 5:45 PM, Mark Brown
> > >>
> > >> > > For example with ASoC we'd sort all the components before the ASoC card
> > >> > > without regard for their bus dependencies or any other dependencies they
> > >> > > have (eg, their regulators). Since the ASoC card is a platform device
> > >> > > it's likely to have registered early with no regard for where the buses
> > >> > > the card needs are registered. I'd expect there's a reasonable chance
> > >> > > it'll actually make things worse in the short term.
> > >>
> > >> > You can't just move everything after the card, you have to move
> > >> > everything after the last device that was probed, and it only works if
> > >> > nothing depends on any of the devices that are moved.
> > >>
> > >> Sorry, I said that the wrong way round due to trying to reply quickly -
> > >> the card would be the thing that moves since that's the thing that
> > >> actually does the suspend but we've *no* idea which device we need to
> > >> move it after. ?Since all the function does is a direct move after or
> > >> before a single device all we can do is pick one and pray that it's the
> > >> right device.
> > >
> > > Colin,
> > >
> > > This thread seems to have died down; how should we make progress?
> > >
> > > It sounds like the suspend_irq solution is the current de-facto standard;
> > > not optimal, but all we really have right now and already in use. I could
> > > certainly see avoiding this solution if it was the first time it was
> > > employed, but re-using it seems reasonable to me?
> > >
> > > Alternatively, are you attending either Linux Plumbers Conference or the
> > > Kernel Summit? Mark implied this topic might well come up for discussion
> > > there. Unfortunately, I won't be able to make LPC due to a conflict.
> > I don't think I'll be able to make it.
> >
> > > (and you'd mentioned having the subsystem maintainers weigh in on this;
> > > which sub-system; IRQ, power, I2C, ...?)
> >
> > If Ben says its OK, its fine with me. Or maybe Arnd wants to weigh in?
--
nvpublic
^ permalink raw reply
* [PATCH REPOST 2/2] arm/dt: Tegra: Add support-8bit to SDHCI nodes
From: Stephen Warren @ 2011-09-20 16:46 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316537186-26753-1-git-send-email-swarren@nvidia.com>
For Seaboard's internal eMMC, this makes the difference between a
5.5MB/s and 10.2MB/s transfer rate. On Harmony, there wasn't any
measurable difference on my cheap/slow ~2MB/s card.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
arch/arm/boot/dts/tegra-harmony.dts | 1 +
arch/arm/boot/dts/tegra-seaboard.dts | 4 ++++
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts
index e581866..0e225b8 100644
--- a/arch/arm/boot/dts/tegra-harmony.dts
+++ b/arch/arm/boot/dts/tegra-harmony.dts
@@ -66,5 +66,6 @@
cd-gpios = <&gpio 58 0>; /* gpio PH2 */
wp-gpios = <&gpio 59 0>; /* gpio PH3 */
power-gpios = <&gpio 70 0>; /* gpio PI6 */
+ support-8bit;
};
};
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts
index 64cedca..a72299b 100644
--- a/arch/arm/boot/dts/tegra-seaboard.dts
+++ b/arch/arm/boot/dts/tegra-seaboard.dts
@@ -25,4 +25,8 @@
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
power-gpios = <&gpio 70 0>; /* gpio PI6 */
};
+
+ sdhci at c8000600 {
+ support-8bit;
+ };
};
--
1.7.0.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox