From: 黄涛 Date: Fri, 28 Oct 2011 08:07:07 +0000 (+0800) Subject: Merge remote-tracking branch 'remotes/aosp/android-3.0' into develop-3.0 X-Git-Tag: firefly_0821_release~9760 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=677ea8d595b6d546394b43a49794d6e9bca1f73d;p=firefly-linux-kernel-4.4.55.git 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 --- 677ea8d595b6d546394b43a49794d6e9bca1f73d diff --cc arch/arm/Kconfig index b449fc4ccbf4,81f0b93a0cbb..38d4c961e5af --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@@ -813,28 -853,11 +853,29 @@@ config ARCH_OMA select ARCH_REQUIRE_GPIOLIB select ARCH_HAS_CPUFREQ select GENERIC_CLOCKEVENTS + select HAVE_SCHED_CLOCK select ARCH_HAS_HOLES_MEMORYMODEL help - Support for TI's OMAP platform (OMAP1 and OMAP2). + Support for TI's OMAP platform (OMAP1/2/3/4). +config ARCH_RK29 + bool "Rockchip Soc Rk29" + select CPU_V7 + select HAVE_CLK + select COMMON_CLKDEV + select HAVE_SCHED_CLOCK + select ARCH_HAS_CPUFREQ + select GENERIC_TIME + select GENERIC_CLOCKEVENTS + select ARCH_REQUIRE_GPIOLIB + select ARM_GIC + select PL330 + select HIGHMEM + select ZONE_DMA + select ARM_L1_CACHE_SHIFT_6 + help + Support for Rockchip RK29 soc. + config PLAT_SPEAR bool "ST SPEAr" select ARM_AMBA diff --cc arch/arm/boot/Makefile index 38eb586bf00a,9128fddf1109..d05693bd812a --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile @@@ -71,20 -70,11 +71,15 @@@ els $(obj)/uImage: LOADADDR=$(ZRELADDR) endif - ifeq ($(CONFIG_THUMB2_KERNEL),y) - # Set bit 0 to 1 so that "mov pc, rx" switches to Thumb-2 mode - $(obj)/uImage: STARTADDR=$(shell echo $(LOADADDR) | sed -e "s/.$$/1/") - else $(obj)/uImage: STARTADDR=$(LOADADDR) - endif -$(obj)/uImage: $(obj)/zImage FORCE +$(obj)/Image.gz: $(obj)/Image FORCE + $(call if_changed,gzip) + @echo ' Image: $@ is ready' + +$(obj)/uImage: $(obj)/Image FORCE $(call if_changed,uimage) - @echo ' Image $@ is ready' + @echo ' Image: $@ is ready' $(obj)/bootp/bootp: $(obj)/zImage initrd FORCE $(Q)$(MAKE) $(build)=$(obj)/bootp $@ diff --cc arch/arm/common/gic.c index 7dfa9a85bc0c,4ddd0a6ac7ff..4ddd0a6ac7ff mode 100755,100644..100755 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c diff --cc arch/arm/common/pl330.c index 234ed88e6829,97912fa48782..c322fe55cc70 --- a/arch/arm/common/pl330.c +++ b/arch/arm/common/pl330.c @@@ -145,10 -144,9 +145,9 @@@ #define PART 0x330 #define DESIGNER 0x41 -#define REVISION 0x0 +#define REVISION 0x1 #define INTEG_CFG 0x0 - #define PERIPH_ID_VAL ((PART << 0) | (DESIGNER << 12) \ - | (REVISION << 20) | (INTEG_CFG << 24)) + #define PERIPH_ID_VAL ((PART << 0) | (DESIGNER << 12)) #define PCELL_ID_VAL 0xb105f00d diff --cc arch/arm/include/asm/dma.h index 81921e8d2bc3,42005542932b..6873de2dcaa0 --- a/arch/arm/include/asm/dma.h +++ b/arch/arm/include/asm/dma.h @@@ -6,9 -6,13 +6,11 @@@ /* * This is the maximum virtual address which can be DMA'd from. */ - #ifndef MAX_DMA_ADDRESS + #ifndef ARM_DMA_ZONE_SIZE #define MAX_DMA_ADDRESS 0xffffffff + #else + #define MAX_DMA_ADDRESS (PAGE_OFFSET + ARM_DMA_ZONE_SIZE) #endif - -#ifdef CONFIG_ISA_DMA_API /* * This is used to support drivers written for the x86 ISA DMA API. * It should not be re-used except for that purpose. diff --cc arch/arm/kernel/vmlinux.lds.S index 6ab5093711c6,e5287f21badc..caed3d42a6db --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S @@@ -228,63 -259,9 +259,65 @@@ SECTION __tcm_end = .; } #endif +#ifdef CONFIG_ARCH_RK29 + /* + * We align everything to a page boundary so we can + * free it after init has commenced and SRAM contents have + * been copied to its destination. + */ + .sram_start : { + . = ALIGN(PAGE_SIZE); + __sram_start = .; + __sram_code_start = .; + } + + /* + * Link these to the ITCM RAM + * Put VMA to the TCM address and LMA to the common RAM + * and we'll upload the contents from RAM to TCM and free + * the used RAM after that. + */ + .text_sram_code SRAM_CODE_OFFSET : AT(__sram_code_start) + { + __ssram_code_text = .; + *(.sram.text) + *(.sram.rodata) + . = ALIGN(4); + __esram_code_text = .; + } + + /* + * Reset the dot pointer, this is needed to create the + * relative __dtcm_start below (to be used as extern in code). + */ + . = ADDR(.sram_start) + SIZEOF(.sram_start) + SIZEOF(.text_sram_code); + + .sram_data_start : { + __sram_data_start = .; + } + + /* TODO: add remainder of ITCM as well, that can be used for data! */ + .data_sram SRAM_DATA_OFFSET : AT(__sram_data_start) + { + . = ALIGN(4); + __ssram_data = .; + *(.sram.data) + . = ALIGN(4); + __esram_data = .; + } + + /* Reset the dot pointer or the linker gets confused */ + . = ADDR(.sram_data_start) + SIZEOF(.data_sram); + + /* End marker for freeing TCM copy in linked object */ + .sram_end : AT(ADDR(.sram_data_start) + SIZEOF(.data_sram)){ + . = ALIGN(PAGE_SIZE); + __sram_end = .; + } +#endif + NOTES + BSS_SECTION(0, 0, 0) _end = .; diff --cc drivers/Kconfig index a2b902f4d437,d0258eb26d8b..d0258eb26d8b mode 100755,100644..100755 --- a/drivers/Kconfig +++ b/drivers/Kconfig diff --cc drivers/Makefile index a2aea53a75ed,4ea4ac9e57af..4ea4ac9e57af mode 100755,100644..100755 --- a/drivers/Makefile +++ b/drivers/Makefile diff --cc drivers/base/bus.c index 96709f26d70f,000e7b2006f8..dd4223b022cd --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@@ -18,11 -18,8 +18,10 @@@ #include #include "base.h" #include "power/power.h" +#include "linux/usb.h" +#include "devices_filter.h" #define to_bus_attr(_attr) container_of(_attr, struct bus_attribute, attr) - #define to_bus(obj) container_of(obj, struct bus_type_private, subsys.kobj) /* * sysfs bindings for drivers diff --cc drivers/bluetooth/Kconfig index 301c10ad6529,11b41fd40c27..a71eac1486f7 mode 100755,100644..100755 --- a/drivers/bluetooth/Kconfig +++ b/drivers/bluetooth/Kconfig diff --cc drivers/bluetooth/Makefile index a4e134ea5d68,f4460f4f4b78..900db5f396e7 mode 100755,100644..100755 --- a/drivers/bluetooth/Makefile +++ b/drivers/bluetooth/Makefile diff --cc drivers/bluetooth/hci_h4.c index e12d2a3994da,2fcd8b387d69..38f6fe6c5ca2 mode 100755,100644..100755 --- a/drivers/bluetooth/hci_h4.c +++ b/drivers/bluetooth/hci_h4.c diff --cc drivers/bluetooth/hci_ldisc.c index 3182186449ee,48ad2a7ab080..93e278fe9c8e mode 100755,100644..100755 --- a/drivers/bluetooth/hci_ldisc.c +++ b/drivers/bluetooth/hci_ldisc.c diff --cc drivers/gpio/Kconfig index ffe29c25ebbd,2967002a9f82..9fed5e895514 mode 100755,100644..100755 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig diff --cc drivers/gpio/Makefile index 1cf28b3de403,b605f8ec6fbe..862b7b266897 mode 100755,100644..100755 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@@ -17,14 -19,16 +19,17 @@@ obj-$(CONFIG_GPIO_MAX7301) += max7301. obj-$(CONFIG_GPIO_MAX732X) += max732x.o obj-$(CONFIG_GPIO_MC33880) += mc33880.o obj-$(CONFIG_GPIO_MCP23S08) += mcp23s08.o + obj-$(CONFIG_GPIO_74X164) += 74x164.o + obj-$(CONFIG_ARCH_OMAP) += gpio-omap.o obj-$(CONFIG_GPIO_PCA953X) += pca953x.o obj-$(CONFIG_GPIO_PCF857X) += pcf857x.o + obj-$(CONFIG_GPIO_PCH) += pch_gpio.o obj-$(CONFIG_GPIO_PL061) += pl061.o obj-$(CONFIG_GPIO_STMPE) += stmpe-gpio.o - obj-$(CONFIG_GPIO_TC35892) += tc35892-gpio.o + obj-$(CONFIG_GPIO_TC3589X) += tc3589x-gpio.o obj-$(CONFIG_GPIO_TIMBERDALE) += timbgpio.o obj-$(CONFIG_GPIO_TWL4030) += twl4030-gpio.o +obj-$(CONFIG_GPIO_TPS65910) += tps65910-gpio.o obj-$(CONFIG_GPIO_UCB1400) += ucb1400_gpio.o obj-$(CONFIG_GPIO_XILINX) += xilinx_gpio.o obj-$(CONFIG_GPIO_CS5535) += cs5535-gpio.o diff --cc drivers/gpio/wm831x-gpio.c index 382ae877f370,2bcfb0be09ff..c92751694eb0 mode 100755,100644..100755 --- a/drivers/gpio/wm831x-gpio.c +++ b/drivers/gpio/wm831x-gpio.c diff --cc drivers/hid/usbhid/hid-core.c index 63c0154e9e3b,38c261a40c74..852d74d935a2 mode 100755,100644..100755 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c diff --cc drivers/i2c/algos/i2c-algo-bit.c index 1c83580af616,d6d58684712b..a0e039db581c mode 100755,100644..100755 --- a/drivers/i2c/algos/i2c-algo-bit.c +++ b/drivers/i2c/algos/i2c-algo-bit.c diff --cc drivers/i2c/busses/i2c-gpio.c index b09ca976b151,a651779d9ff7..49363163d52c mode 100755,100644..100755 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c diff --cc drivers/i2c/i2c-boardinfo.c index 6a42cad3635e,3ca2e012e789..a35251e2c8ec mode 100755,100644..100755 --- a/drivers/i2c/i2c-boardinfo.c +++ b/drivers/i2c/i2c-boardinfo.c diff --cc drivers/i2c/i2c-core.c index 483bb2e8cf5a,9a58994ff7ea..be7a00c60e55 mode 100755,100644..100755 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@@ -575,24 -537,10 +553,22 @@@ i2c_new_device(struct i2c_adapter *adap client->dev.parent = &client->adapter->dev; client->dev.bus = &i2c_bus_type; client->dev.type = &i2c_client_type; - #ifdef CONFIG_OF client->dev.of_node = info->of_node; - #endif - dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap), - client->addr); + /* ddl@rock-chips.com : Devices which have some i2c addr can work in same i2c bus, + if devices havn't work at the same time.*/ + #if 0 + dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap), + client->addr); + #else + if (status == 0) + dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap), + client->addr); + else + dev_set_name(&client->dev, "%d-%04x-%01x", i2c_adapter_id(adap), + client->addr,status); + #endif + status = device_register(&client->dev); if (status) goto out_err; diff --cc drivers/input/Kconfig index 1c7495c0786d,c0e639c1b179..d52a16a23a4a mode 100755,100644..100755 --- a/drivers/input/Kconfig +++ b/drivers/input/Kconfig diff --cc drivers/input/Makefile index 7ad212d31f99,5d4593d3101d..5d4593d3101d mode 100755,100644..100755 --- a/drivers/input/Makefile +++ b/drivers/input/Makefile diff --cc drivers/input/misc/Kconfig index 9ab32b891205,6f4ad1a7c3ee..7ce1e9672633 mode 100755,100644..100755 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig diff --cc drivers/input/misc/Makefile index a60f517d2e08,eb73834150b7..41136b497844 mode 100755,100644..100755 --- a/drivers/input/misc/Makefile +++ b/drivers/input/misc/Makefile @@@ -4,9 -4,8 +4,10 @@@ # Each configuration option enables a list of files. +obj-$(CONFIG_INPUT_LPSENSOR_CM3602) += capella_cm3602.o +obj-$(CONFIG_INPUT_LPSENSOR_ISL29028) += isl29028.o obj-$(CONFIG_INPUT_88PM860X_ONKEY) += 88pm860x_onkey.o + obj-$(CONFIG_INPUT_AB8500_PONKEY) += ab8500-ponkey.o obj-$(CONFIG_INPUT_AD714X) += ad714x.o obj-$(CONFIG_INPUT_AD714X_I2C) += ad714x-i2c.o obj-$(CONFIG_INPUT_AD714X_SPI) += ad714x-spi.o @@@ -40,7 -43,8 +46,7 @@@ obj-$(CONFIG_INPUT_TPS65910_PWRBUTTON) obj-$(CONFIG_INPUT_TWL4030_PWRBUTTON) += twl4030-pwrbutton.o obj-$(CONFIG_INPUT_TWL4030_VIBRA) += twl4030-vibra.o obj-$(CONFIG_INPUT_UINPUT) += uinput.o - obj-$(CONFIG_INPUT_WINBOND_CIR) += winbond-cir.o obj-$(CONFIG_INPUT_WISTRON_BTNS) += wistron_btns.o obj-$(CONFIG_INPUT_WM831X_ON) += wm831x-on.o + obj-$(CONFIG_INPUT_XEN_KBDDEV_FRONTEND) += xen-kbdfront.o obj-$(CONFIG_INPUT_YEALINK) += yealink.o - diff --cc drivers/input/touchscreen/Kconfig index 0069d9703fda,410410396700..410410396700 mode 100755,100644..100755 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig diff --cc drivers/input/touchscreen/Makefile index c4928eebba7b,0738f19633b1..6bd028a9ffcb mode 100755,100644..100755 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile diff --cc drivers/leds/Kconfig index 01052c2f8060,b84e46bdedce..99809849fc10 mode 100755,100644..100755 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@@ -165,16 -199,9 +199,17 @@@ config LEDS_GPIO_O of_platform devices. For instance, LEDs which are listed in a "dts" file. +config LEDS_NEWTON_PWM + bool "LED Support for newton pwm" + depends on LEDS_CLASS&&ARCH_RK29 + default n + help + Let the leds-gpio driver drive LEDs which have been defined as + platform devices. If you don't know what this means, say yes. + config LEDS_LP3944 tristate "LED Support for N.S. LP3944 (Fun Light) I2C chip" + depends on LEDS_CLASS depends on I2C help This option enables support for LEDs connected to the National @@@ -269,15 -323,9 +331,16 @@@ config LEDS_BD280 This option enables support for BD2802GU RGB LED driver chips accessed via the I2C bus. +config LEDS_ATT1272 + tristate "LED driver for ATT1272 LED" + depends on LEDS_CLASS && I2C + help + This option enables support for ATT1272 LED driver chips + accessed via the I2C bus. + config LEDS_INTEL_SS4200 tristate "LED driver for Intel NAS SS4200 series" + depends on LEDS_CLASS depends on PCI && DMI help This option enables support for the Intel SS4200 series of diff --cc drivers/leds/Makefile index 5ba3fb7a402d,cb77b9bb2f98..cac0fc0708db mode 100755,100644..100755 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile diff --cc drivers/media/video/Kconfig index 31f658eecb46,bb53de7fe408..aab1f5807590 mode 100755,100644..100755 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig @@@ -1076,45 -928,8 +1107,45 @@@ config VIDEO_OMAP ---help--- This is a v4l2 driver for the TI OMAP2 camera capture interface +config VIDEO_RK29 + tristate "RK29XX Camera Sensor Interface driver" + depends on VIDEO_DEV && ARCH_RK29 && SOC_CAMERA && HAS_DMA + select VIDEOBUF_DMA_CONTIG + ---help--- + This is a v4l2 driver for the RK29XX Camera Sensor Interface + +choice + prompt "RK29XX Camera Sensor Interface Work Mode" + depends on VIDEO_RK29 + default VIDEO_RK29_WORK_ONEFRAME + ---help--- + RK29 Camera Sensor Interface(VIP) can work in 2 modes, ie:OneFrame,PingPong. + +config VIDEO_RK29_WORK_ONEFRAME + bool "VIP OneFrame Mode" + +config VIDEO_RK29_WORK_PINGPONG + bool "VIP PingPong Mode" + +endchoice + +choice + prompt "RK29XX camera sensor interface work with IPP " + depends on VIDEO_RK29 && RK29_IPP + default VIDEO_RK29_WORK_IPP + ---help--- + RK29 Camera Sensor Interface(VIP) can work with IPP or not IPP + +config VIDEO_RK29_WORK_IPP + bool "VIP work with IPP" + +config VIDEO_RK29_WORK_NOT_IPP + bool "VIP don't work with IPP" + +endchoice + config VIDEO_MX2_HOSTSUPPORT - bool + bool config VIDEO_MX2 tristate "i.MX27/i.MX25 Camera Sensor Interface driver" diff --cc drivers/media/video/Makefile index 40f98fba5f88,f0fecd6f6a33..f0fecd6f6a33 mode 100755,100644..100755 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile diff --cc drivers/media/video/uvc/uvc_video.c index 08a917005596,49994793cc77..97e1c66a5039 mode 100755,100644..100755 --- a/drivers/media/video/uvc/uvc_video.c +++ b/drivers/media/video/uvc/uvc_video.c diff --cc drivers/media/video/uvc/uvcvideo.h index bab1fa6e75b5,20107fd3574d..06e24361b266 mode 100755,100644..100755 --- a/drivers/media/video/uvc/uvcvideo.h +++ b/drivers/media/video/uvc/uvcvideo.h @@@ -461,9 -493,8 +496,10 @@@ struct uvc_streaming dma_addr_t urb_dma[UVC_URBS]; unsigned int urb_size; + __u32 sequence; __u8 last_fid; + + struct tasklet_struct *tasklet[UVC_URBS]; /* ddl@rock-chips.com */ }; enum uvc_device_state { diff --cc drivers/mfd/Kconfig index db51ea1c6082,6ca938a6bf94..6ca938a6bf94 mode 100755,100644..100755 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig diff --cc drivers/mfd/Makefile index feaeeaeeddb7,d7d47d2a4c76..d7d47d2a4c76 mode 100755,100644..100755 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile diff --cc drivers/mfd/wm831x-irq.c index 294183b6260b,42b928ec891e..42b928ec891e mode 100755,100644..100755 --- a/drivers/mfd/wm831x-irq.c +++ b/drivers/mfd/wm831x-irq.c diff --cc drivers/mfd/wm8994-core.c index b3b2aaf89dbe,e198d40292e7..e198d40292e7 mode 100755,100644..100755 --- a/drivers/mfd/wm8994-core.c +++ b/drivers/mfd/wm8994-core.c diff --cc drivers/misc/Kconfig index b74331260744,68f367184ab5..68f367184ab5 mode 100755,100644..100755 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig diff --cc drivers/misc/Makefile index 42eab95cde2a,2d430484519c..2d430484519c mode 100755,100644..100755 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile diff --cc drivers/mmc/card/block.c index d545f79f6000,c779503e7578..c779503e7578 mode 100755,100644..100755 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c diff --cc drivers/mmc/core/bus.c index 68ace37a1c05,393d817ed040..25667a59c91e mode 100755,100644..100755 --- a/drivers/mmc/core/bus.c +++ b/drivers/mmc/core/bus.c diff --cc drivers/mmc/core/core.c index 09eee6df0653,7c3444a37070..7c3444a37070 mode 100755,100644..100755 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c diff --cc drivers/mmc/core/sd.c index 0f5241085557,5decf4972bcb..5decf4972bcb mode 100755,100644..100755 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c diff --cc drivers/mmc/core/sdio.c index f332c52968b7,7da522e958a0..7da522e958a0 mode 100755,100644..100755 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c diff --cc drivers/mmc/host/Kconfig index 886dbc95f135,56dbf3f6ad08..919144060c9c mode 100755,100644..100755 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig diff --cc drivers/mtd/mtd_blkdevs.c index 121075fd84a0,ca385697446e..783db0e48819 mode 100755,100644..100755 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c diff --cc drivers/mtd/mtdblock.c index cebcc436f170,3326615ad66b..a82d868ea7de mode 100755,100644..100755 --- a/drivers/mtd/mtdblock.c +++ b/drivers/mtd/mtdblock.c diff --cc drivers/net/Kconfig index e473def09a96,906ef8fa0060..9c9eec33143b mode 100755,100644..100755 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig diff --cc drivers/net/dm9000.c index c053e742562d,ee597e676ee5..7d82334e4941 mode 100755,100644..100755 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@@ -1199,10 -1155,11 +1165,11 @@@ dm9000_open(struct net_device *dev if (irqflags == IRQF_TRIGGER_NONE) dev_warn(db->dev, "WARNING: no IRQ resource flags set.\n"); - irqflags |= IRQF_SHARED; + //irqflags |= IRQF_SHARED; - if (request_irq(dev->irq, dm9000_interrupt, irqflags, dev->name, dev)) - return -EAGAIN; + /* GPIO0 on pre-activate PHY, Reg 1F is not set by reset */ + iow(db, DM9000_GPR, 0); /* REG_1F bit0 activate phyxcer */ + mdelay(1); /* delay needs by DM9000B */ /* Initialize DM9000 board */ dm9000_reset(db); diff --cc drivers/power/Kconfig index dd3bc824ef4c,e57b50b38565..935b5c17c481 mode 100755,100644..100755 --- a/drivers/power/Kconfig +++ b/drivers/power/Kconfig diff --cc drivers/power/Makefile index 4ed46e2e40c9,009a90fa8ac9..ecd0e194da8f --- a/drivers/power/Makefile +++ b/drivers/power/Makefile @@@ -36,9 -30,9 +31,13 @@@ obj-$(CONFIG_BATTERY_MAX17042) += max17 obj-$(CONFIG_BATTERY_Z2) += z2_battery.o obj-$(CONFIG_BATTERY_S3C_ADC) += s3c_adc_battery.o obj-$(CONFIG_CHARGER_PCF50633) += pcf50633-charger.o +obj-$(CONFIG_BATTERY_STC3100) += stc3100_battery.o +obj-$(CONFIG_BATTERY_BQ27510) += bq27510_battery.o +obj-$(CONFIG_BATTERY_BQ27541) += bq27541_battery.o +obj-$(CONFIG_BATTERY_BQ3060) += bq3060_battery.o obj-$(CONFIG_BATTERY_JZ4740) += jz4740-battery.o obj-$(CONFIG_BATTERY_INTEL_MID) += intel_mid_battery.o + obj-$(CONFIG_CHARGER_ISP1704) += isp1704_charger.o + obj-$(CONFIG_CHARGER_MAX8903) += max8903_charger.o + obj-$(CONFIG_CHARGER_TWL4030) += twl4030_charger.o + obj-$(CONFIG_CHARGER_GPIO) += gpio-charger.o diff --cc drivers/power/wm831x_power.c index fbcc36dae470,ddf8cf5f3204..ddf8cf5f3204 mode 100755,100644..100755 --- a/drivers/power/wm831x_power.c +++ b/drivers/power/wm831x_power.c diff --cc drivers/regulator/Kconfig index 0d19d0d866cc,d7ed20f293d7..b59159bf8380 mode 100755,100644..100755 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig diff --cc drivers/regulator/Makefile index 8285fd832e16,3932d2ec38f3..3932d2ec38f3 mode 100755,100644..100755 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile diff --cc drivers/regulator/core.c index cc8b337b9119,d3e38790906e..d3e38790906e mode 100755,100644..100755 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c diff --cc drivers/regulator/wm831x-dcdc.c index dbfaf5945e48,a0982e809851..a0982e809851 mode 100755,100644..100755 --- a/drivers/regulator/wm831x-dcdc.c +++ b/drivers/regulator/wm831x-dcdc.c diff --cc drivers/regulator/wm831x-isink.c index 6c446cd6ad54,01f27c7f4236..01f27c7f4236 mode 100755,100644..100755 --- a/drivers/regulator/wm831x-isink.c +++ b/drivers/regulator/wm831x-isink.c diff --cc drivers/regulator/wm831x-ldo.c index 9edf8f692341,2220cf8defb1..2220cf8defb1 mode 100755,100644..100755 --- a/drivers/regulator/wm831x-ldo.c +++ b/drivers/regulator/wm831x-ldo.c diff --cc drivers/regulator/wm8994-regulator.c index e1628d637412,35b2958d5106..383080bf9762 --- a/drivers/regulator/wm8994-regulator.c +++ b/drivers/regulator/wm8994-regulator.c @@@ -121,10 -120,10 +120,10 @@@ static struct regulator_ops wm8994_ldo1 .enable = wm8994_ldo_enable, .disable = wm8994_ldo_disable, .is_enabled = wm8994_ldo_is_enabled, - .enable_time = wm8994_ldo_enable_time, +// .enable_time = wm8994_ldo_enable_time, .list_voltage = wm8994_ldo1_list_voltage, - .get_voltage = wm8994_ldo1_get_voltage, + .get_voltage_sel = wm8994_ldo1_get_voltage_sel, .set_voltage = wm8994_ldo1_set_voltage, }; @@@ -172,10 -189,10 +189,10 @@@ static struct regulator_ops wm8994_ldo2 .enable = wm8994_ldo_enable, .disable = wm8994_ldo_disable, .is_enabled = wm8994_ldo_is_enabled, - .enable_time = wm8994_ldo_enable_time, +// .enable_time = wm8994_ldo_enable_time, .list_voltage = wm8994_ldo2_list_voltage, - .get_voltage = wm8994_ldo2_get_voltage, + .get_voltage_sel = wm8994_ldo2_get_voltage_sel, .set_voltage = wm8994_ldo2_set_voltage, }; diff --cc drivers/rtc/Kconfig index 48ca7132cc05,27c37743e2c9..27c37743e2c9 mode 100755,100644..100755 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig diff --cc drivers/rtc/Makefile index 0f207b3b5833,7d2795810431..7d2795810431 mode 100755,100644..100755 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile diff --cc drivers/rtc/rtc-wm831x.c index 9f87cbc0fb27,bdc909bd56da..9e6a3a40d45b mode 100755,100644..100755 --- a/drivers/rtc/rtc-wm831x.c +++ b/drivers/rtc/rtc-wm831x.c diff --cc drivers/spi/Kconfig index 0942452ef16b,de35c3ad8a69..a4d446fe8d02 mode 100755,100644..100755 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig diff --cc drivers/spi/Makefile index 39aa49d0e48b,0f8c69b6b19e..58a98b01e0c8 mode 100755,100644..100755 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile diff --cc drivers/spi/spi.c index 90b6a3fbd36d,2e13a14bba3f..2b39a90fc15d mode 100755,100644..100755 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c diff --cc drivers/staging/Kconfig index 335311a98fdc,11a4b5b35963..11a4b5b35963 mode 100755,100644..100755 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig diff --cc drivers/staging/Makefile index e3f1e1b6095e,ae62e923e1b8..ae62e923e1b8 mode 100755,100644..100755 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile diff --cc drivers/staging/iio/Kconfig index ed48815a916b,d329635fb5c4..d329635fb5c4 mode 100755,100644..100755 --- a/drivers/staging/iio/Kconfig +++ b/drivers/staging/iio/Kconfig diff --cc drivers/staging/iio/Makefile index e909674920fc,bb5c95c7d694..bb5c95c7d694 mode 100755,100644..100755 --- a/drivers/staging/iio/Makefile +++ b/drivers/staging/iio/Makefile diff --cc drivers/usb/core/hcd.c index e81faa5cc7d6,ace9f8442e5d..3fc77372b66c --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@@ -1920,10 -1950,15 +1950,16 @@@ int hcd_bus_suspend(struct usb_device * dev_dbg(&rhdev->dev, "bus %s%s\n", (msg.event & PM_EVENT_AUTO ? "auto-" : ""), "suspend"); + if (HCD_DEAD(hcd)) { + dev_dbg(&rhdev->dev, "skipped %s of dead bus\n", "suspend"); + return 0; + } + if (!hcd->driver->bus_suspend) { + printk("%s,error,everest\n",__func__); status = -ENOENT; } else { + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags); hcd->state = HC_STATE_QUIESCING; status = hcd->driver->bus_suspend(hcd); } diff --cc drivers/usb/core/hub.c index ed7ec9887a0e,a428aa080a36..9b07470c5f9f mode 100755,100644..100755 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c diff --cc drivers/usb/core/usb.c index 693305636c88,8706fc97e60f..4516712c6936 mode 100755,100644..100755 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c diff --cc drivers/usb/gadget/composite.c index 86a58e4d8b85,dc06da669739..6182f6d04519 mode 100755,100644..100755 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c diff --cc drivers/usb/gadget/gadget_chips.h index 410016034619,bcdac7c73e89..dc537f1cb06b --- a/drivers/usb/gadget/gadget_chips.h +++ b/drivers/usb/gadget/gadget_chips.h @@@ -204,10 -213,17 +219,19 @@@ static inline int usb_gadget_controller return 0x24; else if (gadget_is_r8a66597(gadget)) return 0x25; + else if (gadget_is_dwc_otg(gadget)) + return 0x22; else if (gadget_is_s3c_hsotg(gadget)) return 0x26; + else if (gadget_is_pch(gadget)) + return 0x27; + else if (gadget_is_ci13xxx_msm(gadget)) + return 0x28; + else if (gadget_is_renesas_usbhs(gadget)) + return 0x29; + else if (gadget_is_s3c_hsudc(gadget)) + return 0x30; + return -ENOENT; } diff --cc drivers/usb/storage/usb.c index 90bb0175a152,0ca095820f3e..0ca095820f3e mode 100755,100644..100755 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c diff --cc drivers/video/Kconfig index cafde376dc10,4c85a4b15f97..975175ecb160 mode 100755,100644..100755 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig diff --cc drivers/video/Makefile index ffe6a6c7d442,8b83129e209c..2ad17115b399 mode 100755,100644..100755 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@@ -121,8 -125,8 +125,9 @@@ obj-$(CONFIG_FB_PNX4008_DUM) += pnx40 obj-$(CONFIG_FB_PNX4008_DUM_RGB) += pnx4008/ obj-$(CONFIG_FB_IBM_GXT4500) += gxt4500.o obj-$(CONFIG_FB_PS3) += ps3fb.o +obj-$(CONFIG_FB_RK29) += rk29_fb.o obj-$(CONFIG_FB_SM501) += sm501fb.o + obj-$(CONFIG_FB_UDL) += udlfb.o obj-$(CONFIG_FB_XILINX) += xilinxfb.o obj-$(CONFIG_SH_MIPI_DSI) += sh_mipi_dsi.o obj-$(CONFIG_FB_SH_MOBILE_HDMI) += sh_mobile_hdmi.o diff --cc drivers/video/backlight/Makefile index 31937f1b77ea,ee72adb8786e..d1a7f6e8ed38 --- a/drivers/video/backlight/Makefile +++ b/drivers/video/backlight/Makefile @@@ -32,12 -33,8 +33,13 @@@ obj-$(CONFIG_BACKLIGHT_SAHARA) += kb388 obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o obj-$(CONFIG_BACKLIGHT_ADX) += adx_bl.o obj-$(CONFIG_BACKLIGHT_ADP5520) += adp5520_bl.o +obj-$(CONFIG_BACKLIGHT_RK29_BL) += rk29_backlight.o +obj-$(CONFIG_BACKLIGHT_RK29_NEWTON_BL) += rk29_newton_backlight.o +obj-$(CONFIG_BACKLIGHT_AW9364) += aw9364_bl.o +obj-$(CONFIG_FIH_TOUCHKEY_LED) += fih_touchkey_led.o +obj-$(CONFIG_BUTTON_LIGHT) += rk29_buttonlight.o obj-$(CONFIG_BACKLIGHT_ADP8860) += adp8860_bl.o + obj-$(CONFIG_BACKLIGHT_ADP8870) += adp8870_bl.o obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o obj-$(CONFIG_BACKLIGHT_PCF50633) += pcf50633-backlight.o diff --cc drivers/video/backlight/wm831x_bl.c index 08fd87f3aecc,d4c6eb248ff9..d4c6eb248ff9 mode 100755,100644..100755 --- a/drivers/video/backlight/wm831x_bl.c +++ b/drivers/video/backlight/wm831x_bl.c diff --cc drivers/video/fbmem.c index bd6b69e48f14,5aac00eb1830..d9369a700dda mode 100755,100644..100755 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c diff --cc drivers/watchdog/wm831x_wdt.c index 8c4b2d5bb7da,871caea4e1c6..871caea4e1c6 mode 100755,100644..100755 --- a/drivers/watchdog/wm831x_wdt.c +++ b/drivers/watchdog/wm831x_wdt.c diff --cc fs/block_dev.c index 0297699eb436,610e8e0b04b8..977a97b7f0b1 mode 100755,100644..100755 --- a/fs/block_dev.c +++ b/fs/block_dev.c diff --cc fs/cramfs/inode.c index 3a0d63c75ea4,739fb59bcdc2..6c929580f327 mode 100755,100644..100755 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c diff --cc include/linux/fb.h index 783c4db80706,6a8274877171..0dcb6b4dc8d6 mode 100755,100644..100755 --- a/include/linux/fb.h +++ b/include/linux/fb.h diff --cc include/linux/gfp.h index da3a479228af,cb4089254f01..c2ccc3e4311b --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@@ -38,30 -66,26 +66,28 @@@ struct vm_area_struct * __GFP_MOVABLE: Flag that this page will be movable by the page migration * mechanism or reclaimed */ - #define __GFP_WAIT ((__force gfp_t)0x10u) /* Can wait and reschedule? */ - #define __GFP_HIGH ((__force gfp_t)0x20u) /* Should access emergency pools? */ - #define __GFP_IO ((__force gfp_t)0x40u) /* Can start physical IO? */ - #define __GFP_FS ((__force gfp_t)0x80u) /* Can call down to low-level FS? */ - #define __GFP_COLD ((__force gfp_t)0x100u) /* Cache-cold page required */ - #define __GFP_NOWARN ((__force gfp_t)0x200u) /* Suppress page allocation failure warning */ - #define __GFP_REPEAT ((__force gfp_t)0x400u) /* See above */ - #define __GFP_NOFAIL ((__force gfp_t)0x800u) /* See above */ - #define __GFP_NORETRY ((__force gfp_t)0x1000u)/* See above */ - #define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */ - #define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */ - #define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */ - #define __GFP_HARDWALL ((__force gfp_t)0x20000u) /* Enforce hardwall cpuset memory allocs */ - #define __GFP_THISNODE ((__force gfp_t)0x40000u)/* No fallback, no policies */ - #define __GFP_RECLAIMABLE ((__force gfp_t)0x80000u) /* Page is reclaimable */ - - #ifdef CONFIG_KMEMCHECK - #define __GFP_NOTRACK ((__force gfp_t)0x200000u) /* Don't track with kmemcheck */ - #else - #define __GFP_NOTRACK ((__force gfp_t)0) - #endif + #define __GFP_WAIT ((__force gfp_t)___GFP_WAIT) /* Can wait and reschedule? */ + #define __GFP_HIGH ((__force gfp_t)___GFP_HIGH) /* Should access emergency pools? */ + #define __GFP_IO ((__force gfp_t)___GFP_IO) /* Can start physical IO? */ + #define __GFP_FS ((__force gfp_t)___GFP_FS) /* Can call down to low-level FS? */ + #define __GFP_COLD ((__force gfp_t)___GFP_COLD) /* Cache-cold page required */ + #define __GFP_NOWARN ((__force gfp_t)___GFP_NOWARN) /* Suppress page allocation failure warning */ + #define __GFP_REPEAT ((__force gfp_t)___GFP_REPEAT) /* See above */ + #define __GFP_NOFAIL ((__force gfp_t)___GFP_NOFAIL) /* See above */ + #define __GFP_NORETRY ((__force gfp_t)___GFP_NORETRY) /* See above */ + #define __GFP_COMP ((__force gfp_t)___GFP_COMP) /* Add compound page metadata */ + #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) /* Return zeroed page on success */ + #define __GFP_NOMEMALLOC ((__force gfp_t)___GFP_NOMEMALLOC) /* Don't use emergency reserves */ + #define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) /* Enforce hardwall cpuset memory allocs */ + #define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)/* No fallback, no policies */ + #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */ + #define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */ + + #define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD) + #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */ +#define __GFP_NO_KSWAPD ((__force gfp_t)0x400000u) + /* * This may seem redundant, but it's a way of annotating false positives vs. * allocations that simply cannot be supported (e.g. page tables). diff --cc include/linux/i2c.h index 4bae0b72ed3c,a6c652ef516d..a6c652ef516d mode 100755,100644..100755 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h diff --cc include/linux/mfd/wm831x/pdata.h index fd322aca33ba,ff42d700293f..ff42d700293f mode 100755,100644..100755 --- a/include/linux/mfd/wm831x/pdata.h +++ b/include/linux/mfd/wm831x/pdata.h diff --cc include/linux/mmc/card.h index 6bdc9a038d6d,6ad43554ac05..8a63d6175a39 mode 100755,100644..100755 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@@ -154,10 -311,11 +311,13 @@@ static inline void __maybe_unused remov #define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY) #define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED) #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) + #define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR) + #define mmc_sd_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED) + #define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC) #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) +#define mmc_card_clr_present(c) ((c)->state &= ~MMC_STATE_PRESENT) + #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED) #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR) diff --cc include/linux/mmc/host.h index 1575b52c3bfa,1584b5236bbc..1584b5236bbc mode 100755,100644..100755 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h diff --cc include/linux/mtd/blktrans.h index c2d0e5676207,1bbd9f289245..b311f20f19a9 mode 100755,100644..100755 --- a/include/linux/mtd/blktrans.h +++ b/include/linux/mtd/blktrans.h @@@ -57,11 -58,12 +58,12 @@@ struct mtd_blktrans_ops /* Access functions */ int (*readsect)(struct mtd_blktrans_dev *dev, - unsigned long block, char *buffer); + unsigned long block,unsigned long nsect, char *buffer); int (*writesect)(struct mtd_blktrans_dev *dev, - unsigned long block, char *buffer); + unsigned long block,unsigned long nsect, char *buffer); int (*discard)(struct mtd_blktrans_dev *dev, unsigned long block, unsigned nr_blocks); + void (*background)(struct mtd_blktrans_dev *dev); /* Block layer ioctls */ int (*getgeo)(struct mtd_blktrans_dev *dev, struct hd_geometry *geo); diff --cc include/linux/regulator/consumer.h index ebd747265294,9e87c1cb7270..9e87c1cb7270 mode 100755,100644..100755 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h diff --cc include/media/v4l2-chip-ident.h index 21b4428c12ab,b3edb67a8311..b3edb67a8311 mode 100755,100644..100755 --- a/include/media/v4l2-chip-ident.h +++ b/include/media/v4l2-chip-ident.h diff --cc include/media/videobuf-core.h index 3d8acce0017c,90ed895e217d..455ba9384e42 mode 100755,100644..100755 --- a/include/media/videobuf-core.h +++ b/include/media/videobuf-core.h diff --cc include/sound/pcm.h index 83a471ba9de0,e1bad1130616..40f4dd276189 mode 100755,100644..100755 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h diff --cc include/sound/soc-dai.h index c9276c0ac008,1bafe95dcf41..ed73df1d4b17 mode 100755,100644..100755 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h diff --cc include/sound/soc.h index 84695defedd3,3a4bd3a3c68d..0cf11ec0ff3b mode 100755,100644..100755 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@@ -417,30 -496,52 +496,54 @@@ struct snd_soc_ops int (*hw_free)(struct snd_pcm_substream *); int (*prepare)(struct snd_pcm_substream *); int (*trigger)(struct snd_pcm_substream *, int); + /* set volume,add by qiuen*/ + void (*set_volume)(unsigned char mode,unsigned char volume); }; - /* SoC Audio Codec */ + /* SoC cache ops */ + struct snd_soc_cache_ops { + const char *name; + enum snd_soc_compress_type id; + int (*init)(struct snd_soc_codec *codec); + int (*exit)(struct snd_soc_codec *codec); + int (*read)(struct snd_soc_codec *codec, unsigned int reg, + unsigned int *value); + int (*write)(struct snd_soc_codec *codec, unsigned int reg, + unsigned int value); + int (*sync)(struct snd_soc_codec *codec); + }; + + /* SoC Audio Codec device */ struct snd_soc_codec { - char *name; - struct module *owner; - struct mutex mutex; + const char *name; + const char *name_prefix; + int id; struct device *dev; - struct snd_soc_device *socdev; + const struct snd_soc_codec_driver *driver; + struct mutex mutex; + struct snd_soc_card *card; struct list_head list; - - /* callbacks */ - int (*set_bias_level)(struct snd_soc_codec *, - enum snd_soc_bias_level level); + struct list_head card_list; + int num_dai; + enum snd_soc_compress_type compress_type; + size_t reg_size; /* reg_cache_size * reg_word_size */ + int (*volatile_register)(struct snd_soc_codec *, unsigned int); + int (*readable_register)(struct snd_soc_codec *, unsigned int); + int (*writable_register)(struct snd_soc_codec *, unsigned int); /* runtime */ - struct snd_card *card; struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */ unsigned int active; - unsigned int pcm_devs; - void *drvdata; + unsigned int cache_bypass:1; /* Suppress access to the cache */ + unsigned int suspended:1; /* Codec is in suspend PM state */ + unsigned int probed:1; /* Codec has been probed */ + unsigned int ac97_registered:1; /* Codec has been AC97 registered */ + unsigned int ac97_created:1; /* Codec has been created by SoC */ + unsigned int sysfs_registered:1; /* codec has been sysfs registered */ + unsigned int cache_init:1; /* codec cache has been initialized */ + u32 cache_only; /* Suppress writes to hardware */ + u32 cache_sync; /* Cache needs to be synced to hardware */ /* codec IO */ void *control_data; /* codec control (i2c/3wire) data */ diff --cc init/Kconfig index 9921944cbdef,4fe9168149fc..df8ea4f32c45 --- a/init/Kconfig +++ b/init/Kconfig @@@ -128,9 -132,8 +132,9 @@@ config HAVE_KERNEL_LZ choice prompt "Kernel compression mode" + default KERNEL_LZO if ARCH_RK29 default KERNEL_GZIP - depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_LZO + depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO help The linux kernel is a kind of self-extracting executable. Several compression algorithms are available, which differ diff --cc net/bluetooth/rfcomm/core.c index 7dca91bb8c57,c2486a53714e..c2486a53714e mode 100755,100644..100755 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c diff --cc sound/core/pcm_native.c index 081568771b0a,1c6be91dfb98..b726f6723460 mode 100755,100644..100755 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c diff --cc sound/soc/Kconfig index 9d4647a083b3,8224db5f0434..aab26f2a1675 --- a/sound/soc/Kconfig +++ b/sound/soc/Kconfig @@@ -35,12 -50,14 +50,14 @@@ source "sound/soc/jz4740/Kconfig source "sound/soc/nuc900/Kconfig" source "sound/soc/omap/Kconfig" source "sound/soc/kirkwood/Kconfig" + source "sound/soc/mid-x86/Kconfig" source "sound/soc/pxa/Kconfig" - source "sound/soc/s3c24xx/Kconfig" + source "sound/soc/samsung/Kconfig" source "sound/soc/s6000/Kconfig" source "sound/soc/sh/Kconfig" + source "sound/soc/tegra/Kconfig" source "sound/soc/txx9/Kconfig" - +source "sound/soc/rk29/Kconfig" # Supported codecs source "sound/soc/codecs/Kconfig" diff --cc sound/soc/Makefile index 43b638f2ee4b,1ed61c5df2c5..7cd623ead431 --- a/sound/soc/Makefile +++ b/sound/soc/Makefile @@@ -14,8 -15,8 +15,9 @@@ obj-$(CONFIG_SND_SOC) += nuc900 obj-$(CONFIG_SND_SOC) += omap/ obj-$(CONFIG_SND_SOC) += kirkwood/ obj-$(CONFIG_SND_SOC) += pxa/ - obj-$(CONFIG_SND_SOC) += s3c24xx/ + obj-$(CONFIG_SND_SOC) += samsung/ obj-$(CONFIG_SND_SOC) += s6000/ obj-$(CONFIG_SND_SOC) += sh/ + obj-$(CONFIG_SND_SOC) += tegra/ obj-$(CONFIG_SND_SOC) += txx9/ +obj-$(CONFIG_SND_SOC) += rk29/ diff --cc sound/soc/codecs/wm8900.c index 5da17a704e5a,449ea09a193d..449ea09a193d mode 100755,100644..100755 --- a/sound/soc/codecs/wm8900.c +++ b/sound/soc/codecs/wm8900.c diff --cc sound/soc/codecs/wm8994.c index 522249d5c2b4,83014a7c2e14..83014a7c2e14 mode 100755,100644..100755 --- a/sound/soc/codecs/wm8994.c +++ b/sound/soc/codecs/wm8994.c diff --cc sound/soc/codecs/wm8994.h index 2e0ca67a8df7,0a1db04b73bd..0a1db04b73bd mode 100755,100644..100755 --- a/sound/soc/codecs/wm8994.h +++ b/sound/soc/codecs/wm8994.h diff --cc sound/soc/codecs/wm_hubs.c index 2cb81538cd91,9e370d14ad88..9e370d14ad88 mode 100755,100644..100755 --- a/sound/soc/codecs/wm_hubs.c +++ b/sound/soc/codecs/wm_hubs.c diff --cc sound/soc/codecs/wm_hubs.h index e51c16683589,f8a5e976b5e6..f8a5e976b5e6 mode 100755,100644..100755 --- a/sound/soc/codecs/wm_hubs.h +++ b/sound/soc/codecs/wm_hubs.h