Merge remote-tracking branch 'origin/develop-3.0' into develop-3.0-jb
author黄涛 <huangtao@rock-chips.com>
Wed, 18 Jul 2012 02:14:33 +0000 (10:14 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 18 Jul 2012 02:14:33 +0000 (10:14 +0800)
1  2 
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/usb/serial/usb-serial.c
include/linux/fb.h

diff --combined drivers/misc/Kconfig
index ab7c2dabbb376f20c7065f5571b3281ca72fc357,fc68cb288615c458a7b87698834ccf957d84aee5..ab288e3a6bbaa340669746aeca523508990d4864
@@@ -61,6 -61,10 +61,6 @@@ config AD525X_DPOT_SP
          To compile this driver as a module, choose M here: the
          module will be called ad525x_dpot-spi.
  
 -config ANDROID_PMEM
 -      bool "Android pmem allocator"
 -      default y
 -
  config ATMEL_PWM
        tristate "Atmel AT32/AT91 PWM support"
        depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9
@@@ -483,7 -487,7 +483,7 @@@ config BMP08
          module will be called bmp085.
  
  config PCH_PHUB
 -      tristate "Intel EG20T PCH / OKI SEMICONDUCTOR IOH(ML7213/ML7223) PHUB"
 +      tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
        depends on PCI
        help
          This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
          processor. The Topcliff has MAC address and Option ROM data in SROM.
          This driver can access MAC address and Option ROM data in SROM.
  
 -        This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
 -        Output Hub), ML7213 and ML7223.
 -        ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is
 -        for MP(Media Phone) use.
 -        ML7213/ML7223 is companion chip for Intel Atom E6xx series.
 -        ML7213/ML7223 is completely compatible for Intel EG20T PCH.
 +        This driver also can be used for LAPIS Semiconductor's IOH,
 +        ML7213/ML7223/ML7831.
 +        ML7213 which is for IVI(In-Vehicle Infotainment) use.
 +        ML7223 IOH is for MP(Media Phone) use.
 +        ML7831 IOH is for general purpose use.
 +        ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
 +        ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
  
          To compile this driver as a module, choose M here: the module will
          be called pch_phub.
@@@ -525,9 -528,6 +525,6 @@@ config APANIC_PLABE
         If your platform uses a different flash partition label for storing
         crashdumps, enter it here.
  
- config STE
-       bool "STE modem control driver"
  config MTK23D
        bool "MTK6223D modem control driver"
        default n       
  config FM580X
        bool "FM rda580x driver"
  
- config MU509
-       bool "MU509 modem control driver"
- config MW100
-       bool "MW100 modem control driver"
- config MT6229
-       bool "MT6229 modem control driver"
  
  config RK29_NEWTON
        bool "RK29_NEWTON misc driver"
@@@ -566,5 -558,6 +555,6 @@@ source "drivers/misc/iwmc3200top/Kconfi
  source "drivers/misc/ti-st/Kconfig"
  source "drivers/misc/lis3lv02d/Kconfig"
  source "drivers/misc/carma/Kconfig"
+ source "drivers/misc/3g_module/Kconfig"
  
  endif # MISC_DEVICES
diff --combined drivers/misc/Makefile
index 593f4ebd65e4f7242c8adf2ac2d156daf0e13a43,47fa292d9a7b28f400c38f528d3ec3718a338d88..282485528a7395a299b6bcd18fb828812c23d430
@@@ -19,6 -19,7 +19,6 @@@ obj-$(CONFIG_PHANTOM)         += phantom.
  obj-$(CONFIG_SENSORS_BH1780)  += bh1780gli.o
  obj-$(CONFIG_SENSORS_BH1770)  += bh1770glc.o
  obj-$(CONFIG_SENSORS_APDS990X)        += apds990x.o
 -obj-$(CONFIG_ANDROID_PMEM)    += pmem.o
  obj-$(CONFIG_SGI_IOC4)                += ioc4.o
  obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
  obj-$(CONFIG_KGDB_TESTS)      += kgdbts.o
@@@ -52,11 -53,8 +52,8 @@@ obj-$(CONFIG_APANIC)         += apanic.
  obj-$(CONFIG_SENSORS_AK8975)  += akm8975.o
  obj-$(CONFIG_MTK23D)          += mtk23d.o
  obj-$(CONFIG_FM580X)          += fm580x.o
- obj-$(CONFIG_MU509)           += mu509.o
- obj-$(CONFIG_MW100)           += mw100.o
- obj-$(CONFIG_MT6229)             += mt6229.o
- obj-$(CONFIG_STE)             += ste.o
  obj-$(CONFIG_RK29_SUPPORT_MODEM)      += rk29_modem/
