Android 5.0.2 Fixes 2012 Nexus 7! Sony’s Making a Google Glass Competitor? – XDA TV

Android 5.0.2 Lollipop is available for the … more

Early Lollipop Ports for Micromax A116 and A117

It feels like it was only yesterday when Google announced the mysterious Android L.After … more

Now Gesture Tweaks Replaces Google Now with Custom Action

On most modern Android devices with software navigation keys, swiping up from the … more

ToqAN Fixes Android 5.0 Notification Bug on Qualcomm Toq

The Qualcomm Toq is probably one of the lesser known smartwatches on the market … more

Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[INFO] Kernel changes between 9.4.5.22 and 9.4.5.26

OP Einride

31st July 2012, 05:47 PM   |  #1  
Einride's Avatar
OP Senior Member
Thanks Meter: 110
 
347 posts
Join Date:Joined: Sep 2010
Donate to Me
Right, so I did a quick diff between the kernel sources for these two releases, and here's what I found. I'd love some input from people with more knowledge than me on these things, especially the SD/MMC stuff, memory, etc.

(Note: A lot of this is just my assumptions, I could be completely wrong in a lot of cases )
  • arch/arm/configs/tegra3_android_defconfig
    Added support for deadline and CFQ scheduler, as some have already reported.

  • arch/arm/mach-tegra/board-cardhu-memory.c
    Now defines two types of memory chips, Elpida and Micron. Both seem to be 800 MHz, so there's probably getting memory chips from both to have enough in supply. Only one difference in the structs, I don't have enough knowledge about the controller or chips to know what they are, atleast not without data sheets

  • arch/arm/mach-tegra/board-cardhu-pinmux.c
    Changes to the power rails GPIO pins for a signal called SDMMC3_DAT4. Pin is changed from NORMAL and INPUT to PULL_DOWN and OUTPUT. Seems to be related to an SD card/MMC controller, maybe something to do with the changes for UHS-1 SD cards?

  • tegra3_dvfs.c
    DVFS tables updated, 1810 and 1900 MHz modes removed. They shouldn't have been there in the first place?

  • drivers/bluetooth/bluesleep.c
    Changes to Bluetooth when waking from sleep. Mostly changes related to using a #define instead of a variable "factory_mode". There are some changes to how it stops the sleep mode protocol on the host though. Seems a GPIO pin was set wrong (switched around) in .22 and is now fixed.

  • drivers/input/asusec/asusdec.c (and asusdec.h)
    Support for audio dock and audio stand added. New accessories incoming or just some common code base shared with the Nexus 7? It does look like an actual implementation of audio accessories. The audio stand seems to be powered for charging the TF700 while the audio dock is battery powered? It checks for 0, 5, 12 and 15 volts anyway.
    There's also a lot of hardcoded values and strings referencing the TF201 so it's very clear (and logical) that they've re-used driver code (and probably even firmware) from the TF201 and its dock.

  • drivers/input/touchscreen/ektf3k.c
    Add code for easier debugging it seems. Some changes to the touchscreen driver for detecting power source change (no cable, USB and AC)? Due to the firmware update included in .26 perhaps?

  • drivers/misc/inv_mpu/compass/ami306.c
    Changes to the compass/magnetometer driver. Apparently the TF700 uses an Aichi AMI306 chip for the compass function.
    Some changes in how it calibrates the sensor. The configuration file in /data/sensors/AMI304_Config.ini contains values for calibrating it, seems they've changed how it checks the calibration data.

  • drivers/misc/bcm4329_rfkill.c
    The driver for enabling/disabling the BCM4329 radio(s)? Only a minor change checking a gpio shutdown pin before continuing, probably to avoid a deadlock somewhere?

  • drivers/mmc/core/sd.c
    Some changes to handling UHS-1 cards and it looks like they've done it by lowering the data rate its supposed to use.
    Data rate set for a specific card type (probably UHS-1) is now defined as UHS_DDR41_MAX_DTR instead of a magic number 50000000 (which probably should've been UHS_DDR50_MAX_DTR?).
    It also seems they've lowered the speed for UHS-1 cards from DDR50 to DDR41 (which itself seems to be a custom definition in include/linux/mmc/card.h). Are they having issues reading at the maximum data rate and have gone with a custom one?

  • drivers/power/pad_battery.c
    They've added a low low (yes, low low) power check of the tablets battery. Seems to be polling the battery less when at low levels?

  • drivers/usb/gadget/fsl_udc_core.c
    More references to an audio dock and audio stand. The stand seems to be AC powered.

  • drivers/video/backlight/pwm_bl.c
    Changes to the backlight driver. There seems to be two different panels used: Panasonic and Hydis. The Hydis one seems to have had a very long delay in status updates compared to the Panasonic one (235 vs 70).
    New values are 35 ms for the Panasonic and 70 ms for the Hydis. Are some people having a much slower update of auto brightness than others?

  • drivers/video/tegra/dc/dc.c
    Some minor changes to the display controller. Hard to tell what these do without digging further into the code or knowing more about the display controller, really. It seems to be writing some parameters to lines when enabling the controller?

  • sound/soc/codecs/rt5631.c
    The sound driver for the Realtek sound chip in the TF700 it seems. More audio dock stuff. Some changes to the audio routing and mixer, although some of it is mentioned twice, not sure why. Functionality for muting/unmuting the audio dock and retrieving status from the audio dock.

  • sound/soc/tegra/headset.c
    More audio dock stuff. Line out routing when audio docked and not.

  • sound/soc/tegra/tegra30_ahub.c and sound/soc/tegra/tegra30_i2s.c
    I2S RX/TX FIFO stuff. Judging by the use of I2S I'm guessing it's to do with the audio dock again. Streaming sound and/or controlling it probably.

  • sound/tegra/tegra_rt5631.c
    More audio dock stuff. Signal routing for the audio.

So there you go. It's mostly changes related to the audio dock and audio stand, some changes to UHS-1 SD cards and a couple of tweaks and minor changes elsewhere.

I can't say I'm seeing any major changes as to why I/O performance would increase other than the schedulers, but it might also be a firmware change somewhere.
The Following 5 Users Say Thank You to Einride For This Useful Post: [ View ]
31st July 2012, 07:13 PM   |  #2  
d14b0ll0s's Avatar
Recognized Contributor
Thanks Meter: 447
 
1,207 posts
Join Date:Joined: Sep 2011
Well done, thanks!
It's still quite peculiar that cfq and deadline run so much smoother than before when loaded as kernel modules (from ATP Tweak for the Prime) and than sio was running on .21 and .22! Probably they are "Infinity-optimised" in some way now? (just a wild guess)
31st July 2012, 09:15 PM   |  #3  
MartyHulskemper's Avatar
Senior Member
Thanks Meter: 366
 
1,465 posts
Join Date:Joined: Jun 2008
Quote:
Originally Posted by d14b0ll0s

Well done, thanks!
It's still quite peculiar that cfq and deadline run so much smoother than before when loaded as kernel modules (from ATP Tweak for the Prime) and than sio was running on .21 and .22! Probably they are "Infinity-optimised" in some way now? (just a wild guess)

Yes, the latter point bewilders me as well. I tried both cfq and deadline with ATP Tweak, and while I liked deadline on my SGS2, I did not notice any improvement at all on the TF700. Makes me wonder what the actual cause of the very noticeable improvement is.
1st August 2012, 06:52 AM   |  #4  
californiarailroader's Avatar
Senior Member
Flag Redwood Valley, Northwestern California (Previous-Pocatello, Idaho(90-97)/Southern California(71-90)
Thanks Meter: 460
 
4,147 posts
Join Date:Joined: Mar 2006
More
Thanks for the list! As to memory makers, Micron I know well, but I've never heard of Elpida, are they fairly new? Micron is based in Idaho too, go Idaho!
The Following User Says Thank You to californiarailroader For This Useful Post: [ View ]
1st August 2012, 10:03 AM   |  #5  
Einride's Avatar
OP Senior Member
Thanks Meter: 110
 
347 posts
Join Date:Joined: Sep 2010
Donate to Me
Quote:
Originally Posted by californiarailroader

Thanks for the list! As to memory makers, Micron I know well, but I've never heard of Elpida, are they fairly new? Micron is based in Idaho too, go Idaho!

Well, what do you know? Turns out Micron has acquired Elpida just recently: http://www.elpida.com/pdfs/pr/2012-07-02e.pdf. The last I heard about them they had filed for bankruptcy earlier this year.

So Micron is probably supplying Asus with chips from both their own stock and Elpida's stock now?
1st August 2012, 08:06 PM   |  #6  
Senior Member
TAIPEI CITY
Thanks Meter: 14
 
111 posts
Join Date:Joined: Jul 2012
Hey!
Is there by any chance you'd find out what's changed to kernel to cause it unstable when writing to ntfs?
1st August 2012, 09:46 PM   |  #7  
Einride's Avatar
OP Senior Member
Thanks Meter: 110
 
347 posts
Join Date:Joined: Sep 2010
Donate to Me
Sorry, these are the only changes in the kernel as far as source code goes.

The NTFS modules in the TF700 are from a third-party, Tuxera, and probably only delivered as pre-compiled binaries for that particular kernel version. No source code means no idea what changed. It might be updated kernel modules for NTFS support that's made performance worse.

Sent from my ASUS Transformer Pad TF700T using Tapatalk 2
1st August 2012, 10:08 PM   |  #8  
d14b0ll0s's Avatar
Recognized Contributor
Thanks Meter: 447
 
1,207 posts
Join Date:Joined: Sep 2011
^ Here pops the bubble of the "open source" myth in case of Android.
What good is open source kernel if we get to have everything governed by non-open source modules?
2nd August 2012, 07:03 AM   |  #9  
Recognized Developer
Thanks Meter: 2,763
 
1,419 posts
Join Date:Joined: Nov 2007
Nice post!

Quote:
Originally Posted by d14b0ll0s

^ Here pops the bubble of the "open source" myth in case of Android.
What good is open source kernel if we get to have everything governed by non-open source modules?

Its just an NTFS module. The only reason they are using closed source module is because there isn't decent NTFS support in the Linux kernel. Most Linux distributions use a userspace implementation instead of the the one available in the kernel.

Asus would rather use an open source module as this closed source module costs them money.
The Following User Says Thank You to dalingrin For This Useful Post: [ View ]
2nd August 2012, 11:04 AM   |  #10  
Einride's Avatar
OP Senior Member
Thanks Meter: 110
 
347 posts
Join Date:Joined: Sep 2010
Donate to Me
Quote:
Originally Posted by dalingrin

Its just an NTFS module. The only reason they are using closed source module is because there isn't decent NTFS support in the Linux kernel. Most Linux distributions use a userspace implementation instead of the the one available in the kernel.

Asus would rather use an open source module as this closed source module costs them money.

This

Tuxera is behind the ntfs-3g driver which is often used with FUSE, but FUSE isn't ideal on an embedded or portable device due to CPU usage. Their embedded NTFS driver is much better suited for this which is why Asus is using that one.

Relying on binary blobs for firmware and certain kernel modules is very common with devices like these. The BCM4329 chip needs it, the GPU probably needs it, the cameras, etc. Android might be open, but device manufacturers have a long way to go with drivers and firmware.

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes