mbox

[GIT,PULL,1/5] ARM: orion: fixes for v3.8

Message ID pull-1353733874-990435
State New
Headers show

Pull-request

git://git.infradead.org/users/jcooper/linux.git tags/orion_fixes_for_3.7

Message

Jason Cooper Nov. 24, 2012, 5:11 a.m. UTC
The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:

  Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)

are available in the git repository at:

  git://git.infradead.org/users/jcooper/linux.git tags/orion_fixes_for_3.7

for you to fetch changes up to 1dc831bf53fddcc6443f74a39e72db5bcea4f15d:

  ARM: Kirkwood: Update PCI-E fixup (2012-11-21 18:30:08 +0000)

----------------------------------------------------------------
orion fixes for v3.7

 - dove irq fix
 - kirkwood pcie fix

----------------------------------------------------------------
Jason Gunthorpe (1):
      ARM: Kirkwood: Update PCI-E fixup

Russell King - ARM Linux (2):
      Dove: Attempt to fix PMU/RTC interrupts
      Dove: Fix irq_to_pmu()

 arch/arm/Kconfig                     |  1 +
 arch/arm/mach-dove/include/mach/pm.h |  2 +-
 arch/arm/mach-dove/irq.c             | 14 +++++++++++++-
 arch/arm/mach-kirkwood/pcie.c        | 11 ++++++++---
 4 files changed, 23 insertions(+), 5 deletions(-)

Comments

Jason Cooper Nov. 24, 2012, 5:17 a.m. UTC | #1
Arnd, Olof,

Sorry, automation got the best of me.  These fixes are for v3.7, if
possible.  Only error was in the subject line.  All else is correct.

thx,

Jason.

On Sat, Nov 24, 2012 at 05:11:04AM +0000, Jason Cooper wrote:
> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> 
>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> 
> are available in the git repository at:
> 
>   git://git.infradead.org/users/jcooper/linux.git tags/orion_fixes_for_3.7
> 
> for you to fetch changes up to 1dc831bf53fddcc6443f74a39e72db5bcea4f15d:
> 
>   ARM: Kirkwood: Update PCI-E fixup (2012-11-21 18:30:08 +0000)
> 
> ----------------------------------------------------------------
> orion fixes for v3.7
> 
>  - dove irq fix
>  - kirkwood pcie fix
> 
> ----------------------------------------------------------------
> Jason Gunthorpe (1):
>       ARM: Kirkwood: Update PCI-E fixup
> 
> Russell King - ARM Linux (2):
>       Dove: Attempt to fix PMU/RTC interrupts
>       Dove: Fix irq_to_pmu()
> 
>  arch/arm/Kconfig                     |  1 +
>  arch/arm/mach-dove/include/mach/pm.h |  2 +-
>  arch/arm/mach-dove/irq.c             | 14 +++++++++++++-
>  arch/arm/mach-kirkwood/pcie.c        | 11 ++++++++---
>  4 files changed, 23 insertions(+), 5 deletions(-)
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Olof Johansson Nov. 26, 2012, 9:16 a.m. UTC | #2
Hi,

