[HOWTO]Fix TX's inverted screen caused by cross-flashing(PERMANENT)

Search This thread

updateing

Senior Member
Aug 25, 2012
489
1,141
Wuhan
Google Pixel C
sorry for the wrong png. but i updated the screenshot just check it
It seems that your debugfs is already mounted and Android system is running.Are you using my kernel?The kernel can't boot any system.But only this kernel contains the data required for recovering the screen.If you use others,it just won't work.

After you use Flashtool-Fastboot mode to flash my kernel,click on "Reboot via fastboot".
RIGHT after you click Reboot, starting watching over your phone IMMEDIATELY.
When the phone lights up the purple/amber LED,hit Vol+ key to enter Recovery.Then adb shell and do the rest(mkdir...).
If you can't get into Recovery,please post here what you have seen on the computer and the phone.

Finally,after you have entered Recovery in my kernel,there are some errors in your command.The filename is "break_nvm" ,not" break _nvm"(no space).So it is with "recover_nvm".

All in all,you have to be using my kernel to try this.DO NOT try it on other kernels!After you successfully restored you screen,you can use any kernel you like.
 

romeoofair

Senior Member
Aug 20, 2013
277
53
visakhapatnam
It seems that your debugfs is already mounted and Android system is running.Are you using my kernel?The kernel can't boot any system.But only this kernel contains the data required for recovering the screen.If you use others,it just won't work.

After you use Flashtool-Fastboot mode to flash my kernel,click on "Reboot via fastboot".
RIGHT after you click Reboot, starting watching over your phone IMMEDIATELY.
When the phone lights up the purple/amber LED,hit Vol+ key to enter Recovery.Then adb shell and do the rest(mkdir...).
If you can't get into Recovery,please post here what you have seen on the computer and the phone.

Finally,after you have entered Recovery in my kernel,there are some errors in your command.The filename is "break_nvm" ,not" break _nvm"(no space).So it is with "recover_nvm".

All in all,you have to be using my kernel to try this.DO NOT try it on other kernels!After you successfully restored you screen,you can use any kernel you like.

well bro the thing is if i press vol up kep with i see purple/amber LED then its entering twrp and its not detecting in adb. so i pressed vol button when i see blue light. and entered cwm recovery. then its recognizing. that above screenshot is when i am in cwm recovery(blue led_)
 

updateing

Senior Member
Aug 25, 2012
489
1,141
Wuhan
Google Pixel C
well bro the thing is if i press vol up kep with i see purple/amber LED then its entering twrp and its not detecting in adb. so i pressed vol button when i see blue light. and entered cwm recovery. then its recognizing. that above screenshot is when i am in cwm recovery(blue led_)
Ok,that should be the CWM installed in your system.As long as you are on my kernel,you can try the commands.Now the only problem is the spacebar.Have you removed them?
 
  • Like
Reactions: romeoofair

romeoofair

Senior Member
Aug 20, 2013
277
53
visakhapatnam

mfk13

Member
Oct 7, 2013
17
1
help

