]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Manual merge to sync with mainline
authorTony Lindgren <tony@atomide.com>
Tue, 4 Apr 2006 20:30:54 +0000 (13:30 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 4 Apr 2006 20:30:54 +0000 (13:30 -0700)
17 files changed:
Makefile
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/boot/compressed/Makefile
arch/arm/mach-omap1/board-osk.c
arch/arm/mach-omap1/board-voiceblue.c
drivers/Kconfig
drivers/Makefile
drivers/char/Makefile
drivers/i2c/chips/Makefile
drivers/i2c/chips/tps65010.c
drivers/mmc/mmc.c
drivers/mtd/nand/Kconfig
drivers/net/irda/Makefile
drivers/usb/host/ohci-omap.c
drivers/video/omap/omapfb_main.c
include/asm-arm/arch-omap/omap-alsa.h

index edcce62edda3a1af0dac8c1d696aa8de6df5662e..718c31c24165fae7c9619769d03e2ac9ecd2b472 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
-SUBLEVEL = 16
-EXTRAVERSION =
+SUBLEVEL = 17
+EXTRAVERSION =-rc1
 NAME=Sliding Snow Leopard
 
 # *DOCUMENTATION*
@@ -11,7 +11,7 @@ NAME=Sliding Snow Leopard
 # expect to learn how to build the kernel reading this file.
 
 # Add custom flags here to avoid conflict with updates
-EXTRAVERSION := $(EXTRAVERSION)-omap2
+EXTRAVERSION := $(EXTRAVERSION)-omap1
 
 # Do not print "Entering directory ..."
 MAKEFLAGS += --no-print-directory
@@ -98,7 +98,7 @@ ifdef O
 endif
 
 # That's our default target when none is given on the command line
-.PHONY: _all
+PHONY := _all
 _all:
 
 ifneq ($(KBUILD_OUTPUT),)
@@ -109,7 +109,7 @@ KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
 $(if $(KBUILD_OUTPUT),, \
      $(error output directory "$(saved-output)" does not exist))
 
-.PHONY: $(MAKECMDGOALS)
+PHONY += $(MAKECMDGOALS)
 
 $(filter-out _all,$(MAKECMDGOALS)) _all:
        $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
@@ -126,7 +126,7 @@ ifeq ($(skip-makefile),)
 
 # If building an external module we do not care about the all: rule
 # but instead _all depend on modules
-.PHONY: all
+PHONY += all
 ifeq ($(KBUILD_EXTMOD),)
 _all: all
 else
@@ -140,7 +140,7 @@ objtree             := $(CURDIR)
 src            := $(srctree)
 obj            := $(objtree)
 
-VPATH          := $(srctree)
+VPATH          := $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
 
 export srctree objtree VPATH TOPDIR
 
@@ -154,7 +154,7 @@ export srctree objtree VPATH TOPDIR
 SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
                                  -e s/arm.*/arm/ -e s/sa110/arm/ \
                                  -e s/s390x/s390/ -e s/parisc64/parisc/ \
-                                 -e s/ppc.*/powerpc/ )
+                                 -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )
 SUBARCH := arm
 
 # Cross compiling and selecting different set of gcc/bin-utils
@@ -262,38 +262,6 @@ endif
 
 export quiet Q KBUILD_VERBOSE
 
-######
-# cc support functions to be used (only) in arch/$(ARCH)/Makefile
-# See documentation in Documentation/kbuild/makefiles.txt
-
-# as-option
-# Usage: cflags-y += $(call as-option, -Wa$(comma)-isa=foo,)
-
-as-option = $(shell if $(CC) $(CFLAGS) $(1) -Wa,-Z -c -o /dev/null \
-            -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \
-            else echo "$(2)"; fi ;)
-
-# cc-option
-# Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586)
-
-cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
-             > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
-
-# cc-option-yn
-# Usage: flag := $(call cc-option-yn, -march=winchip-c6)
-cc-option-yn = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
-                > /dev/null 2>&1; then echo "y"; else echo "n"; fi;)
-
-# cc-option-align
-# Prefix align with either -falign or -malign
-cc-option-align = $(subst -functions=0,,\
-       $(call cc-option,-falign-functions=0,-malign-functions=0))
-
-# cc-version
-# Usage gcc-ver := $(call cc-version $(CC))
-cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh \
-              $(if $(1), $(1), $(CC)))
-
 
 # Look for make include files relative to root of kernel src
 MAKEFLAGS += --include-dir=$(srctree)
@@ -342,8 +310,7 @@ LINUXINCLUDE    := -Iinclude \
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS                 := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-                  -fno-strict-aliasing -fno-common \
-                  -ffreestanding
+                  -fno-strict-aliasing -fno-common
 AFLAGS         := -D__ASSEMBLY__
 
 # Read KERNELRELEASE from .kernelrelease (if it exists)
@@ -373,14 +340,14 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exc
 # Rules shared between *config targets and build targets
 
 # Basic helpers built in scripts/
-.PHONY: scripts_basic
+PHONY += scripts_basic
 scripts_basic:
        $(Q)$(MAKE) $(build)=scripts/basic
 
 # To avoid any implicit rule to kick in, define an empty command.
 scripts/basic/%: scripts_basic ;
 
-.PHONY: outputmakefile
+PHONY += outputmakefile
 # outputmakefile generate a Makefile to be placed in output directory, if
 # using a seperate output directory. This allows convinient use
 # of make in output directory
@@ -456,7 +423,7 @@ ifeq ($(KBUILD_EXTMOD),)
 # Additional helpers built in scripts/
 # Carefully list dependencies so we do not try to build scripts twice
 # in parrallel
-.PHONY: scripts
+PHONY += scripts
 scripts: scripts_basic include/config/MARKER
        $(Q)$(MAKE) $(build)=$(@)
 
@@ -508,19 +475,16 @@ else
 CFLAGS         += -O2
 endif
 
-#Add align options if CONFIG_CC_* is not equal to 0
-add-align = $(if $(filter-out 0,$($(1))),$(cc-option-align)$(2)=$($(1)))
-CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_FUNCTIONS,-functions)
-CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_LABELS,-labels)
-CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_LOOPS,-loops)
-CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_JUMPS,-jumps)
-
 ifdef CONFIG_FRAME_POINTER
 CFLAGS         += -fno-omit-frame-pointer $(call cc-option,-fno-optimize-sibling-calls,)
 else
 CFLAGS         += -fomit-frame-pointer
 endif
 
+ifdef CONFIG_UNWIND_INFO
+CFLAGS         += -fasynchronous-unwind-tables
+endif
+
 ifdef CONFIG_DEBUG_INFO
 CFLAGS         += -g
 endif
@@ -756,7 +720,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
 # make menuconfig etc.
 # Error messages still appears in the original language
 
-.PHONY: $(vmlinux-dirs)
+PHONY += $(vmlinux-dirs)
 $(vmlinux-dirs): prepare scripts
        $(Q)$(MAKE) $(build)=$@
 
