[Galaxy Ace II Android Development] ace2nutzer:
Dunno why... maybe there was something like overriding .. u know ? so that SMD freq was also used for SHARP.

Anyway check this:

I've compiled the kernel with this freqs in board-codina-mcde:

#define PRCMU_DPI_CLK_SHARP_FREQ	36305454 /* Stock: 30720000 */
#define PRCMU_DPI_CLK_SMD_FREQ	[B]79872000[/B] /* Stock: 49920000 */

Without overriding from lcd_clk interface.. and the phone works normally .. i didn't face any unusual behaviour with the screen. (S6D !)

that means the bootloader detect the lcd type and set automatically the right freq...

OR

till the right LCD type is detected, the LCD Freq is just STOCK programmed in the CHIP .. (not kernel) ... !

Why i think this ??

U can it even making working without any defined LCD freqs for both LCD's ... !

It'll work with hardware defaults ... in my case it was 30,7Mhz ... so that's right what board-codina-mcde.c said..

But that also means: without any defined freq the LCD will simply use the lowest available freq .. ---> fail-safe ?? OR it uses really as i said the freqs programmed in the chip.

Well how i found this out? and how it really works ??

Here example for S6D:

in first state it works with hardware defaults. (50Mhz WS and 30,7Mhz for S6D)

later it'll use FREQ defined from board-codina-mcde IF it's different from hardware default ...:

in my case yes.. because i use 36Mhz:

https://github.com/ace2nutzer/Samsu...1/arch/arm/mach-ux500/board-codina-mcde.c#L41

and then it'll use the default freq from lcd_clk sysfs interface IF there is defined an freq:

in my case NOPE:

https://github.com/ace2nutzer/Samsung_STE_Kernel/blob/3.0.101/drivers/video/mcde/mcde_hw.c#L1211

then NT-APP LCD freq choice by user or even from init.d script .. :)

Now how it works:

every time when u waking up the screen from suspend.. then it'll EVERY TIME "rebasing" the LCD freq at the freq what is defined in board-codina-mcde ... and then after 200msc ?? it'll set again the user freq or just the default freq form here:

https://github.com/ace2nutzer/Samsung_STE_Kernel/blob/3.0.101/drivers/video/mcde/mcde_hw.c#L1211

btw: i was wrong.. about this rebasing "bug" it's a feature (again :D)

because after removing this lines from mcde_hw.c:

if (port->type == MCDE_PORTTYPE_DPI) {
if (lcdclk_usr != 0) {
pr_err("[MCDE] Rebasing LCDCLK...\n");
schedule_work(&lcdclk_work);
}

if (port->phy.dpi.lcd_freq != clk_round_rate(chnl->clk_dpi,
port->phy.dpi.lcd_freq))
dev_warn(&mcde_dev->dev, "Could not set lcd freq"
" to %d\n", port->phy.dpi.lcd_freq);

WARN_ON_ONCE(clk_set_rate(chnl->clk_dpi,
port->phy.dpi.lcd_freq));
pr_err("[MCDE] rebased LCDCLK to %d Hz\n", port->phy.dpi.lcd_freq);

WARN_ON_ONCE(clk_enable(chnl->clk_dpi));
}

and still keeping 36Mhz for SHARP in board-codina-mcde .. and after checking lcd freq from sysfs file it showed me 30Mhz :D

AND one more nice side effect: after setting in NT-APP so let say 36Mhz ... then this freq stay all the time active .. without changing again to the default freq from board-codina-mcde when waking up the phone and then back again to user freq !!!

AND even IF there is something wrong with the "rebasing" LCD freq of too high freq so that it cause blackscreen .. but then the right freq is set, then the LCD will work normaly again.. without reboot, and without putting the screen off and on .. (tested and works ---> 57Mhz for s6d ;) --> bs .. then over ADB set 36Mhz ---> works again :) )

As u can see, everything is correct , and it works properly . .there is no issue so far for what i can suspect: okay that can cause BS Bug !

Anyway maybe this can help for some s6d LCD'S with this BS Bug ?? Dunno, so someone can give a try and report here.

More questions ? ;)