finally it worked thanks for helping me guys
OK finally there is a permanent solution for this problem.But this method is still under test.I will not be responsible for anything damanged.You choose whether to try it.
Then you should have working screen on your TX~You can enjoy the leaked 4.3 now~
========================================================
WHY IT WORKS
As the old post said,we can gather correct register data from a normal screen and write back to the problem ones.Here is the data I collected:
http://xdaforums.com/showthread.php?t=2607323
Thanks Sakilia,you are our phone's lifesaver!
And I did a comparison between the dumped data and my own,finding that only a few registers were changed.I checked the interfaces provided by the screen driver and found several ways to write the differences to screen.I tried them all but only one way,which is like the previous corruption process,really worked.
After the data was written into the screen,everything looks nice except the color(what a mess!).It was caused by the incomplete data dump.However,after reading something about register operation,I found that hex commands in MDW30 driver and MDX80 driver were just the in the same format (register number + data)and there are several registers used to store color correction data.So in no time did I find the missing parts and wrote them into my screen.Finally the screen works as before!
Old post:
========================================================
This morning I wanted to find a zImage that could boot 9.2.A.0.278 LT30p leaked firmware on my LT29i.Among the zImages I have,there is one extracted from LT30p CM10.2.But I didn't remember it and flashed it on my phone.Then the terrible "inverted screen" came...
After ~5hrs researching,I found that after cross-flashing,the panel was recognized as MDX80 instead of the correct MDW30_1e.
Maybe RECOVER_PANEL config caused this...The 30p kernel found there was a panel but it couldn't recognize it,so the kernel thought the panel was corrupt and executed the recovering process,after which our MDW30 was overwritten with MDX80 register data.But MDX80 driver fails to initialize the panel with commands required by MDW30 so the panel displays thing upside down...
I think that now that it loads MDX80 driver,why can't we add MDW30 init commands to the MDX80 driver?And there comes the key!
I just copied init_cmds and on_cmds from mdw30.c and replaced the ones in mdx80.c.It works!
And here is my work:
There are some "unused" warnings in the file,but it does finish the compiling and work.
That should do with "Touch Firmware version C" devices.:victory:
As for the color correction:
Don't forget about the space after 1 or 0 !Code:echo 1 > /sys/devices/platform/mipi_dsi.524288/eco_mode echo 0 > /sys/devices/platform/mipi_dsi.524288/eco_mode
A little bug:screen gamma correction andECO MODE aren't working properly.The color is a bit different from stock kernel.
There is another way:dump the correct register values from a normal TX and write our own NV Recover data using CONFIG_FB_MSM_RECOVER_PANEL.
But I don't know how to dump data.Anyone can help?So that we won't have to re-compile the kernel every time we flash a new firmware...
Added v2:Changed cabc_user_param to MDW30's
=======================================================
If you use my work,please give proper credits.Thanks!
u0_a183@android:/ $ su
root@android:/ # dmesg|grep panel
<6>[ 1.195666] default panel: mipi_no_id_panel
<6>[ 1.195910] setting pdata->panel_info.fb_num to 3. type: 8
<6>[ 1.244346] mdp_probe: panel_detect function
<6>[ 1.322417] mipi_renesas_r63306 mipi_renesas_r63306.0: found panel vendor: mipi_tmd_panel
<6>[ 1.381321] mipi_renesas_r63306 mipi_renesas_r63306.0: found panel: mipi_video_tmd_wxga_mdx80
<3>[ 1.729345] msm_fb_detect_panel: comparing name=hdmi_msm with mipi_video_renesas_fwvga
<6>[ 1.731084] setting pdata->panel_info.fb_num to 1. type: 7
<6>[ 1.732122] mdp_probe: panel_detect function
<6>[ 1.732519] mdp_probe: no panel_detect function
<6>[ 1.736395] setting pdata->panel_info.fb_num to 1. type: 10
<6>[ 1.738409] mdp_probe: panel_detect function
<6>[ 1.738654] mdp_probe: no panel_detect function
root@android:/ #
Nice i am on 4.3 now!!!! Woooooot! Updateing your the man!!! thank you very much!
I don't know how to describe it...you can find some comparsion between the screens in General Forum.
The kernel is not for booting a system.It's only for recovering the screen.Just enter recovery mode to do that.
And adb not recognizing is a weird problem...Did you check your drivers in Device Manager?
Nice i am on 4.3 now!!!! Woooooot! Updateing your the man!!! thank you very much!
After flashing this kernel,you need to reboot,and when amber light comes you should press Vol+ to enter Recovery.And then you should have ADB access.its recognizing when my phone is on without the kernel installed., after i flash it with flash tool and it is in fastboot mode.its not showing when i give the command adb devices
---------- Post added at 07:44 PM ---------- Previous post was at 07:41 PM ----------
but if i flash 4.3 its again inverted becasue visk will be replaced
After flashing this kernel,you need to reboot,and when amber light comes you should press Vol+ to enter Recovery.And then you should have ADB access.
bro it recognized the device but the prob is its saying dmesg is not recog as internal or external command.,when i tried that command with terminal emulater i got the above log
The kernel giving by updateing has recovery on it.. Go inside
---------- Post added at 10:45 PM ---------- Previous post was at 10:44 PM ----------
type adb shell first
dude you went too far, just do the adb shell and input the codes
I don't know how to describe it...you can find some comparsion between the screens in General Forum.
The kernel is not for booting a system.It's only for recovering the screen.Just enter recovery mode to do that.
And adb not recognizing is a weird problem...Did you check your drivers in Device Manager?
1.Download the kernel(c_rtest.elf) and unzip & flash it. We don't need to boot the whole system so no special Android system is required.
2.When the amber light shows up, press Vol+ or Vol- to enter Recovery.
3.Open a terminal and launch "adb shell" on your computer.
4.Type in adb shell
5.Check if the response contains the string "mdx80"Code:dmesg | grep "panel"
6.------If there is no such text,please post the response here , stop immediately,and flash back to previous kernel.(but if you find ACX... in the response,please do not post.That's Screen type B and I don't own such a device. Sorry...)
------If there is "mdx80",just go ahead.
7.Type
-----If you see "mkdir failed: d already exists",just skip the "mkdir d" and "mount" commands(first 2 lines) and go on.Code:mkdir d mount -t debugfs none /d cd /d/msm_fb/mipi_r63306 echo 1 > break_nvm (The screen will go blank.That's normal.Don't be stressed.) echo 1 > recover_nvm (The screen should be working now)
8.Flash the ROM you want to use IMMEDIATELY after the screen starts to work. Just don't stick with this experimental kernel.
1.Download the attached MDX80 driver.
2.Make a backup of (kernel root dir)/drivers/video/msm/mipi_r63306_panels/mipi_tmd_mdx80.c
3.Extract the zip file to drivers/video/msm/mipi_r63306_panels/ and overwrite the original mdx80.c.
4.Modify your kernel config CONFIG_FB_MSM_MIPI_R63306_PANEL_TMD_MDX80=y
5.Compile the kernel and pack it with ramdisk.Then just flash it.
echo 1 > /sys/devices/platform/mipi_dsi.524288/eco_mode
echo 0 > /sys/devices/platform/mipi_dsi.524288/eco_mode
This morning I wanted to find a zImage that could boot 9.2.A.0.278 LT30p leaked firmware on my LT29i.Among the zImages I have,there is one extracted from LT30p CM10.2.But I didn't remember it and flashed it on my phone.Then the terrible "inverted screen" came...
After ~5hrs researching,I found that after cross-flashing,the panel was recognized as MDX80 instead of the correct MDW30_1e.
Maybe RECOVER_PANEL config caused this...The 30p kernel found there was a panel but it couldn't recognize it,so the kernel thought the panel was corrupt and executed the recovering process,after which our MDW30 was overwritten with MDX80 register data.But MDX80 driver fails to initialize the panel with commands required by MDW30 so the panel displays thing upside down...
I think that now that it loads MDX80 driver,why can't we add MDW30 init commands to the MDX80 driver?And there comes the key!
I just copied init_cmds and on_cmds from mdw30.c and replaced the ones in mdx80.c.It works!
And here is my work:
That should do with "Touch Firmware version C" devices.:victory:
A little bug:screen gamma correction and ECO MODE aren't working properly.The color is a bit different from stock kernel.
There is another way:dump the correct register values from a normal TX and write our own NV Recover data using CONFIG_FB_MSM_RECOVER_PANEL.
But I don't know how to dump data.Anyone can help?So that we won't have to re-compile the kernel every time we flash a new firmware...
ok is there any way to fix the camera problem?? i used a method and it was not inverted any more however the camera dont focus :/