Commit graph

113 commits

Author SHA1 Message Date
黄涛
a2ad9f9801 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
2012-07-12 18:46:41 +08:00
Nicolas Pitre
0d7755e450 mmc: sdio: avoid spurious calls to interrupt handlers
commit bbbc4c4d8c upstream.

Commit 06e8935feb ("optimized SDIO IRQ handling for single irq")
introduced some spurious calls to SDIO function interrupt handlers,
such as when the SDIO IRQ thread is started, or the safety check
performed upon a system resume.  Let's add a flag to perform the
optimization only when a real interrupt is signaled by the host
driver and we know there is no point confirming it.

Reported-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-01 15:13:00 +08:00
黄涛
8aac13f440 Merge remote-tracking branch 'remotes/aosp/android-3.0' into develop-3.0
Conflicts:
	drivers/mmc/card/block.c
	drivers/net/usb/asix.c
	drivers/net/wireless/airo.c
	drivers/net/wireless/ath/ath5k/base.c
	drivers/net/wireless/ath/ath9k/ar9002_calib.c
	drivers/net/wireless/ath/ath9k/ar9002_hw.c
	drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
	drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
	drivers/net/wireless/ath/ath9k/ar9003_hw.c
	drivers/net/wireless/ath/ath9k/ar9003_phy.h
	drivers/net/wireless/ath/ath9k/hw.c
	drivers/net/wireless/ath/ath9k/hw.h
	drivers/net/wireless/ath/ath9k/init.c
	drivers/net/wireless/ath/ath9k/main.c
	drivers/net/wireless/ath/ath9k/pci.c
	drivers/net/wireless/b43/main.c
	drivers/net/wireless/hostap/hostap_main.c
	drivers/net/wireless/iwlwifi/iwl-5000.c
	drivers/net/wireless/iwlwifi/iwl-agn.c
	drivers/net/wireless/iwlwifi/iwl-core.h
	drivers/net/wireless/iwlwifi/iwl-power.c
	drivers/net/wireless/iwlwifi/iwl-scan.c
	drivers/net/wireless/iwlwifi/iwl-tx.c
	drivers/net/wireless/rt2x00/rt2800lib.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/rt2x00/rt2x00mac.c
	drivers/net/wireless/rt2x00/rt2x00queue.c
	drivers/net/wireless/rt2x00/rt2x00queue.h
	drivers/net/wireless/rt2x00/rt2x00usb.c
	drivers/usb/serial/option.c
2011-11-09 13:06:28 +08:00
黄涛
1bcabbad76 Revert "temp revert rk change"
This reverts commit 15f7fabcb8.

Conflicts:

	.gitignore
	arch/arm/boot/compressed/head.S
	arch/arm/common/gic.c
	arch/arm/kernel/Makefile
	arch/arm/mm/proc-v7.S
	arch/arm/tools/mach-types
	arch/arm/vfp/vfphw.S
	drivers/Kconfig
	drivers/Makefile
	drivers/char/Makefile
	drivers/cpufreq/cpufreq_ondemand.c
	drivers/gpio/gpiolib.c
	drivers/gpio/tps65910-gpio.c
	drivers/input/Makefile
	drivers/input/keyboard/Kconfig
	drivers/input/keyboard/Makefile
	drivers/input/touchscreen/Kconfig
	drivers/media/video/Makefile
	drivers/media/video/ov2640.c
	drivers/media/video/soc_camera.c
	drivers/media/video/uvc/uvc_v4l2.c
	drivers/media/video/v4l2-ioctl.c
	drivers/mfd/Kconfig
	drivers/mfd/Makefile
	drivers/mfd/wm831x-core.c
	drivers/mfd/wm831x-i2c.c
	drivers/mfd/wm831x-irq.c
	drivers/mfd/wm831x-spi.c
	drivers/mfd/wm8994-core.c
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/misc/pmem.c
	drivers/mmc/card/block.c
	drivers/mmc/core/core.c
	drivers/mmc/core/mmc.c
	drivers/mmc/core/sd.c
	drivers/mmc/core/sdio.c
	drivers/mmc/host/Makefile
	drivers/net/wireless/Kconfig
	drivers/net/wireless/Makefile
	drivers/net/wireless/bcm4329/bcmsdh_linux.c
	drivers/net/wireless/bcm4329/dhd.h
	drivers/net/wireless/bcm4329/dhd_linux.c
	drivers/net/wireless/bcm4329/wl_iw.c
	drivers/net/wireless/bcm4329/wl_iw.h
	drivers/power/wm831x_power.c
	drivers/regulator/Makefile
	drivers/regulator/core.c
	drivers/regulator/tps65910-regulator.c
	drivers/regulator/wm831x-dcdc.c
	drivers/regulator/wm831x-isink.c
	drivers/regulator/wm831x-ldo.c
	drivers/rtc/Kconfig
	drivers/rtc/Makefile
	drivers/serial/Kconfig
	drivers/serial/Makefile
	drivers/staging/Kconfig
	drivers/staging/Makefile
	drivers/usb/Makefile
	drivers/usb/gadget/Kconfig
	drivers/usb/gadget/android.c
	drivers/usb/gadget/f_mass_storage.c
	drivers/usb/serial/option.c
	drivers/video/backlight/wm831x_bl.c
	fs/fat/dir.c
	fs/fat/fatent.c
	fs/fat/inode.c
	fs/yaffs2/yaffs_fs.c
	fs/yaffs2/yaffs_mtdif2.c
	include/linux/i2c.h
	include/linux/mfd/wm831x/core.h
	include/linux/mfd/wm831x/pdata.h
	include/linux/mfd/wm8994/core.h
	include/linux/mfd/wm8994/pdata.h
	include/linux/regulator/consumer.h
	include/media/v4l2-chip-ident.h
	kernel/power/earlysuspend.c
	kernel/power/wakelock.c
	kernel/sys.c
	mm/page_alloc.c
	sound/soc/codecs/Kconfig
	sound/soc/codecs/Makefile
	sound/soc/codecs/wm8900.c
	sound/soc/codecs/wm8988.c
	sound/soc/codecs/wm8994.c
	sound/soc/codecs/wm8994.h
	sound/soc/codecs/wm_hubs.c
	sound/soc/soc-cache.c
