Bug 12535 - White Flash - pre "Free you music" screen
: White Flash - pre "Free you music" screen
Status: RESOLVED FIXED
Product: SB Radio
Classification: Unclassified
Component: OS/Bootloader
: Include FW version in comment
: All Other
: P2 major (vote)
: MP
Assigned To: Maurice Alou
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-25 16:21 UTC by ndijulio
Modified: 2009-09-08 09:28 UTC (History)
4 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ndijulio 2009-06-25 16:21:45 UTC
Is this a known issue and I am late to the game?
Comment 1 Chris Owens 2009-07-07 10:15:04 UTC
This bug has been identified as one that may not be required for MPQ since it now seems clear that MPQ and MP firmwares will be different.  Please comment if you disagree with this assessment.  Thanks!
Comment 2 Richard Titmuss 2009-07-21 05:44:51 UTC
I don't see a flash before "free your music" any more, but there is one before the logi logo.

Fixed in baby-mp r6706. This moves the backlight init after the framebuffer init. I also found it was necessary to add a 200ms delay after the spi configuration of the framebuffer. Caleb, why's that?
Comment 3 Caleb Crome 2009-07-21 07:07:36 UTC
The init isn't happening in threads, is it?   I could imagine 200 me to unit the device but 200 me after unit seems pretty long for the display to start going.

There is a charge pump in the display itself.  Maybe it takes that long to stabilize. 

Maybe Maurice knows the answer.
Comment 4 Maurice Alou 2009-07-21 13:28:49 UTC
The LCD probably requires a running VSYNC, HSYNC and LSCLK running in order to properly sequence the various charge pumps.

Here are the steps i would do for power on:
- turn off backlight if not already done
- initialize imx25 LCD i/f
- initialize LCD
- wait a few VSYNC period (to be determined)
- turn on backlight
Comment 5 Richard Titmuss 2009-07-21 16:08:21 UTC
I think that's basically what's happening. If the display is initialized before the mx25 interface it does not seem to work. But a 200ms delay seems long?
Comment 6 Maurice Alou 2009-07-21 18:53:52 UTC
200ms doesn't seem unreasonable.

I found in Fig 6.3.1, page 153 of https://svn.slimdevices.com/repos/player/trunk/hardware/babyboom/docs/datasheets/display/Novatech%20NT39116%20V0.8.pdf : "wait for more than 120ms after power control command".
Comment 7 Richard Titmuss 2009-07-27 01:09:42 UTC
Reset priority before triage.
Comment 8 Chris Owens 2009-07-27 09:45:28 UTC
Richard asks why there even needs to be a 200ms delay, Maurice?
Comment 9 Maurice Alou 2009-07-27 11:28:59 UTC
After power on reset, the LCD is in sleep-in mode. The doc mentions an internal self test procedure that lasts 120ms when transitioning from sleep-in mode to sleep-out mode; see chapter 5.14.2.
In short, after issuing the sleep-out command, the imx25 should wait 120ms before sending any other command. Ideally, the imx25 should check if bit 6 of RDDSDR has been inverted by the self test after the 120ms period.

It should be noted that a non initialized matrix apprears white and this is probably the flash we are seeing.

Richard, can you verify that we are not communicating with LCD for 120ms after sending sleep-out command?
Comment 10 Maurice Alou 2009-07-29 10:23:15 UTC
Hi Richard,

I don't consider this issue as P1 and I am assigning the bug back to you. Feel free to close it or return it to me if you consider something is not right.
Comment 11 Richard Titmuss 2009-07-30 03:32:24 UTC
We are waiting 120ms after taking the display out of sleep mode before sending any other commands, see baby_lcd_spi_sequence in mx25_baby_gpio.c. An addition 200ms delay is needed after the DISPON to remove the white flash.
Comment 12 Maurice Alou 2009-07-30 15:02:44 UTC
it looks like the initialization sequence from wintek is not appropriate. Instead of this:
- SLPOUT (start the various charge pumps)
- wait 120ms (wait for the charge pumps to reach their target voltage)
- set all the registers (change the target volatge of the charge pumps!!!)
- wait extra 200ms (wait again for the charge pumps to reach their new target)
- turn on backlight


we should have that:
- set all the registers (set the target voltages once for all)
- SLPOUT (turn on the charge pumps)
- wait 120ms (or whatever value is apropriate to make sure the various charge pumps have reached their value; we need at least a 30% safety margin to accomodate the tolerance of the capacitors used inside the panel)
- turn on the backlight

Caleb and i did some experiment and with 120ms we can still see something flashy on the screen. The flashiness is completely gone at 200ms.

Caleb is checking in the fix.
Comment 13 Caleb Crome 2009-07-30 15:45:32 UTC
Fixed in r6854.  Moved SLPOUT and DISPON to the end of the init sequence.