[LG Optimus 2x] marsgod:
When you install the offical V30C 2.6.39 kernel, sometimes there will be a BSOD bug. Espcially when you try to unplug your phone from the USB port, the system sometimes will try to enter suspend mode, tuning it's frequency to 216MHz, this bug will occure. It will take the system a very long time to wakeup, or just crash the system. So if you have a incoming call at this time, maybe the baseband will ring the Android, surely, the Android will not ring you. Then you will miss the incoming call.

By checking the dmesg log, you can found something like this:

<4>[ 1235.194084] muic_wq_func : [MUIC] Now...path retain mode, muic_mode = MUIC_AP_USB (8), charing = CHARGING_NONE (1)
<4>[ 1235.194092]
<6>[ 1235.201514] suspend: enter suspend
<6>[ 1235.201533] PM: Syncing filesystems ... done.
<7>[ 1235.208726] PM: Preparing system for mem sleep
<6>[ 1235.208750] Tegra cpufreq suspend: setting frequency to 216000 kHz
<3>[ 1235.210088] Failed to set dvfs regulator vdd_core

and a lot of this:

<6>[ 1235.607271] Switched to NOHz mode on CPU #1
<4>[ 1236.607867] ------------[ cut here ]------------
<4>[ 1236.607945] WARNING: at /home/marsgod/android/CM_JB/kernel/lge/star/drivers/i2c/busses/i2c-tegra.c:669 tegra_i2c_xfer+0x2c0/0x3b8()
<4>[ 1236.607987] Modules linked in:
<4>[ 1236.608073] [<c004c2b0>] (unwind_backtrace+0x0/0xe0) from [<c008020c>] (warn_slowpath_common+0x4c/0x64)
<4>[ 1236.608142] [<c008020c>] (warn_slowpath_common+0x4c/0x64) from [<c008023c>] (warn_slowpath_null+0x18/0x1c)
<4>[ 1236.608212] [<c008023c>] (warn_slowpath_null+0x18/0x1c) from [<c030eb8c>] (tegra_i2c_xfer+0x2c0/0x3b8)
<4>[ 1236.608282] [<c030eb8c>] (tegra_i2c_xfer+0x2c0/0x3b8) from [<c030b480>] (i2c_transfer+0xb0/0x104)
<4>[ 1236.608375] [<c030b480>] (i2c_transfer+0xb0/0x104) from [<c0275934>] (max8907c_i2c_read+0x54/0x98)
<4>[ 1236.608451] [<c0275934>] (max8907c_i2c_read+0x54/0x98) from [<c02759b0>] (max8907c_reg_read+0x10/0x2c)
<4>[ 1236.608548] [<c02759b0>] (max8907c_reg_read+0x10/0x2c) from [<c0244108>] (max8907c_regulator_ldo_is_enabled+0x18/0x44)
<4>[ 1236.608626] [<c0244108>] (max8907c_regulator_ldo_is_enabled+0x18/0x44) from [<c0240350>] (_regulator_is_enabled+0x1c/0x28)
<4>[ 1236.608700] [<c0240350>] (_regulator_is_enabled+0x1c/0x28) from [<c0241e88>] (_regulator_do_set_voltage+0x14/0x1f8)
<4>[ 1236.608773] [<c0241e88>] (_regulator_do_set_voltage+0x14/0x1f8) from [<c024224c>] (regulator_set_voltage+0xf8/0x100)
<4>[ 1236.608869] [<c024224c>] (regulator_set_voltage+0xf8/0x100) from [<c0064724>] (dvfs_rail_set_voltage+0x14c/0x254)
<4>[ 1236.608947] [<c0064724>] (dvfs_rail_set_voltage+0x14c/0x254) from [<c00645c4>] (dvfs_rail_update+0xec/0x100)
<4>[ 1236.609021] [<c00645c4>] (dvfs_rail_update+0xec/0x100) from [<c0064b4c>] (__tegra_dvfs_set_rate+0xb4/0xf0)
<4>[ 1236.609095] [<c0064b4c>] (__tegra_dvfs_set_rate+0xb4/0xf0) from [<c0064bb8>] (tegra_dvfs_set_rate+0x30/0x48)
<4>[ 1236.609176] [<c0064bb8>] (tegra_dvfs_set_rate+0x30/0x48) from [<c0057540>] (clk_enable_locked+0x3c/0xe4)
<4>[ 1236.609244] [<c0057540>] (clk_enable_locked+0x3c/0xe4) from [<c00578b0>] (clk_enable+0x38/0x68)
<4>[ 1236.609313] [<c00578b0>] (clk_enable+0x38/0x68) from [<c02b7130>] (tegra_otg_enable_clk+0x20/0x34)
<4>[ 1236.609377] [<c02b7130>] (tegra_otg_enable_clk+0x20/0x34) from [<c02b71b8>] (tegra_otg_resume_noirq+0x10/0x58)
<4>[ 1236.609455] [<c02b71b8>] (tegra_otg_resume_noirq+0x10/0x58) from [<c02601b0>] (platform_pm_resume_noirq+0x2c/0x40)
<4>[ 1236.609527] [<c02601b0>] (platform_pm_resume_noirq+0x2c/0x40) from [<c0262d4c>] (pm_noirq_op+0xcc/0x14c)
<4>[ 1236.609590] [<c0262d4c>] (pm_noirq_op+0xcc/0x14c) from [<c0262ea0>] (dpm_resume_noirq+0xd4/0x13c)
<4>[ 1236.609658] [<c0262ea0>] (dpm_resume_noirq+0xd4/0x13c) from [<c00af7e4>] (suspend_devices_and_enter+0x1d4/0x2e0)
<4>[ 1236.609724] [<c00af7e4>] (suspend_devices_and_enter+0x1d4/0x2e0) from [<c00af9b8>] (enter_state+0xc8/0x130)
<4>[ 1236.609789] [<c00af9b8>] (enter_state+0xc8/0x130) from [<c00b0860>] (suspend+0x60/0x124)
<4>[ 1236.609850] [<c00b0860>] (suspend+0x60/0x124) from [<c00938bc>] (process_one_work+0x200/0x370)
<4>[ 1236.609912] [<c00938bc>] (process_one_work+0x200/0x370) from [<c0093c4c>] (worker_thread+0x220/0x3c0)
<4>[ 1236.609984] [<c0093c4c>] (worker_thread+0x220/0x3c0) from [<c00976c0>] (kthread+0x7c/0x84)
<4>[ 1236.610065] [<c00976c0>] (kthread+0x7c/0x84) from [<c00471b8>] (kernel_thread_exit+0x0/0x8)
<4>[ 1236.610107] ---[ end trace c5d679c0ae895105 ]---
<3>[ 1236.610148] tegra-i2c tegra-i2c.3: i2c transfer timed out, addr 0x003c, data 0x07
<4>[ 1236.611241] max8907c_i2c_read Fail Error code(0xffffff92) retry cnt=0
<4>[ 1237.607386] ------------[ cut here ]------------
<4>[ 1237.607453] WARNING: at /home/marsgod/android/CM_JB/kernel/lge/star/drivers/i2c/busses/i2c-tegra.c:669 tegra_i2c_xfer+0x2c0/0x3b8()
<4>[ 1237.607494] Modules linked in:
<4>[ 1237.607566] [<c004c2b0>] (unwind_backtrace+0x0/0xe0) from [<c008020c>] (warn_slowpath_common+0x4c/0x64)
<4>[ 1237.607634] [<c008020c>] (warn_slowpath_common+0x4c/0x64) from [<c008023c>] (warn_slowpath_null+0x18/0x1c)
<4>[ 1237.607705] [<c008023c>] (warn_slowpath_null+0x18/0x1c) from [<c030eb8c>] (tegra_i2c_xfer+0x2c0/0x3b8)
<4>[ 1237.607774] [<c030eb8c>] (tegra_i2c_xfer+0x2c0/0x3b8) from [<c030b480>] (i2c_transfer+0xb0/0x104)
<4>[ 1237.607856] [<c030b480>] (i2c_transfer+0xb0/0x104) from [<c0275934>] (max8907c_i2c_read+0x54/0x98)
<4>[ 1237.607931] [<c0275934>] (max8907c_i2c_read+0x54/0x98) from [<c02759b0>] (max8907c_reg_read+0x10/0x2c)
<4>[ 1237.608017] [<c02759b0>] (max8907c_reg_read+0x10/0x2c) from [<c0244108>] (max8907c_regulator_ldo_is_enabled+0x18/0x44)
<4>[ 1237.608094] [<c0244108>] (max8907c_regulator_ldo_is_enabled+0x18/0x44) from [<c0240350>] (_regulator_is_enabled+0x1c/0x28)
<4>[ 1237.608166] [<c0240350>] (_regulator_is_enabled+0x1c/0x28) from [<c0241e88>] (_regulator_do_set_voltage+0x14/0x1f8)
<4>[ 1237.608238] [<c0241e88>] (_regulator_do_set_voltage+0x14/0x1f8) from [<c024224c>] (regulator_set_voltage+0xf8/0x100)
<4>[ 1237.608323] [<c024224c>] (regulator_set_voltage+0xf8/0x100) from [<c0064724>] (dvfs_rail_set_voltage+0x14c/0x254)
<4>[ 1237.608401] [<c0064724>] (dvfs_rail_set_voltage+0x14c/0x254) from [<c00645c4>] (dvfs_rail_update+0xec/0x100)
<4>[ 1237.608474] [<c00645c4>] (dvfs_rail_update+0xec/0x100) from [<c0064b4c>] (__tegra_dvfs_set_rate+0xb4/0xf0)
<4>[ 1237.608547] [<c0064b4c>] (__tegra_dvfs_set_rate+0xb4/0xf0) from [<c0064bb8>] (tegra_dvfs_set_rate+0x30/0x48)
<4>[ 1237.608624] [<c0064bb8>] (tegra_dvfs_set_rate+0x30/0x48) from [<c0057540>] (clk_enable_locked+0x3c/0xe4)
<4>[ 1237.608692] [<c0057540>] (clk_enable_locked+0x3c/0xe4) from [<c00578b0>] (clk_enable+0x38/0x68)
<4>[ 1237.608759] [<c00578b0>] (clk_enable+0x38/0x68) from [<c02b7130>] (tegra_otg_enable_clk+0x20/0x34)
<4>[ 1237.608823] [<c02b7130>] (tegra_otg_enable_clk+0x20/0x34) from [<c02b71b8>] (tegra_otg_resume_noirq+0x10/0x58)
<4>[ 1237.608897] [<c02b71b8>] (tegra_otg_resume_noirq+0x10/0x58) from [<c02601b0>] (platform_pm_resume_noirq+0x2c/0x40)
<4>[ 1237.608967] [<c02601b0>] (platform_pm_resume_noirq+0x2c/0x40) from [<c0262d4c>] (pm_noirq_op+0xcc/0x14c)
<4>[ 1237.609030] [<c0262d4c>] (pm_noirq_op+0xcc/0x14c) from [<c0262ea0>] (dpm_resume_noirq+0xd4/0x13c)
<4>[ 1237.609094] [<c0262ea0>] (dpm_resume_noirq+0xd4/0x13c) from [<c00af7e4>] (suspend_devices_and_enter+0x1d4/0x2e0)
<4>[ 1237.609160] [<c00af7e4>] (suspend_devices_and_enter+0x1d4/0x2e0) from [<c00af9b8>] (enter_state+0xc8/0x130)
<4>[ 1237.609223] [<c00af9b8>] (enter_state+0xc8/0x130) from [<c00b0860>] (suspend+0x60/0x124)
<4>[ 1237.609283] [<c00b0860>] (suspend+0x60/0x124) from [<c00938bc>] (process_one_work+0x200/0x370)
<4>[ 1237.609343] [<c00938bc>] (process_one_work+0x200/0x370) from [<c0093c4c>] (worker_thread+0x220/0x3c0)
<4>[ 1237.609411] [<c0093c4c>] (worker_thread+0x220/0x3c0) from [<c00976c0>] (kthread+0x7c/0x84)
<4>[ 1237.609485] [<c00976c0>] (kthread+0x7c/0x84) from [<c00471b8>] (kernel_thread_exit+0x0/0x8)
<4>[ 1237.609526] ---[ end trace c5d679c0ae895106 ]---
<3>[ 1237.609565] tegra-i2c tegra-i2c.3: i2c transfer timed out, addr 0x003c, data 0x07
<4>[ 1237.610659] max8907c_i2c_read Fail Error code(0xffffff92) retry cnt=1

When the system trying to enter into suspend mode, it first will tune the frequency to 216MHz, this will cause the dvfs.c try to low down the cpu/core voltage. When lowing down the core voltage, the regulator_check_consumers in regulator return a -EINVAL to dvfs.c set_voltage function. Which will cause the dvfs set voltage abort, so at this time , some part of CPU enter suspend mode, but others not. And this will cause a serious problem when system trying to wakeup.(a lot of I2C communicationn error)

By adding some printk into the regulator core.c, I found that there exist a "ghost consumer" which has a min_uV=0 and max_uV=0. This will cause the regulator_check_consumers always return a -EINVAL.

To workaround this , just add a fix to the drivers/regulator/core.c regulator_check_consumers function:

list_for_each_entry(regulator, &rdev->consumer_list, list) {
if (!regulator->max_uV && !regulator->min_uV)
{
// Work around for unknown 0,0 consumer bug
continue;
}
if (*max_uV > regulator->max_uV)
*max_uV = regulator->max_uV;
if (*min_uV < regulator->min_uV)
*min_uV = regulator->min_uV;
}

Please note, this bug has been fixed in 3.x kernel.