[Gta04-owner] Strategy to upgrade neil-plus kernel to 3.10

Dr. H. Nikolaus Schaller hns at goldelico.com
Sat Jul 20 23:21:02 CEST 2013


Hi Neil,

Am 20.07.2013 um 16:44 schrieb Neil Jerram:

> "Dr. H. Nikolaus Schaller" <hns at goldelico.com> writes:
> 
>> Hi,
>> after all the recent discussions about the best kernel for Replicant I think we should
>> focus on getting all the latest kernel developments of mainline into the neil-plus kernel.
>> 
>> I.e. rebase it to 3.10.1.
>> 
>> So I tried the following:
>> 1. get fetch/pull the mainline branch from neil's repository [3] (I think this is the new 3.10 kernel)
>> 2. make a new branch hw-mainline starting from hw-validation [1] (i.e. the 3.7 neil-plus kernel)
>> 3. git rebase mainline
>> 
>> Unfortunately every second file has a CONFLICT.
> 
> The gitk is challenging to read, but I've had a try.
> 
>> Well, there are certainly things to fix, but I'd expect them only in those parts we have added
>> from the Neil's 3.7-gta04 branch (i.e. what makes the difference of the 'plus' part of neil-plus).
>> 
>> In Formulae:
>> 
>> hw-validation[1] = neil/3.7-gta04[2] + plus
> 
> I think the git branch name for this, in your repository, is 'neil-plus',
> right?

Yes.

>  The 'hw-validation' branch is still the 2.6.32-based one - at
> least from my point of view after a new 'git fetch goldelico'.

Yes. To make it more clear I have renamed the hw-valdation branch to hw-validation-2.6.32.

> 
>> delta = neil/mainline[3] - neil/3.7-gta04[2]
>> hw-mainline = neil/mainline[3] + plus = hw-validation[1] + delta + plus
>> 
>> I had expected that delta would be free of conflicts.
>> 
>> So what is the best strategy to work on this with git without having to work on conflicts that
>> are not related to the 'plus' part?
> 
> First let's compare and check commit IDs.  I think:
> 
> [1] = e70712bb = remotes/goldelico/neil-plus
> [2] = ea6d1b4e = (no branch name)
> [3] = f4fee72a = remotes/neil.brown/mainline
> 
> So perhaps what you want is:
> 
>   git checkout e70712bb
>   git checkout -b hw-mainline
>   git rebase --onto f4fee72a ea6d1b4e

The --onto appears to make the difference to my experiment!

> 
> (The last arg of the 'git rebase' is the upstream point from which to
> start rebasing.)

How did you find that?

It appears to work!

I still have many conflicts but as far as I can see they only come from code that was added by the 'plus' part. Except five marked in bold below.
And many of them probably come because I simply did loop git rebase --skip, i.e. they are conflicts carried along by not fixing previous conflicts.

Here is the list of all unique "Merge conflict" messages (if it helps someone to better understand what we are talking about):