@@ -809,10 +773,10 @@ kernelrelease = $(KERNELVERSION)$(localver-full)
 # version.h and scripts_basic is processed / created.
 
 # Listed in dependency order
-.PHONY: prepare archprepare prepare0 prepare1 prepare2 prepare3
+PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
 
 # prepare-all is deprecated, use prepare as valid replacement
-.PHONY: prepare-all
+PHONY += prepare-all
 
 # prepare3 is used to check if we are building in a separate output directory,
 # and if so do:
@@ -853,27 +817,6 @@ prepare prepare-all: prepare0
 
 export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)
 
-# Single targets
-# ---------------------------------------------------------------------------
-
-%.s: %.c scripts FORCE
-       $(Q)$(MAKE) $(build)=$(@D) $@
-%.i: %.c scripts FORCE
-       $(Q)$(MAKE) $(build)=$(@D) $@
-%.o: %.c scripts FORCE
-       $(Q)$(MAKE) $(build)=$(@D) $@
-%.ko: scripts FORCE
-       $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(@D) $(@:.ko=.o)
-       $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
-%/:      scripts prepare FORCE
-       $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(@D)
-%.lst: %.c scripts FORCE
-       $(Q)$(MAKE) $(build)=$(@D) $@
-%.s: %.S scripts FORCE
-       $(Q)$(MAKE) $(build)=$(@D) $@
-%.o: %.S scripts FORCE
-       $(Q)$(MAKE) $(build)=$(@D) $@
-
 #      FIXME: The asm symlink changes when $(ARCH) changes. That's
 #      hard to detect, but I suppose "make mrproper" is a good idea
 #      before switching between archs anyway.
@@ -914,7 +857,7 @@ include/linux/version.h: $(srctree)/Makefile .config .kernelrelease FORCE
 
 # ---------------------------------------------------------------------------
 
-.PHONY: depend dep
+PHONY += depend dep
 depend dep:
        @echo '*** Warning: make $@ is unnecessary now.'
 
@@ -929,21 +872,21 @@ all: modules
 
 #      Build modules
 
-.PHONY: modules
+PHONY += modules
 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
        @echo '  Building modules, stage 2.';
        $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
 
 
 # Target to prepare building external modules
-.PHONY: modules_prepare
+PHONY += modules_prepare
 modules_prepare: prepare scripts
 
 # Target to install modules
-.PHONY: modules_install
+PHONY += modules_install
 modules_install: _modinst_ _modinst_post
 
-.PHONY: _modinst_
+PHONY += _modinst_
 _modinst_:
        @if [ -z "`$(DEPMOD) -V 2>/dev/null | grep module-init-tools`" ]; then \
                echo "Warning: you may need to install module-init-tools"; \
@@ -970,7 +913,7 @@ depmod_opts :=
 else
 depmod_opts    := -b $(INSTALL_MOD_PATH) -r
 endif
