Thread (7 messages) flat view 7 messages, 4 authors, 2012-08-24

[RFC][PATCH] Disintegrate sharpsl_param.c

From: Marko Katić <hidden>
Date: 2012-08-24 12:56:05

On Fri, Aug 24, 2012 at 2:53 PM, Marko Kati? [off-list ref] wrote:
On Fri, Aug 24, 2012 at 1:25 PM, Cyril Hrubis [off-list ref] wrote:
quoted
Hi!
quoted
quoted
quoted
I recently tried running 3.6-rc2 kernel on my Sharp Zaurus C-1000.
It
hanged almost immediately after uncompressing the kernel. I tracked
the
problem down to a single line in arch/arm/common/sharpsl_param.c:

memcpy(&sharpsl_param, (void *)PARAM_BASE, sizeof(struct
sharpsl_param_info));

Commenting out the line makes the kernel boot just fine. This left
me
wondering whether sharpsl_param.c is actually needed. Here's a
comment
from sharpsl_param.c that describes what sharpsl_param.c actually
does:
Sharp went to the trouble of saving these values into the hardware and
passing them into the drivers. They're basically used by the LCD
initialisation code from what I remember. I don't remember what the
risks are of incorrect values.
We were seeing strange flicker on LCD on some machines...? Particulary
metan's machine with wifi on did that. OTOH it looked like some kind
of DMA issue.
Yes, the problems with my LCD are DMA related (too much DMA to wifi cf
card
causes timing issues on display refresh). When there is no network
activity
it's okay.

And as far as I remeber there are some magic values needed for the LCD in
order
not to have distorted picture (blurred, etc.) There is a callibration
program
in the service menu that allows you to modify the values stored in the
flash.

I remeber Stanislav did some research on that (CCing).

--
metan
As i said, this patch is not valid since i wrote it under false
assumptions. My tests were wrong, sharpsl_save_param() works as it
should in all kernels before 3.3-rc1.

3.3-rc1 breaks sharpsl_save_param() with this commit:

[72662e01088394577be4a3f14da94cf87bea2591] ARM: head.S: only include
__turn_mmu_on in the initial identity mapping

I already have a patch ready for 3.6-rc3 that fixes this (confirmed
working on my akita), i just need to test it on a SA1100 machine
before commiting.

As for your lcd/dma problems, the arbiter control register might help.
There's a paragraph in the pxa270 dev manual that says that the lcd
controller should have top priority when large lcd displays are used.
Try setting ARB_CNTRL in your machine init code so the lcd controller
has top priority or lower the dma controller priority.

Actually i've written a nice sysfs interface for the arbiter bus
register a while ago and i can't find the patch...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help