]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge current mainline tree into linux-omap tree
authorTony Lindgren <tony@atomide.com>
Wed, 3 Sep 2008 21:57:09 +0000 (14:57 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 3 Sep 2008 21:57:09 +0000 (14:57 -0700)
Merge branches 'master' and 'linus'

Conflicts:

drivers/usb/gadget/omap_udc.c
drivers/usb/musb/Kconfig
drivers/usb/musb/Makefile
drivers/usb/musb/cppi_dma.c
drivers/usb/musb/davinci.c
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_core.h
drivers/usb/musb/musb_debug.h
drivers/usb/musb/musb_gadget.c
drivers/usb/musb/musb_gadget_ep0.c
drivers/usb/musb/musb_host.c
drivers/usb/musb/musbhsdma.c
drivers/usb/musb/omap2430.c
drivers/usb/musb/omap2430.h
drivers/usb/musb/tusb6010.c
drivers/usb/musb/tusb6010_omap.c

15 files changed:
1  2 
Makefile
arch/arm/Kconfig
arch/arm/plat-omap/include/mach/memory.h
drivers/bluetooth/Kconfig
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/i2c/chips/isp1301_omap.c
drivers/input/touchscreen/Kconfig
drivers/net/Kconfig
drivers/net/smc91x.c
drivers/rtc/Kconfig
drivers/usb/Kconfig
drivers/usb/gadget/omap_udc.c
drivers/usb/host/ohci-omap.c
drivers/watchdog/Kconfig

diff --combined Makefile
index 9797f90147272f1853c67aafa0b0aa13b936d876,f448e0082ebf6726ba4a644164e5194edced6ff0..7a47afaf768e4d6ea1778eed17102f281e121797
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 27
- EXTRAVERSION = -rc3
+ EXTRAVERSION = -rc5
  NAME = Rotary Wombat
  
  # *DOCUMENTATION*
@@@ -16,9 -16,6 +16,9 @@@
  # o  print "Entering directory ...";
  MAKEFLAGS += -rR --no-print-directory
  
 +# Add custom flags here to avoid conflict with updates
 +EXTRAVERSION := $(EXTRAVERSION)-omap1
 +
  # We are using a recursive build, so we need to do a little thinking
  # to get the ordering right.
  #
@@@ -174,8 -171,6 +174,8 @@@ SUBARCH := $(shell uname -m | sed -e s/
                                  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
                                  -e s/sh.*/sh/ )
  
 +SUBARCH := arm
 +
  # Cross compiling and selecting different set of gcc/bin-utils
  # ---------------------------------------------------------------------------
  #
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  export KBUILD_BUILDHOST := $(SUBARCH)
  ARCH          ?= $(SUBARCH)
 -CROSS_COMPILE ?=
 +CROSS_COMPILE ?= arm-linux-
  
  # Architecture as present in compile.h
  UTS_MACHINE   := $(ARCH)
diff --combined arch/arm/Kconfig
index cbc8406eaf2e55b8150d7e760baa34de54b39e1d,70dba16689077dc0440cf12cc607f000bd5bdbdf..aa475d93549a1f3a07bb8ee61dffc24e40e762e8
@@@ -810,6 -810,11 +810,11 @@@ config OABI_COMPA
          UNPREDICTABLE (in fact it can be predicted that it won't work
          at all). If in doubt say Y.
  
+ config ARCH_FLATMEM_HAS_HOLES
+       bool
+       default y
+       depends on FLATMEM
  config ARCH_DISCONTIGMEM_ENABLE
        bool
        default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
@@@ -1229,11 -1234,6 +1234,11 @@@ source "drivers/regulator/Kconfig
  
  source "drivers/uio/Kconfig"
  
 +if ARCH_OMAP
 +source "drivers/cbus/Kconfig"
 +source "drivers/dsp/dspgateway/Kconfig"
 +endif
 +
  endmenu
  
  source "fs/Kconfig"
index eaf6bf92d000aec3122d794a46658f56d0c57e95,a325caf80d04b9a18928a7b6478a64ab4f5338e3..2d80fa2639e1a703c6969dd63ffbb091ec3af3c3
@@@ -6,7 -6,7 +6,7 @@@
   * Copyright (C) 2000 RidgeRun, Inc.
   * Author: Greg Lonnon <glonnon@ridgerun.com>
   *
 - * This file was derived from arch/arm/mach-intergrator/include/mach/memory.h
 + * This file was derived from linux/include/asm-arm/arch-intergrator/memory.h
   * Copyright (C) 1999 ARM Limited
   *
   * This program is free software; you can redistribute it and/or modify it
@@@ -38,7 -38,7 +38,7 @@@
   */
  #if defined(CONFIG_ARCH_OMAP1)
  #define PHYS_OFFSET           UL(0x10000000)
 -#elif defined(CONFIG_ARCH_OMAP2)
 +#elif defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
  #define PHYS_OFFSET           UL(0x80000000)
  #endif
  
                                        (dma_addr_t)virt_to_lbus(page_address(page)) : \
                                        (dma_addr_t)__virt_to_bus(page_address(page));})
  
- #define __arch_dma_to_virt(dev, addr) ({is_lbus_device(dev) ? \
-                                       lbus_to_virt(addr) : \
-                                       __bus_to_virt(addr);})
- #define __arch_virt_to_dma(dev, addr) ({is_lbus_device(dev) ? \
-                                       virt_to_lbus(addr) : \
-                                       __virt_to_bus(addr);})
+ #define __arch_dma_to_virt(dev, addr) ({ (void *) (is_lbus_device(dev) ? \
+                                               lbus_to_virt(addr) : \
+                                               __bus_to_virt(addr)); })
+ #define __arch_virt_to_dma(dev, addr) ({ unsigned long __addr = (unsigned long)(addr); \
+                                          (dma_addr_t) (is_lbus_device(dev) ? \
+                                               virt_to_lbus(__addr) : \
+                                               __virt_to_bus(__addr)); })
  
  #endif        /* CONFIG_ARCH_OMAP15XX */
  
index 9b423c1491fe8b13750e31bfd9277d350450edda,7cb4029a5375a774ed9c0cc888284d37330b1b17..6bb2027d595e01076c41a0ec8c8ebabab8b7ea6d
@@@ -3,8 -3,8 +3,8 @@@ menu "Bluetooth device drivers
        depends on BT
  
  config BT_HCIUSB
-       tristate "HCI USB driver"
-       depends on USB
+       tristate "HCI USB driver (old version)"
+       depends on USB && BT_HCIBTUSB=n
        help
          Bluetooth HCI USB driver.
          This driver is required if you want to use Bluetooth devices with
@@@ -23,15 -23,13 +23,13 @@@ config BT_HCIUSB_SC
          Say Y here to compile support for SCO over HCI USB.
  
  config BT_HCIBTUSB
-       tristate "HCI USB driver (alternate version)"
-       depends on USB && EXPERIMENTAL && BT_HCIUSB=n
+       tristate "HCI USB driver"
+       depends on USB
        help
          Bluetooth HCI USB driver.
          This driver is required if you want to use Bluetooth devices with
          USB interface.
  
-           This driver is still experimental and has no SCO support.
          Say Y here to compile support for Bluetooth USB devices into the
          kernel or say M to compile it as module (btusb).
  
@@@ -183,27 -181,6 +181,27 @@@ config BT_HCIBTUAR
          Say Y here to compile support for HCI UART devices into the
          kernel or say M to compile it as module (btuart_cs).
  
 +config BT_HCIBRF6150
 +      tristate "HCI TI BRF6150 driver with H4 extensions"
 +      depends on BT && ARCH_OMAP
 +      help
 +        Bluetooth HCI driver for TI BRF6150 with H4 extensions.
 +        This driver provides support for BRF6150 Bluetooth chip 
 +        with vendor-specific H4 extensions.
 +
 +        Say Y here to compile support for TI BRF6150 devices into the
 +        kernel or say M to compile it as module (brf6150).
 +
 +config BT_HCIH4P
 +      tristate "HCI driver with H4 Nokia extensions"
 +      depends on BT && ARCH_OMAP 
 +      help 
 +        Bluetooth HCI driver with H4 extensions.  This driver provides
 +        support for H4+ Bluetooth chip with vendor-specific H4 extensions.
 +
 +        Say Y here to compile support for h4 extended devices into the kernel
 +        or say M to compile it as module (hci_h4p).
 +
  config BT_HCIVHCI
        tristate "HCI VHCI (Virtual HCI device) driver"
        help
diff --combined drivers/hwmon/Kconfig
index 5faee8dda90d496eaa6ff20fd6701e1351ac5389,d402e8d813ce2628d0fa7f079267ad1cdfbada14..390c6fa4efad6dddce3fecea5e898603876634f7
@@@ -77,6 -77,22 +77,22 @@@ config SENSORS_AD741
          This driver can also be built as a module. If so, the module
          will be called ad7418.
  
+ config SENSORS_ADCXX
+       tristate "National Semiconductor ADCxxxSxxx"
+       depends on SPI_MASTER && EXPERIMENTAL
+       help
+         If you say yes here you get support for the National Semiconductor
+         ADC<bb><c>S<sss> chip family, where
+         * bb  is the resolution in number of bits (8, 10, 12)
+         * c   is the number of channels (1, 2, 4, 8)
+         * sss is the maximum conversion speed (021 for 200 kSPS, 051 for 500
+           kSPS and 101 for 1 MSPS)
+         Examples : ADC081S101, ADC124S501, ...
+         This driver can also be built as a module.  If so, the module
+         will be called adcxx.
  config SENSORS_ADM1021
        tristate "Analog Devices ADM1021 and compatibles"
        depends on I2C
@@@ -820,22 -836,6 +836,22 @@@ config SENSORS_APPLESM
          Say Y here if you have an applicable laptop and want to experience
          the awesome power of applesmc.
  
 +config SENSORS_TSC210X
 +      tristate "TI TSC210x battery & temperature sensors"
 +      depends on HWMON && SPI_MASTER
 +      select SPI_TSC210X
 +      help
 +        Say Y if your board has a TSC210x chip and you want to
 +        have its battery state, auxiliary input and/or temperature
 +        sensors exported through hwmon.
 +
 +        This driver can also be built as a module.  In this case
 +        the module will be called tsc210x_sensors.
 +
 +config SENSORS_OMAP34XX
 +      tristate "TI OMAP34xx internal temperature sensor"
 +      depends on ARCH_OMAP3 && HIGH_RES_TIMERS
 +
  config HWMON_DEBUG_CHIP
        bool "Hardware Monitoring Chip debugging messages"
        default n
diff --combined drivers/hwmon/Makefile
index 7549b074b9380eddb694e331b7bb21ff0882fda7,950134ab842666a1c4ccb7d2b224c2b62d8af0dd..2580d5d91d520038e623306aa6867abaf1c22870
@@@ -17,6 -17,7 +17,7 @@@ obj-$(CONFIG_SENSORS_ABITUGURU)       += abit
  obj-$(CONFIG_SENSORS_ABITUGURU3)+= abituguru3.o
  obj-$(CONFIG_SENSORS_AD7414)  += ad7414.o
  obj-$(CONFIG_SENSORS_AD7418)  += ad7418.o
+ obj-$(CONFIG_SENSORS_ADCXX)   += adcxx.o
  obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o
  obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o
  obj-$(CONFIG_SENSORS_ADM1026) += adm1026.o
@@@ -72,9 -73,7 +73,9 @@@ obj-$(CONFIG_SENSORS_VT1211)  += vt1211.
  obj-$(CONFIG_SENSORS_VT8231)  += vt8231.o
  obj-$(CONFIG_SENSORS_W83627EHF)       += w83627ehf.o
  obj-$(CONFIG_SENSORS_W83L785TS)       += w83l785ts.o
 +obj-$(CONFIG_SENSORS_TSC210X) += tsc210x_sensors.o
  obj-$(CONFIG_SENSORS_W83L786NG)       += w83l786ng.o
 +obj-$(CONFIG_SENSORS_OMAP34XX)  += omap34xx_temp.o
  
  ifeq ($(CONFIG_HWMON_DEBUG_CHIP),y)
  EXTRA_CFLAGS += -DDEBUG
index 28902ebd553905aedd2507d32870d97ea7023ade,4655b794ebe3c7d06ad911cf898c25a5061b03d0..f717270993318ad8b47f6aba9861157f13c11d27
@@@ -31,6 -31,6 +31,7 @@@
  #include <linux/usb/otg.h>
  #include <linux/i2c.h>
  #include <linux/workqueue.h>
++#include <linux/io.h>
  
  #include <asm/irq.h>
  #include <mach/usb.h>
@@@ -49,9 -49,10 +50,9 @@@ MODULE_LICENSE("GPL")
  
  struct isp1301 {
        struct otg_transceiver  otg;
 -      struct i2c_client       client;
 +      struct i2c_client       *client;
        void                    (*i2c_release)(struct device *dev);
  
 -      int                     irq;
        int                     irq_type;
  
        u32                     last_otg_ctrl;
@@@ -137,6 -138,14 +138,6 @@@ static inline void notresponding(struc
  
  /*-------------------------------------------------------------------------*/
  
 -/* only two addresses possible */
 -#define       ISP_BASE                0x2c
 -static unsigned short normal_i2c[] = {
 -      ISP_BASE, ISP_BASE + 1,
 -      I2C_CLIENT_END };
 -
 -I2C_CLIENT_INSMOD;
 -
  static struct i2c_driver isp1301_driver;
  
  /* smbus apis are used for portability */
  static inline u8
  isp1301_get_u8(struct isp1301 *isp, u8 reg)
  {
 -      return i2c_smbus_read_byte_data(&isp->client, reg + 0);
 +      return i2c_smbus_read_byte_data(isp->client, reg + 0);
  }
  
  static inline int
  isp1301_get_u16(struct isp1301 *isp, u8 reg)
  {
 -      return i2c_smbus_read_word_data(&isp->client, reg);
 +      return i2c_smbus_read_word_data(isp->client, reg);
  }
  
  static inline int
  isp1301_set_bits(struct isp1301 *isp, u8 reg, u8 bits)
  {
 -      return i2c_smbus_write_byte_data(&isp->client, reg + 0, bits);
 +      return i2c_smbus_write_byte_data(isp->client, reg + 0, bits);
  }
  
  static inline int
  isp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits)
  {
 -      return i2c_smbus_write_byte_data(&isp->client, reg + 1, bits);
 +      return i2c_smbus_write_byte_data(isp->client, reg + 1, bits);
  }
  
  /*-------------------------------------------------------------------------*/
@@@ -340,10 -349,10 +341,10 @@@ isp1301_defer_work(struct isp1301 *isp
        int status;
  
        if (isp && !test_and_set_bit(work, &isp->todo)) {
 -              (void) get_device(&isp->client.dev);
 +              (void) get_device(&isp->client->dev);
                status = schedule_work(&isp->work);
                if (!status && !isp->working)
 -                      dev_vdbg(&isp->client.dev,
 +                      dev_vdbg(&isp->client->dev,
                                "work item %d may be lost\n", work);
        }
  }
@@@ -1126,7 -1135,7 +1127,7 @@@ isp1301_work(struct work_struct *work
                /* transfer state from otg engine to isp1301 */
                if (test_and_clear_bit(WORK_UPDATE_ISP, &isp->todo)) {
                        otg_update_isp(isp);
 -                      put_device(&isp->client.dev);
 +                      put_device(&isp->client->dev);
                }
  #endif
                /* transfer state from isp1301 to otg engine */
                        u8              stat = isp1301_clear_latch(isp);
  
                        isp_update_otg(isp, stat);
 -                      put_device(&isp->client.dev);
 +                      put_device(&isp->client->dev);
                }
  
                if (test_and_clear_bit(WORK_HOST_RESUME, &isp->todo)) {
                        }
                        host_resume(isp);
                        // mdelay(10);
 -                      put_device(&isp->client.dev);
 +                      put_device(&isp->client->dev);
                }
  
                if (test_and_clear_bit(WORK_TIMER, &isp->todo)) {
                        if (!stop)
                                mod_timer(&isp->timer, jiffies + TIMER_JIFFIES);
  #endif
 -                      put_device(&isp->client.dev);
 +                      put_device(&isp->client->dev);
                }
  
                if (isp->todo)
 -                      dev_vdbg(&isp->client.dev,
 +                      dev_vdbg(&isp->client->dev,
                                "work done, todo = 0x%lx\n",
                                isp->todo);
                if (stop) {
 -                      dev_dbg(&isp->client.dev, "stop\n");
 +                      dev_dbg(&isp->client->dev, "stop\n");
                        break;
                }
        } while (isp->todo);
@@@ -1210,7 -1219,7 +1211,7 @@@ static void isp1301_release(struct devi
  {
        struct isp1301  *isp;
  
 -      isp = container_of(dev, struct isp1301, client.dev);
 +      isp = dev_get_drvdata(dev);
  
        /* ugly -- i2c hijacks our memory hook to wait_for_completion() */
        if (isp->i2c_release)
  
  static struct isp1301 *the_transceiver;
  
 -static int isp1301_detach_client(struct i2c_client *i2c)
 +static int __exit isp1301_remove(struct i2c_client *i2c)
  {
        struct isp1301  *isp;
  
 -      isp = container_of(i2c, struct isp1301, client);
 +      isp = i2c_get_clientdata(i2c);
  
        isp1301_clear_bits(isp, ISP1301_INTERRUPT_FALLING, ~0);
        isp1301_clear_bits(isp, ISP1301_INTERRUPT_RISING, ~0);
 -      free_irq(isp->irq, isp);
 +      free_irq(i2c->irq, isp);
  #ifdef        CONFIG_USB_OTG
        otg_unbind(isp);
  #endif
        put_device(&i2c->dev);
        the_transceiver = 0;
  
 -      return i2c_detach_client(i2c);
 +      return 0;
  }
  
  /*-------------------------------------------------------------------------*/
@@@ -1276,7 -1285,7 +1277,7 @@@ static int isp1301_otg_enable(struct is
        isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING,
                INTR_VBUS_VLD | INTR_SESS_VLD | INTR_ID_GND);
  
 -      dev_info(&isp->client.dev, "ready for dual-role USB ...\n");
 +      dev_info(&isp->client->dev, "ready for dual-role USB ...\n");
  
        return 0;
  }
@@@ -1301,7 -1310,7 +1302,7 @@@ isp1301_set_host(struct otg_transceive
  
  #ifdef        CONFIG_USB_OTG
        isp->otg.host = host;
 -      dev_dbg(&isp->client.dev, "registered host\n");
 +      dev_dbg(&isp->client->dev, "registered host\n");
        host_suspend(isp);
        if (isp->otg.gadget)
                return isp1301_otg_enable(isp);
        if (machine_is_omap_h2())
                isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0);
  
 -      dev_info(&isp->client.dev, "A-Host sessions ok\n");
 +      dev_info(&isp->client->dev, "A-Host sessions ok\n");
        isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING,
                INTR_ID_GND);
        isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING,
        return 0;
  
  #else
 -      dev_dbg(&isp->client.dev, "host sessions not allowed\n");
 +      dev_dbg(&isp->client->dev, "host sessions not allowed\n");
        return -EINVAL;
  #endif
  
@@@ -1361,7 -1370,7 +1362,7 @@@ isp1301_set_peripheral(struct otg_trans
  
  #ifdef        CONFIG_USB_OTG
        isp->otg.gadget = gadget;
 -      dev_dbg(&isp->client.dev, "registered gadget\n");
 +      dev_dbg(&isp->client->dev, "registered gadget\n");
        /* gadget driver may be suspended until vbus_connect () */
        if (isp->otg.host)
                return isp1301_otg_enable(isp);
                INTR_SESS_VLD);
        isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING,
                INTR_VBUS_VLD);
 -      dev_info(&isp->client.dev, "B-Peripheral sessions ok\n");
 +      dev_info(&isp->client->dev, "B-Peripheral sessions ok\n");
        dump_regs(isp, __func__);
  
        /* If this has a Mini-AB connector, this mode is highly
        return 0;
  
  #else
 -      dev_dbg(&isp->client.dev, "peripheral sessions not allowed\n");
 +      dev_dbg(&isp->client->dev, "peripheral sessions not allowed\n");
        return -EINVAL;
  #endif
  }
@@@ -1499,10 -1508,12 +1500,10 @@@ isp1301_start_hnp(struct otg_transceive
  
  /*-------------------------------------------------------------------------*/
  
 -/* no error returns, they'd just make bus scanning stop */
 -static int isp1301_probe(struct i2c_adapter *bus, int address, int kind)
 +static int __init isp1301_probe(struct i2c_client *i2c)
  {
        int                     status;
        struct isp1301          *isp;
 -      struct i2c_client       *i2c;
  
        if (the_transceiver)
                return 0;
        isp->timer.function = isp1301_timer;
        isp->timer.data = (unsigned long) isp;
  
 -      isp->irq = -1;
 -      isp->client.addr = address;
 -      i2c_set_clientdata(&isp->client, isp);
 -      isp->client.adapter = bus;
 -      isp->client.driver = &isp1301_driver;
 -      strlcpy(isp->client.name, DRIVER_NAME, I2C_NAME_SIZE);
 -      i2c = &isp->client;
 -
 -      /* if this is a true probe, verify the chip ... */
 -      if (kind < 0) {
 -              status = isp1301_get_u16(isp, ISP1301_VENDOR_ID);
 -              if (status != I2C_VENDOR_ID_PHILIPS) {
 -                      dev_dbg(&bus->dev, "addr %d not philips id: %d\n",
 -                              address, status);
 -                      goto fail1;
 -              }
 -              status = isp1301_get_u16(isp, ISP1301_PRODUCT_ID);
 -              if (status != I2C_PRODUCT_ID_PHILIPS_1301) {
 -                      dev_dbg(&bus->dev, "%d not isp1301, %d\n",
 -                              address, status);
 -                      goto fail1;
 -              }
 -      }
 +      i2c_set_clientdata(i2c, isp);
 +      isp->client = i2c;
  
 -      status = i2c_attach_client(i2c);
 -      if (status < 0) {
 -              dev_dbg(&bus->dev, "can't attach %s to device %d, err %d\n",
 -                              DRIVER_NAME, address, status);
 -fail1:
 -              kfree(isp);
 -              return 0;
 +      /* verify the chip (shouldn't be necesary) */
 +      status = isp1301_get_u16(isp, ISP1301_VENDOR_ID);
 +      if (status != I2C_VENDOR_ID_PHILIPS) {
 +              dev_dbg(&i2c->dev, "not philips id: %d\n", status);
 +              goto fail;
 +      }
 +      status = isp1301_get_u16(isp, ISP1301_PRODUCT_ID);
 +      if (status != I2C_PRODUCT_ID_PHILIPS_1301) {
 +              dev_dbg(&i2c->dev, "not isp1301, %d\n", status);
 +              goto fail;
        }
        isp->i2c_release = i2c->dev.release;
        i2c->dev.release = isp1301_release;
        status = otg_bind(isp);
        if (status < 0) {
                dev_dbg(&i2c->dev, "can't bind OTG\n");
 -              goto fail2;
 +              goto fail;
        }
  #endif
  
  
                /* IRQ wired at M14 */
                omap_cfg_reg(M14_1510_GPIO2);
 -              isp->irq = OMAP_GPIO_IRQ(2);
                if (gpio_request(2, "isp1301") == 0)
                        gpio_direction_input(2);
                isp->irq_type = IRQF_TRIGGER_FALLING;
        }
  
        isp->irq_type |= IRQF_SAMPLE_RANDOM;
 -      status = request_irq(isp->irq, isp1301_irq,
 +      status = request_irq(i2c->irq, isp1301_irq,
                        isp->irq_type, DRIVER_NAME, isp);
        if (status < 0) {
                dev_dbg(&i2c->dev, "can't get IRQ %d, err %d\n",
 -                              isp->irq, status);
 -#ifdef        CONFIG_USB_OTG
 -fail2:
 -#endif
 -              i2c_detach_client(i2c);
 -              goto fail1;
 +                              i2c->irq, status);
 +              goto fail;
        }
  
 -      isp->otg.dev = &isp->client.dev;
 +      isp->otg.dev = &i2c->dev;
        isp->otg.label = DRIVER_NAME;
  
        isp->otg.set_host = isp1301_set_host,
                        status);
  
        return 0;
 -}
  
 -static int isp1301_scan_bus(struct i2c_adapter *bus)
 -{
 -      if (!i2c_check_functionality(bus, I2C_FUNC_SMBUS_BYTE_DATA
 -                      | I2C_FUNC_SMBUS_READ_WORD_DATA))
 -              return -EINVAL;
 -      return i2c_probe(bus, &addr_data, isp1301_probe);
 +fail:
 +      kfree(isp);
 +      return -ENODEV;
  }
  
 +static const struct i2c_device_id isp1301_id[] = {
 +      { "isp1301_omap", 0 },
 +      { }
 +};
 +MODULE_DEVICE_TABLE(i2c, isp1301_id);
 +
  static struct i2c_driver isp1301_driver = {
        .driver = {
                .name   = "isp1301_omap",
        },
 -      .attach_adapter = isp1301_scan_bus,
 -      .detach_client  = isp1301_detach_client,
 +      .probe          = isp1301_probe,
 +      .remove         = __exit_p(isp1301_remove),
 +      .id_table       = isp1301_id,
  };
  
  /*-------------------------------------------------------------------------*/