-.PHONY: _modinst_post
+PHONY += _modinst_post
 _modinst_post: _modinst_
        if [ -r System.map -a -x $(DEPMOD) ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi
 
@@ -1013,7 +956,7 @@ clean: rm-dirs  := $(CLEAN_DIRS)
 clean: rm-files := $(CLEAN_FILES)
 clean-dirs      := $(addprefix _clean_,$(srctree) $(vmlinux-alldirs))
 
-.PHONY: $(clean-dirs) clean archclean
+PHONY += $(clean-dirs) clean archclean
 $(clean-dirs):
        $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
 
@@ -1031,7 +974,7 @@ mrproper: rm-dirs  := $(wildcard $(MRPROPER_DIRS))
 mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
 mrproper-dirs      := $(addprefix _mrproper_,Documentation/DocBook scripts)
 
-.PHONY: $(mrproper-dirs) mrproper archmrproper
+PHONY += $(mrproper-dirs) mrproper archmrproper
 $(mrproper-dirs):
        $(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
 
@@ -1041,7 +984,7 @@ mrproper: clean archmrproper $(mrproper-dirs)
 
 # distclean
 #
-.PHONY: distclean
+PHONY += distclean
 
 distclean: mrproper
        @find $(srctree) $(RCS_FIND_IGNORE) \
@@ -1057,12 +1000,10 @@ distclean: mrproper
 # rpm target kept for backward compatibility
 package-dir    := $(srctree)/scripts/package
 
-.PHONY: %-pkg rpm
-
 %pkg: FORCE
-       $(Q)$(MAKE) -f $(package-dir)/Makefile $@
+       $(Q)$(MAKE) $(build)=$(package-dir) $@
 rpm: FORCE
-       $(Q)$(MAKE) -f $(package-dir)/Makefile $@
+       $(Q)$(MAKE) $(build)=$(package-dir) $@
 
 
 # Brief documentation of the typical targets used
@@ -1094,13 +1035,11 @@ help:
        @echo  '  kernelversion   - Output the version stored in Makefile'
        @echo  ''
        @echo  'Static analysers'
-       @echo  '  buildcheck      - List dangling references to vmlinux discarded sections'
-       @echo  '                    and init sections from non-init sections'
        @echo  '  checkstack      - Generate a list of stack hogs'
        @echo  '  namespacecheck  - Name space analysis on compiled kernel'
        @echo  ''
        @echo  'Kernel packaging:'
-       @$(MAKE) -f $(package-dir)/Makefile help
+       @$(MAKE) $(build)=$(package-dir) help
        @echo  ''
        @echo  'Documentation targets:'
        @$(MAKE) -f $(srctree)/Documentation/DocBook/Makefile dochelp
@@ -1149,11 +1088,12 @@ else # KBUILD_EXTMOD
 
 # We are always building modules
 KBUILD_MODULES := 1
-.PHONY: crmodverdir
+PHONY += crmodverdir
 crmodverdir:
+       $(Q)rm -rf $(MODVERDIR)
        $(Q)mkdir -p $(MODVERDIR)
 
-.PHONY: $(objtree)/Module.symvers
+PHONY += $(objtree)/Module.symvers
 $(objtree)/Module.symvers:
        @test -e $(objtree)/Module.symvers || ( \
        echo; \
@@ -1162,7 +1102,7 @@ $(objtree)/Module.symvers:
        echo )
 
 module-dirs := $(addprefix _module_,$(KBUILD_EXTMOD))
-.PHONY: $(module-dirs) modules
+PHONY += $(module-dirs) modules
 $(module-dirs): crmodverdir $(objtree)/Module.symvers
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
 
@@ -1170,13 +1110,32 @@ modules: $(module-dirs)
        @echo '  Building modules, stage 2.';
        $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
 
-.PHONY: modules_install
-modules_install:
+PHONY += modules_install
+modules_install: _emodinst_ _emodinst_post
+
+install-dir := $(if $(INSTALL_MOD_DIR),$(INSTALL_MOD_DIR),extra)
+PHONY += _emodinst_
+_emodinst_:
+       $(Q)rm -rf $(MODLIB)/$(install-dir)
+       $(Q)mkdir -p $(MODLIB)/$(install-dir)
        $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modinst
 
+# Run depmod only is we have System.map and depmod is executable
+quiet_cmd_depmod = DEPMOD  $(KERNELRELEASE)
+      cmd_depmod = if [ -r System.map -a -x $(DEPMOD) ]; then \
+                      $(DEPMOD) -ae -F System.map             \
+                      $(if $(strip $(INSTALL_MOD_PATH)),      \
+                     -b $(INSTALL_MOD_PATH) -r)              \
+                     $(KERNELRELEASE);                       \
+                   fi
+
+PHONY += _emodinst_post
+_emodinst_post: _emodinst_
+       $(call cmd,depmod)
+
 clean-dirs := $(addprefix _clean_,$(KBUILD_EXTMOD))
 
-.PHONY: $(clean-dirs) clean
+PHONY += $(clean-dirs) clean
 $(clean-dirs):
        $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
 
@@ -1196,6 +1155,11 @@ help:
        @echo  '  modules_install - install the module'
        @echo  '  clean           - remove generated files in module directory only'
        @echo  ''
+
+# Dummies...
+PHONY += prepare scripts
+prepare: ;
+scripts: ;
 endif # KBUILD_EXTMOD
 
 # Generate tags for editors
@@ -1296,17 +1260,13 @@ versioncheck:
                -name '*.[hcS]' -type f -print | sort \
                | xargs $(PERL) -w scripts/checkversion.pl
 
-buildcheck:
-       $(PERL) $(srctree)/scripts/reference_discarded.pl
-       $(PERL) $(srctree)/scripts/reference_init.pl
-
 namespacecheck:
        $(PERL) $(srctree)/scripts/namespace.pl
 
 endif #ifeq ($(config-targets),1)
 endif #ifeq ($(mixed-targets),1)
 
-.PHONY: checkstack
+PHONY += checkstack
 checkstack:
        $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
        $(PERL) $(src)/scripts/checkstack.pl $(ARCH)
@@ -1317,6 +1277,44 @@ kernelrelease:
 kernelversion:
        @echo $(KERNELVERSION)
 
+# Single targets
+# ---------------------------------------------------------------------------
+# The directory part is taken from first prerequisite, so this
+# works even with external modules
+%.s: %.c prepare scripts FORCE
+       $(Q)$(MAKE) $(build)=$(dir $<) $(dir $<)$(notdir $@)
+%.i: %.c prepare scripts FORCE
+       $(Q)$(MAKE) $(build)=$(dir $<) $(dir $<)$(notdir $@)
+%.o: %.c prepare scripts FORCE
+       $(Q)$(MAKE) $(build)=$(dir $<) $(dir $<)$(notdir $@)
+%.lst: %.c prepare scripts FORCE
+       $(Q)$(MAKE) $(build)=$(dir $<) $(dir $<)$(notdir $@)
+%.s: %.S prepare scripts FORCE
+       $(Q)$(MAKE) $(build)=$(dir $<) $(dir $<)$(notdir $@)
+%.o: %.S prepare scripts FORCE
+       $(Q)$(MAKE) $(build)=$(dir $<) $(dir $<)$(notdir $@)
+
+# For external modules we shall include any directory of the target,
+# but usual case there is no directory part.
+# make M=`pwd` module.o     => $(dir $@)=./
+# make M=`pwd` foo/module.o => $(dir $@)=foo/
+# make M=`pwd` /            => $(dir $@)=/
+ifeq ($(KBUILD_EXTMOD),)
+        target-dir = $(@D)
+else
+        zap-slash=$(filter-out .,$(patsubst %/,%,$(dir $@)))
+        target-dir = $(KBUILD_EXTMOD)$(if $(zap-slash),/$(zap-slash))
+endif
+
+/ %/:      scripts prepare FORCE
+       $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
+       $(build)=$(target-dir)
+%.ko: scripts FORCE
+       $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1)   \
+       $(build)=$(target-dir) $(@:.ko=.o)
+       $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
+
 # FIXME Should go into a make.lib or something 
 # ===========================================================================
 
@@ -1351,4 +1349,10 @@ clean := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.clean obj
 
 endif  # skip-makefile
 
+PHONY += FORCE
 FORCE:
+
+
+# Declare the contents of the .PHONY variable as phony.  We keep that
+# information in a variable se we can use it in if_changed and friends.
+.PHONY: $(PHONY)
index d26e3b3fc9f3c0a236b01b45b6665fee58e3c3af..32fd17fc3fd22c203098b716db52bf22802448ba 100644 (file)
@@ -8,6 +8,7 @@ mainmenu "Linux Kernel Configuration"
 config ARM
        bool
        default y
+       select RTC_LIB
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@ -53,6 +54,10 @@ config RWSEM_GENERIC_SPINLOCK
 config RWSEM_XCHGADD_ALGORITHM
        bool
 
+config GENERIC_HWEIGHT
+       bool
+       default y
+
 config GENERIC_CALIBRATE_DELAY
        bool
        default y
@@ -72,6 +77,14 @@ config FIQ
 config ARCH_MTD_XIP
        bool
 
+config VECTORS_BASE
+       hex
+       default 0xffff0000 if MMU
+       default DRAM_BASE if REMAP_VECTORS_TO_RAM
+       default 0x00000000
+       help
+         The base address of exception vectors.
+
 source "init/Kconfig"
 
 menu "System Type"
@@ -108,6 +121,13 @@ config ARCH_EBSA110
          Ethernet interface, two PCMCIA sockets, two serial ports and a
          parallel port.
 
+config ARCH_EP93XX
+       bool "EP93xx-based"
+       select ARM_AMBA
+       select ARM_VIC
+       help
+         This enables support for the Cirrus EP93xx series of CPUs.
+
 config ARCH_FOOTBRIDGE
        bool "FootBridge"
        select FOOTBRIDGE
@@ -141,6 +161,12 @@ config ARCH_IXP2000
        help
          Support for Intel's IXP2400/2800 (XScale) family of processors.
 
+config ARCH_IXP23XX
+       bool "IXP23XX-based"
+       select PCI
+       help
+         Support for Intel's IXP23xx (XScale) family of processors.
+
 config ARCH_L7200
        bool "LinkUp-L7200"
        select FIQ
@@ -250,6 +276,8 @@ endchoice
 
 source "arch/arm/mach-clps711x/Kconfig"
 
+source "arch/arm/mach-ep93xx/Kconfig"
+
 source "arch/arm/mach-footbridge/Kconfig"
 
 source "arch/arm/mach-integrator/Kconfig"
@@ -260,6 +288,8 @@ source "arch/arm/mach-ixp4xx/Kconfig"
 
 source "arch/arm/mach-ixp2000/Kconfig"
 
+source "arch/arm/mach-ixp23xx/Kconfig"
+
 source "arch/arm/mach-pxa/Kconfig"
 
 source "arch/arm/mach-sa1100/Kconfig"
@@ -434,6 +464,13 @@ config NO_IDLE_HZ
          Currently at least OMAP, PXA2xx and SA11x0 platforms are known
          to have accurate timekeeping with dynamic tick.
 
+config HZ
+       int
+       default 128 if ARCH_L7200
+       default 200 if ARCH_EBSA110 || ARCH_S3C2410
+       default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
+       default 100
+
 config AEABI
        bool "Use the ARM EABI to compile the kernel"
        help
@@ -769,7 +806,8 @@ source "drivers/acorn/block/Kconfig"
 
 if PCMCIA || ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX \
        || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
-       || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE
+       || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
+       || ARCH_IXP23XX
 source "drivers/ide/Kconfig"
 endif
 
@@ -807,6 +845,8 @@ source "drivers/misc/Kconfig"
 
 source "drivers/mfd/Kconfig"
 
+source "drivers/leds/Kconfig"
+
 source "drivers/media/Kconfig"
 
 source "drivers/video/Kconfig"
@@ -817,6 +857,8 @@ source "drivers/usb/Kconfig"
 
 source "drivers/mmc/Kconfig"
 
+source "drivers/rtc/Kconfig"
+
 source "drivers/ssi/Kconfig"
 
 if ARCH_OMAP
index 80ccb869cc72b39f00a796e8cf054fb9d18d851b..fe923006d968e817ccd61facd2167eecabc89566 100644 (file)
@@ -1,6 +1,9 @@
 #
 # arch/arm/Makefile
 #
+# This file is included by the global makefile so that you can add your own
+# architecture-specific flags and dependencies.
+#
 # This file is subject to the terms and conditions of the GNU General Public
 # License.  See the file "COPYING" in the main directory of this archive
 # for more details.
@@ -17,6 +20,11 @@ GZFLAGS              :=-9
 # Select a platform tht is kept up-to-date
 KBUILD_DEFCONFIG := versatile_defconfig
 
+# defines filename extension depending memory manement type.
+ifeq ($(CONFIG_MMU),)
+MMUEXT         := -nommu
+endif
+
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS         +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
@@ -54,7 +62,8 @@ tune-$(CONFIG_CPU_ARM926T)    :=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_SA110)       :=-mtune=strongarm110
 tune-$(CONFIG_CPU_SA1100)      :=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)      :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