2011-11-04 17:43:18 +08:00
黄涛
677ea8d595 Merge remote-tracking branch 'remotes/aosp/android-3.0' into develop-3.0
Conflicts:
	drivers/net/wireless/adm8211.c
	drivers/net/wireless/airo.c
	drivers/net/wireless/airo_cs.c
	drivers/net/wireless/at76c50x-usb.c
	drivers/net/wireless/at76c50x-usb.h
	drivers/net/wireless/ath/Kconfig
	drivers/net/wireless/ath/Makefile
	drivers/net/wireless/ath/ath.h
	drivers/net/wireless/ath/ath5k/Kconfig
	drivers/net/wireless/ath/ath5k/Makefile
	drivers/net/wireless/ath/ath5k/ani.c
	drivers/net/wireless/ath/ath5k/ani.h
	drivers/net/wireless/ath/ath5k/ath5k.h
	drivers/net/wireless/ath/ath5k/attach.c
	drivers/net/wireless/ath/ath5k/base.c
	drivers/net/wireless/ath/ath5k/base.h
	drivers/net/wireless/ath/ath5k/caps.c
	drivers/net/wireless/ath/ath5k/debug.c
	drivers/net/wireless/ath/ath5k/debug.h
	drivers/net/wireless/ath/ath5k/desc.c
	drivers/net/wireless/ath/ath5k/desc.h
	drivers/net/wireless/ath/ath5k/dma.c
	drivers/net/wireless/ath/ath5k/eeprom.c
	drivers/net/wireless/ath/ath5k/eeprom.h
	drivers/net/wireless/ath/ath5k/initvals.c
	drivers/net/wireless/ath/ath5k/led.c
	drivers/net/wireless/ath/ath5k/pcu.c
	drivers/net/wireless/ath/ath5k/phy.c
	drivers/net/wireless/ath/ath5k/qcu.c
	drivers/net/wireless/ath/ath5k/reg.h
	drivers/net/wireless/ath/ath5k/reset.c
	drivers/net/wireless/ath/ath5k/rfbuffer.h
	drivers/net/wireless/ath/ath5k/sysfs.c
	drivers/net/wireless/ath/ath9k/Kconfig
	drivers/net/wireless/ath/ath9k/Makefile
	drivers/net/wireless/ath/ath9k/ahb.c
	drivers/net/wireless/ath/ath9k/ani.c
	drivers/net/wireless/ath/ath9k/ani.h
	drivers/net/wireless/ath/ath9k/ar5008_initvals.h
	drivers/net/wireless/ath/ath9k/ar5008_phy.c
	drivers/net/wireless/ath/ath9k/ar9001_initvals.h
	drivers/net/wireless/ath/ath9k/ar9002_calib.c
	drivers/net/wireless/ath/ath9k/ar9002_hw.c
	drivers/net/wireless/ath/ath9k/ar9002_initvals.h
	drivers/net/wireless/ath/ath9k/ar9002_mac.c
	drivers/net/wireless/ath/ath9k/ar9002_phy.c
	drivers/net/wireless/ath/ath9k/ar9002_phy.h
	drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
	drivers/net/wireless/ath/ath9k/ar9003_calib.c
	drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
	drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
	drivers/net/wireless/ath/ath9k/ar9003_hw.c
	drivers/net/wireless/ath/ath9k/ar9003_mac.c
	drivers/net/wireless/ath/ath9k/ar9003_mac.h
	drivers/net/wireless/ath/ath9k/ar9003_paprd.c
	drivers/net/wireless/ath/ath9k/ar9003_phy.c
	drivers/net/wireless/ath/ath9k/ar9003_phy.h
	drivers/net/wireless/ath/ath9k/ath9k.h
	drivers/net/wireless/ath/ath9k/beacon.c
	drivers/net/wireless/ath/ath9k/btcoex.c
	drivers/net/wireless/ath/ath9k/btcoex.h
	drivers/net/wireless/ath/ath9k/calib.c
	drivers/net/wireless/ath/ath9k/calib.h
	drivers/net/wireless/ath/ath9k/common.c
	drivers/net/wireless/ath/ath9k/common.h
	drivers/net/wireless/ath/ath9k/debug.c
	drivers/net/wireless/ath/ath9k/debug.h
	drivers/net/wireless/ath/ath9k/eeprom.c
	drivers/net/wireless/ath/ath9k/eeprom.h
	drivers/net/wireless/ath/ath9k/eeprom_4k.c
	drivers/net/wireless/ath/ath9k/eeprom_9287.c
	drivers/net/wireless/ath/ath9k/eeprom_def.c
	drivers/net/wireless/ath/ath9k/gpio.c
	drivers/net/wireless/ath/ath9k/hif_usb.c
	drivers/net/wireless/ath/ath9k/hif_usb.h
	drivers/net/wireless/ath/ath9k/htc.h
	drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
	drivers/net/wireless/ath/ath9k/htc_drv_init.c
	drivers/net/wireless/ath/ath9k/htc_drv_main.c
	drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
	drivers/net/wireless/ath/ath9k/htc_hst.c
	drivers/net/wireless/ath/ath9k/htc_hst.h
	drivers/net/wireless/ath/ath9k/hw-ops.h
	drivers/net/wireless/ath/ath9k/hw.c
	drivers/net/wireless/ath/ath9k/hw.h
	drivers/net/wireless/ath/ath9k/init.c
	drivers/net/wireless/ath/ath9k/mac.c
	drivers/net/wireless/ath/ath9k/mac.h
	drivers/net/wireless/ath/ath9k/main.c
	drivers/net/wireless/ath/ath9k/pci.c
	drivers/net/wireless/ath/ath9k/phy.h
	drivers/net/wireless/ath/ath9k/rc.c
	drivers/net/wireless/ath/ath9k/rc.h
	drivers/net/wireless/ath/ath9k/recv.c
	drivers/net/wireless/ath/ath9k/reg.h
	drivers/net/wireless/ath/ath9k/wmi.c
	drivers/net/wireless/ath/ath9k/wmi.h
	drivers/net/wireless/ath/ath9k/xmit.c
	drivers/net/wireless/ath/debug.c
	drivers/net/wireless/ath/hw.c
	drivers/net/wireless/ath/main.c
	drivers/net/wireless/ath/reg.h
	drivers/net/wireless/ath/regd.c
	drivers/net/wireless/ath/regd.h
	drivers/net/wireless/ath/regd_common.h
	drivers/net/wireless/atmel.c
	drivers/net/wireless/atmel_cs.c
	drivers/net/wireless/b43/Kconfig
	drivers/net/wireless/b43/Makefile
	drivers/net/wireless/b43/b43.h
	drivers/net/wireless/b43/debugfs.c
	drivers/net/wireless/b43/dma.c
	drivers/net/wireless/b43/dma.h
	drivers/net/wireless/b43/leds.c
	drivers/net/wireless/b43/lo.c
	drivers/net/wireless/b43/main.c
	drivers/net/wireless/b43/main.h
	drivers/net/wireless/b43/pcmcia.c
	drivers/net/wireless/b43/phy_a.c
	drivers/net/wireless/b43/phy_common.c
	drivers/net/wireless/b43/phy_common.h
	drivers/net/wireless/b43/phy_g.c
	drivers/net/wireless/b43/phy_g.h
	drivers/net/wireless/b43/phy_lp.c
	drivers/net/wireless/b43/phy_n.c
	drivers/net/wireless/b43/phy_n.h
	drivers/net/wireless/b43/pio.c
	drivers/net/wireless/b43/rfkill.c
	drivers/net/wireless/b43/sdio.c
	drivers/net/wireless/b43/sysfs.c
	drivers/net/wireless/b43/tables_lpphy.c
	drivers/net/wireless/b43/tables_nphy.c
	drivers/net/wireless/b43/tables_nphy.h
	drivers/net/wireless/b43/wa.c
	drivers/net/wireless/b43/xmit.c
	drivers/net/wireless/b43/xmit.h
	drivers/net/wireless/b43legacy/b43legacy.h
	drivers/net/wireless/b43legacy/debugfs.c
	drivers/net/wireless/b43legacy/main.c
	drivers/net/wireless/b43legacy/phy.c
	drivers/net/wireless/b43legacy/rfkill.c
	drivers/net/wireless/b43legacy/xmit.c
	drivers/net/wireless/hostap/hostap_ap.c
	drivers/net/wireless/hostap/hostap_ap.h
	drivers/net/wireless/hostap/hostap_config.h
	drivers/net/wireless/hostap/hostap_cs.c
	drivers/net/wireless/hostap/hostap_hw.c
	drivers/net/wireless/hostap/hostap_ioctl.c
	drivers/net/wireless/hostap/hostap_main.c
	drivers/net/wireless/hostap/hostap_wlan.h
	drivers/net/wireless/ipw2x00/ipw2100.c
	drivers/net/wireless/ipw2x00/ipw2100.h
	drivers/net/wireless/ipw2x00/ipw2200.c
	drivers/net/wireless/ipw2x00/ipw2200.h
	drivers/net/wireless/ipw2x00/libipw_module.c
	drivers/net/wireless/ipw2x00/libipw_rx.c
	drivers/net/wireless/iwlwifi/Kconfig
	drivers/net/wireless/iwlwifi/Makefile
	drivers/net/wireless/iwlwifi/iwl-1000.c
	drivers/net/wireless/iwlwifi/iwl-5000-hw.h
	drivers/net/wireless/iwlwifi/iwl-5000.c
	drivers/net/wireless/iwlwifi/iwl-6000-hw.h
	drivers/net/wireless/iwlwifi/iwl-6000.c
	drivers/net/wireless/iwlwifi/iwl-agn-calib.c
	drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
	drivers/net/wireless/iwlwifi/iwl-agn-hw.h
	drivers/net/wireless/iwlwifi/iwl-agn-ict.c
	drivers/net/wireless/iwlwifi/iwl-agn-lib.c
	drivers/net/wireless/iwlwifi/iwl-agn-rs.c
	drivers/net/wireless/iwlwifi/iwl-agn-rs.h
	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-commands.h
	drivers/net/wireless/iwlwifi/iwl-core.c
	drivers/net/wireless/iwlwifi/iwl-core.h
	drivers/net/wireless/iwlwifi/iwl-csr.h
	drivers/net/wireless/iwlwifi/iwl-debug.h
	drivers/net/wireless/iwlwifi/iwl-debugfs.c
	drivers/net/wireless/iwlwifi/iwl-dev.h
	drivers/net/wireless/iwlwifi/iwl-devtrace.c
	drivers/net/wireless/iwlwifi/iwl-devtrace.h
	drivers/net/wireless/iwlwifi/iwl-eeprom.c
	drivers/net/wireless/iwlwifi/iwl-eeprom.h
	drivers/net/wireless/iwlwifi/iwl-fh.h
	drivers/net/wireless/iwlwifi/iwl-hcmd.c
	drivers/net/wireless/iwlwifi/iwl-helpers.h
	drivers/net/wireless/iwlwifi/iwl-io.h
	drivers/net/wireless/iwlwifi/iwl-led.c
	drivers/net/wireless/iwlwifi/iwl-led.h
	drivers/net/wireless/iwlwifi/iwl-power.c
	drivers/net/wireless/iwlwifi/iwl-power.h
	drivers/net/wireless/iwlwifi/iwl-prph.h
	drivers/net/wireless/iwlwifi/iwl-rx.c
	drivers/net/wireless/iwlwifi/iwl-scan.c
	drivers/net/wireless/iwlwifi/iwl-sta.c
	drivers/net/wireless/iwlwifi/iwl-sta.h
	drivers/net/wireless/iwlwifi/iwl-tx.c
	drivers/net/wireless/iwmc3200wifi/cfg80211.c
	drivers/net/wireless/iwmc3200wifi/commands.c
	drivers/net/wireless/iwmc3200wifi/debugfs.c
	drivers/net/wireless/iwmc3200wifi/hal.c
	drivers/net/wireless/iwmc3200wifi/netdev.c
	drivers/net/wireless/iwmc3200wifi/rx.c
	drivers/net/wireless/iwmc3200wifi/sdio.c
	drivers/net/wireless/iwmc3200wifi/tx.c
	drivers/net/wireless/libertas/README
	drivers/net/wireless/libertas/cfg.c
	drivers/net/wireless/libertas/cmd.c
	drivers/net/wireless/libertas/cmdresp.c
	drivers/net/wireless/libertas/debugfs.c
	drivers/net/wireless/libertas/decl.h
	drivers/net/wireless/libertas/defs.h
	drivers/net/wireless/libertas/dev.h
	drivers/net/wireless/libertas/ethtool.c
	drivers/net/wireless/libertas/host.h
	drivers/net/wireless/libertas/if_cs.c
	drivers/net/wireless/libertas/if_sdio.c
	drivers/net/wireless/libertas/if_sdio.h
	drivers/net/wireless/libertas/if_spi.c
	drivers/net/wireless/libertas/if_spi.h
	drivers/net/wireless/libertas/if_usb.c
	drivers/net/wireless/libertas/if_usb.h
	drivers/net/wireless/libertas/main.c
	drivers/net/wireless/libertas/mesh.c
	drivers/net/wireless/libertas/mesh.h
	drivers/net/wireless/libertas/rx.c
	drivers/net/wireless/libertas/tx.c
	drivers/net/wireless/libertas/types.h
	drivers/net/wireless/libertas_tf/if_usb.c
	drivers/net/wireless/libertas_tf/main.c
	drivers/net/wireless/mac80211_hwsim.c
	drivers/net/wireless/mwl8k.c
	drivers/net/wireless/orinoco/cfg.c
	drivers/net/wireless/orinoco/hw.c
	drivers/net/wireless/orinoco/main.c
	drivers/net/wireless/orinoco/orinoco_cs.c
	drivers/net/wireless/orinoco/orinoco_usb.c
	drivers/net/wireless/orinoco/scan.c
	drivers/net/wireless/orinoco/scan.h
	drivers/net/wireless/orinoco/spectrum_cs.c
	drivers/net/wireless/orinoco/wext.c
	drivers/net/wireless/p54/Kconfig
	drivers/net/wireless/p54/eeprom.c
	drivers/net/wireless/p54/eeprom.h
	drivers/net/wireless/p54/fwio.c
	drivers/net/wireless/p54/lmac.h
	drivers/net/wireless/p54/main.c
	drivers/net/wireless/p54/p54.h
	drivers/net/wireless/p54/p54pci.c
	drivers/net/wireless/p54/p54spi.c
	drivers/net/wireless/p54/p54spi_eeprom.h
	drivers/net/wireless/p54/p54usb.c
	drivers/net/wireless/p54/txrx.c
	drivers/net/wireless/prism54/isl_ioctl.c
	drivers/net/wireless/prism54/islpci_dev.c
	drivers/net/wireless/prism54/islpci_eth.c
	drivers/net/wireless/prism54/islpci_hotplug.c
	drivers/net/wireless/ray_cs.c
	drivers/net/wireless/ray_cs.h
	drivers/net/wireless/rayctl.h
	drivers/net/wireless/rndis_wlan.c
	drivers/net/wireless/rt2x00/Kconfig
	drivers/net/wireless/rt2x00/Makefile
	drivers/net/wireless/rt2x00/rt2400pci.c
	drivers/net/wireless/rt2x00/rt2400pci.h
	drivers/net/wireless/rt2x00/rt2500pci.c
	drivers/net/wireless/rt2x00/rt2500pci.h
	drivers/net/wireless/rt2x00/rt2500usb.c
	drivers/net/wireless/rt2x00/rt2800.h
	drivers/net/wireless/rt2x00/rt2800lib.c
	drivers/net/wireless/rt2x00/rt2800lib.h
	drivers/net/wireless/rt2x00/rt2800pci.c
	drivers/net/wireless/rt2x00/rt2800pci.h
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/rt2x00/rt2800usb.h
	drivers/net/wireless/rt2x00/rt2x00.h
	drivers/net/wireless/rt2x00/rt2x00config.c
	drivers/net/wireless/rt2x00/rt2x00crypto.c
	drivers/net/wireless/rt2x00/rt2x00debug.c
	drivers/net/wireless/rt2x00/rt2x00dev.c
	drivers/net/wireless/rt2x00/rt2x00dump.h
	drivers/net/wireless/rt2x00/rt2x00firmware.c
	drivers/net/wireless/rt2x00/rt2x00lib.h
	drivers/net/wireless/rt2x00/rt2x00link.c
	drivers/net/wireless/rt2x00/rt2x00mac.c
	drivers/net/wireless/rt2x00/rt2x00pci.c
	drivers/net/wireless/rt2x00/rt2x00pci.h
	drivers/net/wireless/rt2x00/rt2x00queue.c
	drivers/net/wireless/rt2x00/rt2x00queue.h
	drivers/net/wireless/rt2x00/rt2x00reg.h
	drivers/net/wireless/rt2x00/rt2x00soc.c
	drivers/net/wireless/rt2x00/rt2x00usb.c
	drivers/net/wireless/rt2x00/rt2x00usb.h
	drivers/net/wireless/rt2x00/rt61pci.c
	drivers/net/wireless/rt2x00/rt61pci.h
	drivers/net/wireless/rt2x00/rt73usb.c
	drivers/net/wireless/rt2x00/rt73usb.h
	drivers/net/wireless/rtl818x/Makefile
	drivers/net/wireless/rtl818x/rtl8180/grf5101.h
	drivers/net/wireless/rtl818x/rtl8180/max2820.h
	drivers/net/wireless/rtl818x/rtl8180/rtl8180.h
	drivers/net/wireless/rtl818x/rtl8180/rtl8225.h
	drivers/net/wireless/rtl818x/rtl8180/sa2400.h
	drivers/net/wireless/rtl818x/rtl8187/leds.h
	drivers/net/wireless/rtl818x/rtl8187/rfkill.h
	drivers/net/wireless/rtl818x/rtl8187/rtl8225.h
	drivers/net/wireless/wl1251/io.h
	drivers/net/wireless/wl12xx/Kconfig
	drivers/net/wireless/wl12xx/Makefile
	drivers/net/wireless/wl12xx/wl12xx_80211.h
	drivers/net/wireless/wl3501_cs.c
	drivers/net/wireless/zd1201.c
	drivers/net/wireless/zd1211rw/Makefile
	drivers/net/wireless/zd1211rw/zd_chip.c
	drivers/net/wireless/zd1211rw/zd_chip.h
	drivers/net/wireless/zd1211rw/zd_def.h
	drivers/net/wireless/zd1211rw/zd_mac.c
	drivers/net/wireless/zd1211rw/zd_mac.h
	drivers/net/wireless/zd1211rw/zd_rf.h
	drivers/net/wireless/zd1211rw/zd_rf_al2230.c
	drivers/net/wireless/zd1211rw/zd_rf_al7230b.c
	drivers/net/wireless/zd1211rw/zd_rf_rf2959.c
	drivers/net/wireless/zd1211rw/zd_rf_uw2453.c
	drivers/net/wireless/zd1211rw/zd_usb.c
	drivers/net/wireless/zd1211rw/zd_usb.h
