[WIP][MOD] Possible fix for high speed SD Card compatibility? - Xperia Play Android Development

EDIT: There may still be a way to fix this, but the driver I thought we needed to fix is not actually used by this phone, so this post is largely speculative at this point. I did contact Qualcomm to see if they could be of any assistance, but they refused to help. It'll take someone with far more knowledge of memory controller drivers than I to decipher a possible fix for this problem. In the mean time, I've gone to a Samsung class 10 microSD and the problem has gone away. For now I would just recommend avoiding Sandisk Mobile Ultra Class 10 UHS-1 cards on the Xperia Play.
First off, I need to point out that I will need help from someone with the means to compile code in order to test out this patch. Its an extremely quick fix\edit so if you have the means to help, please read on!
I started a thread here four days ago asking if anyone had any ideas about the crippling errors I was getting with my 32Gb Sandisk UHS-1 microSD. It seems to be the general consensus that this phone does not work properly with many high speed (class 10) cards, presumably because of their inferior read speeds. Well, if you read on in that thread you'll see that when compared to a Class 4 card my class 10 UHS-1 card is only slightly slower in random 4k read speeds, nearly identical in sequential reads and several times faster in random writes (which should be very important for running apps and for swap). So, crippling errors should not occur simply due to differences in speed. I've also tested the card extensively on my computer and it works flawlessly and passes every test\scan with no errors. Yet, this is what I see at random during heavy reading\writing operations in dmesg when I use it on my r800x:
Code:
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180500, nr 2, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180500
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180501, nr 1, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180501
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [WARNING] mmcblk0: retrying using single block read
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180494, nr 8, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180494
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180495, nr 7, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180495
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180496, nr 6, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180496
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180497, nr 5, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180497
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180498, nr 4, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180498
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180499, nr 3, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180499
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180500, nr 2, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180500
10/18/2012 13:58:50 [ERROR] mmc1: DMA channel flushed (0x80000004)
10/18/2012 13:58:50 [INFORMATION] mmc1: Controller has been reset
10/18/2012 13:58:50 [INFORMATION] mmc1: Worked around bug 1535304
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending status comand
10/18/2012 13:58:50 [ERROR] mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
10/18/2012 13:58:50 [ERROR] mmcblk0: error -5 transferring data, sector 180501, nr 1, card status 0x0
10/18/2012 13:58:50 [ERROR] end_request: I/O error, dev mmcblk0, sector 180501
10/18/2012 13:58:50 [WARNING] mmc1: Starting deferred resume
10/18/2012 13:58:50 [WARNING] mmc1: Deferred resume completed
Long story short... after much digging around online, I've found that this error is common in most devices that use a certain TI OMAP memory controller and the driver "omap_hsmmc.c". It is related to a timing error with high speed cards that occurs when the driver performs a check to determine the best "DTO" (data timeout) for the card and for some reason settles on a DTO that is not optimal for the card. A recommendation straight from Texas Instruments was to simply have the driver skip this process by telling it to use a DTO of 14 (or 0xe), which is what nearly all other memory card controllers do.
This is where I need some help though. I don't have a programming environment on my computer, and I'm running Windows. Oh, and I have NO experience compiling linux kernel driver code and would rather have it done properly. If someone with experience in this area could implement the fix into a patch or driver update of some sort, I would be willing to test it since I've been able to reproduce this problem time and time again over the last couple of weeks. All it involves is adding a single line into an existing driver, or removing a bit of of the buggy code if you want to be more efficient.
First option to fix it, see first post:
http://talk.maemo.org/showthread.php?t=72789
Second option to fix it more efficiently, without having the driver run the calculation at all, see last post:
http://maemo.org/community/maemo-users/n900_microsd_card_i-o_errors_and_corruption/
I would lean toward the second one, because it removes the offending checks completely, rather than making the system run them anyway and then just override the result. If you check the default DTO value in the opam_hsmmc.c driver in the Xperia Play kernel, it is already 0xe, which is the recommended value of 14. So, simply removing the buggy DTO calculation (as shown in the second link) should work fine, as it apparently has for others.
I'm having great difficulty finding the source code to many of the kernels I've used (broken links, or none provided) but the driver is in doomkernel's source and the fix looks like it should work the same for us without anything else getting broken. I've looked around several of the kernel sources posted on DooMLord's github, and all of them seem to use the same exact version of this file including the original kernel sources from Sony, so unless some newer kernels include a modified driver of their own, a fixed driver should theoretically work on any Xperia Play kernel.
With the recent introduction of the UHS (Ultra High Speed) SD card standard, we're starting to see lots of high speed class 10 cards that are actually meant for use in tablets and phones, so this problem is likely to be more prevalent as more people get their hands on them. My 32Gb card was only $24 and is one of the fastest cards you can buy aside from the most recent ones that are in the $60-$100 range (which would likely not be fully utilized in any current mobile device). If we can get these working properly on the Xperia Play, we'll be saving people a lot of headaches.
If you aren't convinced that this is a viable solution, here are some more discussions and alternative solutions:
http://openpandora.org/pipermail/firmware-dev/2011-May/000138.html
http://www.sakoman.com/cgi-bin/gitw...ff;h=34bbeca50fcc618b43428ad65a1f62fc39fbb1dd

hmmm very interesting stuff
i have a a 64gb class 10 card myself
and would love to use it to its full potential

crispyduckling said:
hmmm very interesting stuff
i have a a 64gb class 10 card myself
and would love to use it to its full potential
Click to expand...
Click to collapse
If you aren't having any problems currently then this most likely wouldn't be of any use to you. Some cards have errors, others don't. If you are having moments of severe lag and strange data\app related problems (sd card apps showing as "not installed" at random is a dead give away) then you should check a program like OSMonitor to see if the dmesg log is reporting mmc errors. Alternatively, you can just run dmesg from terminal emulator (I can't remember the specific switches to use to view this way though)
This is definitely a case of "if it ain't broke, don't fix it" though. If you aren't having any problems, be glad your SD card is compatible with the omap mmc driver's goofy settings and don't worry about changing anything unless you're concerned about compatibility with a wide range of cards later on. There could be a performance penalty with this tweak... I really don't know.
If I can't find anyone to help out with this soon, I'm going to have to try to look into doing this myself... but honestly, it could take quite some time for me to be able to do this since I don't even know where to start. Android is the closest thing to Linux that I've ever used and it seems rather difficult to find any help online for people new to these things.

Well, after a bit more research, it looks like this driver actually does not apply to our phones. Its in the kernel source, simply because the source contains drivers for everything under the sun, not just this phone.
I thought it was odd that there would be a Ti OMAP controller on a Qualcomm MSM SoC.
This fix could still point us in the right direction however...
Does anyone know what MMC controller our phones use, or more specifically, what drivers it uses?

Okay, I've found the actual drivers for our device, and they do have "datatimeout" functions in them as well... sadly, it seems to be totally different than the OMAP driver, so I'm not sure how to modify the files, or if that is even what needs to be done.
https://github.com/DooMLoRD/Xperia-.../play-cdma/kernel/drivers/mmc/host/msm_sdcc.c
https://github.com/DooMLoRD/Xperia-.../play-cdma/kernel/drivers/mmc/host/msm_sdcc.h
I have emailed Qualcomm, in hopes that they will offer similar support to what TI offered for this problem with OMAP devices.

For those interested, I received a reply back from Qualcomm and this was their response:
Thank you Joseph for your interest in Qualcomm products. Any information other than that listed on our web site is considered confidential and subject to appropriate agreements with Qualcomm.
Since your question is specific to a product you purchased from a source other than Qualcomm, may we recommend you follow-up with the vendor from whom you purchased your Sony Ericsson Xperia Play r800x and seek their feedback on your technical questions. We hope this direction helps.
Thank you for your inquiry,
Qualcomm Mobile & Computing
Click to expand...
Click to collapse
Not exactly a community-focused response, but I didn't really expect them to want to help.
I decided that I would just return my Sandisk card to Amazon and buy a Samsung class 10 32Gb MicroSD, since they are similar in speed (fast reads and writes) but others have apparently had success using them on Xperias. They were on sale the other day so I actually got it for a dollar less than the Sandisk card I returned. I'm in the process of moving to a different ROM (going back to GB) but you can bet that I will thoroughly test this card before saying it works properly on my phone.