-tune-$(CONFIG_CPU_V6)          :=$(call cc-option,-mtune=arm1136jf-s,-mtune=arm1136jfs)
+tune-$(CONFIG_CPU_XSC3)                :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
+tune-$(CONFIG_CPU_V6)          :=$(call cc-option,-mtune=arm1136j-s,-mtune=arm1136jfs)
 
 ifeq ($(CONFIG_AEABI),y)
 CFLAGS_ABI     :=-mabi=aapcs -mno-thumb-interwork
@@ -69,7 +78,7 @@ AFLAGS                +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
 CHECKFLAGS     += -D__arm__
 
 #Default value
-head-y         := arch/arm/kernel/head.o arch/arm/kernel/init_task.o
+head-y         := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
 textofs-y      := 0x00008000
 
  machine-$(CONFIG_ARCH_RPC)       := rpc
@@ -94,6 +103,7 @@ endif
  machine-$(CONFIG_ARCH_IOP3XX)    := iop3xx
  machine-$(CONFIG_ARCH_IXP4XX)    := ixp4xx
  machine-$(CONFIG_ARCH_IXP2000)    := ixp2000
+ machine-$(CONFIG_ARCH_IXP23XX)    := ixp23xx
  machine-$(CONFIG_ARCH_OMAP1)     := omap1
  machine-$(CONFIG_ARCH_OMAP2)     := omap2
   incdir-$(CONFIG_ARCH_OMAP)      := omap
@@ -105,6 +115,7 @@ endif
  machine-$(CONFIG_ARCH_AAEC2000)   := aaec2000
  machine-$(CONFIG_ARCH_REALVIEW)   := realview
  machine-$(CONFIG_ARCH_AT91RM9200) := at91rm9200
+ machine-$(CONFIG_ARCH_EP93XX)     := ep93xx
 
 ifeq ($(CONFIG_ARCH_EBSA110),y)
 # This is what happens if you forget the IOCS16 line.
@@ -127,7 +138,7 @@ else
 MACHINE  :=
 endif
   
-export TEXT_OFFSET GZFLAGS
+export TEXT_OFFSET GZFLAGS MMUEXT
 
 # Do we have FASTFPE?
 FASTFPE                :=arch/arm/fastfpe
@@ -176,7 +187,7 @@ endif
 
 archprepare: maketools
 
-.PHONY: maketools FORCE
+PHONY += maketools FORCE
 maketools: include/linux/version.h include/asm-arm/.arch FORCE
        $(Q)$(MAKE) $(build)=arch/arm/tools include/asm-arm/mach-types.h
 
index 60e306eff77976ad1bf810de7878306c7e20bdf0..1a0ea5d381c398d45c0601706d8e9b15864ed511 100644 (file)
@@ -50,10 +50,6 @@ ifeq ($(CONFIG_ARCH_AT91RM9200),y)
 OBJS           += head-at91rm9200.o
 endif
 
-ifeq ($(CONFIG_DEBUG_ICEDCC),y)
-OBJS           += ice-dcc.o
-endif
-
 ifeq ($(CONFIG_MACH_OMAP_PERSEUS2),y)
 OBJS           += head-omap.o
 endif