2011-10-28 16:07:07 +08:00
黄涛
3b75e5c0b9 revert android-tegra-2.6.36-honeycomb-mr1-9001adc to v2.6.36 2011-10-28 16:02:47 +08:00
黄涛
15f7fabcb8 temp revert rk change 2011-10-28 15:41:18 +08:00
黄涛
fdfc405c78 Merge remote-tracking branch 'kernel-2.6.32/develop' into develop-2.6.36
Conflicts:
	drivers/media/video/rk29_camera_oneframe.c
	drivers/mmc/core/core.c
	drivers/usb/gadget/f_mass_storage.c
	include/linux/mmc/host.h
2011-10-27 18:40:06 +08:00
xbw
a86175882a Optimize the powe up and down of wifi and SDcard module 2011-10-22 11:19:06 +08:00
黄涛
d120da9fa2 Merge remote-tracking branch 'kernel-2.6.32/develop' into develop-2.6.36
Conflicts:
	arch/arm/mm/mmu.c
	drivers/input/keyboard/Makefile
	drivers/media/video/gc0309.c
	drivers/misc/Kconfig
	drivers/mmc/core/core.c
	drivers/regulator/Kconfig
	drivers/regulator/Makefile
	drivers/usb/gadget/f_mass_storage.c
	drivers/video/backlight/Makefile
	include/linux/fb.h
	include/linux/mmc/host.h
2011-09-26 14:53:47 +08:00
Colin Cross
07b26cd3da mmc: core: host: only use wakelock for detect work
There is no need to take a wakelock for delayed lazy disable
work, it will be cancelled in the suspend handler and force
disabled.  Only take the wakelock when the detect work is
queued, and make sure to drop the wakelock if the work is
cancelled.