Well, I haven't had any problems with my new Samsung Class 10 MicroSD and I've been using it extensively for several days. There are no mmc errors in dmesg at all.
So, I guess if Qualcomm isn't willing to help us fix compatibility problems, we just have to avoid them. I'm just glad that there are some high speed cards available that work on this phone. It seemed like a huge step backward to go to a class 2 or class 4 card with such a large capacity.
Anyway, thanks to 216Monster's comment in this thread about his Samsung cards working fine, I've got my phone up and running beautifully with a ton of very quick storage available.

How can I make changes to the unpacked Xperia ramdisk? I can't find such file...
Sent from my R800i using xda premium

olokos said:
How can I make changes to the unpacked Xperia ramdisk? I can't find such file...
Sent from my R800i using xda premium
Click to expand...
Click to collapse
Please see the note at the top of the first post. There is currently nothing to fix for these phones.

So its broken and I'm unable to fix it, right?
Sent from my R800i using xda premium

olokos said:
So its broken and I'm unable to fix it, right?
Sent from my R800i using xda premium
Click to expand...
Click to collapse
If you're referring to the compatibility problem that this topic was started for, it doesn't seem there is a fix.
I see you mentioned something about a ramdisk in your previous post though, which has nothing to do with the problems mentioned in this thread. In that case, I don't really know anything about that.

Related

[Q] Mounting 2nd SD Card Partition