On Sat, Nov 24, 2012 at 05:11:14AM +0000, Jason Cooper wrote:
> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> 
>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> 
> are available in the git repository at:
> 
>   git://git.infradead.org/users/jcooper/linux.git tags/mvebu_everything_for_3.8
> 
> for you to fetch changes up to 56580bb422e5f542da19c057f348dd39634138e7:
> 
>   Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything (2012-11-24 04:08:49 +0000)
> 
> ----------------------------------------------------------------
> 
> mvebu everything for v3.8
>  - due to the complex interdependencies of the received pull requests
>    I decided to keep this in one branch the way they recommended merging it
>  - this was their first attempt at doing pull requests, we'll work on it
>    with them
> 
>  - added SMP support for mvebu SoCs
>  - added coherency fabric
>  - added mdio and mvneta drivers
>  - added mirabox board
>  - added openblocks ax3-4 board
>  - clock fixes and improvements
>  - converted mv_xor driver to devicetree (extensive series in itself)
> 
> merge conflicts with orion/*
>  - arch/arm/mach-kirkwood/Kconfig
>     - select everything
>  - arch/arm/mach-kirkwood/board-dt.c
>     - remove AUXDATA
>     - keep all of_machine_is_compatible()
>     - use of_platform_populate(NULL, kirkwood_dt_match_table, NULL, NULL)
> 
> ----------------------------------------------------------------
> Andrew Lunn (3):
>       ARM: Kirkwood: switch to DT clock providers
>       dma: mv_xor: Add a device_control function
>       arm: kirkwood: Convert XOR instantiation to DT.
> 
> Gregory CLEMENT (17):
>       arm: mvebu: support for the Globalscale Mirabox board
>       clk: mvebu: add armada-370-xp CPU specific clocks
>       clk: mvebu: armada 370/XP add clock gating control provider for DT
>       clk: armada-370-xp: add support for clock framework
>       clocksource: convert time-armada-370-xp to clk framework
>       arm: mvebu: increase atomic coherent pool size for armada 370/XP
>       arm: mvebu: SATA support: SoC-level DT data for Armada 370/XP
>       arm: mvebu: SATA support: mvebu_defconfig update
>       arm: mvebu: SATA support: board-level DT data for Armada 370/XP boards
>       arm: mvebu: Add support for coherency fabric in mach-mvebu
>       arm: mvebu: Add initial support for power managmement service unit
>       arm: mvebu: Add IPI support via doorbells
>       arm: mm: Add support for PJ4B cpu and init routines
>       arm: mvebu: Add SMP support for Armada XP
>       arm: dma mapping: Export a dma ops function arm_dma_set_mask
>       arm: plat-orion: Add coherency attribute when setup mbus target
>       arm: mvebu: Add hardware I/O Coherency support
> 
> Jason Cooper (14):
>       Merge tag 'marvell-mvebu-clk-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-sata-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-neta-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-boards-net-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-neta-dt-clk-updates-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-net-xor-defconfig-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-armadaxp-smp-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-hwiocc-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge tag 'marvell-openblocks-i2c-sata-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>       Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything

Based on these merge commits, it looks like they organized things pretty well.
With this amount of code, if you want to mostly expose this to us coming
up to our level, that's fine.

Looking at the actual tree (in gitk to get visalization), it looks like
things held up well until the "test-the-merge" mergepoint which had some
patches on top of it instead of in a separate branch, I think? Those
merges are these:

> Thomas Petazzoni (74):
>       Merge tag 'marvell-mvebu-clk-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-sata-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-neta-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-boards-net-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
[..]
>       Merge tag 'marvell-mvebu-clk-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-sata-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-neta-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-boards-net-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-neta-dt-clk-updates-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>       Merge tag 'marvell-net-xor-defconfig-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge


I'll take a closer look at the rest tomorrow, it's getting a bit late here and
I have to call it a day.


-Olof
Olof Johansson Nov. 26, 2012, 9:17 a.m. UTC | #3
On Sat, Nov 24, 2012 at 05:11:11AM +0000, Jason Cooper wrote:
> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> 
>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> 
> are available in the git repository at:
> 
>   git://git.infradead.org/users/jcooper/linux.git tags/orion_dt_for_3.8

Pulled, thanks.


-Olof
Olof Johansson Nov. 26, 2012, 9:19 a.m. UTC | #4
On Sat, Nov 24, 2012 at 05:11:09AM +0000, Jason Cooper wrote:
> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> 
>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> 
> are available in the git repository at:
> 
>   git://git.infradead.org/users/jcooper/linux.git tags/orion_boards_for_3.8

Pulled, thanks. I commented on one of the patches though (Network Space v2).

Obviously the mpp pieces of each board patch will go away now that the pinctrl
driver is in place, so hopefully most of the rest can be whittled down too over
the next couple of releases. :)


-Olof
Olof Johansson Nov. 26, 2012, 9:19 a.m. UTC | #5
On Sat, Nov 24, 2012 at 05:11:06AM +0000, Jason Cooper wrote:
> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> 
>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> 
> are available in the git repository at:
> 
>   git://git.infradead.org/users/jcooper/linux.git tags/orion_cleanup_for_3.8
> 
> for you to fetch changes up to 4a9329a04ceec56fc1ec155b6ea4d8b50f350a7b:
> 
>   ARM: Kirkwood: Use hw_pci.ops instead of hw_pci.scan (2012-11-21 20:09:11 +0000)

Pulled, thanks.


-Olof
Thomas Petazzoni Nov. 26, 2012, 9:28 a.m. UTC | #6
Olof,

On Mon, 26 Nov 2012 01:16:52 -0800, Olof Johansson wrote:
> > Jason Cooper (14):
> >       Merge tag 'marvell-mvebu-clk-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-sata-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-neta-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-boards-net-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-neta-dt-clk-updates-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-net-xor-defconfig-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-armadaxp-smp-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-hwiocc-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge tag 'marvell-openblocks-i2c-sata-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> >       Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
> 
> Based on these merge commits, it looks like they organized things pretty well.
> With this amount of code, if you want to mostly expose this to us coming
> up to our level, that's fine.
> 
> Looking at the actual tree (in gitk to get visalization), it looks like
> things held up well until the "test-the-merge" mergepoint which had some
> patches on top of it instead of in a separate branch, I think? Those
> merges are these:

Right. The problem is that some of the last developments had many
dependencies against the previous developments, from various branches.
So I wasn't sure how to do this last developments, and I did merge the
branches containing the previous developments that I needed.

I am really open to suggestions on how to improve my Git workflow to
handle this better. It certainly wasn't my intention to have this
"test-the-merge" thing appear publicly.

Thanks,

Thomas
Olof Johansson Nov. 26, 2012, 9:35 a.m. UTC | #7
On Sat, Nov 24, 2012 at 05:11:11AM +0000, Jason Cooper wrote:
> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> 
>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> 
> are available in the git repository at:
> 
>   git://git.infradead.org/users/jcooper/linux.git tags/orion_dt_for_3.8
> 
> for you to fetch changes up to 2a18588c0ce336933be3c99c91e74e21db56a0fe:
> 
>   ARM: Kirkwood: remove kirkwood_ehci_init() from new boards (2012-11-24 03:58:12 +0000)
> 
> ----------------------------------------------------------------
> orion dt for v3.8
> 
>  - ehci-orion dt binding
>  - gpio-poweroff
>  - use dt regulators
>  - move mpp to DT/pinctrl

> 
> Depends on:
> 
>  - orion/boards
> 
>     - merge conflicts
>        - keep all 'select's in Kconfig
>        - remove all #includes in board-*.c
> 
>  - pinctrl/devel up to:
> 
>     - 06763c7 pinctrl: mvebu: move to its own directory

By the way, this branch ended up having conflicts against the cleanup branch.
It'd be nice to avoid those by basing your later topics on the cleanups if
needed.

It was mostly remove/remove conflicts of header files, and not a big deal to
handle for us, but if by slight tweaks to branch organization at your level you
can avoid some of them for us.

Some conflicts are still of course OK -- just like Linus prefers to see them,
we don't mind either. But some of the internal ones between different branches
from the same maintainer are sometimes a bit more than we care for. :)

-Olof
Arnd Bergmann Nov. 26, 2012, 10:28 a.m. UTC | #8
On Monday 26 November 2012, Thomas Petazzoni wrote:
> Right. The problem is that some of the last developments had many
> dependencies against the previous developments, from various branches.
> So I wasn't sure how to do this last developments, and I did merge the
> branches containing the previous developments that I needed.
> 
> I am really open to suggestions on how to improve my Git workflow to
> handle this better. It certainly wasn't my intention to have this
> "test-the-merge" thing appear publicly.
> 

One thing that Sascha Hauer first introduced was an extra branch that
has everything merged together to show how you want to handle
the conflicts. We'll then merge the individual branches and in the
end can check if there is any difference to what you had.

	Arnd
Thomas Petazzoni Nov. 26, 2012, 10:35 a.m. UTC | #9
Arnd,

On Mon, 26 Nov 2012 10:28:26 +0000, Arnd Bergmann wrote:
> On Monday 26 November 2012, Thomas Petazzoni wrote:
> > Right. The problem is that some of the last developments had many
> > dependencies against the previous developments, from various branches.
> > So I wasn't sure how to do this last developments, and I did merge the
> > branches containing the previous developments that I needed.
> > 
> > I am really open to suggestions on how to improve my Git workflow to
> > handle this better. It certainly wasn't my intention to have this
> > "test-the-merge" thing appear publicly.
> 
> One thing that Sascha Hauer first introduced was an extra branch that
> has everything merged together to show how you want to handle
> the conflicts. We'll then merge the individual branches and in the
> end can check if there is any difference to what you had.

Maybe I don't understand correctly, but the problem that I had is not a
problem of conflicts, but rather the need to do development *on top* of
branches for which pull requests had already been sent.

For example, the clk support in the network driver depended on:
 * The branch containing the new network driver to be there
 * The branch containing the mvebu clk infrastructure to be there

What should I have done to do this clk support in the network driver,
if not a merge of the network driver branch + the mvebu clk
infrastructure branch?

Again, I'm really still learning how to adjust my Git workflow to
handle those things properly. We had a good amount of changes for this
cycle, and I admit it has been quite messy on my end as I didn't really
know how to do things nicely.

Note that I am also surprised by the fact that we had to remove a
'clocks=' property in dove.dtsi, and therefore have a known-broken
3.8-rc1 even before it is released. It sounds strange to me that the
separation of branches prevents from doing the correct changes. But
maybe I'm not seeing the entire problem, and therefore under-estimating
the issues at hand.

Thomas
Jason Cooper Nov. 26, 2012, 12:24 p.m. UTC | #10
On Mon, Nov 26, 2012 at 11:35:06AM +0100, Thomas Petazzoni wrote:
> Note that I am also surprised by the fact that we had to remove a
> 'clocks=' property in dove.dtsi, and therefore have a known-broken
> 3.8-rc1 even before it is released. It sounds strange to me that the
> separation of branches prevents from doing the correct changes. But
> maybe I'm not seeing the entire problem, and therefore under-estimating
> the issues at hand.

When I removed this, I thought it was an accidental line left over from
some clock work Sebastian was working on.  Primarily because it was the
*only* reference to clock in that series.  It was only later that I
found out it should have depended on mvebu/everything (or a subset of
it).

In an ideal world, we won't have to do an mvebu/everything, and then
it's a lot easier to get all the dependencies correct.

At any rate, as Sebastian noted, it builds fine, it boots, and only
hangs if you query the cooresponding debugfs element.  Not ideal, for
sure, but easily fixed in -rc1.

thx,

Jason.
Arnd Bergmann Nov. 26, 2012, 1:06 p.m. UTC | #11
On Monday 26 November 2012, Thomas Petazzoni wrote:
> Arnd,
> 
> On Mon, 26 Nov 2012 10:28:26 +0000, Arnd Bergmann wrote:
> > On Monday 26 November 2012, Thomas Petazzoni wrote:
> > > Right. The problem is that some of the last developments had many
> > > dependencies against the previous developments, from various branches.
> > > So I wasn't sure how to do this last developments, and I did merge the
> > > branches containing the previous developments that I needed.
> > > 
> > > I am really open to suggestions on how to improve my Git workflow to
> > > handle this better. It certainly wasn't my intention to have this
> > > "test-the-merge" thing appear publicly.
> > 
> > One thing that Sascha Hauer first introduced was an extra branch that
> > has everything merged together to show how you want to handle
> > the conflicts. We'll then merge the individual branches and in the
> > end can check if there is any difference to what you had.
> 
> Maybe I don't understand correctly, but the problem that I had is not a
> problem of conflicts, but rather the need to do development *on top* of
> branches for which pull requests had already been sent.

Ok, sorry for the confusion on my part.

> For example, the clk support in the network driver depended on:
>  * The branch containing the new network driver to be there
>  * The branch containing the mvebu clk infrastructure to be there
> 
> What should I have done to do this clk support in the network driver,
> if not a merge of the network driver branch + the mvebu clk
> infrastructure branch?

No, this all sounds good, there is not easier way really. Sometimes
you can do the branches in a way that each branch works by itself
but you don't have to do a third branch to combine the features.

In other cases, where you have multiple branches that all get
merged through arm-soc (or another tree that uses branches like
this), you can try to get everyone to agree on an order in advance,
and then you just mandate that one branch has another one as
a prerequisite.

Yet another option is to have a few patches that serve as a
common base for multiple branches: E.g. have one patch introduce
a new interface as a stub and base two branches on top of the
same commit, one that uses the interface and another one that
implements it. Again, this is not always possible.

If you do a lot of reworks at the same time, this always gets
very hard.

	Arnd
Jason Cooper Nov. 26, 2012, 1:56 p.m. UTC | #12
On Mon, Nov 26, 2012 at 01:35:22AM -0800, Olof Johansson wrote:
> On Sat, Nov 24, 2012 at 05:11:11AM +0000, Jason Cooper wrote:
> > The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> > 
> >   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> > 
> > are available in the git repository at:
> > 
> >   git://git.infradead.org/users/jcooper/linux.git tags/orion_dt_for_3.8
> > 
> > for you to fetch changes up to 2a18588c0ce336933be3c99c91e74e21db56a0fe:
> > 
> >   ARM: Kirkwood: remove kirkwood_ehci_init() from new boards (2012-11-24 03:58:12 +0000)
> > 
> > ----------------------------------------------------------------
> > orion dt for v3.8
> > 
> >  - ehci-orion dt binding
> >  - gpio-poweroff
> >  - use dt regulators
> >  - move mpp to DT/pinctrl
> 
> > 
> > Depends on:
> > 
> >  - orion/boards
> > 
> >     - merge conflicts
> >        - keep all 'select's in Kconfig
> >        - remove all #includes in board-*.c
> > 
> >  - pinctrl/devel up to:
> > 
> >     - 06763c7 pinctrl: mvebu: move to its own directory
> 
> By the way, this branch ended up having conflicts against the cleanup branch.
> It'd be nice to avoid those by basing your later topics on the cleanups if
> needed.
> 
> It was mostly remove/remove conflicts of header files, and not a big deal to
> handle for us, but if by slight tweaks to branch organization at your level you
> can avoid some of them for us.
> 
> Some conflicts are still of course OK -- just like Linus prefers to see them,
> we don't mind either. But some of the internal ones between different branches
> from the same maintainer are sometimes a bit more than we care for. :)

You should have seen it before I merged /dt-pinctrl into /dt ;-)  But
yes, I'll depend on /cleanup to avoid that in the future.

thx,

Jason.
Jason Cooper Nov. 26, 2012, 1:58 p.m. UTC | #13
On Mon, Nov 26, 2012 at 01:19:13AM -0800, Olof Johansson wrote:
> On Sat, Nov 24, 2012 at 05:11:09AM +0000, Jason Cooper wrote:
> > The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
> > 
> >   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
> > 
> > are available in the git repository at:
> > 
> >   git://git.infradead.org/users/jcooper/linux.git tags/orion_boards_for_3.8
> 
> Pulled, thanks. I commented on one of the patches though (Network Space v2).
> 
> Obviously the mpp pieces of each board patch will go away now that the pinctrl
> driver is in place, so hopefully most of the rest can be whittled down too over
> the next couple of releases. :)

I'm targetting v3.9 to get rid of most of the board files, the Kconfig
of individual DT boards, and platform init of mv643xx_eth.  At that
point, we'll be in shape to convert the legacy *-setup.c files, and move
all DT support to mvebu.

thx,

Jason.
Gregory CLEMENT Nov. 30, 2012, 7:27 a.m. UTC | #14
2012/11/26 Olof Johansson <olof@lixom.net>:
> Hi,
>
> On Sat, Nov 24, 2012 at 05:11:14AM +0000, Jason Cooper wrote:
>> The following changes since commit f4a75d2eb7b1e2206094b901be09adb31ba63681:
>>
>>   Linux 3.7-rc6 (2012-11-16 17:42:40 -0800)
>>
>> are available in the git repository at:
>>
>>   git://git.infradead.org/users/jcooper/linux.git tags/mvebu_everything_for_3.8
>>
>> for you to fetch changes up to 56580bb422e5f542da19c057f348dd39634138e7:
>>
>>   Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything (2012-11-24 04:08:49 +0000)
>>
>> ----------------------------------------------------------------
>>
>> mvebu everything for v3.8
>>  - due to the complex interdependencies of the received pull requests
>>    I decided to keep this in one branch the way they recommended merging it
>>  - this was their first attempt at doing pull requests, we'll work on it
>>    with them
>>
>>  - added SMP support for mvebu SoCs
>>  - added coherency fabric
>>  - added mdio and mvneta drivers
>>  - added mirabox board
>>  - added openblocks ax3-4 board
>>  - clock fixes and improvements
>>  - converted mv_xor driver to devicetree (extensive series in itself)
>>
>> merge conflicts with orion/*
>>  - arch/arm/mach-kirkwood/Kconfig
>>     - select everything
>>  - arch/arm/mach-kirkwood/board-dt.c
>>     - remove AUXDATA
>>     - keep all of_machine_is_compatible()
>>     - use of_platform_populate(NULL, kirkwood_dt_match_table, NULL, NULL)
>>
>> ----------------------------------------------------------------
>> Andrew Lunn (3):
>>       ARM: Kirkwood: switch to DT clock providers
>>       dma: mv_xor: Add a device_control function
>>       arm: kirkwood: Convert XOR instantiation to DT.
>>
>> Gregory CLEMENT (17):
>>       arm: mvebu: support for the Globalscale Mirabox board
>>       clk: mvebu: add armada-370-xp CPU specific clocks
>>       clk: mvebu: armada 370/XP add clock gating control provider for DT
>>       clk: armada-370-xp: add support for clock framework
>>       clocksource: convert time-armada-370-xp to clk framework
>>       arm: mvebu: increase atomic coherent pool size for armada 370/XP
>>       arm: mvebu: SATA support: SoC-level DT data for Armada 370/XP
>>       arm: mvebu: SATA support: mvebu_defconfig update
>>       arm: mvebu: SATA support: board-level DT data for Armada 370/XP boards
>>       arm: mvebu: Add support for coherency fabric in mach-mvebu
>>       arm: mvebu: Add initial support for power managmement service unit
>>       arm: mvebu: Add IPI support via doorbells
>>       arm: mm: Add support for PJ4B cpu and init routines
>>       arm: mvebu: Add SMP support for Armada XP
>>       arm: dma mapping: Export a dma ops function arm_dma_set_mask
>>       arm: plat-orion: Add coherency attribute when setup mbus target
>>       arm: mvebu: Add hardware I/O Coherency support
>>
>> Jason Cooper (14):
>>       Merge tag 'marvell-mvebu-clk-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-sata-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-neta-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-boards-net-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-neta-dt-clk-updates-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-net-xor-defconfig-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-armadaxp-smp-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-hwiocc-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge tag 'marvell-openblocks-i2c-sata-for-3.8' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>>       Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
>
> Based on these merge commits, it looks like they organized things pretty well.
> With this amount of code, if you want to mostly expose this to us coming
> up to our level, that's fine.
>
> Looking at the actual tree (in gitk to get visalization), it looks like
> things held up well until the "test-the-merge" mergepoint which had some
> patches on top of it instead of in a separate branch, I think? Those
> merges are these:
>
>> Thomas Petazzoni (74):
>>       Merge tag 'marvell-mvebu-clk-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-sata-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-neta-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-boards-net-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
> [..]
>>       Merge tag 'marvell-mvebu-clk-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-sata-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-neta-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-boards-net-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-net-mdio-checkpatch-fixes-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-mvneta-fix-and-clk-support-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-neta-dt-clk-updates-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-xor-cleanup-dt-binding-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-xor-board-dt-changes-3.8-v2' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>>       Merge tag 'marvell-net-xor-defconfig-for-3.8' of github.com:MISL-EBU-System-SW/mainline-public into test-the-merge
>
>
> I'll take a closer look at the rest tomorrow, it's getting a bit late here and
> I have to call it a day.
>

Hello,
Olof, Arnd,
what is the current status of this pull?

If you had encountered any issues, don't hesitate to let me know.
If I can help on any points I will.

Thanks,
Olof Johansson Nov. 30, 2012, 5:08 p.m. UTC | #15
On Mon, Nov 26, 2012 at 01:06:57PM +0000, Arnd Bergmann wrote:
> On Monday 26 November 2012, Thomas Petazzoni wrote:
> > Arnd,
> > 
> > On Mon, 26 Nov 2012 10:28:26 +0000, Arnd Bergmann wrote:
> > > On Monday 26 November 2012, Thomas Petazzoni wrote:
> > > > Right. The problem is that some of the last developments had many
> > > > dependencies against the previous developments, from various branches.
> > > > So I wasn't sure how to do this last developments, and I did merge the
> > > > branches containing the previous developments that I needed.
> > > > 
> > > > I am really open to suggestions on how to improve my Git workflow to
> > > > handle this better. It certainly wasn't my intention to have this
> > > > "test-the-merge" thing appear publicly.
> > > 
> > > One thing that Sascha Hauer first introduced was an extra branch that
> > > has everything merged together to show how you want to handle
> > > the conflicts. We'll then merge the individual branches and in the
> > > end can check if there is any difference to what you had.
> > 
> > Maybe I don't understand correctly, but the problem that I had is not a
> > problem of conflicts, but rather the need to do development *on top* of
> > branches for which pull requests had already been sent.
> 
> Ok, sorry for the confusion on my part.
> 
> > For example, the clk support in the network driver depended on:
> >  * The branch containing the new network driver to be there
> >  * The branch containing the mvebu clk infrastructure to be there
> > 
> > What should I have done to do this clk support in the network driver,
> > if not a merge of the network driver branch + the mvebu clk
> > infrastructure branch?
> 
> No, this all sounds good, there is not easier way really. Sometimes
> you can do the branches in a way that each branch works by itself
> but you don't have to do a third branch to combine the features.
> 
> In other cases, where you have multiple branches that all get
> merged through arm-soc (or another tree that uses branches like
> this), you can try to get everyone to agree on an order in advance,
> and then you just mandate that one branch has another one as
> a prerequisite.
> 
> Yet another option is to have a few patches that serve as a
> common base for multiple branches: E.g. have one patch introduce
> a new interface as a stub and base two branches on top of the
> same commit, one that uses the interface and another one that
> implements it. Again, this is not always possible.
> 
> If you do a lot of reworks at the same time, this always gets
> very hard.

Hi,

Following up on this since I'm sitting down to do the merges now. Apologies for
the delay.

What Arnd is saying is correct, and it does get hard, especially when doing
things that layer on top of each other.

What we've seen work reasonably well in some cases, is to have a set of
"cascading" branches that gets merged individually to keep the topics
together, but then get merged as bases for others. So, for example in this
case, Jason could have sent on each of the driver branches independently
or grouped them in similar groups to our branches if it made sense. The
xor branches seem to already be cascading in this sense, since the base
one (xor-cleanup-dt-binding) is base for xor-board-dt-cleanup, and so on.

Then, in your last branch that depends on everything else, merge the needed
branches together and use that as a base.

All of this is essentially what was already done, with the following tweaks:

* We don't mind seeing the individual branches instead of the "everything"
  branch in the end, even if they are a handful in number.
* Name the branch the real name when you start merging in dependencies, not
  "testmerge". :)

Because of the former, it's hard for us to spread out the mvebu pull request
across the branches like we usually do (fixes, cleanup, soc, board, dt, etc).

I'll merge this branch in now as a "late/mvebu" for the same reason as last
merge window -- it doesnt fit our branch model and it's easier to keep them as
a separate branch for that reason. I hope we can figure out a way to make this
work without doing this again for 3.9 though! :)


-Olof