Change-Id: I1e507a5f98848954ea21d45e23b6192c3132a349
Signed-off-by: Colin Cross <ccross@android.com>
2011-09-07 17:30:23 -07:00
xbw
aca7b2eafc modify the bug about host-state error 2011-08-31 14:34:13 +08:00
黄涛
44a7c5a23d Merge remote-tracking branch 'remotes/tegra/android-tegra-2.6.36-honeycomb-mr1' into develop-2.6.36
Conflicts:
	Makefile
	arch/arm/Kconfig
	arch/arm/Makefile
	arch/arm/common/Kconfig
	arch/arm/common/Makefile
	arch/arm/common/pl330.c
	arch/arm/include/asm/dma.h
	arch/arm/include/asm/memory.h
	arch/arm/kernel/Makefile
	arch/arm/kernel/dma.c
	arch/arm/kernel/process.c
	arch/arm/mm/Kconfig
	arch/arm/mm/mmu.c
	arch/arm/mm/proc-v7.S
	arch/arm/oprofile/op_model_v7.c
	arch/arm/tools/mach-types
	block/blk-core.c
	drivers/base/firmware_class.c
	drivers/base/platform.c
	drivers/bluetooth/Kconfig
	drivers/bluetooth/hci_h4.c
	drivers/char/Makefile
	drivers/gpio/Kconfig
	drivers/gpio/Makefile
	drivers/gpio/gpiolib.c
	drivers/gpio/wm831x-gpio.c
	drivers/gpio/wm8994-gpio.c
	drivers/i2c/busses/Kconfig
	drivers/i2c/busses/Makefile
	drivers/i2c/i2c-core.c
	drivers/input/keyboard/Kconfig
	drivers/input/keyboard/Makefile
	drivers/input/keyboard/matrix_keypad.c
	drivers/input/misc/Kconfig
	drivers/input/misc/Makefile
	drivers/input/misc/wm831x-on.c
	drivers/input/touchscreen/Kconfig
	drivers/input/touchscreen/Makefile
	drivers/leds/Kconfig
	drivers/leds/Makefile
	drivers/media/video/Kconfig
	drivers/media/video/Makefile
	drivers/media/video/soc_camera.c
	drivers/media/video/uvc/uvc_queue.c
	drivers/mfd/Kconfig
	drivers/mfd/Makefile
	drivers/mfd/wm831x-core.c
	drivers/mfd/wm831x-irq.c
	drivers/mfd/wm8994-core.c
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/mmc/core/sdio_io.c
	drivers/mtd/mtd_blkdevs.c
	drivers/mtd/mtdblock.c
	drivers/mtd/nand/Makefile
	drivers/net/dm9000.c
	drivers/net/irda/Kconfig
	drivers/net/usb/Kconfig
	drivers/net/usb/Makefile
	drivers/net/wireless/Kconfig
	drivers/net/wireless/Makefile
	drivers/net/wireless/adm8211.c
	drivers/net/wireless/adm8211.h
	drivers/net/wireless/airo.c
	drivers/net/wireless/airo_cs.c
	drivers/net/wireless/at76c50x-usb.c
	drivers/net/wireless/at76c50x-usb.h
	drivers/net/wireless/ath/Kconfig
	drivers/net/wireless/ath/Makefile
	drivers/net/wireless/ath/ar9170/Kconfig
	drivers/net/wireless/ath/ar9170/ar9170.h
	drivers/net/wireless/ath/ar9170/cmd.c
	drivers/net/wireless/ath/ar9170/cmd.h
	drivers/net/wireless/ath/ar9170/eeprom.h
	drivers/net/wireless/ath/ar9170/hw.h
	drivers/net/wireless/ath/ar9170/led.c
	drivers/net/wireless/ath/ar9170/mac.c
	drivers/net/wireless/ath/ar9170/main.c
	drivers/net/wireless/ath/ar9170/phy.c
	drivers/net/wireless/ath/ar9170/usb.c
	drivers/net/wireless/ath/ar9170/usb.h
	drivers/net/wireless/ath/ath.h
	drivers/net/wireless/ath/ath5k/Kconfig
	drivers/net/wireless/ath/ath5k/Makefile
	drivers/net/wireless/ath/ath5k/ath5k.h
	drivers/net/wireless/ath/ath5k/attach.c
	drivers/net/wireless/ath/ath5k/base.c
	drivers/net/wireless/ath/ath5k/base.h
	drivers/net/wireless/ath/ath5k/caps.c
	drivers/net/wireless/ath/ath5k/debug.c
	drivers/net/wireless/ath/ath5k/debug.h
	drivers/net/wireless/ath/ath5k/desc.c
	drivers/net/wireless/ath/ath5k/desc.h
	drivers/net/wireless/ath/ath5k/dma.c
	drivers/net/wireless/ath/ath5k/eeprom.c
	drivers/net/wireless/ath/ath5k/eeprom.h
	drivers/net/wireless/ath/ath5k/gpio.c
	drivers/net/wireless/ath/ath5k/initvals.c
	drivers/net/wireless/ath/ath5k/led.c
	drivers/net/wireless/ath/ath5k/pcu.c
	drivers/net/wireless/ath/ath5k/phy.c
	drivers/net/wireless/ath/ath5k/qcu.c
	drivers/net/wireless/ath/ath5k/reg.h
	drivers/net/wireless/ath/ath5k/reset.c
	drivers/net/wireless/ath/ath9k/Kconfig
	drivers/net/wireless/ath/ath9k/Makefile
	drivers/net/wireless/ath/ath9k/ahb.c
	drivers/net/wireless/ath/ath9k/ani.c
	drivers/net/wireless/ath/ath9k/ani.h
	drivers/net/wireless/ath/ath9k/ath9k.h
	drivers/net/wireless/ath/ath9k/beacon.c
	drivers/net/wireless/ath/ath9k/btcoex.c
	drivers/net/wireless/ath/ath9k/btcoex.h
	drivers/net/wireless/ath/ath9k/calib.c
	drivers/net/wireless/ath/ath9k/calib.h
	drivers/net/wireless/ath/ath9k/debug.c
	drivers/net/wireless/ath/ath9k/debug.h
	drivers/net/wireless/ath/ath9k/eeprom.c
	drivers/net/wireless/ath/ath9k/eeprom.h
	drivers/net/wireless/ath/ath9k/eeprom_4k.c
	drivers/net/wireless/ath/ath9k/eeprom_9287.c
	drivers/net/wireless/ath/ath9k/eeprom_def.c
	drivers/net/wireless/ath/ath9k/hw.c
	drivers/net/wireless/ath/ath9k/hw.h
	drivers/net/wireless/ath/ath9k/mac.c
	drivers/net/wireless/ath/ath9k/mac.h
	drivers/net/wireless/ath/ath9k/main.c
	drivers/net/wireless/ath/ath9k/pci.c
	drivers/net/wireless/ath/ath9k/phy.h
	drivers/net/wireless/ath/ath9k/rc.c
	drivers/net/wireless/ath/ath9k/rc.h
	drivers/net/wireless/ath/ath9k/recv.c
	drivers/net/wireless/ath/ath9k/reg.h
	drivers/net/wireless/ath/ath9k/virtual.c
	drivers/net/wireless/ath/ath9k/xmit.c
	drivers/net/wireless/ath/regd.c
	drivers/net/wireless/ath/regd.h
	drivers/net/wireless/ath/regd_common.h
	drivers/net/wireless/atmel.c
	drivers/net/wireless/atmel_cs.c
	drivers/net/wireless/atmel_pci.c
	drivers/net/wireless/b43/Kconfig
	drivers/net/wireless/b43/Makefile
	drivers/net/wireless/b43/b43.h
	drivers/net/wireless/b43/dma.c
	drivers/net/wireless/b43/dma.h
	drivers/net/wireless/b43/leds.c
	drivers/net/wireless/b43/lo.c
	drivers/net/wireless/b43/main.c
	drivers/net/wireless/b43/pcmcia.c
	drivers/net/wireless/b43/phy_a.c
	drivers/net/wireless/b43/phy_common.c
	drivers/net/wireless/b43/phy_common.h
	drivers/net/wireless/b43/phy_g.c
	drivers/net/wireless/b43/phy_lp.c
	drivers/net/wireless/b43/phy_lp.h
	drivers/net/wireless/b43/phy_n.c
	drivers/net/wireless/b43/phy_n.h
	drivers/net/wireless/b43/pio.c
	drivers/net/wireless/b43/pio.h
	drivers/net/wireless/b43/rfkill.c
	drivers/net/wireless/b43/sdio.c
	drivers/net/wireless/b43/tables_nphy.c
	drivers/net/wireless/b43/tables_nphy.h
	drivers/net/wireless/b43/wa.c
	drivers/net/wireless/b43/xmit.c
	drivers/net/wireless/b43/xmit.h
	drivers/net/wireless/b43legacy/Kconfig
	drivers/net/wireless/b43legacy/b43legacy.h
	drivers/net/wireless/b43legacy/dma.c
	drivers/net/wireless/b43legacy/dma.h
	drivers/net/wireless/b43legacy/leds.h
	drivers/net/wireless/b43legacy/main.c
	drivers/net/wireless/b43legacy/phy.c
	drivers/net/wireless/b43legacy/pio.c
	drivers/net/wireless/b43legacy/pio.h
	drivers/net/wireless/b43legacy/rfkill.c
	drivers/net/wireless/b43legacy/xmit.c
	drivers/net/wireless/b43legacy/xmit.h
	drivers/net/wireless/bcm4329/Kconfig
	drivers/net/wireless/bcm4329/Makefile
	drivers/net/wireless/bcm4329/bcmsdh_linux.c
	drivers/net/wireless/bcm4329/bcmsdh_sdmmc_linux.c
	drivers/net/wireless/bcm4329/dhd.h
	drivers/net/wireless/bcm4329/dhd_cdc.c
	drivers/net/wireless/bcm4329/dhd_common.c
	drivers/net/wireless/bcm4329/dhd_custom_gpio.c
	drivers/net/wireless/bcm4329/dhd_linux.c
	drivers/net/wireless/bcm4329/dhd_sdio.c
	drivers/net/wireless/bcm4329/include/epivers.h
	drivers/net/wireless/bcm4329/include/wlioctl.h
	drivers/net/wireless/bcm4329/linux_osl.c
	drivers/net/wireless/bcm4329/wl_iw.c
	drivers/net/wireless/bcm4329/wl_iw.h
	drivers/net/wireless/hostap/Kconfig
	drivers/net/wireless/hostap/hostap_80211.h
	drivers/net/wireless/hostap/hostap_80211_rx.c
	drivers/net/wireless/hostap/hostap_80211_tx.c
	drivers/net/wireless/hostap/hostap_ap.c
	drivers/net/wireless/hostap/hostap_common.h
	drivers/net/wireless/hostap/hostap_cs.c
	drivers/net/wireless/hostap/hostap_download.c
	drivers/net/wireless/hostap/hostap_hw.c
	drivers/net/wireless/hostap/hostap_info.c
	drivers/net/wireless/hostap/hostap_ioctl.c
	drivers/net/wireless/hostap/hostap_main.c
	drivers/net/wireless/hostap/hostap_pci.c
	drivers/net/wireless/hostap/hostap_plx.c
	drivers/net/wireless/hostap/hostap_wlan.h
	drivers/net/wireless/ipw2x00/Kconfig
	drivers/net/wireless/ipw2x00/ipw2100.c
	drivers/net/wireless/ipw2x00/ipw2100.h
	drivers/net/wireless/ipw2x00/ipw2200.c
	drivers/net/wireless/ipw2x00/ipw2200.h
	drivers/net/wireless/ipw2x00/libipw.h
	drivers/net/wireless/ipw2x00/libipw_geo.c
	drivers/net/wireless/ipw2x00/libipw_module.c
	drivers/net/wireless/ipw2x00/libipw_rx.c
	drivers/net/wireless/ipw2x00/libipw_tx.c
	drivers/net/wireless/ipw2x00/libipw_wx.c
	drivers/net/wireless/iwlwifi/Kconfig
	drivers/net/wireless/iwlwifi/Makefile
	drivers/net/wireless/iwlwifi/iwl-1000.c
	drivers/net/wireless/iwlwifi/iwl-3945-fh.h
	drivers/net/wireless/iwlwifi/iwl-3945-hw.h
	drivers/net/wireless/iwlwifi/iwl-3945-led.c
	drivers/net/wireless/iwlwifi/iwl-3945-led.h
	drivers/net/wireless/iwlwifi/iwl-3945-rs.c
	drivers/net/wireless/iwlwifi/iwl-3945.c
	drivers/net/wireless/iwlwifi/iwl-3945.h
	drivers/net/wireless/iwlwifi/iwl-4965-hw.h
	drivers/net/wireless/iwlwifi/iwl-4965.c
	drivers/net/wireless/iwlwifi/iwl-5000-hw.h
	drivers/net/wireless/iwlwifi/iwl-5000.c
	drivers/net/wireless/iwlwifi/iwl-6000-hw.h
	drivers/net/wireless/iwlwifi/iwl-6000.c
	drivers/net/wireless/iwlwifi/iwl-agn-rs.c
	drivers/net/wireless/iwlwifi/iwl-agn-rs.h
	drivers/net/wireless/iwlwifi/iwl-agn.c
	drivers/net/wireless/iwlwifi/iwl-calib.h
	drivers/net/wireless/iwlwifi/iwl-commands.h
	drivers/net/wireless/iwlwifi/iwl-core.c
	drivers/net/wireless/iwlwifi/iwl-core.h
	drivers/net/wireless/iwlwifi/iwl-csr.h
	drivers/net/wireless/iwlwifi/iwl-debug.h
	drivers/net/wireless/iwlwifi/iwl-debugfs.c
	drivers/net/wireless/iwlwifi/iwl-dev.h
	drivers/net/wireless/iwlwifi/iwl-eeprom.c
	drivers/net/wireless/iwlwifi/iwl-eeprom.h
	drivers/net/wireless/iwlwifi/iwl-fh.h
	drivers/net/wireless/iwlwifi/iwl-hcmd.c
	drivers/net/wireless/iwlwifi/iwl-helpers.h
	drivers/net/wireless/iwlwifi/iwl-io.h
	drivers/net/wireless/iwlwifi/iwl-led.c
	drivers/net/wireless/iwlwifi/iwl-led.h
	drivers/net/wireless/iwlwifi/iwl-power.c
	drivers/net/wireless/iwlwifi/iwl-power.h
	drivers/net/wireless/iwlwifi/iwl-prph.h
	drivers/net/wireless/iwlwifi/iwl-rx.c
	drivers/net/wireless/iwlwifi/iwl-scan.c
	drivers/net/wireless/iwlwifi/iwl-spectrum.h
	drivers/net/wireless/iwlwifi/iwl-sta.c
	drivers/net/wireless/iwlwifi/iwl-sta.h
	drivers/net/wireless/iwlwifi/iwl-tx.c
	drivers/net/wireless/iwlwifi/iwl3945-base.c
	drivers/net/wireless/iwmc3200wifi/Kconfig
	drivers/net/wireless/iwmc3200wifi/Makefile
	drivers/net/wireless/iwmc3200wifi/bus.h
	drivers/net/wireless/iwmc3200wifi/cfg80211.c
	drivers/net/wireless/iwmc3200wifi/commands.c
	drivers/net/wireless/iwmc3200wifi/commands.h
	drivers/net/wireless/iwmc3200wifi/debug.h
	drivers/net/wireless/iwmc3200wifi/debugfs.c
	drivers/net/wireless/iwmc3200wifi/eeprom.c
	drivers/net/wireless/iwmc3200wifi/eeprom.h
	drivers/net/wireless/iwmc3200wifi/fw.c
	drivers/net/wireless/iwmc3200wifi/hal.c
	drivers/net/wireless/iwmc3200wifi/hal.h
	drivers/net/wireless/iwmc3200wifi/iwm.h
	drivers/net/wireless/iwmc3200wifi/lmac.h
	drivers/net/wireless/iwmc3200wifi/main.c
	drivers/net/wireless/iwmc3200wifi/netdev.c
	drivers/net/wireless/iwmc3200wifi/rx.c
	drivers/net/wireless/iwmc3200wifi/sdio.c
	drivers/net/wireless/iwmc3200wifi/tx.c
	drivers/net/wireless/iwmc3200wifi/umac.h
	drivers/net/wireless/libertas/Makefile
	drivers/net/wireless/libertas/README
	drivers/net/wireless/libertas/cmd.c
	drivers/net/wireless/libertas/cmd.h
	drivers/net/wireless/libertas/cmdresp.c
	drivers/net/wireless/libertas/debugfs.c
	drivers/net/wireless/libertas/decl.h
	drivers/net/wireless/libertas/defs.h
	drivers/net/wireless/libertas/dev.h
	drivers/net/wireless/libertas/ethtool.c
	drivers/net/wireless/libertas/host.h
	drivers/net/wireless/libertas/if_cs.c
	drivers/net/wireless/libertas/if_sdio.c
	drivers/net/wireless/libertas/if_sdio.h
	drivers/net/wireless/libertas/if_spi.c
	drivers/net/wireless/libertas/if_usb.c
	drivers/net/wireless/libertas/main.c
	drivers/net/wireless/libertas/radiotap.h
	drivers/net/wireless/libertas/rx.c
	drivers/net/wireless/libertas/tx.c
	drivers/net/wireless/libertas/types.h
	drivers/net/wireless/libertas_tf/cmd.c
	drivers/net/wireless/libertas_tf/if_usb.c
	drivers/net/wireless/libertas_tf/libertas_tf.h
	drivers/net/wireless/libertas_tf/main.c
	drivers/net/wireless/mac80211_hwsim.c
	drivers/net/wireless/mv8686/scan.h
	drivers/net/wireless/mv8686/wext.h
	drivers/net/wireless/mwl8k.c
	drivers/net/wireless/orinoco/Kconfig
	drivers/net/wireless/orinoco/Makefile
	drivers/net/wireless/orinoco/airport.c
	drivers/net/wireless/orinoco/cfg.c
	drivers/net/wireless/orinoco/fw.c
	drivers/net/wireless/orinoco/hermes.c
	drivers/net/wireless/orinoco/hermes.h
	drivers/net/wireless/orinoco/hermes_dld.c
	drivers/net/wireless/orinoco/hw.c
	drivers/net/wireless/orinoco/hw.h
	drivers/net/wireless/orinoco/main.c
	drivers/net/wireless/orinoco/main.h
	drivers/net/wireless/orinoco/orinoco.h
	drivers/net/wireless/orinoco/orinoco_cs.c
	drivers/net/wireless/orinoco/orinoco_nortel.c
	drivers/net/wireless/orinoco/orinoco_pci.c
	drivers/net/wireless/orinoco/orinoco_plx.c
	drivers/net/wireless/orinoco/orinoco_tmd.c
	drivers/net/wireless/orinoco/scan.c
	drivers/net/wireless/orinoco/spectrum_cs.c
	drivers/net/wireless/orinoco/wext.c
	drivers/net/wireless/p54/Kconfig
	drivers/net/wireless/p54/eeprom.c
	drivers/net/wireless/p54/fwio.c
	drivers/net/wireless/p54/led.c
	drivers/net/wireless/p54/main.c
	drivers/net/wireless/p54/net2280.h
	drivers/net/wireless/p54/p54.h
	drivers/net/wireless/p54/p54pci.c
	drivers/net/wireless/p54/p54pci.h
	drivers/net/wireless/p54/p54spi.c
	drivers/net/wireless/p54/p54spi.h
	drivers/net/wireless/p54/p54usb.c
	drivers/net/wireless/p54/p54usb.h
	drivers/net/wireless/p54/txrx.c
	drivers/net/wireless/prism54/isl_ioctl.c
	drivers/net/wireless/prism54/isl_oid.h
	drivers/net/wireless/prism54/islpci_dev.c
	drivers/net/wireless/prism54/islpci_eth.c
	drivers/net/wireless/prism54/islpci_eth.h
	drivers/net/wireless/prism54/islpci_hotplug.c
	drivers/net/wireless/prism54/islpci_mgt.c
	drivers/net/wireless/prism54/islpci_mgt.h
	drivers/net/wireless/prism54/oid_mgt.c
	drivers/net/wireless/ray_cs.c
	drivers/net/wireless/ray_cs.h
	drivers/net/wireless/rndis_wlan.c
	drivers/net/wireless/rt2x00/Kconfig
	drivers/net/wireless/rt2x00/Makefile
	drivers/net/wireless/rt2x00/rt2400pci.c
	drivers/net/wireless/rt2x00/rt2400pci.h
	drivers/net/wireless/rt2x00/rt2500pci.c
	drivers/net/wireless/rt2x00/rt2500pci.h
	drivers/net/wireless/rt2x00/rt2500usb.c
	drivers/net/wireless/rt2x00/rt2500usb.h
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/rt2x00/rt2800usb.h
	drivers/net/wireless/rt2x00/rt2x00.h
	drivers/net/wireless/rt2x00/rt2x00config.c
	drivers/net/wireless/rt2x00/rt2x00crypto.c
	drivers/net/wireless/rt2x00/rt2x00debug.c
	drivers/net/wireless/rt2x00/rt2x00debug.h
	drivers/net/wireless/rt2x00/rt2x00dev.c
	drivers/net/wireless/rt2x00/rt2x00dump.h
	drivers/net/wireless/rt2x00/rt2x00firmware.c
	drivers/net/wireless/rt2x00/rt2x00ht.c
	drivers/net/wireless/rt2x00/rt2x00leds.c
	drivers/net/wireless/rt2x00/rt2x00leds.h
	drivers/net/wireless/rt2x00/rt2x00lib.h
	drivers/net/wireless/rt2x00/rt2x00link.c
	drivers/net/wireless/rt2x00/rt2x00mac.c
	drivers/net/wireless/rt2x00/rt2x00pci.c
	drivers/net/wireless/rt2x00/rt2x00pci.h
	drivers/net/wireless/rt2x00/rt2x00queue.c
	drivers/net/wireless/rt2x00/rt2x00queue.h
	drivers/net/wireless/rt2x00/rt2x00reg.h
	drivers/net/wireless/rt2x00/rt2x00usb.c
	drivers/net/wireless/rt2x00/rt2x00usb.h
	drivers/net/wireless/rt2x00/rt61pci.c
	drivers/net/wireless/rt2x00/rt61pci.h
	drivers/net/wireless/rt2x00/rt73usb.c
	drivers/net/wireless/rt2x00/rt73usb.h
	drivers/net/wireless/rtl818x/rtl8180.h
	drivers/net/wireless/rtl818x/rtl8180_dev.c
	drivers/net/wireless/rtl818x/rtl8180_grf5101.c
	drivers/net/wireless/rtl818x/rtl8180_max2820.c
	drivers/net/wireless/rtl818x/rtl8180_rtl8225.c
	drivers/net/wireless/rtl818x/rtl8180_sa2400.c
	drivers/net/wireless/rtl818x/rtl8187.h
	drivers/net/wireless/rtl818x/rtl8187_dev.c
	drivers/net/wireless/rtl818x/rtl8187_leds.c
	drivers/net/wireless/rtl818x/rtl8187_leds.h
	drivers/net/wireless/rtl818x/rtl8187_rfkill.c
	drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
	drivers/net/wireless/rtl818x/rtl818x.h
	drivers/net/wireless/wl12xx/Kconfig
	drivers/net/wireless/wl12xx/Makefile
	drivers/net/wireless/wl12xx/wl1251.h
	drivers/net/wireless/wl12xx/wl1251_acx.c
	drivers/net/wireless/wl12xx/wl1251_acx.h
	drivers/net/wireless/wl12xx/wl1251_boot.c
	drivers/net/wireless/wl12xx/wl1251_cmd.c
	drivers/net/wireless/wl12xx/wl1251_cmd.h
	drivers/net/wireless/wl12xx/wl1251_debugfs.c
	drivers/net/wireless/wl12xx/wl1251_event.c
	drivers/net/wireless/wl12xx/wl1251_event.h
	drivers/net/wireless/wl12xx/wl1251_init.c
	drivers/net/wireless/wl12xx/wl1251_init.h
	drivers/net/wireless/wl12xx/wl1251_io.h
	drivers/net/wireless/wl12xx/wl1251_main.c
	drivers/net/wireless/wl12xx/wl1251_ps.c
	drivers/net/wireless/wl12xx/wl1251_ps.h
	drivers/net/wireless/wl12xx/wl1251_reg.h
	drivers/net/wireless/wl12xx/wl1251_rx.c
	drivers/net/wireless/wl12xx/wl1251_rx.h
	drivers/net/wireless/wl12xx/wl1251_sdio.c
	drivers/net/wireless/wl12xx/wl1251_spi.c
	drivers/net/wireless/wl12xx/wl1251_tx.c
	drivers/net/wireless/wl12xx/wl1251_tx.h
	drivers/net/wireless/wl12xx/wl1271.h
	drivers/net/wireless/wl12xx/wl1271_acx.c
	drivers/net/wireless/wl12xx/wl1271_acx.h
	drivers/net/wireless/wl12xx/wl1271_boot.c
	drivers/net/wireless/wl12xx/wl1271_boot.h
	drivers/net/wireless/wl12xx/wl1271_cmd.c
	drivers/net/wireless/wl12xx/wl1271_cmd.h
	drivers/net/wireless/wl12xx/wl1271_debugfs.c
	drivers/net/wireless/wl12xx/wl1271_event.c
	drivers/net/wireless/wl12xx/wl1271_event.h
	drivers/net/wireless/wl12xx/wl1271_init.c
	drivers/net/wireless/wl12xx/wl1271_init.h
	drivers/net/wireless/wl12xx/wl1271_main.c
	drivers/net/wireless/wl12xx/wl1271_ps.c
	drivers/net/wireless/wl12xx/wl1271_ps.h
	drivers/net/wireless/wl12xx/wl1271_reg.h
	drivers/net/wireless/wl12xx/wl1271_rx.c
	drivers/net/wireless/wl12xx/wl1271_rx.h
	drivers/net/wireless/wl12xx/wl1271_spi.c
	drivers/net/wireless/wl12xx/wl1271_tx.c
	drivers/net/wireless/wl12xx/wl1271_tx.h
	drivers/net/wireless/wl12xx/wl12xx_80211.h
	drivers/net/wireless/wl3501.h
	drivers/net/wireless/wl3501_cs.c
	drivers/net/wireless/zd1201.c
	drivers/net/wireless/zd1211rw/Kconfig
	drivers/net/wireless/zd1211rw/zd_chip.c
	drivers/net/wireless/zd1211rw/zd_chip.h
	drivers/net/wireless/zd1211rw/zd_mac.c
	drivers/net/wireless/zd1211rw/zd_mac.h
	drivers/net/wireless/zd1211rw/zd_rf_uw2453.c
	drivers/net/wireless/zd1211rw/zd_usb.c
	drivers/net/wireless/zd1211rw/zd_usb.h
	drivers/power/Kconfig
	drivers/power/Makefile
	drivers/power/wm831x_backup.c
	drivers/power/wm831x_power.c
	drivers/regulator/Kconfig
	drivers/regulator/Makefile
	drivers/regulator/wm831x-dcdc.c
	drivers/regulator/wm8994-regulator.c
	drivers/rtc/Makefile
	drivers/rtc/rtc-wm831x.c
	drivers/serial/Kconfig
	drivers/spi/Kconfig
	drivers/spi/Makefile
	drivers/staging/Kconfig
	drivers/staging/Makefile
	drivers/staging/dream/Kconfig
	drivers/staging/iio/Kconfig
	drivers/staging/iio/Makefile
	drivers/usb/core/hub.c
	drivers/usb/gadget/gadget_chips.h
	drivers/video/Kconfig
	drivers/video/backlight/Kconfig
	drivers/video/backlight/Makefile
	drivers/video/backlight/wm831x_bl.c
	drivers/watchdog/Kconfig
	drivers/watchdog/Makefile
	fs/partitions/check.c
	include/asm-generic/gpio.h
	include/linux/fb.h
	include/linux/i82593.h
	include/linux/l3g4200d.h
	include/linux/mfd/wm831x/core.h
	include/linux/mfd/wm831x/pdata.h
	include/linux/mfd/wm8994/core.h
	include/linux/mfd/wm8994/gpio.h
	include/linux/mfd/wm8994/pdata.h
	include/linux/mmc/card.h
	include/linux/mmc/host.h
	include/linux/mtd/nand.h
	include/linux/serial_core.h
	include/linux/videodev2.h
	include/media/v4l2-chip-ident.h
	include/sound/soc-dai.h
	include/sound/soc-dapm.h
	sound/soc/codecs/Kconfig
	sound/soc/codecs/Makefile
	sound/soc/codecs/wm8900.c
	sound/soc/codecs/wm8988.c
	sound/soc/codecs/wm8994.c
	sound/soc/codecs/wm8994.h
	sound/soc/codecs/wm_hubs.c
	sound/soc/soc-dapm.c
