黄涛 [Fri, 13 Jul 2012 03:28:25 +0000 (11:28 +0800)]
rk: switch to toolchain gcc-4.4.3
黄涛 [Thu, 12 Jul 2012 10:46:41 +0000 (18:46 +0800)]
Merge remote-tracking branch 'stable/linux-3.0.y' into develop-3.0-jb
Conflicts:
drivers/net/usb/asix.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.c
drivers/usb/serial/option.c
黄涛 [Thu, 12 Jul 2012 10:08:01 +0000 (18:08 +0800)]
Merge remote-tracking branch 'common/android-3.0' into develop-3.0-jb
Conflicts:
drivers/cpufreq/cpufreq_interactive.c
drivers/misc/pmem.c
drivers/net/usb/asix.c
drivers/net/wireless/ath/ath9k/ani.c
drivers/net/wireless/ath/ath9k/ar5008_phy.c
drivers/net/wireless/ath/ath9k/ar9002_hw.c
drivers/net/wireless/ath/ath9k/ar9003_calib.c
drivers/net/wireless/ath/ath9k/ar9003_mac.c
drivers/net/wireless/ath/ath9k/ar9003_phy.h
drivers/net/wireless/ath/ath9k/calib.c
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/rc.c
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/b43/main.c
drivers/net/wireless/bcm4319/aiutils.c
drivers/net/wireless/bcm4319/bcmsdh.c
drivers/net/wireless/bcm4319/bcmsdh_linux.c
drivers/net/wireless/bcm4319/bcmsdh_sdmmc.c
drivers/net/wireless/bcm4319/bcmsdh_sdmmc_linux.c
drivers/net/wireless/bcm4319/bcmutils.c
drivers/net/wireless/bcm4319/dhd_common.c
drivers/net/wireless/bcm4319/dhd_proto.h
drivers/net/wireless/bcm4319/dhd_sdio.c
drivers/net/wireless/bcm4319/hndpmu.c
drivers/net/wireless/bcm4319/include/aidmp.h
drivers/net/wireless/bcm4319/include/bcmcdc.h
drivers/net/wireless/bcm4319/include/bcmdefs.h
drivers/net/wireless/bcm4319/include/bcmdevs.h
drivers/net/wireless/bcm4319/include/bcmendian.h
drivers/net/wireless/bcm4319/include/bcmpcispi.h
drivers/net/wireless/bcm4319/include/bcmperf.h
drivers/net/wireless/bcm4319/include/bcmsdbus.h
drivers/net/wireless/bcm4319/include/bcmsdh.h
drivers/net/wireless/bcm4319/include/bcmsdh_sdmmc.h
drivers/net/wireless/bcm4319/include/bcmsdpcm.h
drivers/net/wireless/bcm4319/include/bcmsdspi.h
drivers/net/wireless/bcm4319/include/bcmsdstd.h
drivers/net/wireless/bcm4319/include/bcmspi.h
drivers/net/wireless/bcm4319/include/bcmutils.h
drivers/net/wireless/bcm4319/include/bcmwifi.h
drivers/net/wireless/bcm4319/include/dhdioctl.h
drivers/net/wireless/bcm4319/include/epivers.h
drivers/net/wireless/bcm4319/include/hndpmu.h
drivers/net/wireless/bcm4319/include/hndrte_armtrap.h
drivers/net/wireless/bcm4319/include/hndrte_cons.h
drivers/net/wireless/bcm4319/include/hndsoc.h
drivers/net/wireless/bcm4319/include/linux_osl.h
drivers/net/wireless/bcm4319/include/linuxver.h
drivers/net/wireless/bcm4319/include/miniopt.h
drivers/net/wireless/bcm4319/include/msgtrace.h
drivers/net/wireless/bcm4319/include/osl.h
drivers/net/wireless/bcm4319/include/packed_section_end.h
drivers/net/wireless/bcm4319/include/packed_section_start.h
drivers/net/wireless/bcm4319/include/pcicfg.h
drivers/net/wireless/bcm4319/include/proto/802.11e.h
drivers/net/wireless/bcm4319/include/proto/802.1d.h
drivers/net/wireless/bcm4319/include/proto/bcmeth.h
drivers/net/wireless/bcm4319/include/proto/bcmevent.h
drivers/net/wireless/bcm4319/include/proto/bcmip.h
drivers/net/wireless/bcm4319/include/proto/eapol.h
drivers/net/wireless/bcm4319/include/proto/ethernet.h
drivers/net/wireless/bcm4319/include/proto/sdspi.h
drivers/net/wireless/bcm4319/include/proto/vlan.h
drivers/net/wireless/bcm4319/include/proto/wpa.h
drivers/net/wireless/bcm4319/include/sbchipc.h
drivers/net/wireless/bcm4319/include/sbconfig.h
drivers/net/wireless/bcm4319/include/sbhnddma.h
drivers/net/wireless/bcm4319/include/sbpcmcia.h
drivers/net/wireless/bcm4319/include/sbsdio.h
drivers/net/wireless/bcm4319/include/sbsdpcmdev.h
drivers/net/wireless/bcm4319/include/sbsocram.h
drivers/net/wireless/bcm4319/include/sdio.h
drivers/net/wireless/bcm4319/include/sdioh.h
drivers/net/wireless/bcm4319/include/sdiovar.h
drivers/net/wireless/bcm4319/include/siutils.h
drivers/net/wireless/bcm4319/include/trxhdr.h
drivers/net/wireless/bcm4319/include/typedefs.h
drivers/net/wireless/bcm4319/siutils.c
drivers/net/wireless/bcm4319/wl_iw.c
drivers/net/wireless/bcm4319/wl_iw.h
drivers/net/wireless/bcmdhd/Kconfig
drivers/net/wireless/bcmdhd/Makefile
drivers/net/wireless/bcmdhd/bcmevent.c
drivers/net/wireless/bcmdhd/dhd.h
drivers/net/wireless/bcmdhd/dhd_cdc.c
drivers/net/wireless/bcmdhd/dhd_linux.c
drivers/net/wireless/bcmdhd/dhd_wlfc.h
drivers/net/wireless/bcmdhd/include/Makefile
drivers/net/wireless/bcmdhd/include/htsf.h
drivers/net/wireless/bcmdhd/include/proto/802.11.h
drivers/net/wireless/bcmdhd/include/proto/802.11_bta.h
drivers/net/wireless/bcmdhd/include/proto/bt_amp_hci.h
drivers/net/wireless/bcmdhd/include/proto/p2p.h
drivers/net/wireless/bcmdhd/include/wlfc_proto.h
drivers/net/wireless/bcmdhd/include/wlioctl.h
drivers/net/wireless/bcmdhd/linux_osl.c
drivers/net/wireless/bcmdhd/wl_android.c
drivers/net/wireless/bcmdhd/wl_android.h
drivers/net/wireless/bcmdhd/wl_cfg80211.c
drivers/net/wireless/bcmdhd/wl_cfg80211.h
drivers/net/wireless/bcmdhd/wl_cfgp2p.c
drivers/net/wireless/bcmdhd/wl_cfgp2p.h
drivers/net/wireless/bcmdhd/wl_linux_mon.c
drivers/net/wireless/bcmdhd/wldev_common.c
drivers/net/wireless/bcmdhd/wldev_common.h
drivers/net/wireless/ipw2x00/ipw2200.c
drivers/net/wireless/iwlwifi/iwl-agn-lib.c
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
drivers/net/wireless/iwlwifi/iwl-agn-ucode.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.h
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-hcmd.c
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/libertas/if_spi.c
drivers/net/wireless/p54/p54spi.c
drivers/net/wireless/rt2x00/rt2800lib.c
drivers/net/wireless/rt2x00/rt2800pci.c
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2x00.h
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00mac.c
drivers/net/wireless/rt2x00/rt2x00queue.c
drivers/usb/serial/option.c
zwp [Thu, 12 Jul 2012 02:11:07 +0000 (10:11 +0800)]
solve gsensor deadlock problem.
黄涛 [Thu, 12 Jul 2012 01:46:55 +0000 (09:46 +0800)]
sched: Cleanup cpu_active madness
commit
5fbd036b552f633abb394a319f7c62a5c86a9cd7 upstream.
Stepan found:
CPU0 CPUn
_cpu_up()
__cpu_up()
boostrap()
notify_cpu_starting()
set_cpu_online()
while (!cpu_active())
cpu_relax()
<PREEMPT-out>
smp_call_function(.wait=1)
/* we find cpu_online() is true */
arch_send_call_function_ipi_mask()
/* wait-forever-more */
<PREEMPT-in>
local_irq_enable()
cpu_notify(CPU_ONLINE)
sched_cpu_active()
set_cpu_active()
Now the purpose of cpu_active is mostly with bringing down a cpu, where
we mark it !active to avoid the load-balancer from moving tasks to it
while we tear down the cpu. This is required because we only update the
sched_domain tree after we brought the cpu-down. And this is needed so
that some tasks can still run while we bring it down, we just don't want
new tasks to appear.
On cpu-up however the sched_domain tree doesn't yet include the new cpu,
so its invisible to the load-balancer, regardless of the active state.
So instead of setting the active state after we boot the new cpu (and
consequently having to wait for it before enabling interrupts) set the
cpu active before we set it online and avoid the whole mess.
黄涛 [Thu, 12 Jul 2012 01:31:21 +0000 (09:31 +0800)]
rk30: cpufreq: prevent deadlock by disable call get_online_cpus
The deadlock happens when:
rk30_cpufreq_temp_limit_work_func:
cpufreq_driver_target
lock_policy_rwsem_write
mutex_lock(&cpufreq_mutex)
cpufreq_interactive_up_task:
mutex_lock(&cpufreq_mutex)
mutex_lock(&cpu_hotplug.lock)
_cpu_down:
mutex_lock(&cpu_hotplug.lock)
lock_policy_rwsem_write
黄涛 [Thu, 12 Jul 2012 01:30:38 +0000 (09:30 +0800)]
rk: fiq_debugger: better support cpu cmd, never switch when target cpu is offline
黄涛 [Wed, 11 Jul 2012 06:53:45 +0000 (14:53 +0800)]
rk: add RK_CLOCK_PROC config, disable /proc/clocks by default
陈辉 [Tue, 10 Jul 2012 16:35:20 +0000 (00:35 +0800)]
add arm-eabi-4.4.3 toolchain
kfx [Tue, 10 Jul 2012 06:55:11 +0000 (14:55 +0800)]
i2c: 'move rk30_i2c_platform_data from mach-rk30 to plat-rk' and 'disable i2c4 select on rk2928'
黄涛 [Tue, 10 Jul 2012 05:07:39 +0000 (13:07 +0800)]
rk: add RK_PL330_DMA config
赵子初 [Tue, 10 Jul 2012 03:22:48 +0000 (11:22 +0800)]
add mt6229 for rk30
许盛飞 [Mon, 9 Jul 2012 12:01:42 +0000 (20:01 +0800)]
rk30:phone: the bug of charge_display
赵子初 [Mon, 9 Jul 2012 07:50:25 +0000 (15:50 +0800)]
add mw100 for rk30
赵子初 [Mon, 9 Jul 2012 07:15:54 +0000 (15:15 +0800)]
add mu509 for rk30
zwp [Mon, 9 Jul 2012 02:53:23 +0000 (10:53 +0800)]
add twl60xx low battery detection function at rk30_phone_defconfig.
yangkai [Mon, 9 Jul 2012 02:41:30 +0000 (10:41 +0800)]
hcd nonper channel problem & suspend when no device connect
zwp [Mon, 9 Jul 2012 02:05:30 +0000 (10:05 +0800)]
add charge display function at rk30_phone_defconfig.
许盛飞 [Mon, 9 Jul 2012 02:01:02 +0000 (10:01 +0800)]
rk30:sdk:change load order order
hhb [Mon, 9 Jul 2012 01:55:52 +0000 (09:55 +0800)]
camera:modify ov5640_for_td8801.c
张晴 [Mon, 9 Jul 2012 01:49:32 +0000 (09:49 +0800)]
rk30:phone:support pmic tps80032 vbat low detection,support pmic tps80032 early suspend
许盛飞 [Fri, 6 Jul 2012 10:02:17 +0000 (18:02 +0800)]
rk30:sdk: update power calculation method
zsq [Fri, 6 Jul 2012 09:51:20 +0000 (17:51 +0800)]
del rga dump for bug fix
chenxing [Fri, 6 Jul 2012 07:18:14 +0000 (15:18 +0800)]
Revert "rk30:sdk: store clock request frequency and auto scale frequency when limit clock frequency"
This reverts commit
f0a1404739d7e0e63e8e2745bf92af10faeb0fc4.
chenxing [Fri, 6 Jul 2012 07:09:02 +0000 (15:09 +0800)]
rk30:sdk: store clock request frequency and auto scale frequency when limit clock frequency
许盛飞 [Thu, 5 Jul 2012 11:51:52 +0000 (19:51 +0800)]
rk30: not gating the gpios clock
chenxing [Thu, 5 Jul 2012 11:24:10 +0000 (19:24 +0800)]
rk30:sdk: protect variable and function
chenxing [Thu, 5 Jul 2012 11:02:42 +0000 (19:02 +0800)]
rk30:sdk: get avs value under logic 1.1V
chenxing [Thu, 5 Jul 2012 10:28:18 +0000 (18:28 +0800)]
rk30:sdk add interface of avs function and interface to see dvfs tree(/sys/dvfs/dvfs_tree)
huangdesheng [Thu, 5 Jul 2012 10:17:17 +0000 (18:17 +0800)]
revise rga code err
黄涛 [Thu, 5 Jul 2012 10:11:15 +0000 (18:11 +0800)]
rk: plat: entry-macro.S use GIC_CPU_BASE macro
huangdesheng [Thu, 5 Jul 2012 09:47:06 +0000 (17:47 +0800)]
add rga version
黄涛 [Thu, 5 Jul 2012 09:16:55 +0000 (17:16 +0800)]
rk: move fiq.c from mach-rk30 to plat-rk
add GIC_DIST_BASE, GIC_CPU_BASE, IRQ_DEBUG_UART macro
rename rk30_fiq_init to rk_fiq_init
许盛飞 [Thu, 5 Jul 2012 08:45:17 +0000 (16:45 +0800)]
rk30:sdk: add lowpower check
许盛飞 [Wed, 4 Jul 2012 09:46:35 +0000 (17:46 +0800)]
rk30:sdk: add wakelock when charging
chenxing [Wed, 4 Jul 2012 09:23:30 +0000 (17:23 +0800)]
rk30:sdk: add GPU frequency limit between 133MHz to 400MHz
黄涛 [Tue, 3 Jul 2012 02:40:29 +0000 (10:40 +0800)]
rk: plat: add io.h
hhb [Tue, 3 Jul 2012 02:21:05 +0000 (10:21 +0800)]
DMA: rk29-pl330.c add new argument 'id' to pl330_request_channel() where it is invoked
黄涛 [Tue, 3 Jul 2012 02:20:19 +0000 (10:20 +0800)]
rk: plat: add memory.h
hhb [Tue, 3 Jul 2012 02:12:12 +0000 (10:12 +0800)]
DMA: dma-pl330.c add new argument 'id' to pl330_request_channel() where it is invoked
kfx [Tue, 3 Jul 2012 02:03:23 +0000 (10:03 +0800)]
adc drivers: add comments
hhb [Tue, 3 Jul 2012 01:54:00 +0000 (09:54 +0800)]
DMA :pl330.c add new argument 'id' to pl330_request_channel()
黄涛 [Mon, 2 Jul 2012 12:41:37 +0000 (20:41 +0800)]
rk: plat: add gpio.h
黄涛 [Mon, 2 Jul 2012 12:18:56 +0000 (20:18 +0800)]
rk: move fiq.h from mach-rk30 to plat-rk
黄涛 [Mon, 2 Jul 2012 11:57:53 +0000 (19:57 +0800)]
rk: move system.h from mach-rk30 to plat-rk
黄涛 [Mon, 2 Jul 2012 11:48:45 +0000 (19:48 +0800)]
rk: move clkdev.h debug-macro.S entry-macro.S timex.h uncompress.h from mach-rk30 to plat-rk
黄涛 [Mon, 2 Jul 2012 09:07:06 +0000 (17:07 +0800)]
rk30: cpufreq: support build with non-SMP config
hhb [Sat, 30 Jun 2012 08:10:26 +0000 (16:10 +0800)]
camera: modify ov5640 driver for phone
蓝斌元 [Fri, 29 Jun 2012 03:10:30 +0000 (11:10 +0800)]
Revert "fix spi driver's bug while dma recieving"
This reverts commit
b01b358f83249ee24bc26232ee3afed5e5e6feec.
Dmitry Shmidt [Thu, 28 Jun 2012 17:25:25 +0000 (10:25 -0700)]
net: wireless: bcmdhd: Skip inaccurate wl_construct_reginfo() call
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
gwl [Thu, 28 Jun 2012 03:31:18 +0000 (11:31 +0800)]
add broadcom OOB function resource,current is not used
黄涛 [Thu, 28 Jun 2012 03:17:55 +0000 (11:17 +0800)]
rk30: timer: try fix asynchronous read timer, return value may undefined
hhb [Wed, 27 Jun 2012 11:08:37 +0000 (19:08 +0800)]
rk30 : DMA: add move DMA microcode from DDR to SRAM
chenxing [Wed, 27 Jun 2012 08:35:40 +0000 (16:35 +0800)]
rk30: add retry after dvfs set voltage error, and check voltage value to make sure if it realy failed
chenxing [Wed, 27 Jun 2012 08:23:31 +0000 (16:23 +0800)]
rk30: record arm voltage value before dvfs start
root [Wed, 27 Jun 2012 02:55:42 +0000 (10:55 +0800)]
camera rk30: rk_camera_querycap func has bug of quering orintation.
zwp [Wed, 27 Jun 2012 02:11:49 +0000 (10:11 +0800)]
solve the problem we should push power button twice when device resume.
lw@rock-chips.com [Tue, 26 Jun 2012 12:18:36 +0000 (20:18 +0800)]
fix spi driver's bug while dma recieving
ddl [Tue, 26 Jun 2012 09:18:02 +0000 (17:18 +0800)]
camera rk29: fix error when calculate crop left-top point coordinate, version update to v0.x.d
xxx [Tue, 26 Jun 2012 06:14:07 +0000 (23:14 -0700)]
gpll support 300M
zwp [Tue, 26 Jun 2012 01:05:38 +0000 (09:05 +0800)]
modify tdsc8800 bug.
Zheng Yang [Mon, 25 Jun 2012 11:52:31 +0000 (19:52 +0800)]
rk30 hdmi:
1. Fix HDMI 480P video parameter setting error.
2. Print EDID data when debug is enabled.
hhb [Mon, 25 Jun 2012 03:39:56 +0000 (11:39 +0800)]
rk30 phone: camera update ov5640_for_td8801.c
hhb [Mon, 25 Jun 2012 03:39:29 +0000 (11:39 +0800)]
rk30 phone: camera config :change back camera from ov5640.c to ov5640_for_td8801.c
Greg Kroah-Hartman [Fri, 22 Jun 2012 18:34:31 +0000 (11:34 -0700)]
Linux 3.0.36
Daniel Mack [Tue, 12 Jun 2012 18:23:52 +0000 (20:23 +0200)]
USB: fix gathering of interface associations
commit
b3a3dd074f7053ef824ad077e5331b52220ceba1 upstream.
TEAC's UD-H01 (and probably other devices) have a gap in the interface
number allocation of their descriptors:
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 220
bNumInterfaces 3
[...]
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
[...]
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 2
bInterfaceCount 2
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
[...]
Once a configuration is selected, usb_set_configuration() walks the
known interfaces of a given configuration and calls find_iad() on
each of them to set the interface association pointer the interface
is included in.
The problem here is that the loop variable is taken for the interface
number in the comparison logic that gathers the association. Which is
fine as long as the descriptors are sane.
In the case above, however, the logic gets out of sync and the
interface association fields of all interfaces beyond the interface
number gap are wrong.
Fix this by passing the interface's bInterfaceNumber to find_iad()
instead.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-by: bEN <ml_all@circa.be>
Reported-by: Ivan Perrone <ivanperrone@hotmail.com>
Tested-by: ivan perrone <ivanperrone@hotmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bjørn Mork [Wed, 30 May 2012 08:00:14 +0000 (10:00 +0200)]
USB: serial: Enforce USB driver and USB serial driver match
commit
954c3f8a5f1b7716be9eee978b3bc85bae92d7c8 upstream.
We need to make sure that the USB serial driver we find
matches the USB driver whose probe we are currently
executing. Otherwise we will end up with USB serial
devices bound to the correct serial driver but wrong
USB driver.
An example of such cross-probing, where the usbserial_generic
USB driver has found the sierra serial driver:
May 29 18:26:15 nemi kernel: [ 4442.559246] usbserial_generic 4-4:1.0: Sierra USB modem converter detected
May 29 18:26:20 nemi kernel: [ 4447.556747] usbserial_generic 4-4:1.2: Sierra USB modem converter detected
May 29 18:26:25 nemi kernel: [ 4452.557288] usbserial_generic 4-4:1.3: Sierra USB modem converter detected
sysfs view of the same problem:
bjorn@nemi:~$ ls -l /sys/bus/usb/drivers/sierra/
total 0
--w------- 1 root root 4096 May 29 18:23 bind
lrwxrwxrwx 1 root root 0 May 29 18:23 module -> ../../../../module/usbserial
--w------- 1 root root 4096 May 29 18:23 uevent
--w------- 1 root root 4096 May 29 18:23 unbind
bjorn@nemi:~$ ls -l /sys/bus/usb-serial/drivers/sierra/
total 0
--w------- 1 root root 4096 May 29 18:23 bind
lrwxrwxrwx 1 root root 0 May 29 18:23 module -> ../../../../module/sierra
-rw-r--r-- 1 root root 4096 May 29 18:23 new_id
lrwxrwxrwx 1 root root 0 May 29 18:32 ttyUSB0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/ttyUSB0
lrwxrwxrwx 1 root root 0 May 29 18:32 ttyUSB1 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2/ttyUSB1
lrwxrwxrwx 1 root root 0 May 29 18:32 ttyUSB2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3/ttyUSB2
--w------- 1 root root 4096 May 29 18:23 uevent
--w------- 1 root root 4096 May 29 18:23 unbind
bjorn@nemi:~$ ls -l /sys/bus/usb/drivers/usbserial_generic/
total 0
lrwxrwxrwx 1 root root 0 May 29 18:33 4-4:1.0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0
lrwxrwxrwx 1 root root 0 May 29 18:33 4-4:1.2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2
lrwxrwxrwx 1 root root 0 May 29 18:33 4-4:1.3 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3
--w------- 1 root root 4096 May 29 18:33 bind
lrwxrwxrwx 1 root root 0 May 29 18:33 module -> ../../../../module/usbserial
--w------- 1 root root 4096 May 29 18:22 uevent
--w------- 1 root root 4096 May 29 18:33 unbind
bjorn@nemi:~$ ls -l /sys/bus/usb-serial/drivers/generic/
total 0
--w------- 1 root root 4096 May 29 18:33 bind
lrwxrwxrwx 1 root root 0 May 29 18:33 module -> ../../../../module/usbserial
-rw-r--r-- 1 root root 4096 May 29 18:33 new_id
--w------- 1 root root 4096 May 29 18:22 uevent
--w------- 1 root root 4096 May 29 18:33 unbind
So we end up with a mismatch between the USB driver and the
USB serial driver. The reason for the above is simple: The
USB driver probe will succeed if *any* registered serial
driver matches, and will use that serial driver for all
serial driver functions.
This makes ref counting go wrong. We count the USB driver
as used, but not the USB serial driver. This may result
in Oops'es as demonstrated by Johan Hovold <jhovold@gmail.com>:
[11811.646396] drivers/usb/serial/usb-serial.c: get_free_serial 1
[11811.646443] drivers/usb/serial/usb-serial.c: get_free_serial - minor base = 0
[11811.646460] drivers/usb/serial/usb-serial.c: usb_serial_probe - registering ttyUSB0
[11811.646766] usb 6-1: pl2303 converter now attached to ttyUSB0
[11812.264197] USB Serial deregistering driver FTDI USB Serial Device
[11812.264865] usbcore: deregistering interface driver ftdi_sio
[11812.282180] USB Serial deregistering driver pl2303
[11812.283141] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[11812.283272] usbcore: deregistering interface driver pl2303
[11812.301056] USB Serial deregistering driver generic
[11812.301186] usbcore: deregistering interface driver usbserial_generic
[11812.301259] drivers/usb/serial/usb-serial.c: usb_serial_disconnect
[11812.301823] BUG: unable to handle kernel paging request at
f8e7438c
[11812.301845] IP: [<
f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial]
[11812.301871] *pde =
357ef067 *pte =
00000000
[11812.301957] Oops: 0000 [#1] PREEMPT SMP
[11812.301983] Modules linked in: usbserial(-) [last unloaded: pl2303]
[11812.302008]
[11812.302019] Pid: 1323, comm: modprobe Tainted: G W 3.4.0-rc7+ #101 Dell Inc. Vostro 1520/0T816J
[11812.302115] EIP: 0060:[<
f8e38445>] EFLAGS:
00010246 CPU: 1
[11812.302130] EIP is at usb_serial_disconnect+0xb5/0x100 [usbserial]
[11812.302141] EAX:
f508a180 EBX:
f508a180 ECX:
00000000 EDX:
f8e74300
[11812.302151] ESI:
f5050800 EDI:
00000001 EBP:
f5141e78 ESP:
f5141e58
[11812.302160] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[11812.302170] CR0:
8005003b CR2:
f8e7438c CR3:
34848000 CR4:
000007d0
[11812.302180] DR0:
00000000 DR1:
00000000 DR2:
00000000 DR3:
00000000
[11812.302189] DR6:
ffff0ff0 DR7:
00000400
[11812.302199] Process modprobe (pid: 1323, ti=
f5140000 task=
f61e2bc0 task.ti=
f5140000)
[11812.302209] Stack:
[11812.302216]
f8e3be0f f8e3b29c f8e3ae00 00000000 f513641c f5136400 f513641c f507a540
[11812.302325]
f5141e98 c133d2c1 00000000 00000000 f509c400 f513641c f507a590 f5136450
[11812.302372]
f5141ea8 c12f0344 f513641c f507a590 f5141ebc c12f0c67 00000000 f507a590
[11812.302419] Call Trace:
[11812.302439] [<
c133d2c1>] usb_unbind_interface+0x51/0x190
[11812.302456] [<
c12f0344>] __device_release_driver+0x64/0xb0
[11812.302469] [<
c12f0c67>] driver_detach+0x97/0xa0
[11812.302483] [<
c12f001c>] bus_remove_driver+0x6c/0xe0
[11812.302500] [<
c145938d>] ? __mutex_unlock_slowpath+0xcd/0x140
[11812.302514] [<
c12f0ff9>] driver_unregister+0x49/0x80
[11812.302528] [<
c1457df6>] ? printk+0x1d/0x1f
[11812.302540] [<
c133c50d>] usb_deregister+0x5d/0xb0
[11812.302557] [<
f8e37c55>] ? usb_serial_deregister+0x45/0x50 [usbserial]
[11812.302575] [<
f8e37c8d>] usb_serial_deregister_drivers+0x2d/0x40 [usbserial]
[11812.302593] [<
f8e3a6e2>] usb_serial_generic_deregister+0x12/0x20 [usbserial]
[11812.302611] [<
f8e3acf0>] usb_serial_exit+0x8/0x32 [usbserial]
[11812.302716] [<
c1080b48>] sys_delete_module+0x158/0x260
[11812.302730] [<
c110594e>] ? mntput+0x1e/0x30
[11812.302746] [<
c145c3c3>] ? sysenter_exit+0xf/0x18
[11812.302746] [<
c107777c>] ? trace_hardirqs_on_caller+0xec/0x170
[11812.302746] [<
c145c390>] sysenter_do_call+0x12/0x36
[11812.302746] Code: 24 02 00 00 e8 dd f3 20 c8 f6 86 74 02 00 00 02 74 b4 8d 86 4c 02 00 00 47 e8 78 55 4b c8 0f b6 43 0e 39 f8 7f a9 8b 53 04 89 d8 <ff> 92 8c 00 00 00 89 d8 e8 0e ff ff ff 8b 45 f0 c7 44 24 04 2f
[11812.302746] EIP: [<
f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial] SS:ESP 0068:
f5141e58
[11812.302746] CR2:
00000000f8e7438c
Fix by only evaluating serial drivers pointing back to the
USB driver we are currently probing. This still allows two
or more drivers to match the same device, running their
serial driver probes to sort out which one to use.
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Tested-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tom Cassidy [Wed, 6 Jun 2012 07:08:48 +0000 (17:08 +1000)]
USB: serial: sierra: Add support for Sierra Wireless AirCard 320U modem
commit
19a3dd1575e954e8c004413bee3e12d3962f2525 upstream.
Add support for Sierra Wireless AirCard 320U modem
Signed-off-by: Tomas Cassidy <tomas.cassidy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Otto Meta [Wed, 6 Jun 2012 16:46:21 +0000 (18:46 +0200)]
usb: cdc-acm: fix devices not unthrottled on open
commit
6c4707f3f8c44ec18282e1c014c80e1c257042f9 upstream.
Currently CDC-ACM devices stay throttled when their TTY is closed while
throttled, stalling further communication attempts after the next open.
Unthrottling during open/activate got lost starting with kernel
3.0.0 and this patch reintroduces it.
Signed-off-by: Otto Meta <otto.patches@sister-shadow.de>
Acked-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Alan Stern [Wed, 13 Jun 2012 15:20:19 +0000 (11:20 -0400)]
USB: add NO_D3_DURING_SLEEP flag and revert
151b61284776be2
commit
c2fb8a3fa25513de8fedb38509b1f15a5bbee47b upstream.
This patch (as1558) fixes a problem affecting several ASUS computers:
The machine crashes or corrupts memory when going into suspend if the
ehci-hcd driver is bound to any controllers. Users have been forced
to unbind or unload ehci-hcd before putting their systems to sleep.
After extensive testing, it was determined that the machines don't
like going into suspend when any EHCI controllers are in the PCI D3
power state. Presumably this is a firmware bug, but there's nothing
we can do about it except to avoid putting the controllers in D3
during system sleep.
The patch adds a new flag to indicate whether the problem is present,
and avoids changing the controller's power state if the flag is set.
Runtime suspend is unaffected; this matters only for system suspend.
However as a side effect, the controller will not respond to remote
wakeup requests while the system is asleep. Hence USB wakeup is not
functional -- but of course, this is already true in the current state
of affairs.
A similar patch has already been applied as commit
151b61284776be2d6f02d48c23c3625678960b97 (USB: EHCI: fix crash during
suspend on ASUS computers). The patch supersedes that one and reverts
it. There are two differences:
The old patch added the flag at the USB level; this patch
adds it at the PCI level.
The old patch applied to all chipsets with the same vendor,
subsystem vendor, and product IDs; this patch makes an
exception for a known-good system (based on DMI information).
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Dâniel Fraga <fragabr@gmail.com>
Tested-by: Andrey Rahmatullin <wrar@wrar.name>
Tested-by: Steven Rostedt <rostedt@goodmis.org>
Reviewed-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Evan McNabb [Sat, 26 May 2012 02:46:14 +0000 (22:46 -0400)]
USB: ftdi-sio: Add support for RT Systems USB-RTS01 serial adapter
commit
e00a54d772210d450e5c1a801534c3c8a448549f upstream.
Add support for RT Systems USB-RTS01 USB to Serial adapter:
http://www.rtsystemsinc.com/Photos/USBRTS01.html
Tested by controlling Icom IC-718 amateur radio transceiver via hamlib.
Signed-off-by: Evan McNabb <evan@mcnabbs.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mikko Tuumanen [Fri, 1 Jun 2012 08:28:55 +0000 (11:28 +0300)]
USB: serial: cp210x: add Optris MS Pro usb id
commit
5bbfa6f427c1d7244a5ee154ab8fa37265a5e049 upstream.
Signed-off-by: Mikko Tuumanen <mikko.tuumanen@qemsoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Alan Cox [Tue, 22 May 2012 19:45:13 +0000 (20:45 +0100)]
USB: mct_u232: Fix incorrect TIOCMSET return
commit
1aa3c63cf0a79153ee13c8f82e4eb6c40b66a161 upstream.
The low level helper returns 1 on success. The ioctl should however return
0. As this is the only user of the helper return, make the helper return 0 or
an error code.
Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=43009
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bjørn Mork [Thu, 24 May 2012 09:19:04 +0000 (11:19 +0200)]
USB: qcserial: Add Sierra Wireless device IDs
commit
c41444ccfa33a1c20efa319e554cb531576e64a2 upstream.
Some additional IDs found in the BSD/GPL licensed out-of-tree
GobiSerial driver from Sierra Wireless.
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tony Zelenoff [Tue, 5 Jun 2012 13:58:04 +0000 (17:58 +0400)]
USB: mos7840: Fix compilation of usb serial driver
commit
b9c87663eead64c767e72a373ae6f8a94bead459 upstream.
The __devinitconst section can't be referenced
from usb_serial_device structure. Thus removed it as
it done in other mos* device drivers.
Error itself:
WARNING: drivers/usb/serial/mos7840.o(.data+0x8): Section mismatch in reference
from the variable moschip7840_4port_device to the variable
.devinit.rodata:id_table
The variable moschip7840_4port_device references
the variable __devinitconst id_table
[v2] no attach now
Signed-off-by: Tony Zelenoff <antonz@parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andiry Xu [Wed, 13 Jun 2012 02:51:57 +0000 (10:51 +0800)]
xHCI: Increase the timeout for controller save/restore state operation
commit
622eb783fe6ff4c1baa47db16c3a5db97f9e6e50 upstream.
When system software decides to power down the xHC with the intent of
resuming operation at a later time, it will ask xHC to save the internal
state and restore it when resume to correctly recover from a power event.
Two bits are used to enable this operation: Save State and Restore State.
xHCI spec 4.23.2 says software should "Set the Controller Save/Restore
State flag in the USBCMD register and wait for the Save/Restore State
Status flag in the USBSTS register to transition to '0'". However, it does
not define how long software should wait for the SSS/RSS bit to transition
to 0.
Currently the timeout is set to 1ms. There is bug report
(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/
1002697)
indicates that the timeout is too short for ASMedia ASM1042 host controller
to save/restore the state successfully. Increase the timeout to 10ms helps to
resolve the issue.
This patch should be backported to stable kernels as old as 2.6.37, that
contain the commit
5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
PCI power management implementation"
Signed-off-by: Andiry Xu <andiry.xu@gmail.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Janne Kalliomäki [Sun, 17 Jun 2012 21:05:24 +0000 (17:05 -0400)]
hfsplus: fix overflow in sector calculations in hfsplus_submit_bio
commit
a6dc8c04218eb752ff79cdc24a995cf51866caed upstream.
The variable io_size was unsigned int, which caused the wrong sector number
to be calculated after aligning it. This then caused mount to fail with big
volumes, as backup volume header information was searched from a
wrong sector.
Signed-off-by: Janne Kalliomäki <janne@tuxera.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Johan Hovold [Tue, 29 May 2012 15:57:52 +0000 (17:57 +0200)]
USB: option: fix port-data abuse
commit
4273f9878b0a8271df055e3c8f2e7f08c6a4a2f4 upstream.
Commit
8b4c6a3ab596961b78465 ("USB: option: Use generic USB wwan code")
moved option port-data allocation to usb_wwan_startup but still cast the
port data to the old struct...
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Johan Hovold [Tue, 29 May 2012 16:22:48 +0000 (18:22 +0200)]
USB: option: fix memory leak
commit
b9c3aab315b51f81649a0d737c4c73783fbd8de0 upstream.
Fix memory leak introduced by commit
383cedc3bb435de7a2 ("USB: serial:
full autosuspend support for the option driver") which allocates
usb-serial data but never frees it.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
说不得 [Mon, 28 May 2012 13:31:29 +0000 (21:31 +0800)]
USB: option: add more YUGA device ids
commit
0ef0be15fd2564767f114c249fc4af704d8e16f4 upstream.
Signed-off-by: gavin zhu <gavin.zhu@qq.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andrew Bird [Mon, 28 May 2012 11:43:06 +0000 (12:43 +0100)]
USB: option: Updated Huawei K4605 has better id
commit
42ca7da1c2363dbef4ba1b6917c4c02274b6a5e2 upstream.
Later firmwares for this device now have proper subclass and
protocol info so we can identify it nicely without needing to use
the blacklist. I'm not removing the old 0xff matching as there
may be devices in the field that still need that.
Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bjørn Mork [Sat, 19 May 2012 17:20:50 +0000 (19:20 +0200)]
USB: option: Add Vodafone/Huawei K5005 support
commit
4cbbb039a9719fb3bba73d255c6a95bc6dc6428b upstream.
Tested-by: Thomas Schäfer <tschaefer@t-online.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Trond Myklebust [Thu, 31 May 2012 19:26:38 +0000 (15:26 -0400)]
NFSv4.1: Fix a request leak on the back channel
commit
b3b02ae5865c2dcd506322e0fc6def59a042e72f upstream.
If the call to svc_process_common() fails, then the request
needs to be freed before we can exit bc_svc_process.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andre Przywara [Tue, 29 May 2012 11:07:31 +0000 (13:07 +0200)]
xen/setup: filter APERFMPERF cpuid feature out
commit
5e626254206a709c6e937f3dda69bf26c7344f6f upstream.
Xen PV kernels allow access to the APERF/MPERF registers to read the
effective frequency. Access to the MSRs is however redirected to the
currently scheduled physical CPU, making consecutive read and
compares unreliable. In addition each rdmsr traps into the hypervisor.
So to avoid bogus readouts and expensive traps, disable the kernel
internal feature flag for APERF/MPERF if running under Xen.
This will
a) remove the aperfmperf flag from /proc/cpuinfo
b) not mislead the power scheduler (arch/x86/kernel/cpu/sched.c) to
use the feature to improve scheduling (by default disabled)
c) not mislead the cpufreq driver to use the MSRs
This does not cover userland programs which access the MSRs via the
device file interface, but this will be addressed separately.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jaccon Bastiaansen [Mon, 30 Apr 2012 09:53:43 +0000 (11:53 +0200)]
ARM i.MX imx21ads: Fix overlapping static i/o mappings
commit
350ab15bb2ffe7103bc6bf6c634f3c5b286eaf2a upstream.
The statically defined I/O memory regions for the i.MX21 on chip
peripherals and the on board I/O peripherals of the i.MX21ADS board
overlap. This results in a kernel crash during startup. This is fixed
by reducing the memory range for the on board I/O peripherals to the
actually required range.
Signed-off-by: Jaccon Bastiaansen <jaccon.bastiaansen@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
zsq [Thu, 21 Jun 2012 03:00:01 +0000 (11:00 +0800)]
Merge branch 'develop-3.0' of ssh://10.10.10.29/rk/kernel into develop-3.0
zsq [Thu, 21 Jun 2012 02:59:25 +0000 (10:59 +0800)]
fix rga prescale mode mem leak
张晴 [Thu, 21 Jun 2012 02:58:35 +0000 (10:58 +0800)]
rk30:sdk:Single battery of low-power detection by wm8326
Dmitry Shmidt [Wed, 20 Jun 2012 17:22:51 +0000 (10:22 -0700)]
net: wireless: bcmdhd: Ignore error if "chanspecs" command is not supported
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
yangkai [Wed, 20 Jun 2012 09:12:48 +0000 (17:12 +0800)]
diasble host2.0 if no device connect, fix a pcd disconnect bug
yangkai [Wed, 20 Jun 2012 08:45:20 +0000 (16:45 +0800)]
down the power consume in suspend state with 100ohm between diff CLK
蓝斌元 [Wed, 20 Jun 2012 08:26:37 +0000 (16:26 +0800)]
sc8803: update sc8800.c
lw [Wed, 20 Jun 2012 07:20:39 +0000 (15:20 +0800)]
add spi bus test code
lw@rock-chips.com [Wed, 20 Jun 2012 04:02:50 +0000 (12:02 +0800)]
modify gsensor lis3dh active function
Dmitry Shmidt [Thu, 14 Jun 2012 18:32:15 +0000 (11:32 -0700)]
net: wireless: bcmdhd: Reduce priority for dhd_dpc and watchdog
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Dmitry Shmidt [Thu, 14 Jun 2012 17:59:25 +0000 (10:59 -0700)]
net: wireless: bcmdhd: Reload FW in case of constant scan failure
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Zheng Yang [Tue, 19 Jun 2012 08:52:47 +0000 (16:52 +0800)]
rk30 hdmi:
add CONFIG_HDMI_RK30_CTL_CODEC to enable control codec:
When HDMI inserted, mute codec analog output;
When HDMI removed, unmute codec analog output.
lw@rock-chips.com [Tue, 19 Jun 2012 06:13:24 +0000 (14:13 +0800)]
modify temperature Kconfig
kfx [Tue, 19 Jun 2012 02:07:08 +0000 (10:07 +0800)]
update adc drivers: fix: 'adc get value timeout' and 'adc get zero, but voltage is NOT zero'
zwp [Mon, 18 Jun 2012 03:53:38 +0000 (11:53 +0800)]
disable usb host2.0 to save power when early suspend.