index 76248bbc512740fbc4f272d174b63bd7fe2aed20..1160093e8ef6720dfd58d6c531ed0a447f101c36 100644 (file)
@@ -153,7 +153,7 @@ static struct platform_device osk5912_cf_device = {
 
 #define DEFAULT_BITPERSAMPLE 16
 
-static struct omap_mcbsp_reg_cfg mcbsp_regs = { 
+static struct omap_mcbsp_reg_cfg mcbsp_regs = {
        .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
        .spcr1 = RINTM(3) | RRST,
        .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
@@ -176,7 +176,7 @@ static struct omap_alsa_codec_config alsa_config = {
        .codec_clock_setup      = NULL, // aic23_clock_setup,
        .codec_clock_on         = NULL, // aic23_clock_on,
        .codec_clock_off        = NULL, // aic23_clock_off,
-       .get_default_samplerate = NULL, // aic23_get_default_samplerate,        
+       .get_default_samplerate = NULL, // aic23_get_default_samplerate,
 };
 
 static struct platform_device osk5912_mcbsp1_device = {
index 447a586eb33452c11b6891c618b8b3ac9033063b..214dd19889aca953922e77d6fc49efbb33c4daca 100644 (file)
@@ -235,7 +235,7 @@ static struct notifier_block panic_block = {
 static int __init voiceblue_setup(void)
 {
        /* Setup panic notifier */
-       notifier_chain_register(&panic_notifier_list, &panic_block);
+       atomic_notifier_chain_register(&panic_notifier_list, &panic_block);
 
        return 0;
 }
index f5e28dfd8218bf6785763b1a6c3d1342250c39f1..e9742d885a19fbd52e74b3e6f72dec4f1ceaadcd 100644 (file)
@@ -64,12 +64,16 @@ source "drivers/usb/Kconfig"
 
 source "drivers/mmc/Kconfig"
 
+source "drivers/leds/Kconfig"
+
 source "drivers/infiniband/Kconfig"
 
 source "drivers/sn/Kconfig"
 
 source "drivers/edac/Kconfig"
 
+source "drivers/rtc/Kconfig"
+
 source "drivers/ssi/Kconfig"
 
 endmenu
index 4a13ac995caecef232cc0ff82f9e656f382a6f5f..065f17f1ac9253af0834dbfac7b613ec7dbcc1dd 100644 (file)
@@ -30,7 +30,7 @@ obj-$(CONFIG_FB_INTEL)          += video/intelfb/
 obj-$(CONFIG_SERIO)            += input/serio/
 obj-y                          += serial/
 obj-$(CONFIG_PARPORT)          += parport/
-obj-y                          += base/ block/ misc/ mfd/ net/
+obj-y                          += base/ block/ misc/ mfd/ net/ media/
 obj-$(CONFIG_I2C)              += i2c/
 obj-y                          += media/ ssi/ cbus/
 obj-$(CONFIG_NUBUS)            += nubus/
@@ -58,6 +58,7 @@ obj-$(CONFIG_USB_GADGET)      += usb/gadget/
 obj-$(CONFIG_GAMEPORT)         += input/gameport/
 obj-$(CONFIG_INPUT)            += input/
 obj-$(CONFIG_I2O)              += message/
+obj-$(CONFIG_RTC_LIB)          += rtc/
 obj-$(CONFIG_W1)               += w1/
 obj-$(CONFIG_HWMON)            += hwmon/
 obj-$(CONFIG_PHONE)            += telephony/
@@ -69,7 +70,9 @@ obj-$(CONFIG_MCA)             += mca/
 obj-$(CONFIG_EISA)             += eisa/
 obj-$(CONFIG_CPU_FREQ)         += cpufreq/
 obj-$(CONFIG_MMC)              += mmc/
+obj-$(CONFIG_NEW_LEDS)         += leds/
 obj-$(CONFIG_INFINIBAND)       += infiniband/
+obj-$(CONFIG_IPATH_CORE)       += infiniband/
 obj-$(CONFIG_SGI_SN)           += sn/
 obj-y                          += firmware/
 obj-$(CONFIG_CRYPTO)           += crypto/
index 2441f119bba2c9b56cc5e756a0c02010c1e11d6e..0320635d46515e9ae4590d61cc66eeb70293cdfd 100644 (file)
@@ -31,7 +31,7 @@ obj-$(CONFIG_MOXA_INTELLIO)   += moxa.o
 obj-$(CONFIG_A2232)            += ser_a2232.o generic_serial.o
 obj-$(CONFIG_ATARI_DSP56K)     += dsp56k.o
 obj-$(CONFIG_MOXA_SMARTIO)     += mxser.o
-obj-$(CONFIG_COMPUTONE)                += ip2.o ip2main.o
+obj-$(CONFIG_COMPUTONE)                += ip2/
 obj-$(CONFIG_RISCOM8)          += riscom8.o
 obj-$(CONFIG_ISI)              += isicom.o
 obj-$(CONFIG_SYNCLINK)         += synclink.o
@@ -41,62 +41,65 @@ obj-$(CONFIG_N_HDLC)                += n_hdlc.o
 obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
 obj-$(CONFIG_SX)               += sx.o generic_serial.o
 obj-$(CONFIG_RIO)              += rio/ generic_serial.o
-obj-$(CONFIG_HVC_CONSOLE)      += hvc_console.o hvc_vio.o hvsi.o
+obj-$(CONFIG_HVC_DRIVER)       += hvc_console.o
+obj-$(CONFIG_HVC_CONSOLE)      += hvc_vio.o hvsi.o
+obj-$(CONFIG_HVC_RTAS)         += hvc_rtas.o
 obj-$(CONFIG_RAW_DRIVER)       += raw.o
 obj-$(CONFIG_SGI_SNSC)         += snsc.o snsc_event.o
 obj-$(CONFIG_MMTIMER)          += mmtimer.o
-obj-$(CONFIG_VIOCONS) += viocons.o
+obj-$(CONFIG_VIOCONS)          += viocons.o
 obj-$(CONFIG_VIOTAPE)          += viotape.o
 obj-$(CONFIG_HVCS)             += hvcs.o
 obj-$(CONFIG_SGI_MBCS)         += mbcs.o
 
-obj-$(CONFIG_PRINTER) += lp.o
-obj-$(CONFIG_TIPAR) += tipar.o
-
-obj-$(CONFIG_DTLK) += dtlk.o
-obj-$(CONFIG_R3964) += n_r3964.o
-obj-$(CONFIG_APPLICOM) += applicom.o
-obj-$(CONFIG_SONYPI) += sonypi.o
-obj-$(CONFIG_RTC) += rtc.o
-obj-$(CONFIG_HPET) += hpet.o
-obj-$(CONFIG_GEN_RTC) += genrtc.o
-obj-$(CONFIG_EFI_RTC) += efirtc.o
-obj-$(CONFIG_SGI_DS1286) += ds1286.o
-obj-$(CONFIG_SGI_IP27_RTC) += ip27-rtc.o
-obj-$(CONFIG_DS1302) += ds1302.o
-obj-$(CONFIG_S3C2410_RTC) += s3c2410-rtc.o
-obj-$(CONFIG_RTC_VR41XX) += vr41xx_rtc.o
-obj-$(CONFIG_OMAP_RTC)+= omap-rtc.o
+obj-$(CONFIG_PRINTER)          += lp.o
+obj-$(CONFIG_TIPAR)            += tipar.o
+
+obj-$(CONFIG_DTLK)             += dtlk.o
+obj-$(CONFIG_R3964)            += n_r3964.o
+obj-$(CONFIG_APPLICOM)         += applicom.o
+obj-$(CONFIG_SONYPI)           += sonypi.o
+obj-$(CONFIG_RTC)              += rtc.o
+obj-$(CONFIG_HPET)             += hpet.o
+obj-$(CONFIG_GEN_RTC)          += genrtc.o
+obj-$(CONFIG_EFI_RTC)          += efirtc.o
+obj-$(CONFIG_SGI_DS1286)       += ds1286.o
+obj-$(CONFIG_SGI_IP27_RTC)     += ip27-rtc.o
+obj-$(CONFIG_OMAP_RTC)         += omap-rtc.o
+obj-$(CONFIG_DS1302)           += ds1302.o
+obj-$(CONFIG_S3C2410_RTC)      += s3c2410-rtc.o
+obj-$(CONFIG_RTC_VR41XX)       += vr41xx_rtc.o
 ifeq ($(CONFIG_GENERIC_NVRAM),y)
-  obj-$(CONFIG_NVRAM) += generic_nvram.o
+  obj-$(CONFIG_NVRAM)  += generic_nvram.o
 else
-  obj-$(CONFIG_NVRAM) += nvram.o
+  obj-$(CONFIG_NVRAM)  += nvram.o
 endif
-obj-$(CONFIG_TOSHIBA) += toshiba.o
-obj-$(CONFIG_I8K) += i8k.o
-obj-$(CONFIG_DS1620) += ds1620.o
-obj-$(CONFIG_HW_RANDOM) += hw_random.o
-obj-$(CONFIG_OMAP_RNG) += omap-rng.o
-obj-$(CONFIG_FTAPE) += ftape/
-obj-$(CONFIG_COBALT_LCD) += lcd.o
-obj-$(CONFIG_PPDEV) += ppdev.o
-obj-$(CONFIG_NWBUTTON) += nwbutton.o
-obj-$(CONFIG_NWFLASH) += nwflash.o
-obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o
-obj-$(CONFIG_CS5535_GPIO) += cs5535_gpio.o
-obj-$(CONFIG_GPIO_VR41XX) += vr41xx_giu.o
-obj-$(CONFIG_TANBAC_TB0219) += tb0219.o
-obj-$(CONFIG_TELCLOCK) += tlclk.o
-
-obj-$(CONFIG_WATCHDOG) += watchdog/
-obj-$(CONFIG_MWAVE) += mwave/
-obj-$(CONFIG_AGP) += agp/
-obj-$(CONFIG_DRM) += drm/
-obj-$(CONFIG_PCMCIA) += pcmcia/
-obj-$(CONFIG_IPMI_HANDLER) += ipmi/
-
-obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o
-obj-$(CONFIG_TCG_TPM) += tpm/
+obj-$(CONFIG_TOSHIBA)          += toshiba.o
+obj-$(CONFIG_I8K)              += i8k.o
+obj-$(CONFIG_DS1620)           += ds1620.o
+obj-$(CONFIG_HW_RANDOM)                += hw_random.o
+obj-$(CONFIG_OMAP_RNG)         += omap-rng.o
+obj-$(CONFIG_FTAPE)            += ftape/
+obj-$(CONFIG_COBALT_LCD)       += lcd.o
+obj-$(CONFIG_PPDEV)            += ppdev.o
+obj-$(CONFIG_NWBUTTON)         += nwbutton.o
+obj-$(CONFIG_NWFLASH)          += nwflash.o
+obj-$(CONFIG_SCx200_GPIO)      += scx200_gpio.o
+obj-$(CONFIG_CS5535_GPIO)      += cs5535_gpio.o
+obj-$(CONFIG_GPIO_VR41XX)      += vr41xx_giu.o
+obj-$(CONFIG_TANBAC_TB0219)    += tb0219.o
+obj-$(CONFIG_TELCLOCK)         += tlclk.o
+
+obj-$(CONFIG_WATCHDOG)         += watchdog/
+obj-$(CONFIG_MWAVE)            += mwave/
+obj-$(CONFIG_AGP)              += agp/
+obj-$(CONFIG_DRM)              += drm/
+obj-$(CONFIG_PCMCIA)           += pcmcia/
+obj-$(CONFIG_IPMI_HANDLER)     += ipmi/
+
+obj-$(CONFIG_HANGCHECK_TIMER)  += hangcheck-timer.o
+obj-$(CONFIG_TCG_TPM)          += tpm/
+
 # Files generated that shall be removed upon make clean
 clean-files := consolemap_deftbl.c defkeymap.c qtronixmap.c
 
index 316b67d9a735bdefee8f1d14d7b943216985d973..027dede73e615b3c2cf85ecd75d4f8517d419e7b 100644 (file)
@@ -10,7 +10,6 @@ obj-$(CONFIG_SENSORS_M41T00)  += m41t00.o
 obj-$(CONFIG_SENSORS_PCA9539)  += pca9539.o
 obj-$(CONFIG_SENSORS_PCF8574)  += pcf8574.o
 obj-$(CONFIG_SENSORS_PCF8591)  += pcf8591.o
-obj-$(CONFIG_SENSORS_RTC8564)  += rtc8564.o
 obj-$(CONFIG_ISP1301_OMAP)     += isp1301_omap.o
 obj-$(CONFIG_TPS65010)         += tps65010.o
 obj-$(CONFIG_SENSORS_TLV320AIC23) += tlv320aic23.o
index ba4a0acf279733820e5ce22642aabb8bd719ef02..22d68411cc135a36cb13b815dd2cdd5307592a07 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/suspend.h>
 #include <linux/debugfs.h>
 #include <linux/seq_file.h>
+#include <linux/mutex.h>
 
 #include <asm/irq.h>
 #include <asm/mach-types.h>
@@ -85,7 +86,7 @@ enum tps_model {
 
 struct tps65010 {
        struct i2c_client       client;
-       struct semaphore        lock;
+       struct mutex            lock;
        int                     irq;
        int                     irq_type;
        struct work_struct      work;
@@ -223,7 +224,7 @@ static int dbg_show(struct seq_file *s, void *_)
        seq_printf(s, "driver  %s\nversion %s\nchip    %s\n\n",
                        DRIVER_NAME, DRIVER_VERSION, chip);
 
-       down(&tps->lock);
+       mutex_lock(&tps->lock);
 
        /* FIXME how can we tell whether a battery is present?
         * likely involves a charge gauging chip (like BQ26501).
@@ -305,7 +306,7 @@ static int dbg_show(struct seq_file *s, void *_)
                                (v2 & (1 << (4 + i))) ? "rising" : "falling");
        }
 
-       up(&tps->lock);
+       mutex_unlock(&tps->lock);
        return 0;
 }
 
@@ -421,7 +422,7 @@ static void tps65010_work(void *_tps)
 {
        struct tps65010         *tps = _tps;
 
-       down(&tps->lock);
+       mutex_lock(&tps->lock);
 
        tps65010_interrupt(tps);
 
@@ -449,7 +450,7 @@ static void tps65010_work(void *_tps)
        if (test_and_clear_bit(FLAG_IRQ_ENABLE, &tps->flags))
                enable_irq(tps->irq);
 
-       up(&tps->lock);
+       mutex_unlock(&tps->lock);
 }
 
 static irqreturn_t tps65010_irq(int irq, void *_tps, struct pt_regs *regs)
@@ -509,7 +510,7 @@ tps65010_probe(struct i2c_adapter *bus, int address, int kind)
        if (!tps)
                return 0;
 
-       init_MUTEX(&tps->lock);
+       mutex_init(&tps->lock);
        INIT_WORK(&tps->work, tps65010_work, tps);
        tps->irq = -1;
        tps->client.addr = address;
@@ -699,7 +700,7 @@ int tps65010_set_gpio_out_value(unsigned gpio, unsigned value)
        if ((gpio < GPIO1) || (gpio > GPIO4))
                return -EINVAL;
        
-       down(&the_tps->lock);
+       mutex_lock(&the_tps->lock);
 
        defgpio = i2c_smbus_read_byte_data(&the_tps->client, TPS_DEFGPIO);
 
@@ -724,7 +725,7 @@ int tps65010_set_gpio_out_value(unsigned gpio, unsigned value)
                gpio, value ? "high" : "low",
                i2c_smbus_read_byte_data(&the_tps->client, TPS_DEFGPIO));
        
-       up(&the_tps->lock);
+       mutex_unlock(&the_tps->lock);
        return status;
 }
 EXPORT_SYMBOL(tps65010_set_gpio_out_value);
@@ -749,7 +750,7 @@ int tps65010_set_led(unsigned led, unsigned mode)
                led = LED2;
        }
 
-       down(&the_tps->lock);
+       mutex_lock(&the_tps->lock);
 
        dev_dbg (&the_tps->client.dev, "led%i_on   0x%02x\n", led,
                i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_ON + offs));
@@ -773,7 +774,7 @@ int tps65010_set_led(unsigned led, unsigned mode)
        default:
                printk(KERN_ERR "%s: Wrong mode parameter for tps65010_set_led()\n", 
                       DRIVER_NAME);
-               up(&the_tps->lock);
+               mutex_unlock(&the_tps->lock);
                return -EINVAL;
        }
 
@@ -783,7 +784,7 @@ int tps65010_set_led(unsigned led, unsigned mode)
        if (status != 0) {
                printk(KERN_ERR "%s: Failed to write led%i_on register\n", 
                       DRIVER_NAME, led);
-               up(&the_tps->lock);
+               mutex_unlock(&the_tps->lock);
                return status;
        } 
 
@@ -796,14 +797,14 @@ int tps65010_set_led(unsigned led, unsigned mode)
        if (status != 0) {
                printk(KERN_ERR "%s: Failed to write led%i_per register\n", 
                       DRIVER_NAME, led);
-               up(&the_tps->lock);
+               mutex_unlock(&the_tps->lock);
                return status;
        }
 
        dev_dbg (&the_tps->client.dev, "led%i_per  0x%02x\n", led,
                i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_PER + offs));
 
-       up(&the_tps->lock);
+       mutex_unlock(&the_tps->lock);
 
        return status;
 }
@@ -821,7 +822,7 @@ int tps65010_set_vib(unsigned value)
        if (!the_tps)
                return -ENODEV;
 
-       down(&the_tps->lock);
+       mutex_lock(&the_tps->lock);
 
        vdcdc2 = i2c_smbus_read_byte_data(&the_tps->client, TPS_VDCDC2);
        vdcdc2 &= ~(1 << 1);
@@ -832,7 +833,7 @@ int tps65010_set_vib(unsigned value)
 
        pr_debug("%s: vibrator %s\n", DRIVER_NAME, value ? "on" : "off");
 
-       up(&the_tps->lock);
+       mutex_unlock(&the_tps->lock);
        return status;
 }
 EXPORT_SYMBOL(tps65010_set_vib);
@@ -849,7 +850,7 @@ int tps65010_set_low_pwr(unsigned mode)
        if (!the_tps)
                return -ENODEV;
 
-       down(&the_tps->lock);
+       mutex_lock(&the_tps->lock);
 
        pr_debug("%s: %s low_pwr, vdcdc1 0x%02x\n", DRIVER_NAME,
                mode ? "enable" : "disable",
@@ -877,7 +878,7 @@ int tps65010_set_low_pwr(unsigned mode)
                pr_debug("%s: vdcdc1 0x%02x\n", DRIVER_NAME,
                        i2c_smbus_read_byte_data(&the_tps->client, TPS_VDCDC1));
 
-       up(&the_tps->lock);
+       mutex_unlock(&the_tps->lock);
 
        return status;
 }
@@ -895,7 +896,7 @@ int tps65010_config_vregs1(unsigned value)
        if (!the_tps)
                return -ENODEV;
 
-       down(&the_tps->lock);
+       mutex_lock(&the_tps->lock);
 
        pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME, 
                        i2c_smbus_read_byte_data(&the_tps->client, TPS_VREGS1));
@@ -910,7 +911,7 @@ int tps65010_config_vregs1(unsigned value)
                pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME,
                        i2c_smbus_read_byte_data(&the_tps->client, TPS_VREGS1));
 
-       up(&the_tps->lock);
+       mutex_unlock(&the_tps->lock);
 
        return status;
 }
@@ -932,7 +933,7 @@ int tps65013_set_low_pwr(unsigned mode)
        if (!the_tps || the_tps->por)
                return -ENODEV;
 
-       down(&the_tps->lock);
+       mutex_lock(&the_tps->lock);
 
        pr_debug("%s: %s low_pwr, chgconfig 0x%02x vdcdc1 0x%02x\n",
                DRIVER_NAME,
@@ -960,7 +961,7 @@ int tps65013_set_low_pwr(unsigned mode)
        if (status != 0) {
                printk(KERN_ERR "%s: Failed to write chconfig register\n",
         DRIVER_NAME);
-               up(&the_tps->lock);
+               mutex_unlock(&the_tps->lock);
                return status;
        }
 
@@ -978,7 +979,7 @@ int tps65013_set_low_pwr(unsigned mode)
                pr_debug("%s: vdcdc1 0x%02x\n", DRIVER_NAME,
                        i2c_smbus_read_byte_data(&the_tps->client, TPS_VDCDC1));
 
-       up(&the_tps->lock);
+       mutex_unlock(&the_tps->lock);
 
        return status;
 }
index 44af6cca1f28ef078514b8ad9e3d558daca8b774..da6ddd910fc513d8ad8552fa575984485899a653 100644 (file)
@@ -700,7 +700,6 @@ static void mmc_power_up(struct mmc_host *host)
        int bit = fls(host->ocr_avail) - 1;
 
        host->ios.vdd = bit;
-       host->ios.clock = host->f_min;
        host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN;
        host->ios.chip_select = MMC_CS_DONTCARE;
        host->ios.power_mode = MMC_POWER_UP;
@@ -709,6 +708,7 @@ static void mmc_power_up(struct mmc_host *host)
 
        mmc_delay(1);
 
+       host->ios.clock = host->f_min;
        host->ios.power_mode = MMC_POWER_ON;
        host->ops->set_ios(host, &host->ios);
 
@@ -742,7 +742,7 @@ static int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
 
                if (cmd.resp[0] & MMC_CARD_BUSY || ocr == 0)
                        break;
-               mmc_delay(1);
+
                err = MMC_ERR_TIMEOUT;
 
                mmc_delay(10);
@@ -1084,14 +1084,6 @@ static void mmc_setup(struct mmc_host *host)
        host->ios.bus_mode = MMC_BUSMODE_PUSHPULL;
        host->ops->set_ios(host, &host->ios);
 
-       /*
-        * Some already detectd cards get confused in the card identification
-        * mode and futher commands can fail.  Doing an extra status inquiry
-        * after the identification mode seems to get cards back to their
-        * senses.
-        */
-       mmc_check_cards(host);
-
        mmc_read_csds(host);
 
        if (host->mode == MMC_MODE_SD)
index f4c4e8e9a3b2106f95b5101b0be71fb0b0272709..e4a3f73a5443a9c1c73629c73be618ebb55ccb19 100644 (file)
@@ -55,6 +55,13 @@ config MTD_NAND_OMAP
        help
          Support for NAND flash on Texas Instruments H3/H2/P2 platforms.
 
+config MTD_NAND_OMAP_HW
+       bool "OMAP HW NAND Flash controller support"
+        depends on ARM && ARCH_OMAP16XX && MTD_NAND
+
+       help
+         Driver for TI OMAP16xx hardware NAND flash controller.
+
 config MTD_NAND_TOTO
        tristate "NAND Flash device on TOTO board"
        depends on ARCH_OMAP && MTD_NAND
@@ -184,24 +191,16 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
          Even if you leave this disabled, you can enable BBT writes at module
          load time (assuming you build diskonchip as a module) with the module
          parameter "inftl_bbt_write=1".
-         
- config MTD_NAND_SHARPSL
-       bool "Support for NAND Flash on Sharp SL Series (C7xx + others)"
-       depends on MTD_NAND && ARCH_PXA
- config MTD_NAND_NANDSIM
-       bool "Support for NAND Flash Simulator"
-       depends on MTD_NAND && MTD_PARTITIONS
 
+config MTD_NAND_SHARPSL
+       tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
+       depends on MTD_NAND && ARCH_PXA
+
+config MTD_NAND_NANDSIM
+       tristate "Support for NAND Flash Simulator"
+       depends on MTD_NAND && MTD_PARTITIONS
        help
          The simulator may simulate verious NAND flash chips for the
          MTD nand layer.
 
-config MTD_NAND_OMAP_HW
-       bool "OMAP HW NAND Flash controller support"
-        depends on ARM && ARCH_OMAP16XX && MTD_NAND
-
-       help
-         Driver for TI OMAP16xx hardware NAND flash controller.
-
 endmenu
index df619ebdc49d64d2d895df066daa7112694b852c..a18d18ef63c8e9f23456ae37717e5c78dbfb629e 100644 (file)
@@ -43,6 +43,7 @@ obj-$(CONFIG_OLD_BELKIN_DONGLE)       += old_belkin-sir.o
 obj-$(CONFIG_MCP2120_DONGLE)   += mcp2120-sir.o
 obj-$(CONFIG_ACT200L_DONGLE)   += act200l-sir.o
 obj-$(CONFIG_MA600_DONGLE)     += ma600-sir.o
+obj-$(CONFIG_TOIM3232_DONGLE)  += toim3232-sir.o
 obj-$(CONFIG_OMAP_IR)          += omap-ir.o
 
 
index ced5b2e955bde7456ea7cd3c73181927d7fbd9f3..1401844bc48d263abebdbd49a1b99d6a17fadaab 100644 (file)
@@ -333,7 +333,7 @@ int ohci_omap_host_enable(struct usb_bus *host, int enable)
 int usb_hcd_omap_probe (const struct hc_driver *driver,
                          struct platform_device *pdev)
 {
-       int retval;
+       int retval, irq;
        struct usb_hcd *hcd = 0;
        struct ohci_hcd *ohci;
 
@@ -390,8 +390,12 @@ int usb_hcd_omap_probe (const struct hc_driver *driver,
        if (retval < 0)
                goto err2;
 
-       retval = usb_add_hcd(hcd, platform_get_irq(pdev, 0), SA_INTERRUPT);
-
+       irq = platform_get_irq(pdev, 0);
+       if (irq < 0) {
+               retval = -ENXIO;
+               goto err2;
+       }
+       retval = usb_add_hcd(hcd, irq, SA_INTERRUPT);
        if (retval)
                goto err3;
 
index 7e783790f396bea91602720e05cb225d26fc097e..3ac4795aafb644438618260addd3d1e7154e174a 100644 (file)
@@ -687,7 +687,7 @@ static int omapfb_set_color_key(struct omapfb_device *fbdev,
        return r;
 }
 
-static struct notifier_block *omapfb_client_list;
+static BLOCKING_NOTIFIER_HEAD(omapfb_notifier_list);
 
 int omapfb_register_client(struct omapfb_notifier_block *omapfb_nb,
                            omapfb_notifier_callback_t callback,
@@ -700,7 +700,7 @@ int omapfb_register_client(struct omapfb_notifier_block *omapfb_nb,
        omapfb_nb->nb.notifier_call = (int (*)(struct notifier_block *,
                                        unsigned long, void *))callback;
        omapfb_nb->data = callback_data;
-       r = notifier_chain_register(&omapfb_client_list, &omapfb_nb->nb);
+       r = blocking_notifier_chain_register(&omapfb_notifier_list, &omapfb_nb->nb);
        if (r)
                return r;
        if (omapfb_dev != NULL &&
@@ -714,15 +714,15 @@ EXPORT_SYMBOL(omapfb_register_client);
 
 int omapfb_unregister_client(struct omapfb_notifier_block *omapfb_nb)
 {
-       return notifier_chain_unregister(&omapfb_client_list,
-                                        &omapfb_nb->nb);
+       return blocking_notifier_chain_unregister(&omapfb_notifier_list,
+                                               &omapfb_nb->nb);
 }
 EXPORT_SYMBOL(omapfb_unregister_client);
 
 void omapfb_notify_clients(struct omapfb_device *fbdev, unsigned long event)
 {
        DBGENTER(1);
-       notifier_call_chain(&omapfb_client_list, event, fbdev);
+       blocking_notifier_call_chain(&omapfb_notifier_list, event, fbdev);
 }
 EXPORT_SYMBOL(omapfb_notify_clients);
 
index df4695474e3d89606d0c0542d2c178466ea92bd8..e655d35720068c2e87fec4987e2e4a8b5b9a69eb 100644 (file)
 #include <sound/pcm.h>
 #include <asm/arch/mcbsp.h>
 #include <linux/platform_device.h>
+/*
+ * Debug functions
+ */
+#undef DEBUG
+//#define DEBUG
+
+#define ERR(ARGS...) printk(KERN_ERR "{%s}-ERROR: ", __FUNCTION__);printk(ARGS);
+
+#ifdef DEBUG
+#define DPRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
+#define ADEBUG() printk("XXX Alsa debug f:%s, l:%d\n", __FUNCTION__, __LINE__)
+#define FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
+#define FN_OUT(n) printk(KERN_INFO "[%s]: end(%u)\n",__FUNCTION__, n)
+#else
+#define DPRINTK(ARGS...)       /* nop */
+#define ADEBUG()               /* nop */
+#define FN_IN                  /* nop */
+#define FN_OUT(n)              /* nop */
+#endif
 
 #define DMA_BUF_SIZE   (1024 * 8)