2011-08-01 00:04:45 +08:00
黄涛
6b99136498 Revert "mmc: Add concept of an 'embedded' SDIO device."
This reverts commit 6558addc2a.
2011-07-30 22:53:07 +08:00
黄涛
ad7271f11e Revert "mmc: core: Add deferred bus resume policy."
This reverts commit 40594a0045.

Conflicts:

	include/linux/mmc/host.h
2011-07-30 22:51:57 +08:00
黄涛
5f1e6e97d5 Revert "Merge remote-tracking branch 'linux-2.6.32.y/master' into develop"
This reverts commit 7cd3739f32, reversing
changes made to 2748ae2cc2.

Conflicts:

	drivers/usb/core/hub.c
	drivers/usb/serial/option.c
2011-07-30 16:09:59 +08:00
xbw
35d7b36352 Integrae the XBW-version of SDMMC-drver into RK29SDK, and the xbw-version is set to default 2011-07-17 20:41:08 -07:00
lbt
380233809e mmc: wifi sdio card ignore pm notify. otherwise wifi may work abnormally when resume from suspend. 2011-07-05 14:42:31 +08:00
黄涛
7cd3739f32 Merge remote-tracking branch 'linux-2.6.32.y/master' into develop
Merge Linux 2.6.32.41
Conflicts:
	Makefile
	drivers/mmc/core/core.c
	drivers/net/wireless/ath/ath9k/ath9k.h
	drivers/net/wireless/ath/ath9k/hw.c
	drivers/net/wireless/ath/ath9k/main.c
	drivers/net/wireless/ath/regd_common.h
	drivers/net/wireless/b43/dma.c
	drivers/net/wireless/b43/dma.h
	drivers/net/wireless/b43/sdio.c
	drivers/net/wireless/hostap/hostap_cs.c
	drivers/net/wireless/iwlwifi/iwl-5000.c
	drivers/net/wireless/iwlwifi/iwl-agn.c
	drivers/net/wireless/iwlwifi/iwl-helpers.h
	drivers/net/wireless/iwlwifi/iwl-tx.c
	drivers/net/wireless/libertas/cmd.c
	drivers/net/wireless/p54/p54pci.c
	drivers/net/wireless/p54/p54usb.c
	drivers/net/wireless/p54/txrx.c
	drivers/net/wireless/rt2x00/rt2400pci.c
	drivers/net/wireless/rt2x00/rt2500pci.c
	drivers/net/wireless/rt2x00/rt2500usb.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/rt2x00/rt2x00.h
	drivers/net/wireless/rt2x00/rt2x00dev.c
	drivers/net/wireless/rt2x00/rt2x00queue.c
	drivers/net/wireless/rt2x00/rt61pci.c
	drivers/net/wireless/rt2x00/rt73usb.c
	drivers/usb/serial/option.c
	mm/shmem.c
