IRC log of #cubox of Tue 01 Sep 2015. All times are in CEST < Back to index

11:44 mk01_ jnettlet: want to ask you for advice.
11:44 jnettlet mk01_, sure
11:45 mk01_ jnettlet: there are two trees of xbmc with a common starting point, but diverged (mine with mostly imx6 extra code, then popcornmix with mostly RBP extra code)
11:46 mk01_ the question is, whether there is a way how to maintain ONE tree from all this
11:47 mk01_ popcornmix is rebasing, I wasn't big fan of this, but started the same
11:49 mk01_ maybe it would work in such process - mine tree (cleaned up from extra popcorn code) -> rebase to upstream xbmc, then take this and rebase on top of popcorns
11:49 jnettlet are they mostly standalone patchsets, or are you patching on top of their work?
11:49 mk01_ by definition they are standalone
11:49 mk01_ but unfortunately they overlap
11:50 mk01_ (sometimes)
11:50 mk01_ so with each update - I go through the same process over and over
11:50 mk01_ fixing rebasing conflicts
11:51 jnettlet if they are rebasing constantly then that is going to usually be a problem.
11:52 mk01_ I know, unfortunately he has got this bad habit .. .. doing rebase on everything already. xbmc, kernel.
11:52 mk01_ kernel is not that bad as our extra patch set to RPI kernel is small
11:53 jnettlet probably the best way to ease the pain is to manaage your branch on top of upstream xbmc. Then for each popcorn release that is rebased create a new branch. Use git to dump the differences between upstream and the popcorn mix into a patch series and then apply that on top of your baseline branch.
11:53 mk01_ btw: the xbmc tree basically - one could say the changes we do to RBP could be without conflict applied ON TOP of his head
11:53 jnettlet then if popcorn mix posts updates and hasn't rebased you should be able to merge them
11:56 mk01_ jnettlet: applying his series is that what is making the most conflicts. for instance the EGL code, if I apply our changes to it before his code is applied , almost each commit from his branch changing those files is conflict as it expects the base be upstream/Isengard in this case
11:56 mk01_ I was only reading the man pages
11:56 mk01_ but
11:57 mk01_ isn't "rebase -i --onto popcorn/isengard upstream/isengard" meant do deal with that ?
11:57 jnettlet well you can do it the other way then, dumping your changes as a patchset and applying them
11:57 mk01_ (if I understood it correctly)
11:58 jnettlet mk01_, it is but the diff algorithm that git uses to patch with is very conservative and will fail merges that patch can handle just fine.
11:58 mk01_ ok
11:58 jnettlet of course you can tell git to be a bit more sloppy than the default but patch seems to handle these things better.
11:59 mk01_ if I want to nicely keep all the "documentation" around (meaning proper change sets headers), can I use git am ?
11:59 mk01_ ((to reuse the patch series?))
11:59 jnettlet so if you git am the patchset you can keep the commits intact and then when it fails it dumps the .diff file in the same location so you can usually just patch -p1 < /path/to/patch then re-add everything and git am --resolve it
12:00 mk01_ ok
12:00 mk01_ so
12:00 jnettlet it isn't pretty, but I have found it most manageable.
12:00 mk01_ basically I need to keep extra tree (our changes against upstream, right ? )
12:01 jnettlet yes
12:01 mk01_ ok
12:01 jnettlet or your patches against the last "head" which can be from popcornmix
12:02 jnettlet you just need two branches with and without your patches applied so you can diff against them
12:02 mk01_ right ... ok thanks, I will try that approach
12:03 jnettlet good luck
12:19 mk01_ and vanilla. but trying to reuse older chnages is just like opening a pandora box.
13:11 mk01_ jnettlet: I rebased once again mine tree on top of popcorn's , now git log popcorn/xxx..HEAD should give me the diff I need to keep (and always put own commit into it), yes ?
13:12 jnettlet hopefully
13:13 mk01_ strictly at the level of pure theory
13:13 mk01_ if
13:14 mk01_ popcorns updates and rebase it's tree
13:14 mk01_ if I checkout -b from it's new HEAD
13:14 mk01_ then I do merge of the tree I just created
13:15 mk01_ it should basically take the ones which git log popcorn/xxx..HEAD would output .. ?
13:15 jnettlet it may work. I always try it and if it is too messy then go the patch/git am method
13:16 mk01_ ok, but how you get this patch set ? you simply keep export from last time extra ?
13:17 jnettlet oh I have a stupid perl script that uses git log and then rebuilds the patchset in reverse order. One sec.
13:17 jnettlet sorry it is bash, and ugly but works.
13:18 mk01_ doesn't matter.
13:18 mk01_ give it to me
13:18 mk01_ :)
13:18 mk01_ please
13:19 mk01_ I promise last boring question for today - can git keep something like just the diffs ? so there would be no base.
13:19 mk01_ so I could store the popcorn/xxx..HEAD
13:19 mk01_ and then just format-patch --stdout export it
13:19 mk01_ and reuse
13:19 mk01_ ?
13:20 jnettlet well that is kind of what this does.
13:20 jnettlet http://pastebin.com/2pQfDZza
13:21 jnettlet This is my backporting one, so you see it adds the Upstream-commit: tag. You can just comment that out.
13:23 mk01_ ok
13:24 mk01_ GB is in my case popcornmix/blah_blah ,,, BB is branch which is the "output" the one I normally use ((which I now rebased on top of pop/blah_blah)), right ?
13:25 mk01_ GITPATH is simply filter for path ?
13:25 jnettlet yeah, BB is where you will apply the patches to, GB is where to get them from.
13:25 jnettlet yeah
13:25 jnettlet so leave it blank for everything
13:26 jnettlet but sometimes if I just want a driver this will pull that out. You can't use git diff or git patch because it only shows you the changes for that file, or directory.
13:26 jnettlet so you can lose includes etc.
13:27 mk01_ yes, this I realised some time ago
13:28 jnettlet this script keeps that intact because it pulls things out by commit
13:29 mk01_ NICE !
13:29 mk01_ (just tried it)
13:32 mk01_ ok - summary it up: each round of new tree preparation - I run this script, fetch --force popcorn and reset --hard to it, I checkout new from it, can try just merge from previous "final" tree, if fail I will run git am on that exported folder
13:32 mk01_ ?
13:52 jnettlet sounds good. I would always keep the last good branch with everything merged around just in case. Just because you are doing a force fetch.
13:53 jnettlet it is nice to always have that reference
17:01 mk01_ Jnettlet:
17:01 mk01_ when we have fb0 and fb1
17:03 mk01_ ALL ioctls are routed (managing) configured IPU. so for powering gfx completely down, we have to blank both fb0 and fb1 as well? or does their mutual configuration affect this ? (fb1 overlaying fb0?)
17:07 mk01_ but basically I want to ask if we should take care of this always for both or not in kodi
17:40 jnettlet mk01_, just the main framebuffer object.
17:41 mk01_ ok
17:54 jnettlet mk01_, can you send your mxc_hdmi.c change as a pull request?
17:55 mk01_ yes
18:05 mk01_ jnettlet: just realised the whole time I was running the booting test (UHS story) it was running on kernel with revert of your revert of "mmc: core: Extend mmc_delay in mmc_power_cycle for UHS transition"
18:05 mk01_ (everything as your HEAD)
18:05 mk01_ ...everything else...
18:05 jnettlet right you had that patch re-applied
18:06 jnettlet that is how I understood it
18:06 mk01_ ah ok, so I told you
18:06 mk01_ forgot about that
18:06 jnettlet yeah. but that is my conundrum.
18:06 jnettlet that patch fixes your problem, but breaks another card.
18:06 jnettlet also Sandisk
18:07 jnettlet which is why I had to think about it some more.
18:07 jnettlet maybe it should mmc_delay(2)
18:07 mk01_ :) ok
18:07 jnettlet if that works for everyone that would scare me
18:07 mk01_ I can try that average
18:07 mk01_ right away
18:40 mk01_ jnettlet: with 2ms I get back the "never left busy state" and -110 error. But card is inited properly, there are no RD errors and voltage/speed is fine.
18:41 jnettlet mk01_, okay leave it at 3 then and I will test with the other problem case
18:52 vpeter mk01_: Which type of sd card is this?
18:53 vpeter I read that regulator-enable-ramp-delay=<50000>; to regulator could help.
18:54 mk01_ it is also SanDisk
18:56 mk01_ Jnettlet: looks like this one is not just that easy like changing this sleep(). I changed 2 -> 3 (so back) and tried already 5 reboots, still getting -110 error and "never left busy"
18:56 mk01_ it looks like the short sleep put something to "some" state
18:56 jnettlet vpeter, our regulator isn't really a regulator per se, but more a reset. the 3.3V is always supplied to VDD, but we added the gpio control to cut power to reset the SDHC card when the 1.8V transition fails
18:57 jnettlet mk01_, you have to pull the card
18:57 vpeter I see. Just trying to help :) Seems unsuccessfuly
18:57 mk01_ ok
18:57 jnettlet it is a firmware thing that takes a full power down reset
18:57 jnettlet vpeter, no worries. I will always take the suggestion.
18:58 jnettlet but basically UHS support for mmc seems to be layer upon layer of black magic and voodoo.
18:59 jnettlet a long time ago rmk did a series of patches and we reviewed them based strictly verbatim to the "standard" It basically broke just about every card
19:00 jnettlet since all these cards basically run their own OS with their own ARM chip anything can be happening behind the curtains
19:10 vpeter So the safest would be to cut power to the card at boot.
19:18 jnettlet vpeter, well a POR already does that
19:19 jnettlet and linux on shutdown will do that as well. but you have to be careful. We found when using the GPIO as a regulator for vmmc that linux will shut off the regulator on shutdown, but then it releases fast enough that it will also crash some cards.
19:19 jnettlet which is why I moved it over to be a reset instead.
19:20 jnettlet my guess as with most things this off spec and magically broken the firmware of the cards is written to work with however Microsoft has interpreted the spec
19:20 jnettlet and we are basically throwing darts trying to figure out a best fit.