hi,
Please Help me, please :(
What should I do?



C:\Users\MFK\adb>adb shell
shell@android:/ $ su
su
root@android:/ # dmesg | grep panel
dmesg | grep panel
<6>[ 0.946131] default panel: mipi_no_id_panel
<6>[ 0.946375] setting pdata->panel_info.fb_num to 3. type: 8
<6>[ 0.995177] mdp_probe: panel_detect function
<6>[ 1.052372] mipi_renesas_r63306 mipi_renesas_r63306.0: found panel vendor:
mipi_no_id_panel
<4>[ 1.111246] mipi_renesas_r63306 mipi_renesas_r63306.0: cannot detect panel
!
<3>[ 1.464855] msm_fb_detect_panel: comparing name=hdmi_msm with mipi_video_r
enesas_fwvga
<6>[ 1.466595] setting pdata->panel_info.fb_num to 1. type: 7
<6>[ 1.467785] mdp_probe: panel_detect function
<6>[ 1.467999] mdp_probe: no panel_detect function
<6>[ 1.472058] setting pdata->panel_info.fb_num to 1. type: 10
<6>[ 1.473920] mdp_probe: panel_detect function
<6>[ 1.474164] mdp_probe: no panel_detect function
root@android:/ #

1.jpg
 

romeoofair

Senior Member
Aug 20, 2013
277
53
visakhapatnam
hi,
Please Help me, please :(
What should I do?



C:\Users\MFK\adb>adb shell
shell@android:/ $ su
su
root@android:/ # dmesg | grep panel
dmesg | grep panel
<6>[ 0.946131] default panel: mipi_no_id_panel
<6>[ 0.946375] setting pdata->panel_info.fb_num to 3. type: 8
<6>[ 0.995177] mdp_probe: panel_detect function
<6>[ 1.052372] mipi_renesas_r63306 mipi_renesas_r63306.0: found panel vendor:
mipi_no_id_panel
<4>[ 1.111246] mipi_renesas_r63306 mipi_renesas_r63306.0: cannot detect panel
!
<3>[ 1.464855] msm_fb_detect_panel: comparing name=hdmi_msm with mipi_video_r
enesas_fwvga
<6>[ 1.466595] setting pdata->panel_info.fb_num to 1. type: 7
<6>[ 1.467785] mdp_probe: panel_detect function
<6>[ 1.467999] mdp_probe: no panel_detect function
<6>[ 1.472058] setting pdata->panel_info.fb_num to 1. type: 10
<6>[ 1.473920] mdp_probe: panel_detect function
<6>[ 1.474164] mdp_probe: no panel_detect function
root@android:/ #

View attachment 2527638

type adb devices and check whether its showing any devices in the list. for me it showed in cmw recovery (blue light) not in amber light (twrp)

---------- Post added at 05:02 PM ---------- Previous post was at 05:02 PM ----------

Yes you can.Because debugfs was already auto-mounted,the mount command failed.

bro you r great i finally tried it today and it worked
 
  • Like
Reactions: mfk13

mfk13

Member
Oct 7, 2013
17
1
type adb devices and check whether its showing any devices in the list. for me it showed in cmw recovery (blue light) not in amber light (twrp)

---------- Post added at 05:02 PM ---------- Previous post was at 05:02 PM ----------



bro you r great i finally tried it today and it worked

Thanks for the reply
Now what should I do?

3.jpg

4.jpg
 
Last edited:

mfk13

Member
Oct 7, 2013
17
1
Are you using my kernel?If so,maybe you have a Model B Screen and this method is not capable of recovering your screen.Sorry.If not,give my kernel a try ;)

hi,
I tried your method but unfortunately it did not work.(by kernel c_rtest.elf)

11.jpg

My screen type is C. With respect to:
/d/msm_fb/mipi_r63306/panels ===> Text Editor :

Supported display panels:
DSI
panel [0]=mipi_video_tmd_wxga_mdw30_id_old_struct
DSI panel [1]=mipi_video_tmd_wxga_mdw30_id_1a
DSI panel [2]=mipi_video_tmd_wxga_mdw30_id_1c
DSI panel [3]=mipi_video_tmd_wxga_mdw30_id_1e
DSI panel [4]=mipi_video_tmd_wxga_mdw30

How do I install MDW30 driver or MDX80 driver ? (Please Help me, please :()

22.jpg
 

updateing

Senior Member
Aug 25, 2012
489
1,141
Wuhan
Google Pixel C
hi,
I tried your method but unfortunately it did not work.(by kernel c_rtest.elf)

View attachment 2533893

My screen type is C. With respect to:
/d/msm_fb/mipi_r63306/panels ===> Text Editor :

Supported display panels:
DSI
panel [0]=mipi_video_tmd_wxga_mdw30_id_old_struct
DSI panel [1]=mipi_video_tmd_wxga_mdw30_id_1a
DSI panel [2]=mipi_video_tmd_wxga_mdw30_id_1c
DSI panel [3]=mipi_video_tmd_wxga_mdw30_id_1e
DSI panel [4]=mipi_video_tmd_wxga_mdw30

How do I install MDW30 driver or MDX80 driver ? (Please Help me, please :()

View attachment 2533894

Did this "no_id_panel" message appear before you tried my method or after that?If you use my kernel (at Step4 in OP,before recover_nvm)and see this "no_id_panel",maybe you shouldn't have tried that.And if you get "no_id_panel" before recover_nvm,the modified driver for MDW30 won't be loaded,and break_nvm & recover_nvm won't work.

The file /d/msm_fb/mipi_r63306/panels shows the panels supported by Renasas R63306 controller driver in the kernel,not your current panel/screen model.
 
Last edited:
  • Like
Reactions: mfk13

mfk13

Member
Oct 7, 2013
17
1
Did this "no_id_panel" message appear before you tried my method or after that?If you use my kernel (at Step4 in OP,before recover_nvm)and see this "no_id_panel",maybe you shouldn't have tried that.And if you get "no_id_panel" before recover_nvm,the modified driver for MDW30 won't be loaded,and break_nvm & recover_nvm won't work.

The file /d/msm_fb/mipi_r63306/panels shows the panels supported by Renasas R63306 controller driver in the kernel,not your current panel/screen model.

bro thanks for the reply,
According to the text: {How to find out my TX touch firmware/screen type?
Go into the 'Service' menu. Choose 'Service info' and 'Software info'. Only applicable to ICS firmware. In Jelly Bean firmware, this info is no longer available.
It is still possible to find out the screen type, by looking at the screen under a bright light or sunlight. If you can see grid of lines or circuit on the screen, then it is 'a'/'c' No Air Gap type. If no, then it is 'b' OptiContrast type.}

So my screen type is C.

I think this (no_id_panel)message appeared before your method.
 

updateing

Senior Member
Aug 25, 2012
489
1,141
Wuhan
Google Pixel C
bro thanks for the reply,
According to the text: {How to find out my TX touch firmware/screen type?
Go into the 'Service' menu. Choose 'Service info' and 'Software info'. Only applicable to ICS firmware. In Jelly Bean firmware, this info is no longer available.
It is still possible to find out the screen type, by looking at the screen under a bright light or sunlight. If you can see grid of lines or circuit on the screen, then it is 'a'/'c' No Air Gap type. If no, then it is 'b' OptiContrast type.}

So my screen type is C.

I think this (no_id_panel)message appeared before your method.

That's a weird problem...sorry I may not be able to help you in this way...:crying:
 

HTxperia

Member
Apr 14, 2012
19
0
Hello
When try it has become a gray screen
The phone works and receives calls. But I do not see anything
Everything is gray please help me
 

Top Liked Posts

  • There are no posts matching your filters.
  • 19
    OK finally there is a permanent solution for this problem.But this method is still under test.I will not be responsible for anything damaged.You choose whether to try it.

    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
    Code:
    dmesg | grep "panel"
    5.Check if the response contains the string "mdx80"
    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
    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)
    -----If you see "mkdir failed: d already exists",just skip the "mkdir d" and "mount" commands(first 2 lines) and go on.
    8.Flash the ROM you want to use IMMEDIATELY after the screen starts to work. Just don't stick with this experimental kernel.

    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:
    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.

    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:
    Code:
    echo 1 > /sys/devices/platform/mipi_dsi.524288/eco_mode
    echo 0 > /sys/devices/platform/mipi_dsi.524288/eco_mode
    Don't forget about the space after 1 or 0 !

    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...


    Added v2:Changed cabc_user_param to MDW30's

    =======================================================

    If you use my work,please give proper credits.Thanks!
    3
    Good job! Nice to see you here.I will make a stock kernel with this fix when I get time
    1
    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...

    bro i evn cross flahed xperia t 4.3 rom with kernel and got inverted screen. even in recovery . got the problem when i flahed t kernel infact. so can you please tell me where to replace the file exactly. i dont understant the above dir. i tried manually searching for the file with root explorer but dint find it
    1
    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 :/

    You may share your method with other T owners and work together to solve the problem. I don't own a T so I cannot support this.