2011-06-16 11:56:59 +08:00
Dmitry Shmidt
759378a80b mmc: Fix pm_notifier obeying deferred resume
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-06-14 09:09:38 -07:00
San Mehat
10797cfdbb mmc: core: Add deferred bus resume policy.
A card driver can now specify that the underlying bus should *not*
auto-resume with the rest of the system. This is useful for reducing resume
latency as well as saving power when the card driver is not using the
bus. In the future, we'll add support for manual suspend

Signed-off-by: San Mehat <san@google.com>
2011-06-14 09:08:52 -07:00
San Mehat
9a248205b3 mmc: Add concept of an 'embedded' SDIO device.
This is required to support chips which use SDIO for signaling/
communication but do not implement the various card enumeration registers
as required for full SD / SDIO cards.

mmc: sdio: Fix bug where we're freeing the CIS tables we never allocated when using EMBEDDED_SDIO
mmc: Add max_blksize to embedded SDIO data

Signed-off-by: San Mehat <san@google.com>
2011-06-14 09:08:51 -07:00
Linus Torvalds
8c1c77ff9b Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (75 commits)
  mmc: core: eMMC bus width may not work on all platforms
  mmc: sdhci: Auto-CMD23 fixes.
  mmc: sdhci: Auto-CMD23 support.
  mmc: core: Block CMD23 support for UHS104/SDXC cards.
  mmc: sdhci: Implement MMC_CAP_CMD23 for SDHCI.
  mmc: core: Use CMD23 for multiblock transfers when we can.
  mmc: quirks: Add/remove quirks conditional support.
  mmc: Add new VUB300 USB-to-SD/SDIO/MMC driver
  mmc: sdhci-pxa: Add quirks for DMA/ADMA to match h/w
  mmc: core: duplicated trial with same freq in mmc_rescan_try_freq()
  mmc: core: add support for eMMC Dual Data Rate
  mmc: core: eMMC signal voltage does not use CMD11
  mmc: sdhci-pxa: add platform code for UHS signaling
  mmc: sdhci: add hooks for setting UHS in platform specific code
  mmc: core: clear MMC_PM_KEEP_POWER flag on resume
  mmc: dw_mmc: fixed wrong regulator_enable in suspend/resume
  mmc: sdhi: allow powering down controller with no card inserted
  mmc: tmio: runtime suspend the controller, where possible
  mmc: sdhi: support up to 3 interrupt sources
  mmc: sdhi: print physical base address and clock rate
  ...