CONFLICT (add/add): Merge conflict in arch/arm/configs/gta04b2_defconfig
CONFLICT (add/add): Merge conflict in arch/arm/configs/gta04b3_defconfig
CONFLICT (add/add): Merge conflict in arch/arm/mach-omap2/board-omap3gta04-camera.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/dbgdrvif.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/img_defs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/img_types.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/pdumpdefs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/pvr_debug.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/pvrmodule.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/pvrversion.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/services.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/servicesext.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/sgx_options.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/sgxapi_km.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/include4/sgxscript.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_linux.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_linux.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_private.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_ti/Kbuild
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_ti/bc_cat.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/3rdparty/bufferclass_ti/bc_cat.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/kernelbuffer.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/kerneldisplay.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/pvr_bridge.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/pvr_bridge_km.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/pvrmmap.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/servicesint.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/sgx_bridge.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/include/sgxinfo.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/bridged/bridged_pvr_bridge.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/bridged/bridged_support.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/bridged/bridged_support.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/bridged/sgx/bridged_sgx_bridge.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/buffer_manager.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/deviceclass.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/devicemem.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/handle.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/hash.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/mem.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/metrics.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/pdump_common.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/perproc.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/power.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/pvrsrv.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/queue.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/ra.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/common/resman.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/mmu.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/mmu.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/pb.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgx_bridge_km.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxconfig.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinfokm.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxinit.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxkick.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxpower.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxreset.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxtransfer.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxutils.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/devices/sgx/sgxutils.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/env_data.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/env_perproc.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/event.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/event.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/linkage.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/lock.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mm.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mm.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mmap.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mmap.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/module.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mutex.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mutex.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mutils.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/mutils.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/osfunc.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/osperproc.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/pdump.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/private_data.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/proc.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/proc.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/pvr_bridge_k.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/env/linux/pvr_debug.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/hwdefs/sgx530defs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/hwdefs/sgx540defs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/hwdefs/sgxdefs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/hwdefs/sgxerrata.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/hwdefs/sgxfeaturedefs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/hwdefs/sgxmmu.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/buffer_manager.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/device.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/handle.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/hash.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/metrics.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/osfunc.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/osperproc.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/pdump_km.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/perproc.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/power.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/queue.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/ra.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/resman.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/services_headers.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/srvkm/include/srvkm.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/include/syscommon.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/oemfuncs.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/sysconfig.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/sysconfig.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/sysinfo.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/syslocal.h
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/sysutils.c
CONFLICT (add/add): Merge conflict in drivers/gpu/pvr/services4/system/omap3630/sysutils_linux.c
CONFLICT (add/add): Merge conflict in drivers/input/touchscreen/tsc2007-gta04.c
CONFLICT (add/add): Merge conflict in drivers/staging/iio/gyro/itg3200_core.c
CONFLICT (add/add): Merge conflict in drivers/video/omap2/displays/panel-sharp-lq070y3dg3b.c
CONFLICT (content): Merge conflict in GTA04/udev-rules/input.rules
CONFLICT (content): Merge conflict in Makefile
CONFLICT (content): Merge conflict in arch/arm/configs/gta04_debug_defconfig
CONFLICT (content): Merge conflict in arch/arm/configs/gta04_defconfig
CONFLICT (content): Merge conflict in arch/arm/configs/gta04b2_defconfig
CONFLICT (content): Merge conflict in arch/arm/configs/gta04b3_defconfig
CONFLICT (content): Merge conflict in arch/arm/mach-omap2/Makefile
CONFLICT (content): Merge conflict in arch/arm/mach-omap2/board-omap3gta04.c
CONFLICT (content): Merge conflict in arch/arm/plat-omap/dmtimer.c
CONFLICT (content): Merge conflict in drivers/gpu/Makefile
CONFLICT (content): Merge conflict in drivers/gpu/pvr/Makefile
CONFLICT (content): Merge conflict in drivers/gpu/pvr/ORIGIN.txt
CONFLICT (content): Merge conflict in drivers/gpu/pvr/omap3/Makefile
CONFLICT (content): Merge conflict in drivers/gpu/pvr/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c
CONFLICT (content): Merge conflict in drivers/input/touchscreen/tsc2007-gta04.c
CONFLICT (content): Merge conflict in drivers/media/i2c/ov9655.c
CONFLICT (content): Merge conflict in drivers/power/twl4030_charger.c
CONFLICT (content): Merge conflict in drivers/staging/iio/gyro/Makefile
CONFLICT (content): Merge conflict in drivers/usb/musb/musb_core.c
CONFLICT (content): Merge conflict in drivers/video/Kconfig
CONFLICT (content): Merge conflict in drivers/video/omap2/displays/panel-ortus-com37h3m05dtc.c
CONFLICT (content): Merge conflict in include/media/ov9655.h
CONFLICT (content): Merge conflict in sound/soc/omap/Makefile
CONFLICT (content): Merge conflict in sound/soc/omap/gta04-audio.c

So it will be some hours of work, but appears doable.

And the git log shows some "Merge branch 'for-linus'" dated e.g. Sat Jun 29 10:31:15 2013.
This means it is indeed a 3.10: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?id=refs/tags/v3.10.1

Maybe we should finally merge the 3.10.1 patches as well. The only one that appears to be really important is:
cpufreq: Fix cpufreq regression after suspend/resume
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=c02527487f0c8feb578c0394ad481a97f26d3bd2

I.e. the result will be just some weeks behind 'for-next'. A very important fix may be the "UBIFS: fix a horrid bug" patch...

So let me find some time (before end of the year) to do the real merge...

Many thanks for the git help,
Nikolaus

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.goldelico.com/pipermail/gta04-owner/attachments/20130720/2e4a55d4/attachment-0001.html>


More information about the Gta04-owner mailing list