So I have a 32gb SD card and formatted it into a primary 5gb FAT partition that will be used for usb mass storage mode, and a second ext4 partition which I intend to store google music caches onto aswell as the camera DCIM folder (through mounts/symlinks), however I can't get the ext4 partition to mount in a writable state. Using the latest version of Neutrino ROM, so I don't think ext4 is the problem (haven't tested with ext3 yet).
tried:
mount -w /dev/block/mmcblk1p2 /sdcard/sd-ext4
and it mounts (can see the lost+found dir), but it is only readable.
however, when I do
mount -w /dev/block/mmcblk1p1 /sdcard/sd-ext4
it mounts the first partition on the SD card in read/write mode just fine.
Anyone know what I'm doing wrong?
Don't use -w, try -orw instead. Also check the output of dmesg right after you mount or maybe right after you try a write operation, there might be something useful there.
ravilov said:
Don't use -w, try -orw instead. Also check the output of dmesg right after you mount or maybe right after you try a write operation, there might be something useful there.
Click to expand...
Click to collapse
Tried that, still no luck. Nothing blatently obvious to point to a problem (that I can see), asides from a couple buffer overflows.
This is console output of dmesg before and after mounting
Code:
$ export PATH=/data/local/bin:$PATH
$ su
# busybox dmesg | tail -f
<6>[ 136.137609] usb_ether_get_stats
<6>[ 138.597649] usb_ether_get_stats
<6>[ 138.598851] usb_ether_get_stats
<4>[ 138.851818]
<4>[ 138.851822] nvmap_open: pid=3998
<4>[ 140.687584] nvmap_open: pid=1949
<3>[ 144.027654] init: untracked pid 4246 exited
<3>[ 145.635534] evdev: event6-1787: buffer overflow
<6>[ 169.390446] kxtf9_irq_work_func: status=0x4
<3>[ 176.685803] evdev: event6-1787: buffer overflow
# mount -orw /dev/block/mmcblk1p2 /sdcard/sd-ext4
# busybox dmesg | tail -f
<4>[ 140.687584] nvmap_open: pid=1949
<3>[ 144.027654] init: untracked pid 4246 exited
<3>[ 145.635534] evdev: event6-1787: buffer overflow
<6>[ 169.390446] kxtf9_irq_work_func: status=0x4
<3>[ 176.685803] evdev: event6-1787: buffer overflow
<6>[ 198.451536] usb_ether_get_stats
<3>[ 214.295793] evdev: event6-1787: buffer overflow
<4>[ 252.753904]
<4>[ 252.753908] nvmap_open: pid=2750
<6>[ 258.848399] usb_ether_get_stats
And this was after trying to create a file
Code:
# busybox dmesg | tail -20
<6>[ 138.597649] usb_ether_get_stats
<6>[ 138.598851] usb_ether_get_stats
<4>[ 138.851818]
<4>[ 138.851822] nvmap_open: pid=3998
<4>[ 140.687584] nvmap_open: pid=1949
<3>[ 144.027654] init: untracked pid 4246 exited
<3>[ 145.635534] evdev: event6-1787: buffer overflow
<6>[ 169.390446] kxtf9_irq_work_func: status=0x4
<3>[ 176.685803] evdev: event6-1787: buffer overflow
<6>[ 198.451536] usb_ether_get_stats
<3>[ 214.295793] evdev: event6-1787: buffer overflow
<4>[ 252.753904]
<4>[ 252.753908] nvmap_open: pid=2750
<6>[ 258.848399] usb_ether_get_stats
<3>[ 264.185782] evdev: event6-1787: buffer overflow
<6>[ 286.976907] lm3532_button_brightness_set: button-backlight, 0x3f (63)
<6>[ 286.978071] lm3532_brightness_set: lcd-backlight, 0x3c(60), webtop=0
<6>[ 286.995619] lm3532_brightness_set: lcd-backlight, 0x39(57), webtop=0
<6>[ 287.015674] lm3532_brightness_set: lcd-backlight, 0x36(54), webtop=0
<6>[ 287.035543] lm3532_brightness_set: lcd-backlight, 0x33(51), webtop=0
Edit: I had done a clean boot before I tried all that too, here is the dmesg output from boot up to just past that point (I don't have 10 posts yet so can't hotlink) pastebin com/5PbQ6UBf
Solved the problem by changing permissions on the folder

[Q] Devlog partition corrupt - can be removed?

Hi all,
a friends Desire X took an unfortunate swim in a washing machine. Since then, it will hang with a black screen with backlight on about four times a week, mostly when it isn't actively used. /proc/last_kmsg contains:
Code:
[ 5105.131426] C0 mmc0: Deferred resume completed
[ 5110.136727] C0 mmc0: Starting deferred resume
[ 5120.175589] C0 mmc0: CMD5: Request timeout
[ 5120.175777] C0 mmc0: SDCC PWR is ON
[ 5120.176006] C0 mmc0: SDCC clks are ON, MCLK rate=144000
[ 5120.176322] C0 mmc0: SDCC irq is enabled
[ 5120.176497] C0 ===== SDCC-CORE: Register Dumps @phys_base=0xa0600000, @virt_base=0xcf824000 =====
[ 5120.176821] C0 Reg=0x00: 0x00000001, 0x00009100, 0x00010000, 0x00000c45
[ 5120.177142] C0 Reg=0x10: 0x00000005, 0x00001500, 0x0f5903ff, 0xffffffe7
[ 5120.177326] C0 Reg=0x20: 0x8a4040e2, 0x039396a0, 0x00001000, 0x00022008
[ 5120.177646] C0 Reg=0x30: 0x00000000, 0x00000400, 0x00000000, 0x008001ff
[ 5120.177826] C0 Reg=0x40: 0x00000000, 0x00000000, 0x00000000, 0x00000000
[ 5120.178146] C0 Reg=0x50: 0x00000000, 0x00000000, 0x00000000, 0x00000000
[ 5120.178466] C0 Reg=0x60: 0x00000000, 0x00000000, 0x00000000, 0x00000000
[ 5120.178649] C0 mmc0: got_dataend=0, prog_enable=1, wait_for_auto_prog_done=0, got_auto_prog_done=0, req_tout_ms=10000
[ 5120.178981] C0 mmc0: RPM: runtime_status=0, usage_count=1, is_suspended=0, disable_depth=0, runtime_error=0, request_pending=0, request=0
[ 5120.179422] C0 mmc0: Controller has been reinitialized
[ 5121.371397] C0 mmc0: Deferred resume Fail
[ 5121.372651] C0 mmc0: DMA channel flushed (0x80000004)
[ 5121.372836] C0 Flush data: 0000c003 11720000 00000000 00400040 003f003d 00008003
[ 5121.373254] C0 mmc0: Controller has been reinitialized
[ 5121.380404] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.386454] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.392637] C0 mmcblk0: error -110 sending status command, aborting
[ 5121.392831] C0 end_request: I/O error, dev mmcblk0, sector 5253328
[ 5121.393159] C0 Buffer I/O error on device mmcblk0p28, logical block 5402
[ 5121.393369] C0 EXT4-fs warning (device mmcblk0p28): ext4_end_bio:258: I/O error writing to inode 19 (offset 368640 size 4096 starting block 656667)
[ 5121.393879] C0 JBD2: Detected IO errors while flushing file data on mmcblk0p28-8
[ 5121.395007] C0 mmc0: DMA channel flushed (0x80000004)
[ 5121.395331] C0 Flush data: 0000c003 11720000 00000000 00400040 003f003d 00008003
[ 5121.395602] C0 mmc0: Controller has been reinitialized
[ 5121.402749] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.408804] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.414984] C0 mmcblk0: error -110 sending status command, aborting
[ 5121.415177] C0 end_request: I/O error, dev mmcblk0, sector 5218184
[ 5121.415514] C0 end_request: I/O error, dev mmcblk0, sector 5218192
[ 5121.415992] C0 Aborting journal on device mmcblk0p28-8.
[ 5121.416417] C0 EXT4-fs error (device mmcblk0p28) in ext4_reserve_inode_write:5645: Journal has aborted
[ 5121.418139] C0 mmc0: DMA channel flushed (0x80000004)
[ 5121.418334] C0 Flush data: 0000c003 11720000 00000000 00400040 003f003d 00008003
[ 5121.418767] C0 mmc0: Controller has been reinitialized
[ 5121.425804] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.431986] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.438059] C0 mmcblk0: error -110 sending status command, aborting
[ 5121.438246] C0 end_request: I/O error, dev mmcblk0, sector 5210960
[ 5121.438571] C0 Buffer I/O error on device mmcblk0p28, logical block 106
[ 5121.438751] C0 lost page write due to I/O error on mmcblk0p28
[ 5121.439099] C0 JBD2: I/O error detected when updating journal superblock for mmcblk0p28-8.
[ 5121.440251] C0 mmc0: DMA channel flushed (0x80000004)
[ 5121.440571] C0 Flush data: 0000c003 11720000 00000000 00400040 003f003d 00008003
[ 5121.440989] C0 mmc0: Controller has been reinitialized
[ 5121.447992] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.454177] C0 mmcblk0: error -110 sending status command, retrying
[ 5121.460227] C0 mmcblk0: error -110 sending status command, aborting
[ 5121.460551] C0 end_request: I/O error, dev mmcblk0, sector 5210112
[ 5121.460734] C0 Buffer I/O error on device mmcblk0p28, logical block 0
[ 5121.461052] C0 lost page write due to I/O error on mmcblk0p28
[ 5121.461262] C0 EXT4-fs (mmcblk0p28): Remounting filesystem read-only
[ 5121.461581] C0 ext4_e2fsck
[ 5121.465612] C0 ext4_reboot: reboot to run e2fsck
[ 5121.465796] C0 Take CPU down - Begin
[ 5121.466106] C0 Take CPU down - End
[ 5121.467227] C0 [BATT][tps65200] TPS65200 shutdown
[ 5121.473664] C0 Restarting system with command 'oem-22'.
[ 5121.473859] C0 [K] msm_pm_restart: restart_reason 0x6f656d22, cmd oem-22
[ 5121.474474] C0 [K] @@@@@@@@@@@ msm_proc_comm end
[ 5121.474659] C0 [K] from msm_pm_restart
[ 5122.621554] C0 [RMT] rmt_storage_event_write_iovec_cb: write iovec callback received
[ 5122.622382] C0 [RMT] handle = 1
[ 5122.622822] C0 [RMT] sec_addr = 0, data_addr = 300000, num_sec = 6143
[ 5122.623612] C0 [RMT] sec_addr = 6143, data_addr = 5ffe00, num_sec = 1
[ 5122.624066] C0 [RMT] iovec transfer count = 2
[ 5122.624089] C0
[ 5122.625316] C0 [RMT] rmt_storage_ioctl: ioctl cmd -2140093951 return value 0
[ 5122.626584] C0 [RMT] rmt_storage_ioctl: wait for request ioctl
[ 5122.640087] C0 [RMT] handle_rmt_storage_call: Sending result=0x0
[ 5122.839952] C0 mmc0: DMA channel flushed (0x80000004)
[ 5122.840149] C0 Flush data: 0000c003 11720000 00000000 00400040 003f003d 00008003
[ 5122.840561] C0 mmc0: Controller has been reinitialized
[ 5122.848189] C0 mmcblk0: error -110 sending status command, retrying
[ 5122.854384] C0 mmcblk0: error -110 sending status command, retrying
[ 5122.860802] C0 mmcblk0: error -110 sending status command, aborting
[ 5122.861214] C0 end_request: I/O error, dev mmcblk0, sector 131073
[ 5122.861404] C0 Buffer I/O error on device mmcblk0p13, logical block 0
[ 5122.861724] C0 lost page write due to I/O error on mmcblk0p13
[ 5122.861972] C0 end_request: I/O error, dev mmcblk0, sector 131081
So it seems it gets an I/O error while writing to /dev/mmcblk0p28, which is devlog, AFAICT the internal logfile HTC uses for service requests. It then wants to reboot but crashes during reboot because the eMMC isn't responding at all anymore.
Now my question: Would it be possible to remove the devlog mount? I haven't tried yet since this might lead to a bootloop, and I wanted to ask here for experiences first. Any hints greatly appreciated, also maybe other approaches than removing devlog?

