[Samsung Infuse 4G] Entropy512:
Well, the amperage of a charger is its limit. It can't FORCE current into a device.

The battery input current (displayed by BatteryMonitor or CurrentWidget) is set by the charge controller of our device. The default limit on AC is 600 mA, USB is lower. The value reported in sysfs is wrong, it's 1.83 times the real value. So when it says 1100 mA, it's really 600.

When it said 700-800 it was probably less - most likely those chargers were detected as USB and not a dumb charger, causing the device to limit charge current. Dumb chargers for Samsung short D+ and D-, dumb chargers for iDevices have funky resistors that cause our phones to assume USB. (Exception: If using the car dock, it disconnects D+ and D- and signals a dumb charger with a resistor to another pin.)

Note that that is the battery input current. There are two possibilities here:

1) Phone functions (GPS, screen, etc) run off of the battery at all times, so if they want more than 600 mA, the battery starts draining. This is highly unlikely, it's stupid design.

2) When on good external power, everything runs directly off of that external power. The battery charges independently of whatever else is using external power. However, if external power flakes out (weak charger for example), the device may transition to battery to keep it going.

Now in the case of 2), a kernel that increases charge current may actually hurt things, as it's more likely to brown out the power supply (make its voltage drop too low). However, in the case of 1) a kernel that increases charge current could solve the problems.

Right now, I'm semi-limited in my investigations until I can make a good USB breakout cable so that I can connect a voltmeter to watch the rails to see if they droop. So far I cannot find any internal ADCs on our device that let us monitor the USB rail voltage, other than "voltage present/not present". Also with the right breakout cable I can hook up an ammeter to measure actual current consumption from external 5v supplies. My local electronics store has what I need, but it's hard to get there before they close. I might go there Saturday, or order some cannibalization cables from Monoprice.

However one thing I can try (which I am trying currently) is to cripple the internal charger in the kernel so it limits charge current to 90 mA. If our devices are case 1), nav should drain the crap out of the battery even when running from my Scosche charger. If case 2), the battery should continue to charge VERY slowly but not drain. If case 2), it may actually be desirable to DROP the charger current limit when on the car dock to avoid browning out the external power supply. Ideally we'd be able to look at the voltage of the external power and make decisions based on that, but I don't think we can.

On another note:

I figured out how to get dmesg working again, going to submit a pull request to bedwa for that one. (Edit: easier said than done, gonna have to do some branch-fu here...)

I also tried to do a toolchain migration to the 2011 CodeSourcery release, while a commit I grabbed from the Defuse tree fixed the compile error, the kernel that is built boots but crashes at the launcher screen. It may be an optimization flag problem, I'll look into the other toolchain migration tweaks the Defuse guys did. For now I'm back on 2009q3-68.