yashsingh1/xdaforums huggingface dataset:
[Galaxy Tab 8.9 Android Development] chienline:
Update

Well, I've clean-flashed the latest build [02-05], I try receiving gsm calls, screen-off-muted is still there.

I set the screen-off : 15 secs; testing with stock earpiece.

Here I attach a logcat, similar to my previous test, it needs some time to get the gsm telephony ready to receive calls.

I've made 5 "the number you are calling is not active" which are logged.

Maybe on my test before, I've applied any of patch given by DemonGloom, I forget already :o

Now I'm using build 02-05 [dirty-flashed] over the previous build [01-25] and everything goes so well for me :good:;)
[Galaxy Tab 8.9 Android Development] chienline:
It is in settings >> Launcher >> Wallpaper quick render

But I think this is already enabled on default :)
[Galaxy Tab 8.9 Android Development] carmobileproject:
I also tryed with "Wallpaper quick render" disabled end WITHOUT wallpaper (black screen) but the lag still here.

The effect is the same, with no wallpaper or with a 1,2Mb jpeg wallpaper!!

And i ask with myself, what to render in a black screen??
[Galaxy Tab 8.9 Android Development] chienline:
Yep, you're right. What to render when you have no wallpaper at all :confused:

But as questioned by C-o-M before.. what exactly is laggy?

I'm using cyanogen wallpaper. For me sweeping left and right on homescreen, open apps drawer, home keys, recent apps,

everything is cool, no lag at all. Either with wallpaper quick render enabled or disabled.

Except rotation needs 2 to 3 seconds :)

But maybe you guys have tons of widgets for I have only one analog clock widget and shortcuts all over the rest of the screen :D
[Galaxy Tab 8.9 Android Development] Kendroid:
I want to try this ROM but I was waiting until it got a little more stable. I would like to know what features are still broken,mainly HDMI out, and does it have any problems streaming Netflix. I read the warning about returning to CM10.
[Galaxy Tab 8.9 Android Development] C-o-M:
AW: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Hdmi is still broken.
[Galaxy Tab 8.9 Android Development] upconvert:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Just checked Netflix. Looks great. The method for reverting to cm10 is not bad. It's just 5 adb commands, listed in the 2nd post.
[Galaxy Tab 8.9 Android Development] nqk:
Oh dear, I only now saw this post. Always looked out for the changes in thread title :laugh:

Thank you.
[Galaxy Tab 8.9 Android Development] DemonGloom:
What problem do we have now? Is it rotated or don't work at all?

If it doesn't work at all - should i try to find patches from Xoom? They have hdmi in 4.2

If it is rotated will next option in build.prop help us?

persist.hwc.mirroring.transform=X

where X = 0..3 / rotation angle between LCD and HDMI output.

0 - 0 degrees

1 - 90 degrees

2 - 180 degrees

3 - 270 degrees
[Galaxy Tab 8.9 Android Development] C-o-M:
It's just the rotation. But according to chienline the build.prop options doesn't help: http://xdaforums.com/showpost.php?p=36349531&postcount=146
[Galaxy Tab 8.9 Android Development] chienline:
yes I have tried this one on previous build with no luck.

I'll give it a try one more time and report back here :)

---------- Post added at 12:28 AM ---------- Previous post was at 12:03 AM ----------

I've tried 0-3, still no luck.

All have the same output 90° clockwise.

I guess this is caused by:

ro.sf.hwrotation=90

No idea how samsung overcome this issue, but they do good on stock rom
[Galaxy Tab 8.9 Android Development] DemonGloom:
Can you add two lines, not just one, please?

persist.hwc.mirroring.enabled=1
persist.hwc.mirroring.transform=1

It would be great if you also test

persist.hwc.docking.enabled=1
persist.hwc.docking.transform=1

And if you are not bored already - test each of this two variants with

media.enable-commonsource=true
persist.tegra.cinemamode=0
persist.tegra.hdmi.videoview=1

And it is excellent if you can test last three lines alone (without lines about transofmation)

I hope you want hdmi so much that you will test it :)

As i don't have hdmi adapter or dock :(
[Galaxy Tab 8.9 Android Development] chienline:
Never get bored in testing for I want it works also :D

I'll test and report back soon [after office hours] ;)
[Galaxy Tab 8.9 Android Development] nqk:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Usually I have to long press power button to wake my tab, but just now I activated the volume wake and I think it works much better than the power button in waking up the device.
[Galaxy Tab 8.9 Android Development] C-o-M:
AW: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Can you please check if it's still in deep sleep? The kernel takes some time to wake up from deep sleep. So if it's now faster, it might be because it doesn't sleep any longer.
[Galaxy Tab 8.9 Android Development] nqk:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

My bad. :(, I was happy too soon. Deep sleep is still there.
[Galaxy Tab 8.9 Android Development] C-o-M:
Why are you unhappy? Deep Sleep is good.

What I want to know is the following: enable wake up by volume keys. Install BetterBatteryStats. Reboot the tab. Let it sleep for half an hour. Look in BetterBatteryStats if it was in deep sleep in this time (CPU States, Since Boot).
[Galaxy Tab 8.9 Android Development] DemonGloom:
That's nice.. BTW, can you test video playback on hdmi also?
[Galaxy Tab 8.9 Android Development] C-o-M:
If done a quick search on the sources.

ro.sf.hwrotation=90

This property is only evaluated by the display driver and only for the main display.

persist.hwc.mirroring.enabled=1
persist.hwc.mirroring.transform=1
persist.hwc.docking.enabled=1
persist.hwc.docking.transform=1

Those properties can be found in TI sources only. Maybe they are somewhere used in the Samsung binary blobs, but I can't find them there.

media.enable-commonsource=true
persist.tegra.cinemamode=0
persist.tegra.hdmi.videoview=1

Where are those coming from? Google only finds it only once. And this is this thread... But there are properties named hdmi.videoview and cinemamode inside hwcomposer.tegra.so. Don't know if they expand like this.

Anyway. When looking into Samsung's blobs (hwcomposer.tegra.so in especial), I saw a property named nvidia.hwc.mirror_mode. If it is used as the ones above, you might to have set one of those:

persist.tegra.nvidia.hwc.mirror_mode
persist.tegra.nvidia.hwc.mirror_mode.crop
persist.tegra.nvidia.hwc.mirror_mode.scale
persist.tegra.nvidia.hwc.mirror_mode.center

We should disassemble the blobs to look whats really going on there.

And than there is an issue report that the compass is rotated as well: http://code.google.com/p/tab89cm/issues/detail?id=15 Can anyone can confirm that? And is there any other hardware component that is wrongly rotated? Then we should consider to fake the result of the orientation sensor.
[Galaxy Tab 8.9 Android Development] DemonGloom:
media.enable-commonsource=true
persist.tegra.cinemamode=0
persist.tegra.hdmi.videoview=1

Those are taken from official 4.0.4 for our tablets.

Compass works for me.

If only we could have full sources for out tablet :(

There is also "persist.tegra.nvmmlite=1" in other tablets. Looks like it is also connected with hdmi..

nvidia.hwc.mirror_mode sets mode for second display. Image will be either stretched or cropped.. But it does not change rotation :(
[Galaxy Tab 8.9 Android Development] DemonGloom:
And that's again me.. Can you also call

adb shell dumpsys SurfaceFlinger
adb shell dumpsys display

when connected to hdmi and give us that log? (You can do this with adb connection through wifi network. Turn it on at settings/developer options. Don't forget to turn it off after getteng log.)

C-o-M

Seems strange.. I've dumped my system and it says that

Display[0] : 800x1280, xdpi=169.333328, ydpi=169.333328, refresh=16595982

Nvidia HWC:
SurfaceFlinger rotation: 0

Our tablet thinks it have vertical display without rotation..
[Galaxy Tab 8.9 Android Development] C-o-M:
Yes. I don't know what Samsung did here. The only devices I ever found with such a cruel setup are p1 (the first Galaxy Tab) and our p5. But the p4 doesn't have it and this is nearly identical to ours.

It might help if we could get the dumpsys output and some logcats of a stock ICS.
[Galaxy Tab 8.9 Android Development] C-o-M:
Found the correct usage of this setting (but it's not what we are looking for):

nvidia.hwc.mirror_mode=crop
nvidia.hwc.mirror_mode=scale
nvidia.hwc.mirror_mode=center
[Galaxy Tab 8.9 Android Development] DemonGloom:
I can do it without hdmi. .Though i'm not sure if it will help - with lcd only.. Should i flash and post logs?
[Galaxy Tab 8.9 Android Development] prince93:
I have stock ICS installed now.

I want to help but I don't know, so if you can redirect me to the proper commands, I can do it.
[Galaxy Tab 8.9 Android Development] chienline:
code1:
persist.hwc.mirroring.enabled=1
persist.hwc.mirroring.transform=1

code2:
persist.hwc.docking.enabled=1
persist.hwc.docking.transform=1

code3:
media.enable-commonsource=true
persist.tegra.cinemamode=0
persist.tegra.hdmi.videoview=1

I've tested:

* code1

* code2

* code1 + code2

* code1 + code3

* code2 + code3

* code3 [cinemamode=1]

--> all settings have the same output rotated 90° clockwise

* code3 [cinemamode=0] -> playing video has no output to tv at all

still no luck :crying:
[Galaxy Tab 8.9 Android Development] DemonGloom:
Commands are

adb shell dumpsys SurfaceFlinger
adb shell dumpsys display
adb logcat -d

It is better if you do this after rebooting tablet.

If it is possible to connect Galaxy Tab to hdmi and PC at the same time - it would be great if you run these commands again.

You can redirect their output to file like

adb logcat -d >> D:\logcat.txt

That will save result on disk D: in file called "logcat.txt"
[Galaxy Tab 8.9 Android Development] chienline:
if I'm not mistaken, we can do it from terminal emulator on our tab can't we?

I'll try my best but I'm not promising the time...

This be my busy week working and also preparing for Chinese New Year :o

Doing adb stuff with pc should be at midnite where no one fight for tv and if I'm still awake :D
[Galaxy Tab 8.9 Android Development] DemonGloom:
Yes, you can do it from terminal emulator. You'll need to redirect output to /mnt/sdcard/file_name.txt then. Just be sure to save different outputs to different files :)
[Galaxy Tab 8.9 Android Development] C-o-M:
If your tab is rooted you can also use terminal emulator and type

su
dumpsys SurfaceFlinger >> /sdcard/dump.txt
dumpsys display >> /sdcard/dump.txt
logcat -d >> /sdcard/logcat.txt

Edit: too late :)
[Galaxy Tab 8.9 Android Development] prince93:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

I don't have the hdmi adapter, will it still be of any use to look at the output of the commands?
[Galaxy Tab 8.9 Android Development] DemonGloom:
Yep, that would be still useful

I'm the fastest gunner here :D

BTW, I've compiled sgt7 ROM for our tabs.. That interface is much better in my opinion.. Trying to build paranoid though..

Screenshots: http://cs3-2.4pda.to/2525533/Screen...4fffb00000000b533e147cacf775b8a0b3e7129188cd5 http://cs3-1.4pda.to/2525534/Screen...4fffb00000000f7091dfd2b2dc1d77aabd40306111700
[Galaxy Tab 8.9 Android Development] prince93:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

:D

I used terminal emulator a i never used adb before.

It says cannot find service display??

Anyway, here are the dumpsys for surfaceflinger and the logcat after a reboot

https://docs.google.com/file/d/0Bwk3IqC-YLOIV2JGLWRra0xJaUU/edit?usp=sharing

https://docs.google.com/file/d/0Bwk3IqC-YLOIbUVjek9YNklQeUE/edit?usp=sharing

Just wait a sec till i adjust who can view or recommend me a better way for sharing as i can't attach to the post through xda app
[Galaxy Tab 8.9 Android Development] DemonGloom:
Your documents are not public :(

You can use http://pastebin.com/

Can you call dumpsys and post first lines with list of services?
[Galaxy Tab 8.9 Android Development] C-o-M:
No, it's still private.

There's no display service. Strange. What's the dumpsys output of TvoutService_C?
[Galaxy Tab 8.9 Android Development] prince93:
Fixed it just now from the PC.

couldn't find how to make it public on the tab even through a browser :cyclops:

Strangely, dumpsys of tvoutservice_c and tvoutservice is blank?

may be I should connect the tab to the tv so that we can some log of the service when it starts working?
[Galaxy Tab 8.9 Android Development] DemonGloom:
Yep, here is the problem.. In this log we have:

h/w composer present and enabled
Hardware Composer state:
numHwLayers=3, flags=00000000
type | handle | hints | flags | tr | blend | format | source crop | frame name
----------+----------+----------+----------+----+-------+----------+---------------------------+--------------------------------
FB | 012277f8 | 00000001 | 00000000 | 00 | 00100 | 00000001 | [ 0, 0, 752, 1280] | [ 48, 0, 800, 1280] jackpal.androidterm/jackpal.androidterm.Term
FB | 0121d588 | 00000000 | 00000000 | 04 | 00105 | 00000001 | [ 0, 0, 1280, 679] | [ 48, 0, 727, 1280] InputMethod
FB | 0122adc0 | 00000000 | 00000000 | 04 | 00100 | 00000004 | [ 0, 0, 1280, 48] | [ 0, 0, 48, 1280] StatusBar
Nvidia HWC:
SurfaceFlinger rotation: 90
Current config (Internal):
Protected: false
Overlay 0 (phys 1 caps 3): unused
Overlay 1 (phys 2 caps 1): unused
Overlay 2 (phys 0 caps 0 blend 0x1 xform 0x0): framebuffer containing 3 layers
src (0,0,800,1280), dst (0,0,800,1280)

And in our cm10.1 log :

h/w composer state:
h/w composer present and enabled
Hardware Composer state (version 10000):
mDebugForceFakeVSync=0
Display[0] : 800x1280, xdpi=169.333328, ydpi=169.333328, refresh=16595982
numHwLayers=0, flags=00000001
type | handle | hints | flags | tr | blend | format | source crop | frame name
------------+----------+----------+----------+----+-------+----------+---------------------------+--------------------------------
Nvidia HWC:
SurfaceFlinger rotation: 0
Current config (Internal):
Protected: false
Overlay 0 (phys 1 caps 3 blend 0x0 xform 0x4): overlay layer 2 scratch 0x42067648
src (0,0,48,1280), dst (0,0,48,1280)
Overlay 1 (phys 2 caps 1 blend 0x1 xform 0x0): overlay layer 1 scratch 0x0
src (0,0,752,1280), dst (48,0,800,1280)
Overlay 2 (phys 0 caps 0 blend 0x0 xform 0x0): overlay layer 0 (cc) scratch 0x0
src (0,0,752,1280), dst (48,0,800,1280)

Overlays are nearly similar.. And rotation is 90 vs 0 :(
[Galaxy Tab 8.9 Android Development] C-o-M:
And this is for HDMI? How does it look like without HDMI? Is it then identical on stock and CM? If not, the implementation of ro.sf.hwrotation is broken.
[Galaxy Tab 8.9 Android Development] chienline:
sysdump result with hdmi connected :)

dump1.txt --> SurfaceFlinger

dump2.txt --> display
[Galaxy Tab 8.9 Android Development] DemonGloom:
That was log without hdmi.. Seems that SurfaceFlinger rotation does not depend on ro.sf.hwrotation...

After looking second log I'm extremely surprised.. HDMI display in not shown as a display at all.. Only at HWC section

Current config (HDMI):
Protected: false
Mode: 1280 x 720
Overlay 0 (phys 1 caps 3): unused
Overlay 1 (phys 2 caps 1): unused
Overlay 2 (phys 0 caps 0 blend 0x1 xform 0x0): framebuffer containing 4 layers
src (0,0,450,720), dst (415,0,865,720)

Seems that we need to force SurfaceFlinger rotation to 90 somehow..
[Galaxy Tab 8.9 Android Development] C-o-M:
Thanks a lot. I'll go back to start (where I was 3 months ago) and try to fix SurfaceFlinger. The current implementation of ro.sf.hwrotation is completely done in software. (And it was done in a similar way in CM10 as well, this is why HDMI was already broken there). We have to find a way to handover this information to the Samsung blob. Unfortunately, I'm away till Sunday, but then I'll look into it.

Is anyone still on CM10 to give us the dumpsys there?
[Galaxy Tab 8.9 Android Development] chienline:
We have the same hdmi rotation problem in KK's CM10 :(

Is it possible to fix touchscreen layout to portrait? So we can use ro.sf.hwrotation=0

I think that would fix both boot logo and hdmi rotation by making our devices portrait by default :)
[Galaxy Tab 8.9 Android Development] DemonGloom:
Seems that we can hack at frameworks/native/services/surfaceflinger/Transform.cpp

status_t Transform::set(uint32_t flags, float w, float h)

There are a few checks like "if (flags & ROT_90)". Probably we can change them to happen if !(flags & ROT_90) and remove ro.sf.hwrotation from build.prop.

Looks like it will fully rotate our screens.

I'll try to check it, though it would be great if you try it also..
[Galaxy Tab 8.9 Android Development] C-o-M:
If you don't want to play any games that use the orientation sensor, we could do it that way ;)

But I prefer to fix it the right way.
[Galaxy Tab 8.9 Android Development] chienline:
ouhh... surely we don't wanna disappoint the gamers out there :D

There must be a better way for everyone.

I'm counting down to Chinese New Year... and be back the day after ;)
[Galaxy Tab 8.9 Android Development] Der Straßenapotheker:
I can confirm that. With expanded Desktop the tab is much smoother. We need the old layout, not the nex7 one.
[Galaxy Tab 8.9 Android Development] DemonGloom:
You can try ROM with old layout there: http://code.google.com/p/tab89-sgt7/downloads/list

That ROM is based on cm10.1 and sgt7. Though you'll need to clear data for Trebuchet after upgrade.
[Galaxy Tab 8.9 Android Development] prince93:
can I enable it back? , and if yes, how can I do it?
[Galaxy Tab 8.9 Android Development] DemonGloom:
You'll need to remove that line

OR restore build.prop

OR flash cm10.1 and gapps again (without wipe)
[Galaxy Tab 8.9 Android Development] prince93:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Ofcourse I can do this with stock ICS too?
[Galaxy Tab 8.9 Android Development] DemonGloom:
That's cm10.1 thread...

But yes, you can flash any firmware you want or restore backup.
[Galaxy Tab 8.9 Android Development] rmorrisonva:
But such a modification would mean we are straying from CM10.1/AOSP, could be done but wouldn't be a CM10.1 rom. (In response to changing the layout from the default for tablets now)
[Galaxy Tab 8.9 Android Development] seanw712:
Hi,

Great rom, but I'm having two issues.

First of all, my bluetooth doesn't function properly, my bluetooth keyboard won't connect.

And secondly, I am faced with random shutdowns.

Are these known issues? I am using the Icebold kernel.
[Galaxy Tab 8.9 Android Development] upconvert:
Idk about a bluetooth keyboard, but I can pair my tab with my pc, no problem. I haven't had any random shut downs. I am using the kernel that came with the rom.
[Galaxy Tab 8.9 Android Development] seanw712:
Hi,

Ok, then I guess that's what's making the issue... how do I reset the kernel?
[Galaxy Tab 8.9 Android Development] nexus_g:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

JB 4.2.2 is out already
[Galaxy Tab 8.9 Android Development] upconvert:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Idk how to get a separate kernel .zip. I'd just wipe and reflash the ROM and gapps.
[Galaxy Tab 8.9 Android Development] C-o-M:
AW: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

Just reflash the rom.
[Galaxy Tab 8.9 Android Development] C-o-M:
Has there ever been any CM version (I guess it could only be CM9) where the HDMI output was correct?
[Galaxy Tab 8.9 Android Development] DemonGloom:
As far as i know - all versions have rotated hdmi output. Quote from CM9 thread:

BTW, editing transform.cpp could be a possible way. I tried. It gives partly rotated image, BUT with width of image equal to width(short side) of screen. So we need to somehow fake width to height of our screen(long side)
[Galaxy Tab 8.9 Android Development] C-o-M:
AW: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

It looks like Samsung changed the implementation of SurfaceFlinger. In AOSP (and thus in CM), the rotation is done in SurfaceFlinger which passes the already rotated data to the display driver. Samsung passes the unmodified data to the driver and let it rotate internally.

I tried this for the main display before CM reimplemented the rotation property. You also have to swap width and height.

I hope we find a way to pass the rotation parameter to the Tegra driver. This should also fix the boot screen.
[Galaxy Tab 8.9 Android Development] DemonGloom:
C-o-M

I've fixed problem with MTP off by default.

We just need to add next lines to to p4-common.mk

#set MTP by default
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mtp

Can you ask pershoot to comit that change?
[Galaxy Tab 8.9 Android Development] C-o-M:
Just send him a mail/PM or post here: http://xdaforums.com/showthread.php?t=2074202

To what is this property set by default?
[Galaxy Tab 8.9 Android Development] DemonGloom:
It is not set at all.

So default.prop is generated just with

persist.sys.usb.config=adb

After adding that line (like on other MTP devices) it becomes

persist.sys.usb.config=mtp,adb
[Galaxy Tab 8.9 Android Development] C-o-M:
Is there any non-MTP device? Shouldn't this property set by default? Or at least in some "role" file (like phone/tablet/...)?
[Galaxy Tab 8.9 Android Development] DemonGloom:
There are a lot of non-MTP devices. And that property is set in device tree (Galaxy Nexus, for example: https://github.com/CyanogenMod/android_device_samsung_tuna/blob/cm-10.1/device.mk )
[Galaxy Tab 8.9 Android Development] C-o-M:
A device without /storage/*? Never seen this before.
[Galaxy Tab 8.9 Android Development] upconvert:
My phone (lg optimus v) is a non-mtp device. When I plug it in it shows up as a mass storage device, not a media player like my tab.
[Galaxy Tab 8.9 Android Development] DemonGloom:
All devices with internal sd card and without big internal memory. That's mostly legacy devices that came with 2.x originally
[Galaxy Tab 8.9 Android Development] nkrick:
Even legacy device with large internal storage are not always MTP. The first generation Galaxy S is not MTP if you use OEM firmware and it came with 16GB of internal storage. MTP didn't become a widely used option for mounting Android device storage in Windows until Honeycomb. In the case of the Galaxy S in CyanogenMod, it used mass storage mounting in CM 7 and I believe switched to MTP briefly in CM 9 until the developers figured out how to change it back to mass storage (since that was what people were used to).
[Galaxy Tab 8.9 Android Development] C-o-M:
I know that there are devices out there which use UMS. But this is not what I mean.

UMS support was dropped somewhere in 4.x and replaced by MTP. So any device with 4.2 and any kind of storage (internal or sd card) should have MTP support. Or am I completely wrong?
[Galaxy Tab 8.9 Android Development] upconvert:
Re: [ROM][4.2.1][P7300/P7310][UNOFFICIAL] CyanogenMod 10.1 [2013-Jan-25]

4.1 on my ov, still ums.
[Galaxy Tab 8.9 Android Development] DemonGloom:
You are wrong :(

http://xdaforums.com/showthread.php?t=1871892
[Galaxy Tab 8.9 Android Development] C-o-M:
This doesn't prove me wrong ... I have UMS on CM10.1 on my phone as well (but you will never get this on your tab). That's not the deal. I was asking for any device that doesn't have MTP support on 4.2.
[Galaxy Tab 8.9 Android Development] DemonGloom:
Yes you are correct, even old devices without official 4.x seem to have MTP. Though they often offer UMS as default setting..