+ obj-$(CONFIG_3G_MODULE)               += 3g_module/
  obj-$(CONFIG_GPS_GNS7560)     += gps/
  obj-y += inv_mpu/
  obj-$(CONFIG_RK29_NEWTON)     += newton.o
index 6b715c6fb3f17c958f880a16dbb36365f8089a73,49d860078b9367d3f7bda27769cf31d18df93ac1..eb7f76f3327fbfa18a7e3f88b800ff3250e4cb99
@@@ -65,6 -65,10 +65,10 @@@ static int MW100_USB = 0
  static int MT6229_USB = 0;
  #define MT6229_USB_PORT     (SERIAL_TTY_MINORS - 10)
  #endif
+ #ifdef CONFIG_SEW868
+ static int SEW868_USB = 0;
+ #define SEW868_USB_PORT     (SERIAL_TTY_MINORS - 10)
+ #endif
  
  /* There is no MODULE_DEVICE_TABLE for usbserial.c.  Instead
     the MODULE_DEVICE_TABLE declarations in each serial driver
@@@ -126,6 -130,10 +130,10 @@@ static struct usb_serial *get_free_seri
  #ifdef CONFIG_MT6229  
        if (MT6229_USB)         
                a= MT6229_USB_PORT;
+ #endif
+ #ifdef CONFIG_SEW868  
+       if (SEW868_USB)         
+               a= SEW868_USB_PORT;
  #endif
        for (i = a; i < SERIAL_TTY_MINORS; ++i) {
                if (serial_table[i])
@@@ -694,14 -702,12 +702,14 @@@ exit
  static struct usb_serial_driver *search_serial_device(
                                        struct usb_interface *iface)
  {
 -      const struct usb_device_id *id;
 +      const struct usb_device_id *id = NULL;
        struct usb_serial_driver *drv;
 +      struct usb_driver *driver = to_usb_driver(iface->dev.driver);
  
        /* Check if the usb id matches a known device */
        list_for_each_entry(drv, &usb_serial_driver_list, driver_list) {
 -              id = get_iface_id(drv, iface);
 +              if (drv->usb_driver == driver)
 +                      id = get_iface_id(drv, iface);
                if (id)
                        return drv;
        }
@@@ -1103,13 -1109,13 +1111,19 @@@ int usb_serial_probe(struct usb_interfa
        else                    
                MT6229_USB = 0;
  #endif
+ #ifdef CONFIG_SEW868          
+       if ((le16_to_cpu(dev->descriptor.idVendor) == 0x19d2) && (le16_to_cpu(dev->descriptor.idProduct) == 0xffeb))                    
+               SEW868_USB =1;          
+       else                    
+               SEW868_USB = 0;
+ #endif
  
 +      /* Avoid race with tty_open and serial_install by setting the
 +       * disconnected flag and not clearing it until all ports have been
 +       * registered.
 +       */
 +      serial->disconnected = 1;
 +
        if (get_free_serial(serial, num_ports, &minor) == NULL) {
                dev_err(&interface->dev, "No more free serial devices\n");
                goto probe_error;
                }
        }
  
 +      serial->disconnected = 0;
 +
        usb_serial_console_init(debug, minor);
  
  exit:
diff --combined include/linux/fb.h
index bbbe037fe041d17d2843b38722c7e4db57fa781c,34fcd09307e02ace4d8f3e9066c89be8dff1ce66..5a24a1470b0149b0fc1a50f55e7645f085120f81
@@@ -27,6 -27,8 +27,8 @@@
  #define FBIOPUT_SET_CURSOR_CMAP    0x460c
  #define FBIOPUT_GET_CURSOR_RESOLUTION    0x460d
  #define FBIOPUT_GET_CURSOR_EN    0x460e
+ #define FBIOPUT_NUM_BUFFERS   0x4625
  #ifdef __KERNEL__
  #define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor_user)
  #else
@@@ -1011,7 -1013,6 +1013,7 @@@ extern ssize_t fb_sys_write(struct fb_i
  /* drivers/video/fbmem.c */
  extern int register_framebuffer(struct fb_info *fb_info);
  extern int unregister_framebuffer(struct fb_info *fb_info);
 +extern int unlink_framebuffer(struct fb_info *fb_info);
  extern void remove_conflicting_framebuffers(struct apertures_struct *a,
                                const char *name, bool primary);
  extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);