2011-05-25 16:55:55 -07:00
Andrei Warkentin
d0c97cfb81 mmc: core: Use CMD23 for multiblock transfers when we can.
CMD23-prefixed instead of open-ended multiblock transfers
have a performance advantage on some MMC cards.

Signed-off-by: Andrei Warkentin <andreiw@motorola.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-25 16:48:46 -04:00
Philip Rakity
4c4cb17105 mmc: core: add support for eMMC Dual Data Rate
eMMC voltage change not required for 1.8V.  3.3V and 1.8V vcc
are capable of doing DDR. vccq of 1.8v is not required.

Signed-off-by: Philip Rakity <prakity@marvell.com>
Reviewed-by: Arindam Nath <arindam.nath@amd.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 23:53:58 -04:00
Arindam Nath
4d55c5a13a mmc: sdhci: enable preset value after uhs initialization
According to the Host Controller spec v3.00, setting Preset Value Enable
in the Host Control2 register lets SDCLK Frequency Select, Clock Generator
Select and Driver Strength Select to be set automatically by the Host
Controller based on the UHS-I mode set. This patch enables this feature.
Since Preset Value Enable makes sense only for UHS-I cards, we enable this
feature after successfull UHS-I initialization. We also reset Preset Value
Enable next time before initialization.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Acked-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 23:53:47 -04:00
Arindam Nath
b513ea250e mmc: sd: add support for tuning during uhs initialization
Host Controller needs tuning during initialization to operate SDR50
and SDR104 UHS-I cards. Whether SDR50 mode actually needs tuning is
indicated by bit 45 of the Host Controller Capabilities register.
A new command CMD19 has been defined in the Physical Layer spec
v3.01 to request the card to send tuning pattern.

We enable Buffer Read Ready interrupt at the very begining of tuning
procedure, because that is the only interrupt generated by the Host
Controller during tuning. We program the block size to 64 in the
Block Size register. We make sure that DMA Enable and Multi Block
Select in the Transfer Mode register are set to 0 before actually
sending CMD19. The tuning block is sent by the card to the Host
Controller using DAT lines, so we set Data Present Select (bit 5) in
the Command register. The Host Controller is responsible for doing
the verfication of tuning block sent by the card at the hardware
level. After sending CMD19, we wait for Buffer Read Ready interrupt.
In case we don't receive an interrupt after the specified timeout
value, we fall back on fixed sampling clock by setting Execute
Tuning (bit 6) and Sampling Clock Select (bit 7) of Host Control2
register to 0. Before exiting the tuning procedure, we disable Buffer
Read Ready interrupt and re-enable other interrupts.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Acked-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 23:53:46 -04:00
Arindam Nath
5371c927bc mmc: sd: set current limit for uhs cards
We decide on the current limit to be set for the card based on the
Capability of Host Controller to provide current at 1.8V signalling,
and the maximum current limit of the card as indicated by CMD6
mode 0. We then set the current limit for the card using CMD6 mode 1.
As per the Physical Layer Spec v3.01, the current limit switch is
only applicable for SDR50, SDR104, and DDR50 bus speed modes. For
other UHS-I modes, we set the default current limit of 200mA.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Acked-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 23:53:45 -04:00
Arindam Nath
49c468fcf8 mmc: sd: add support for uhs bus speed mode selection
This patch adds support for setting UHS-I bus speed mode during UHS-I
initialization procedure. Since both the host and card can support
more than one bus speed, we select the highest speed based on both of
their capabilities. First we set the bus speed mode for the card using
CMD6 mode 1, and then we program the host controller to support the
required speed mode. We also set High Speed Enable in case one of the
UHS-I modes is selected. We take care to reset SD clock before setting
UHS mode in the Host Control2 register, and then re-enable it as per
the Host Controller spec v3.00. We then set the clock frequency for
the UHS-I mode selected.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Acked-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 23:53:45 -04:00
Arindam Nath
d6d50a15a2 mmc: sd: add support for driver type selection
This patch adds support for setting driver strength during UHS-I
initialization procedure. Since UHS-I cards set S18A (bit 24) in
response to ACMD41, we use this as a base for UHS-I initialization.
We modify the parameter list of mmc_sd_get_cid() so that we can
save the ROCR from ACMD41 to check whether bit 24 is set.

We decide whether the Host Controller supports A, C, or D driver
type depending on the Capabilities register. Driver type B is
suported by default. We then set the appropriate driver type for
the card using CMD6 mode 1. As per Host Controller spec v3.00, we
set driver type for the host only if Preset Value Enable in the
Host Control2 register is not set. SDHCI_HOST_CONTROL has been
renamed to SDHCI_HOST_CONTROL1 to conform to the spec.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Acked-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 23:53:24 -04:00
Arindam Nath
f2119df6b7 mmc: sd: add support for signal voltage switch procedure
Host Controller v3.00 adds another Capabilities register. Apart
from other things, this new register indicates whether the Host
Controller supports SDR50, SDR104, and DDR50 UHS-I modes. The spec
doesn't mention about explicit support for SDR12 and SDR25 UHS-I
modes, so the Host Controller v3.00 should support them by default.
Also if the controller supports SDR104 mode, it will also support
SDR50 mode as well. So depending on the host support, we set the
corresponding MMC_CAP_* flags. One more new register. Host Control2
is added in v3.00, which is used during Signal Voltage Switch
procedure described below.

Since as per v3.00 spec, UHS-I supported hosts should set S18R
to 1, we set S18R (bit 24) of OCR before sending ACMD41. We also
need to set XPC (bit 28) of OCR in case the host can supply >150mA.
This support is indicated by the Maximum Current Capabilities
register of the Host Controller.

If the response of ACMD41 has both CCS and S18A set, we start the
signal voltage switch procedure, which if successfull, will switch
the card from 3.3V signalling to 1.8V signalling. Signal voltage
switch procedure adds support for a new command CMD11 in the
Physical Layer Spec v3.01. As part of this procedure, we need to
set 1.8V Signalling Enable (bit 3) of Host Control2 register, which
if remains set after 5ms, means the switch to 1.8V signalling is
successfull. Otherwise, we clear bit 24 of OCR and retry the
initialization sequence. When we remove the card, and insert the
same or another card, we need to make sure that we start with 3.3V
signalling voltage. So we call mmc_set_signal_voltage() with
MMC_SIGNAL_VOLTAGE_330 set so that we are back to 3.3V signalling
voltage before we actually start initializing the card.

Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
on mmp2 in SDMA mode.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Reviewed-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Acked-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 21:04:38 -04:00
Ohad Ben-Cohen
6b93d01fe5 mmc: do not switch to 1-bit mode if not required
6b5eda36 followed SDIO spec part E1 section 8, which states that
in case SDIO interrupts are being used to wake up a suspended host,
then it is required to switch to 1-bit mode before stopping the clock.

Before switching to 1-bit mode (or back to 4-bit mode on resume),
make sure that SDIO interrupts are really being used to wake the host.

This is helpful for devices which have an external irq line (e.g.
wl1271), and do not use SDIO interrupts to wake up the host.

In this case, switching to 1-bit mode (and back to 4-bit mode on resume)
is not necessary.

Reported-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 20:59:47 -04:00
Ohad Ben-Cohen
a5e9425d20 mmc: mmc_card_keep_power cleanups
mmc_card_is_powered_resumed is a mouthful; instead, simply use
mmc_card_keep_power, which also better explains the purpose of
the macro.

Employ mmc_card_keep_power() where possible.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-05-24 20:59:43 -04:00
Chris Ball
86f315bbb2 Revert "mmc: fix a race between card-detect rescan and clock-gate work instances"
This reverts commit 26fc8775b5, which has
been reported to cause boot/resume-time crashes for some users:

