View Single Post
Old 07-01-2015, 10:40 PM   #29
fastrobot
Connoisseur
fastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to beholdfastrobot is a marvel to behold
 
Posts: 53
Karma: 11844
Join Date: Jun 2014
Location: All over the place...
Device: KOBO AuraHD and GLO
Quote:
Originally Posted by frostschutz View Post
@fastrobot: sorry, it seems I inadvertently abducted your thread, I was referring to my own program earlier (which I wrote because your fbswitch inspired me to do so)
Oh, I see.


Quote:
It's odd, I thought my workaround worked, but it actually stops working after a reboot.

If you write to /sys/class/graphics/fb0/rotate, the value you write is flipped.

And then the PUT/GET_VINFO syscalls flip too!

But if you never wrote to /sys/class/graphics/fb0/rotate at least once, PUT/GET_VINFO doesn't flip!

Huuuh?

Now how to hunt for the rotate flippery flag that's hidden somewhere in the bowels of this ... module ... thing.
It would be nice if was compiled as a module... but it's actually absorbed into the kernel monolithic-ally. Only a handful of items appear to be actually compiled as a replace-able module... *sigh*.

The generic framebuffer control stuff is going to be the same in all kernels, because the processor itself has the eink controller built in. So - Since I already know that the generic framebuffer skeleton is in the linux kernel at eg: linux-2.6.35.3/drivers/video/imxfb.c -- that means the individual framebuffers driver programs are going to be in a subdirectory of that file; I think you are going to want the file called: linux-2.6.35.3/drivers/video/mxc/mxc_epdc_fb.c

if you cat /sys/class/graphics/fb0/name
Does it say mxc_epdc_fb ?
If so -- that names the file you want.

There are flags for rotation, and additional flags for flipping (mirroring). So there is a possibility of initializing the display incosistently. For two mirrors may be the same as a rotation...

If you're having trouble with boot inconsistencies, often just reading all the variables and then writing them back exactly the same as read will force initialization to be sane; Or else, just choose a state -- and initialize all variables in the framebuffer to always be in a specific state before nickel boots to guarantee the frame-buffer is in a sane state to begin with. There's no guarantee that Kobo initializes all the variables in the framebuffer, unless you can read their code and check. I been assuming they do initialize the screen, but after all the other inconsistencies ... maybe it is a bad assumption.

Last edited by fastrobot; 07-01-2015 at 10:42 PM.
fastrobot is offline   Reply With Quote