Random reboots caused by SD card I/O problems

My phone keeps randomly restarting for the last three months with ROM Slimbean 0.1 flashed. Usually the phone restarts, when the display is off, but sometimes it restarts out of blue.
After getting the kmsg log, found out, that it might be related with the SD card. The SD card itself is ok, verified with scandisk & the socket seems to be ok, as it always properly mounts after reboot.
Code:
[ 2230.608158] C0 mmc0: Controller has been reinitialized
[ 2230.615133] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.621089] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.627128] C0 mmcblk0: error -110 sending status command, aborting
[ 2230.627249] C0 end_request: I/O error, dev mmcblk0, sector 5250040
[ 2230.627456] C0 Buffer I/O error on device mmcblk0p28, logical block 4991
[ 2230.627593] C0 EXT4-fs warning (device mmcblk0p28): ext4_end_bio:258: I/O error writing to inode 30 (offset 258048 size 4096 starting block 656256)
[ 2230.628796] C0 mmc0: DMA channel flushed (0x80000004)
[ 2230.628909] C0 Flush data: 0000c003 11620000 00000000 00400040 003f003d 00008003
[ 2230.629176] C0 mmc0: Controller has been reinitialized
[ 2230.636071] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.642109] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.648058] C0 mmcblk0: error -110 sending status command, aborting
[ 2230.648266] C0 end_request: I/O error, dev mmcblk0, sector 5214360
[ 2230.648383] C0 end_request: I/O error, dev mmcblk0, sector 5214368
[ 2230.648621] C0 Aborting journal on device mmcblk0p28-8.
[ 2230.648794] C0 EXT4-fs error (device mmcblk0p28) in ext4_reserve_inode_write:5645: Journal has aborted
[ 2230.649924] C0 mmc0: DMA channel flushed (0x80000004)
[ 2230.650123] C0 Flush data: 0000c003 11620000 00000000 00400040 00400040 00000003
[ 2230.650321] C0 mmc0: Controller has been reinitialized
[ 2230.657301] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.663256] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.669294] C0 mmcblk0: error -110 sending status command, aborting
[ 2230.669411] C0 end_request: I/O error, dev mmcblk0, sector 728920
[ 2230.670531] C0 mmc0: DMA channel flushed (0x80000004)
[ 2230.670646] C0 Flush data: 0000c003 11620000 00000000 00400040 003f003d 00008003
[ 2230.670919] C0 mmc0: Controller has been reinitialized
[ 2230.677891] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.683848] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.689886] C0 mmcblk0: error -110 sending status command, aborting
[ 2230.689999] C0 end_request: I/O error, dev mmcblk0, sector 5210960
[ 2230.690199] C0 Buffer I/O error on device mmcblk0p28, logical block 106
[ 2230.690309] C0 lost page write due to I/O error on mmcblk0p28
[ 2230.690571] C0 JBD2: I/O error detected when updating journal superblock for mmcblk0p28-8.
[ 2230.692661] C0 mmc0: DMA channel flushed (0x80000004)
[ 2230.692886] C0 Flush data: 0000c003 11620000 00000000 00400040 003f003d 00008003
[ 2230.693361] C0 mmc0: Controller has been reinitialized
[ 2230.700399] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.706699] C0 mmcblk0: error -110 sending status command, retrying
[ 2230.712823] C0 mmcblk0: error -110 sending status command, aborting
[ 2230.713211] C0 end_request: I/O error, dev mmcblk0, sector 5210112
[ 2230.713431] C0 Buffer I/O error on device mmcblk0p28, logical block 0
[ 2230.713811] C0 lost page write due to I/O error on mmcblk0p28
[ 2230.714074] C0 EXT4-fs (mmcblk0p28): Remounting filesystem read-only
[ 2230.714454] C0 ext4_e2fsck
[ 2230.715753] C0 mmc0: DMA channel flushed (0x80000004)
[ 2230.716143] C0 Flush data: 0000c003 11620000 00000000 00400040 003f003d 00008003
[ 2230.716459] C0 mmc0: Controller has been reinitialized
[ 2230.720488] C0 ext4_reboot: reboot to run e2fsck
[ 2230.720704] C0 Take CPU down - Begin
[ 2230.720914] C0 Take CPU down - End
[ 2230.722351] C0 [BATT][tps65200] TPS65200 shutdown
[ 2230.722848] C0 journal commit I/O error
[ 2230.724989] C0 Restarting system with command 'oem-22'.
I have Link2sd installed, most of my apps are linked to the second partition of the SD card.
Ist it always the same sector?
As an sd-card is extremely cheap, I would replace it to try it.
With scandisk you mean the crappy windows tool?
David.