index f32361fac8704988dfdf24a1e9e33c98b82e2155,25287e80e236727f70bffef85bc0a6d782c44543..915453622828331ca777b4814d9af13f438241e8
@@@ -217,46 -217,6 +217,46 @@@ config TOUCHSCREEN_ATMEL_TSADC
          To compile this driver as a module, choose M here: the
          module will be called atmel_tsadcc.
  
 +config TOUCHSCREEN_TSC2005
 +      tristate "TSC2005 touchscreen support"
 +      help
 +        Say Y here for if you are using the touchscreen features of TSC2301.
 +
 +config TOUCHSCREEN_TSC2102
 +      tristate "TSC 2102 based touchscreens"
 +      depends on SPI_MASTER
 +      select SPI_TSC2102
 +      help
 +        Say Y here if you have a touchscreen interface using the
 +        TI TSC 2102 controller, and your board-specific initialization
 +        code includes that in its table of SPI devices.  Also make
 +        sure the proper SPI controller is selected.
 +
 +        If unsure, say N (but it's safe to say "Y").
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called tsc2102_ts.
 +
 +config TOUCHSCREEN_TSC210X
 +      tristate "TI TSC210x based touchscreens"
 +      depends on SPI_MASTER
 +      select SPI_TSC210X
 +      help
 +        Say Y here if you have a touchscreen interface using a
 +        TI TSC210x controller, and your board-specific initialisation
 +        code includes that in its table of SPI devices.
 +
 +        If unsure, say N (but it's safe to say "Y").
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called tsc210x_ts.
 +
 +config TOUCHSCREEN_TSC2301
 +      tristate "TSC2301 touchscreen support"
 +      depends on SPI_TSC2301
 +      help
 +        Say Y here for if you are using the touchscreen features of TSC2301.
 +
  config TOUCHSCREEN_UCB1400
        tristate "Philips UCB1400 touchscreen"
        select AC97_BUS
@@@ -289,29 -249,26 +289,26 @@@ config TOUCHSCREEN_WM97X
  config TOUCHSCREEN_WM9705
        bool "WM9705 Touchscreen interface support"
        depends on TOUCHSCREEN_WM97XX
+       default y
        help
-         Say Y here if you have a Wolfson Microelectronics WM9705
-         touchscreen controller connected to your system.
-         If unsure, say N.
+         Say Y here to enable support for the Wolfson Microelectronics
+         WM9705 touchscreen controller.
  
  config TOUCHSCREEN_WM9712
        bool "WM9712 Touchscreen interface support"
        depends on TOUCHSCREEN_WM97XX
+       default y
        help
-         Say Y here if you have a Wolfson Microelectronics WM9712
-         touchscreen controller connected to your system.
-         If unsure, say N.
+         Say Y here to enable support for the Wolfson Microelectronics
+         WM9712 touchscreen controller.
  
  config TOUCHSCREEN_WM9713
        bool "WM9713 Touchscreen interface support"
        depends on TOUCHSCREEN_WM97XX
+       default y
        help
-         Say Y here if you have a Wolfson Microelectronics WM9713 touchscreen
-         controller connected to your system.
-         If unsure, say N.
+         Say Y here to enable support for the Wolfson Microelectronics
+         WM9713 touchscreen controller.
  
  config TOUCHSCREEN_WM97XX_MAINSTONE
        tristate "WM97xx Mainstone accelerated touch"
diff --combined drivers/net/Kconfig
index 268314fb31edd4e807d5081d84a47b5390ce7748,4a11296a951438df0730456206473bc40b363059..cd5867f6996a4bdac606de45e2ce083eccbbc386
@@@ -822,14 -822,14 +822,14 @@@ config ULTRA3
          will be called smc-ultra32.
  
  config BFIN_MAC
-       tristate "Blackfin 527/536/537 on-chip mac support"
-       depends on NET_ETHERNET && (BF527 || BF537 || BF536)
+       tristate "Blackfin on-chip MAC support"
+       depends on NET_ETHERNET && (BF526 || BF527 || BF536 || BF537)
        select CRC32
        select MII
        select PHYLIB
        select BFIN_MAC_USE_L1 if DMA_UNCACHED_NONE
        help
-         This is the driver for blackfin on-chip mac device. Say Y if you want it
+         This is the driver for Blackfin on-chip mac device. Say Y if you want it
          compiled into the kernel. This driver is also available as a module
          ( = code which can be inserted in and removed from the running kernel
          whenever you want). The module will be called bfin_mac.
@@@ -960,7 -960,7 +960,7 @@@ config SMC911
        tristate "SMSC LAN911[5678] support"
        select CRC32
        select MII
 -      depends on ARCH_PXA || SUPERH
 +      depends on ARCH_PXA || SUPERH || SH_MAGIC_PANEL_R2 || ARCH_OMAP24XX || ARCH_OMAP34XX
        help
          This is a driver for SMSC's LAN911x series of Ethernet chipsets
          including the new LAN9115, LAN9116, LAN9117, and LAN9118.
@@@ -1172,7 -1172,7 +1172,7 @@@ config ETH16
  
  config NE2000
        tristate "NE2000/NE1000 support"
-       depends on NET_ISA || (Q40 && m) || M32R || TOSHIBA_RBTX4927 || TOSHIBA_RBTX4938
+       depends on NET_ISA || (Q40 && m) || M32R || MACH_TX49XX
        select CRC32
        ---help---
          If you have a network (Ethernet) card of this type, say Y and read
diff --combined drivers/net/smc91x.c
index d2c493918030198e8c2b1c8b3d8eb76771f306a5,24768c10cadb7d1e326b3651ce6819ec08021699..cebabd49e5a4f00016c3be321338ed912e6b335f
@@@ -448,11 -448,6 +448,11 @@@ static inline void  smc_rcv(struct net_
                dev->name, packet_number, status,
                packet_len, packet_len);
  
 +      if (unlikely(packet_len == 0 && !(status & RS_ERRORS))) {
 +              printk(KERN_ERR "%s: bad memory timings: rxlen %u status %x\n",
 +                      dev->name, packet_len, status);
 +              status |= RS_TOOSHORT;
 +      }
        back:
        if (unlikely(packet_len < 6 || status & RS_ERRORS)) {
                if (status & RS_TOOLONG && packet_len <= (1514 + 4 + 6)) {
@@@ -2260,7 -2255,7 +2260,7 @@@ static int smc_drv_remove(struct platfo
  
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs");
        if (!res)
-               platform_get_resource(pdev, IORESOURCE_MEM, 0);
+               res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        release_mem_region(res->start, SMC_IO_EXTENT);
  
        free_netdev(ndev);
diff --combined drivers/rtc/Kconfig
index aefeafc0ae79888395f23941ba91b210f4eb4db6,9a9755c92fada3268f03f69ee7270964bf322818..bcc0d9658121a4158fe587537c00fa742dbea93a
@@@ -246,16 -246,6 +246,16 @@@ config RTC_DRV_TWL9233
          platforms.  The support is integrated with the rest of
          the Menelaus driver; it's not separate module.
  
 +config RTC_DRV_TWL4030
 +      tristate "OMAP TWL4030 Real Time Clock"
 +      depends on RTC_CLASS && TWL4030_CORE
 +      help
 +        If you say yes here you get support for internal Real-Time 
 +        Clock of TWL4030 chip.
 +
 +        This driver can also be built as a module. If so, the module
 +        will be called rtc-twl4030.
 +
  config RTC_DRV_S35390A
        tristate "Seiko Instruments S-35390A"
        select BITREVERSE
@@@ -571,7 -561,7 +571,7 @@@ config RTC_DRV_AT91SAM9_GPB
  
  config RTC_DRV_BFIN
        tristate "Blackfin On-Chip RTC"
-       depends on BLACKFIN
+       depends on BLACKFIN && !BF561
        help
          If you say yes here you will get support for the
          Blackfin On-Chip Real Time Clock.
diff --combined drivers/usb/Kconfig
index 142a37179024616921c74c15a129907a55da3d40,bcefbddeba5099877981a1717cfd22edfd35e159..3265afe4b553e14a2cdfd7a216e0916da8e16723
@@@ -55,7 -55,6 +55,7 @@@ config USB_ARCH_HAS_EHC
        default y if PPC_83xx
        default y if SOC_AU1200
        default y if ARCH_IXP4XX
 +      default y if ARCH_OMAP34XX
        default PCI
  
  # ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
@@@ -96,6 -95,8 +96,8 @@@ config US
  
  source "drivers/usb/core/Kconfig"
  
+ source "drivers/usb/mon/Kconfig"
  source "drivers/usb/host/Kconfig"
  
  source "drivers/usb/musb/Kconfig"
@@@ -106,8 -107,6 +108,6 @@@ source "drivers/usb/storage/Kconfig
  
  source "drivers/usb/image/Kconfig"
  
- source "drivers/usb/mon/Kconfig"
  comment "USB port drivers"
        depends on USB
  
index a2638eeecca96b3fb3ad16cfec255901cbfd400e,574c53831a05fd17afd6062633aaab4843609e5f..4596154398d7c7ef087c51d68f703343c6dc0fe6
@@@ -54,6 -54,7 +54,7 @@@
  
  #include <mach/dma.h>
  #include <mach/usb.h>
+ #include <mach/control.h>
  
  #include "omap_udc.h"
  
@@@ -2310,17 -2311,10 +2311,17 @@@ static int proc_otg_show(struct seq_fil
        u32             trans;
        char            *ctrl_name;
  
-       tmp = omap_readw(OTG_REV);
+       tmp = omap_readl(OTG_REV);
        if (cpu_is_omap24xx()) {
 +              /*
 +               * REVISIT: Not clear how this works on OMAP2.  trans
 +               * is ANDed to produce bits 7 and 8, which might make
 +               * sense for USB_TRANSCEIVER_CTRL on OMAP1,
 +               * but with CONTROL_DEVCONF, these bits have something to
 +               * do with the frame adjustment counter and McBSP2.
 +               */
                ctrl_name = "control_devconf";
-               trans = omap_ctrl_readb(OMAP2_CONTROL_DEVCONF0);
+               trans = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
        } else {
                ctrl_name = "tranceiver_ctrl";
                trans = omap_readw(USB_TRANSCEIVER_CTRL);
@@@ -2603,9 -2597,7 +2604,9 @@@ omap_ep_setup(char *name, u8 addr, u8 t
                 * and ignored for PIO-IN on newer chips
                 * (for more reliable behavior)
                 */
 -              if (!use_dma || cpu_is_omap15xx() || cpu_is_omap24xx())
 +              if ((!use_dma && (addr & USB_DIR_IN))
 +                              || machine_is_omap_apollon()
 +                              || cpu_is_omap15xx())
                        dbuf = 0;
  
                switch (maxp) {
@@@ -2695,7 -2687,7 +2696,7 @@@ omap_udc_setup(struct platform_device *
        udc->gadget.name = driver_name;
  
        device_initialize(&udc->gadget.dev);
 -      dev_set_name(&udc->gadget.dev, "gadget");
 +      strcpy (udc->gadget.dev.bus_id, "gadget");
        udc->gadget.dev.release = omap_udc_release;
        udc->gadget.dev.parent = &odev->dev;
        if (use_dma)
index 71fb9fd0c689bee0969ba539d851886201876847,1eb64d08b60a9591bd994f757c0372602b7c7ef4..abba018f90615514e20e1cd208cf89a7fc9f0111
@@@ -225,12 -225,13 +225,13 @@@ static int ohci_omap_init(struct usb_hc
                        dev_err(hcd->self.controller, "can't find transceiver\n");
                        return -ENODEV;
                }
+               ohci->start_hnp = start_hnp;
        }
  #endif
  
        omap_ohci_clock_power(1);
  
 -      if (cpu_is_omap1510()) {
 +      if (cpu_is_omap15xx()) {
                omap_1510_local_bus_power(1);
                omap_1510_local_bus_init();
        }
                        omap_cfg_reg(W4_USB_HIGHZ);
                }
                ohci_writel(ohci, rh, &ohci->regs->roothub.a);
-               distrust_firmware = 0;
+               ohci->flags &= ~OHCI_QUIRK_HUB_POWER;
        } else if (machine_is_nokia770()) {
                /* We require a self-powered hub, which should have
                 * plenty of power. */
@@@ -318,7 -319,7 +319,7 @@@ static int usb_hcd_omap_probe (const st
        if (IS_ERR(usb_host_ck))
                return PTR_ERR(usb_host_ck);
  
 -      if (!cpu_is_omap1510())
 +      if (!cpu_is_omap15xx())
                usb_dc_ck = clk_get(0, "usb_dc_ck");
        else
                usb_dc_ck = clk_get(0, "lb_ck");
@@@ -469,7 -470,6 +470,6 @@@ static const struct hc_driver ohci_omap
         */
        .hub_status_data =      ohci_hub_status_data,
        .hub_control =          ohci_hub_control,
-       .hub_irq_enable =       ohci_rhsc_enable,
  #ifdef        CONFIG_PM
        .bus_suspend =          ohci_bus_suspend,
        .bus_resume =           ohci_bus_resume,
diff --combined drivers/watchdog/Kconfig
index adebd963278e0d075799b70a99982bff83db085b,c510367167009a1e57e88826bf6bbfb453357b9b..b02d0cd9b1c85f41cc7665bca92e35ae462a4c9b
@@@ -173,10 -173,10 +173,10 @@@ config EP93XX_WATCHDO
  
  config OMAP_WATCHDOG
        tristate "OMAP Watchdog"
 -      depends on ARCH_OMAP16XX || ARCH_OMAP24XX
 +      depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX
        help
 -        Support for TI OMAP1610/OMAP1710/OMAP2420 watchdog.  Say 'Y' here to
 -        enable the OMAP1610/OMAP1710 watchdog timer.
 +        Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog.  Say 'Y'
 +        here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog timer.
  
  config PNX4008_WATCHDOG
        tristate "PNX4008 Watchdog"
@@@ -465,6 -465,16 +465,16 @@@ config PC87413_WD
  
          Most people will say N.
  
+ config RDC321X_WDT
+       tristate "RDC R-321x SoC watchdog"
+       depends on X86_RDC321X
+       help
+         This is the driver for the built in hardware watchdog
+         in the RDC R-321x SoC.
+         To compile this driver as a module, choose M here: the
+         module will be called rdc321x_wdt.
  config 60XX_WDT
        tristate "SBC-60XX Watchdog Timer"
        depends on X86
@@@ -633,6 -643,16 +643,16 @@@ config SBC_EPX_C3_WATCHDO
  
  # MIPS Architecture
  
+ config RC32434_WDT
+       tristate "IDT RC32434 SoC Watchdog Timer"
+       depends on MIKROTIK_RB532
+       help
+         Hardware driver for the IDT RC32434 SoC built-in
+         watchdog timer.
+         To compile this driver as a module, choose M here: the
+         module will be called rc32434_wdt.
  config INDYDOG
        tristate "Indy/I2 Hardware Watchdog"
        depends on SGI_HAS_INDYDOG
@@@ -692,10 -712,6 +712,6 @@@ config MPC5200_WD
        tristate "MPC5200 Watchdog Timer"
        depends on PPC_MPC52xx
  
- config 8xx_WDT
-       tristate "MPC8xx Watchdog Timer"
-       depends on 8xx
  config 8xxx_WDT
        tristate "MPC8xxx Platform Watchdog Timer"
        depends on PPC_8xx || PPC_83xx || PPC_86xx