https://bbs.archlinux.org/viewtopic.php?id=118751.

Signed-off-by: Chris Ball <cjb@laptop.org>
Cc: <stable@kernel.org>
2011-05-16 11:32:26 -04:00
Maxim Levitsky
28e4bf4a8b mmc: fix all hangs related to mmc/sd card insert/removal during suspend/resume
commit 4c2ef25fe0 upstream.

If you don't use CONFIG_MMC_UNSAFE_RESUME, as soon as you attempt to
suspend, the card will be removed, therefore this patch doesn't change the
behavior of this option.

However the removal will be done by pm notifier, which runs while
userspace is still not frozen and thus can freely use del_gendisk, without
the risk of deadlock which would happen otherwise.

Card detect workqueue is now disabled while userspace is frozen, Therefore
if you do use CONFIG_MMC_UNSAFE_RESUME, and remove the card during
suspend, the removal will be detected as soon as userspace is unfrozen,
again at the moment it is safe to call del_gendisk.

Tested with and without CONFIG_MMC_UNSAFE_RESUME with suspend and hibernate.

[akpm@linux-foundation.org: clean up function prototype]
[akpm@linux-foundation.org: fix CONFIG_PM-n linkage, small cleanups]
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Cc: David Brownell <david-b@pacbell.net>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[bwh: Adjust for 2.6.32]
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-09 15:55:31 -07:00
Guennadi Liakhovetski
26fc8775b5 mmc: fix a race between card-detect rescan and clock-gate work instances
Currently there is a race in the MMC core between a card-detect
rescan work and the clock-gating work, scheduled from a command
completion. Fix it by removing the dedicated clock-gating mutex
and using the MMC standard locking mechanism instead.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <damm@opensource.se>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Cc: <stable@kernel.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-04-27 19:16:12 -04:00
lbt
497d73bf43 update mmc stack from linux2.6.35
sdio: add quirk to clamp byte mode transfer

    Some SDIO cards expect byte transfers not to exceed the configured block
    transfer size.  Add a quirk to that effect.
2011-03-22 19:13:19 +08:00
Aries Lee
22113efd00 mmc: Test bus-width for old MMC devices
Some old MMC devices fail with the 4/8 bits the driver tries to use
exclusively.  This patch adds a test for the given bus setup and falls
back to the lower bit mode (until 1-bit mode) when the test fails.

[Major rework and refactoring by tiwai]
[Quirk addition and many fixes by prakity]

Signed-off-by: Aries Lee <arieslee@jmicron.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Philip Rakity <prakity@marvell.com>
Tested-by: Philip Rakity <prakity@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-01-08 23:52:09 -05:00
Ohad Ben-Cohen
080bc9774b mmc: sdio: don't reinitialize nonremovable powered-resumed cards
Upon system resume, SDIO core must reinitialize cards that were
powered off during suspend.

If the card had its power kept during suspend (and thus it is
'powered-resumed'), SDIO core performs only a limited reinitializing,
mainly needed to make sure that the card wasn't removed/replaced.

If a __nonremovable__ card is powered-resumed, we can safely skip the
reinitializing phase.

Note: 9b966aa (mmc: sdio: fully reconfigure oldcard on resume) removed
the bus width reconfiguration since mmc_sdio_init_card already does it.
It is brought back now in case mmc_sdio_init_card is skipped.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-01-08 22:48:17 -05:00
Takashi Iwai
8f230f454f mmc: Add support for JMicron 388 SD/MMC controller
JMicron 388 SD/MMC combo controller supports the 1.8V low-voltage for
SD, but MMC doesn't work with the low-voltage, resulting in an error
at probing.

This patch adds the support for multiple voltage mask per device type,
so that SD works with 1.8V while MMC forces 3.3V.  Here new ocr_avail_*
fields for each device are introduced, so that the actual OCR mask is
switched dynamically.

Also, the restriction of low-voltage in core/sd.c is removed when the
bit is allowed explicitly via ocr_avail_sd mask.

This patch was rewritten from scratch based on Aries' original code.

Signed-off-by: Aries Lee <arieslee@jmicron.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-01-08 22:48:04 -05:00
Linus Walleij
04566831a7 mmc: Aggressive clock gating framework
This patch modifies the MMC core code to optionally call the set_ios()
operation on the driver with the clock frequency set to 0 (gate) after
a grace period of at least 8 MCLK cycles, then restore it (ungate)
before any new request. This gives the driver the option to shut down
the MCI clock to the MMC/SD card when the clock frequency is 0, i.e.
the core has stated that the MCI clock does not need to be generated.

It is inspired by existing clock gating code found in the OMAP and
Atmel drivers and brings this up to the host abstraction.  Gating is
performed before and after any MMC request.

This patchset implements this for the MMCI/PL180 MMC/SD host controller,
but it should be simple to switch OMAP/Atmel over to using this instead.

mmc_set_{gated,ungated}() add variable protection to the state holders
for the clock gating code.  This is particularly important when ordinary
.set_ios() calls would race with the .set_ios() call resulting from a
delayed gate operation.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Reviewed-by: Chris Ball <cjb@laptop.org>
Tested-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-01-08 22:48:03 -05:00
Ohad Ben-Cohen
ed919b0125 mmc: sdio: fix runtime PM anomalies by introducing MMC_CAP_POWER_OFF_CARD
Some board/card/host configurations are not capable of powering off the
card after boot.

To support such configurations, and to allow smoother transition to
runtime PM behavior, MMC_CAP_POWER_OFF_CARD is added, so hosts need to
explicitly indicate whether it's OK to power off their cards after boot.

SDIO core will enable runtime PM for a card only if that cap is set.
As a result, the card will be powered down after boot, and will only
be powered up again when a driver is loaded (and then it's up to the
driver to decide whether power will be kept or not).

This will prevent sdio_bus_probe() failures with setups that do not
support powering off the card.

Reported-and-tested-by: Daniel Drake <dsd@laptop.org>
Reported-and-tested-by: Arnd Hannemann <arnd@arndnet.de>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-11-19 17:07:01 -05:00
Ohad Ben-Cohen
12ae637f08 mmc: propagate power save/restore ops return value
Allow power save/restore and their relevant mmc_bus_ops handlers
exit with a return value.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Tested-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:17 +08:00
Adrian Hunter
49e3b5a44f mmc: refine DDR support
One flaw with DDR support is that MMC core does not inform the driver
which DDR mode it has selected.  This patch expands the ios->ddr flag
to do that.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:16 +08:00
Adrian Hunter
0f8d8ea64e mmc: Fixes for Dual Data Rate (DDR) support
The DDR support patch needs the following fixes:

- The block driver does not need to know about DDR, any more
  than it needs to know about bus width.
- Not only the card must be switched to DDR mode.  The host
  controller must also be configured, which is done through
  the 'set_ios()' function.
- Do not set the DDR mode state until after the switch command
  is successful.
- Setting block length is not supported in DDR mode.  Make that
  a core function and change the other place it is used (mmc_test)
  also.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:16 +08:00
Hanumath Prasad
dfc13e8402 mmc: MMC 4.4 DDR support
Add support for Dual Data Rate MMC cards as defined in the 4.4
specification.

Signed-off-by: Hanumath Prasad <hanumath.prasad@stericsson.com>
Cc: linux-mmc@vger.kernel.org
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Tested-by Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:16 +08:00
Linus Walleij
99fc513101 mmc: Move regulator handling closer to core
After discovering a problem in regulator reference counting I took Mark
Brown's advice to move the reference count into the MMC core by making the
regulator status a member of struct mmc_host.

I took this opportunity to also implement NULL versions of
the regulator functions so as to rid the driver code from
some ugly #ifdef CONFIG_REGULATOR clauses.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Sundar Iyer <sundar.iyer@stericsson.com>
Cc: Daniel Mack <daniel@caiaq.de>
Cc: Pierre Ossman <pierre@ossman.eu>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Cliff Brake <cbrake@bec-systems.com>
Cc: Jarkko Lavinen <jarkko.lavinen@nokia.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:16 +08:00
Hein Tibosch
88ae8b8664 mmc: Make ID freq configurable
In the latest releases of the mmc driver, the freq during initialization
is set to a fixed 400 Khz.  This was reportedly too fast for several
users.  As there doesn't seem to be an ideal frequency
which-works-for-all, Pierre suggested to let the driver try several
frequencies.

This patch implements that idea. It will try mmc-initialization using
several frequencies from an array 400, 300, 200 and 100.

In case SDIO is broken, it'll still try to detect SDMEM, also at different
freqs.

Signed-off-by: Hein Tibosch <hein_tibosch@yahoo.es>
Cc: Pierre Ossman <pierre@ossman.eu>
Reviewed-by: Chris Ball <cjb@laptop.org>
Tested-by: Chris Ball <cjb@laptop.org>
Cc: Ben Nizette <bn@niasdigital.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:15 +08:00
Matt Fleming
71d7d3d190 mmc: Add helper function to check if a card is removable
There are two checks that need to be made when determining whether a
card is removable. A host controller may set MMC_CAP_NONREMOVABLE if the
controller does not support removing cards (e.g. eMMC), in which case
the card is physically non-removable. Also the 'mmc_assume_removable'
module parameter can be configured at module load time, in which case
the card may be logically non-removable.

A helper function keeps the logic in one place so that code always
checks both conditions.

Because this new function is likely to be called from modules we now
need to export the mmc_assume_removable symbol.

Signed-off-by: Matt Fleming <matt@console-pimps.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Tested-by: Jaehoon Chung <jh80.chung@samsung.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:15 +08:00
Martin K. Petersen
a36274e018 mmc: Remove distinction between hw and phys segments
We have deprecated the distinction between hardware and physical
segments in the block layer.  Consolidate the two limits into one in
drivers/mmc/.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-10-23 21:11:11 +08:00