Chinese MSM8916 Device, "Could not mount system partition" Error in TWRP

Could not mount system partition.
Hi All,
I need some help, I'm building my own TWRP for my own device. It's a Chinese custom phone running msm8916, 1GO Ram and 8Go of storage.
My TWRP boots fine, adb shell prompt me a nice root shell, I have no error in dmesg or recovery logs
yet when SuperSu or I try to mount the system partition as RW it doesn't work. It's always mounted as RO (I use plain mount command to check)
I tried a lots of command including
Code:
#mount -o remount,rw -t ext4 /dev/block/bootdevice/by-name/system /system
#mount -o remount,rw /system
Click to expand...
Click to collapse
I don't have the kernel source code and use a prebuilt kernel extracted from the bootimage.
You can find my code here : github com/supercairos/android_device_doro_hero
If you have any idea why this is happening I would be very glad!
Best,
R.
When looking a dmesg it outputs :
<6>[ 14.757619] EXT4-fs (mmcblk0p22): mounted filesystem with ordered data mod
e. Opts: (null)
<7>[ 14.757638] SELinux: initialized (dev mmcblk0p22, type ext4), uses xattr
<3>[ 16.049825] mmc0: sdhci_cmd_irq: AUTO CMD err sts 0x00000002
<3>[ 16.049946] mmcblk0: timed out sending r/w cmd command, card status 0x400d
00
<3>[ 16.049951] mmcblk0: command error, retrying timeout
<3>[ 21.069858] mmc0: sdhci_cmd_irq: AUTO CMD err sts 0x00000002
<3>[ 21.069916] mmcblk0: timed out sending r/w cmd command, card status 0x400d
00
<3>[ 21.069921] mmcblk0: command error, retrying timeout
<3>[ 21.070127] mmc0: cache flush timeout
<3>[ 21.070153] mmc0: mmc_interrupt_hpi() failed (-22)
<3>[ 21.070158] mmcblk0: mmc_blk_issue_flush: restart mmc card
<3>[ 21.097327] mmcblk0: mmc_blk_issue_flush: notify flush error to upper laye
rs<3>[ 21.097337] end_request: I/O error, dev mmcblk0, sector 407568
<3>[ 21.097356] Aborting journal on device mmcblk0p22-8.
<3>[ 21.107997] mmc0: sdhci_cmd_irq: AUTO CMD err sts 0x00000002
<3>[ 21.108062] mmcblk0: timed out sending r/w cmd command, card status 0x400d
00
<3>[ 21.108067] mmcblk0: command error, retrying timeout
<2>[ 21.108167] EXT4-fs error (device mmcblk0p22): __ext4_journal_start_sb:62:
Detected aborted journal
<2>[ 21.108175] EXT4-fs (mmcblk0p22): Remounting filesystem read-only
<3>[ 21.108228] mmc0: sdhci_cmd_irq: AUTO CMD err sts 0x00000002
<3>[ 21.108295] mmcblk0: timed out sending r/w cmd command, card status 0x400d
00
<3>[ 21.108300] mmcblk0: command error, retrying timeout
<3>[ 31.138023] mmc0:cache disable operation timeout
<3>[ 31.138059] mmc0: mmc_interrupt_hpi() failed (-22)
<3>[ 31.138074] mmc0: mmc_host_runtime_suspend: suspend host failed: -110
<3>[ 34.268118] mmc0: sdhci_cmd_irq: AUTO CMD err sts 0x00000002
<3>[ 34.268201] mmcblk0: timed out sending r/w cmd command, card status 0x400d
00
<3>[ 34.268207] mmcblk0: command error, retrying timeout
Click to expand...
Click to collapse

Problem audio tablet intel

Hi i have problem with sound card no detect.
In Windows:
-Realtek is2 audio codec
ACPI\VEN_10EC&DEV_5640
ACPI\10EC5640
*10EC5640
-Intel SST Audio Device (WDM)
ACPI\VEN_8086&DEV_0F28&SUBSYS_80867270
ACPI\80860F28
*80860F28
Dmesg:
<3>[ 10.261439] baytrail-pcm-audio baytrail-pcm-audio: ipc: error DSP boot timeout
<3>[ 10.304390] byt-rt5640 byt-rt5640: ASoC: CPU DAI baytrail-pcm-audio not registered
<3>[ 10.337832] genirq: Flags mismatch irq 8. 00000083 (volume_down) vs. 00000000 (rtc0)
<3>[ 10.337842] gpio-keys gpio-keys.0.auto: Unable to claim irq 8; error -16
<4>[ 10.337867] gpio-keys: probe of gpio-keys.0.auto failed with error -16
<6>[ 10.338046] input: gpio-keys as /devices/platform/gpio-keys.1.auto/input/input6
<3>[ 10.338344] byt-rt5640 byt-rt5640: ASoC: CPU DAI baytrail-pcm-audio not registered

Categories

Resources