Merge remote-tracking branch 'kernel-2.6.32/develop' into develop-2.6.36
author黄涛 <huangtao@rock-chips.com>
Tue, 23 Aug 2011 06:51:45 +0000 (14:51 +0800)
committer黄涛 <huangtao@rock-chips.com>
Tue, 23 Aug 2011 06:51:45 +0000 (14:51 +0800)
Conflicts:
.gitignore
arch/arm/include/asm/mach/map.h
arch/arm/mach-rk29/vpu_service.c
drivers/base/power/main.c
drivers/gpio/Makefile
drivers/input/touchscreen/Kconfig
drivers/media/video/Kconfig
drivers/media/video/gc0309.c
drivers/media/video/gc2015.c
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/regulator/Kconfig
drivers/regulator/Makefile
drivers/usb/gadget/f_mass_storage.c
drivers/video/Kconfig

34 files changed:
1  2 
.gitignore
Makefile
arch/arm/include/asm/mach/map.h
arch/arm/mach-rk29/board-rk29-ddr3sdk.c
arch/arm/mach-rk29/board-rk29-phonesdk.c
arch/arm/mach-rk29/board-rk29phonepadsdk.c
arch/arm/mach-rk29/board-rk29sdk.c
arch/arm/mach-rk29/vpu_service.c
arch/arm/mm/mmu.c
drivers/base/power/main.c
drivers/gpio/Kconfig
drivers/input/gsensor/mma8452.c
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/Makefile
drivers/media/video/Kconfig
drivers/media/video/Makefile
drivers/media/video/gc0309.c
drivers/media/video/gc2015.c
drivers/media/video/ov2659.c
drivers/media/video/ov3640.c
drivers/media/video/rk29_camera.c
drivers/mmc/host/rk29_sdmmc.c
drivers/net/rk29_vmac.c
drivers/net/usb/usbnet.c
drivers/power/Kconfig
drivers/power/wm831x_power.c
drivers/regulator/Kconfig
drivers/regulator/Makefile
drivers/usb/gadget/f_mass_storage.c
drivers/video/Kconfig
drivers/video/backlight/rk29_backlight.c
drivers/video/rk29_fb.c
include/media/v4l2-chip-ident.h
sound/soc/rk29/rk29_i2s.c

diff --cc .gitignore
index 48dce78b1338142f3d2e101c12d06fbfa4006e83,d3f61fd66aae671be535c2d11c4ffd028bfd2dfc..ea3e54bd97012ec861ae0afb877a09b27e060a32
@@@ -36,18 -34,13 +36,19 @@@ Untitled Project.
  #
  # Top-level generic files
  #
 -tags
 -TAGS
 -vmlinux
 -kernel.img
 -System.map
 -Module.markers
 -Module.symvers
 +/tags
 +/TAGS
 +/linux
 +/vmlinux
 +/vmlinuz
 +/System.map
 +/Module.markers
 +/Module.symvers
++/kernel.img
 +
 +#
 +# git files that we don't want to ignore even it they are dot-files
 +#
  !.gitignore
  !.mailmap
  
diff --cc Makefile
index 389b1844df1e9e3345e4dfc135ad346b64753e77,7be29d6c48cd138952d043b32e3ef67d5088b8c4..12bbf67fd532cbea46fa9c2bcc6b5d880b01f5df
+++ b/Makefile
@@@ -189,14 -181,10 +189,10 @@@ SUBARCH := $(shell uname -m | sed -e s/
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  export KBUILD_BUILDHOST := $(SUBARCH)
  #ARCH         ?= $(SUBARCH)
 -#CROSS_COMPILE        ?=
 +#CROSS_COMPILE        ?= $(CONFIG_CROSS_COMPILE:"%"=%)
  ARCH          ?= arm
- ifneq ($(wildcard ../toolchain/arm-eabi-4.4.0),)
- CROSS_COMPILE ?= ../toolchain/arm-eabi-4.4.0/bin/arm-eabi-
- endif
- ifneq ($(wildcard ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0),)
- CROSS_COMPILE ?= ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
- endif
+ #CROSS_COMPILE        :=/opt/android0320/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
+ CROSS_COMPILE ?=../toolchain/arm-eabi-4.4.0/bin/arm-eabi-
  
  # Architecture as present in compile.h
  UTS_MACHINE   := $(ARCH)
index d2fedb5aeb1f381d74dbdfd29516fbbfd0ea4e13,1f8efc90ded25aa9dec73ee5c49efbf4eb8c2783..0d96c8c0f6d2fc5ca9657ab69ee260bdb40b5c95
@@@ -27,8 -27,7 +27,9 @@@ struct map_desc 
  #define MT_MEMORY             9
  #define MT_ROM                        10
  #define MT_MEMORY_NONCACHED   11
 -#define MT_DEVICE_STRONGLY_ORDERED    12
 +#define MT_MEMORY_DTCM                12
 +#define MT_MEMORY_ITCM                13
++#define MT_DEVICE_STRONGLY_ORDERED    14
  
  #ifdef CONFIG_MMU
  extern void iotable_init(struct map_desc *, int);
index 2dcf75d5c4eb059fe99b14ced1b1ca9f6c3aa229,6c09dc89515b05331084950e27699dd30fa83efc..b03ed0dd659089e5054a1c70218d4b21c7ee89e4
mode 100755,100644..100644
Simple merge
index fb146d35c918e8832d7f4abcd74625bddd2bb004,1ccc145ddf9dd5d624ac31df8747799bb52e0484..e36ccb9b5b78cdcd09e21e2f141f1dba720fa0b9
@@@ -34,8 -34,7 +34,8 @@@
  #include <linux/mm.h>
  #include <linux/poll.h>
  #include <linux/platform_device.h>
- #include <linux/workqueue.h>
 +#include <linux/slab.h>
+ #include <linux/timer.h>
  
  #include <asm/uaccess.h>
  
Simple merge
index 1ba3de8015b56415b9d95113a037c5dd3c57045c,d2226210de414cabc7193ed3b219d3efcc3d1f66..3bb0cd0b3ebe6399511119a4aa03393d8ad05f55
  #include <linux/pm.h>
  #include <linux/pm_runtime.h>
  #include <linux/resume-trace.h>
 -#include <linux/rwsem.h>
  #include <linux/interrupt.h>
 +#include <linux/sched.h>
 +#include <linux/async.h>
  #include <linux/timer.h>
+ #ifdef CONFIG_ARCH_RK29
+ #include <linux/console.h>
+ #endif
  
  #include "../base.h"
  #include "power.h"
@@@ -632,28 -507,23 +641,34 @@@ static void dpm_resume(pm_message_t sta
  
        INIT_LIST_HEAD(&list);
        mutex_lock(&dpm_list_mtx);
 -      while (!list_empty(&dpm_list)) {
 -              struct device *dev = to_device(dpm_list.next);
 +      pm_transition = state;
  
 +      list_for_each_entry(dev, &dpm_list, power.entry) {
 +              if (dev->power.status < DPM_OFF)
 +                      continue;
 +
 +              INIT_COMPLETION(dev->power.completion);
 +              if (is_async(dev)) {
 +                      get_device(dev);
 +                      async_schedule(async_resume, dev);
 +              }
 +      }
 +
 +      while (!list_empty(&dpm_list)) {
 +              dev = to_device(dpm_list.next);
                get_device(dev);
 -              if (dev->power.status >= DPM_OFF) {
 +              if (dev->power.status >= DPM_OFF && !is_async(dev)) {
                        int error;
  
 -                      dev->power.status = DPM_RESUMING;
                        mutex_unlock(&dpm_list_mtx);
  
 -                      error = device_resume(dev, state);
+ #ifdef CONFIG_ARCH_RK29
+                       dpm_drv_wdset(dev);
+ #endif
 +                      error = device_resume(dev, state, false);
+ #ifdef CONFIG_ARCH_RK29
+                       dpm_drv_wdclr(dev);
+ #endif
  
                        mutex_lock(&dpm_list_mtx);
                        if (error)
Simple merge
Simple merge
index a6705e36187e5154999d2b3b93a792786cafc523,845c63510856d69f84871bc4cd3434fde66ac74e..6a00172a05ef04ad4a81b01d0b70ebe15e172079
mode 100755,100644..100644
@@@ -858,36 -761,33 +864,65 @@@ config TOUCHSCREEN_FT540
          in its table of I2C devices.
          
          If unsure, say N(but it's safe to say "Y").
 +
 +config TOUCHSCREEN_TPS6507X
 +      tristate "TPS6507x based touchscreens"
 +      depends on I2C
 +      help
 +        Say Y here if you have a TPS6507x based touchscreen
 +        controller.
 +
 +        If unsure, say N.
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called tps6507x_ts.
 +
 +config TOUCHSCREEN_STMPE
 +      tristate "STMicroelectronics STMPE touchscreens"
 +      depends on MFD_STMPE
 +      help
 +        Say Y here if you want support for STMicroelectronics
 +        STMPE touchscreen controllers.
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called stmpe-ts.
 +
 +config TOUCHSCREEN_QUANTUM_OBP
 +      tristate "Quantum OBP based touchscreens"
 +      depends on I2C
 +      help
 +        Say Y here if you have a Quantum touchscreen that uses
 +        the Object Based Protocol based firmware.
 +
 +        If unsure, say N.
 +
+ config ATMEL_MXT1386
+         tristate "ATMEL_MXT1386 touchscreen panel support"
+         depends on I2C
+         help
+           Say Y here to enable support for I2C connected ATMEL_MXT1386 touch panels.
+           To compile this driver as a module, choose M here: the
+           module will be called atmel_mxt1386_ts.
+         config ATMEL_MXT1386_MAX_X
+                 int "ATMEL_MXT1386_MAX_X"
+                 depends on ATMEL_MXT1386
+                 default 4095
+                 help
+                   RK29 ATMEL_MXT1386 touch max X size
+         config ATMEL_MXT1386_MAX_Y
+                 int "ATMEL_MXT1386_MAX_Y"
+                 depends on ATMEL_MXT1386
+                 default 4095
+                 help
+                   RK29 ATMEL_MXT1386 touch max Y size
+         config ATMEL_MXT1386_DEBUG
+                 bool "ATMEL_MXT1386 debug"
+                 depends on ATMEL_MXT1386
+                 default n
+                 help
+                   RK29 ATMEL_MXT1386 touch debug
  endif
Simple merge
index 551ef42ecb03b13ad1e10e2598b5bab0fe5a2ccf,59219546784d1a4eaf36b3a887b4872b89aea5a2..eb5a53dc52c781a8ba6f1a9d99c1c0fdcc86867a
@@@ -965,8 -981,12 +965,14 @@@ config SOC_CAMERA_GT200
        tristate "GT2005 support"
        depends on SOC_CAMERA && I2C
        help
 -        This is a GT2005 camera driver         
 +        This is a GT2005 camera driver
 +
+ config SOC_CAMERA_GC0307
+       tristate "GC0307 support"
+       depends on SOC_CAMERA && I2C
+       help
+         This is a GC0307 camera driver           
++
  config SOC_CAMERA_GC0308
        tristate "GC0308 support"
        depends on SOC_CAMERA && I2C
Simple merge
index a36cb41c407104734517e6e914ad8f426ad65aaf,404628c9f9fec92e512a09b4c1b23d88c1e71e2c..23a3ac0666f858199a0c9062f1ab9bb2f1b76a69
mode 100755,100644..100644
index 4ffe4974be070eee3bdcc3d003246f1122674004,a73c7dc07f2837d06ce6374469c3a2e084ce7864..657a3a6ce1b10f2955f3a48729735d588743cbaa
@@@ -46,14 -46,14 +46,14 @@@ module_param(debug, int, S_IRUGO|S_IWUS
  #define SENSOR_NAME RK29_CAM_SENSOR_GC2015
  #define SENSOR_V4L2_IDENT V4L2_IDENT_GC2015
  #define SENSOR_ID 0x2005
- #define SENSOR_MIN_WIDTH    176
- #define SENSOR_MIN_HEIGHT   144
+ #define SENSOR_MIN_WIDTH    640
+ #define SENSOR_MIN_HEIGHT   480
  #define SENSOR_MAX_WIDTH    1600
  #define SENSOR_MAX_HEIGHT   1200
- #define SENSOR_INIT_WIDTH     1024                    /* Sensor pixel size for sensor_init_data array */
- #define SENSOR_INIT_HEIGHT  768
+ #define SENSOR_INIT_WIDTH     800//1024                       /* Sensor pixel size for sensor_init_data array */
+ #define SENSOR_INIT_HEIGHT  600//768
  #define SENSOR_INIT_WINSEQADR sensor_svga
 -#define SENSOR_INIT_PIXFMT V4L2_PIX_FMT_UYVY
 +#define SENSOR_INIT_PIXFMT V4L2_MBUS_FMT_UYVY8_2X8
  
  #define CONFIG_SENSOR_WhiteBalance    1
  #define CONFIG_SENSOR_Brightness      0
@@@ -1571,18 -1839,14 +1864,20 @@@ static int sensor_s_fmt(struct v4l2_sub
        struct soc_camera_device *icd = client->dev.platform_data;
      struct reginfo *winseqe_set_addr=NULL;
      int ret=0, set_w,set_h;
+       
+       u32 gc2015_shutter;
  
 -      SENSOR_TR("sensor_s_fmt\n");
 -      if (sensor->info_priv.pixfmt != pix->pixelformat) {
 -              switch (pix->pixelformat)
 +      fmt = sensor_find_datafmt(mf->code, sensor_colour_fmts,
 +                                 ARRAY_SIZE(sensor_colour_fmts));
 +      if (!fmt) {
 +        ret = -EINVAL;
 +        goto sensor_s_fmt_end;
 +    }
 +
 +      if (sensor->info_priv.fmt.code != mf->code) {
 +              switch (mf->code)
                {
 -                      case V4L2_PIX_FMT_YUYV:
 +                      case V4L2_MBUS_FMT_YUYV8_2X8:
                        {
                                winseqe_set_addr = sensor_ClrFmt_YUYV;
                                break;
Simple merge
Simple merge
index f4bcf2023b935678f5f4de90cce3d3e2fbd3c6d7,543b0728473e4b13100053b641869d8c531d81fb..08fa9f9b72575d488e6ba7d424daf88962952fe5
mode 100755,100644..100644
Simple merge
Simple merge
index c04d49e31f814fe11d2f1b730dcba014afeb324c,07a03c95af29b81e6c712bad4b37680260212581..2928586bcb82a952bf08b0ac4da5f4fb2ef3ded5
@@@ -325,12 -335,13 +328,12 @@@ static int rx_submit (struct usbnet *de
        size_t                  size = dev->rx_urb_size;
  
        if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) {
 -              if (netif_msg_rx_err (dev))
 -                      devdbg (dev, "no rx skb");
 +              netif_dbg(dev, rx_err, dev->net, "no rx skb\n");
                usbnet_defer_kevent (dev, EVENT_RX_MEMORY);
                usb_free_urb (urb);
 -              return;
 +              return -ENOMEM;
        }
-       skb_reserve (skb, NET_IP_ALIGN);
+       //skb_reserve (skb, NET_IP_ALIGN);  //ylz++
  
        entry = (struct skb_data *) skb->cb;
        entry->urb = urb;
index 8aeff33f3f275b400eccf058d75e32082a6f4de8,fd6167828cfc34434c1df1f5cb42ef799226bd83..5cb348f382c23bacc395cddbd8200150e8ee40d5
mode 100644,100755..100755
Simple merge
index eb8fef7fecd62f71f408a192e1a9fb84462d6eec,6399e8c5482e300f9c8670cceaafb52f11f935a8..bcc31369b03120233daae6dd762310ddcdd3878e
mode 100644,100755..100755
index 3e61254569c4baae1733cd8fc26bfd6eea39b882,ec0e204b5541b3c58843a65e7f6054a098cd9a68..3e61254569c4baae1733cd8fc26bfd6eea39b882
mode 100644,100755..100755
index 1a5119c1af4ca84e84fd1d4fb2850451080efac5,77a143809323572ab8d9ceb567d10fa034bc923b..0bd01f79778b88a2bb64209426a69cbec7164793
mode 100644,100755..100644
@@@ -809,10 -840,17 +809,17 @@@ static int do_read(struct fsg_common *c
                        amount = min(amount, (unsigned int) PAGE_CACHE_SIZE -
                                        partial_page);
  
+               /* kever@rk
+                * max size for dwc_otg ctonroller is 64(max pkt sizt) * 1023(pkt)
+                * because of the DOEPTSIZ.PKTCNT has only 10 bits
+                */
+               if((fsg->cdev->gadget->speed != USB_SPEED_HIGH)&&(amount >0x8000))
+                   amount = 0x8000;
                /* Wait for the next buffer to become available */
 -              bh = fsg->next_buffhd_to_fill;
 +              bh = common->next_buffhd_to_fill;
                while (bh->state != BUF_STATE_EMPTY) {
 -                      rc = sleep_thread(fsg);
 +                      rc = sleep_thread(common);
                        if (rc)
                                return rc;
                }
index f1d0463d086b6a91f9f0379c84fec47ecdc3213d,68df978a8008e47c8a9b5607a27cf96411c226e6..cc69fdead40c2a2a0a8e769fa5e5d649c69b953a
@@@ -2019,27 -1964,12 +2019,33 @@@ config FB_ROTATE_VIDE
        ---help---
                this function  can use to rotate video .
  
+ config CLOSE_WIN1_DYNAMIC
+       bool "close win1 dynamically when video"
+       depends on FB_RK29
+       ---help---
+               this function  can close win1 when video and it have no data in fb0
 +config FB_NUC900
 +        bool "NUC900 LCD framebuffer support"
 +        depends on FB && ARCH_W90X900
 +        select FB_CFB_FILLRECT
 +        select FB_CFB_COPYAREA
 +        select FB_CFB_IMAGEBLIT
 +        ---help---
 +          Frame buffer driver for the built-in LCD controller in the Nuvoton
 +          NUC900 processor
 +
 +config GPM1040A0_320X240
 +        bool "Giantplus Technology GPM1040A0 320x240 Color TFT LCD"
 +        depends on FB_NUC900
 +
 +config FB_NUC900_DEBUG
 +        bool "NUC900 lcd debug messages"
 +        depends on FB_NUC900
 +        help
 +          Turn on debugging messages. Note that you can set/unset at run time
 +          through sysfs
 +
  config FB_SM501
        tristate "Silicon Motion SM501 framebuffer support"
        depends on FB && MFD_SM501
Simple merge
index b61d1c9375347370b6a3438288c78b41719c749a,a1a3c140e5103230b3ed647418f72efb22943edf..7482878f63db03352b324fc12eb1feb9dcd37bf5
@@@ -322,8 -276,12 +322,9 @@@ enum 
        /* module upd64083: just ident 64083 */
        V4L2_IDENT_UPD64083 = 64083,
  
 -      /* module m52790: just ident 52790 */
 -      V4L2_IDENT_M52790 = 52790,
 -
  
-     V4L2_IDENT_GT2005 = 64100,       /* ddl@rock-chips.com : GT2005 support */
+     V4L2_IDENT_GT2005 = 64099,       /* ddl@rock-chips.com : GT2005 support */
+     V4L2_IDENT_GC0307 = 64100,      /* ddl@rock-chips.com : GC0308 support */
      V4L2_IDENT_GC0308 = 64101,      /* ddl@rock-chips.com : GC0308 support */
      V4L2_IDENT_GC0309 = 64102,      /* ddl@rock-chips.com : GC0309 support */
      V4L2_IDENT_SIV120B = 64103,      /* ddl@rock-chips.com : siv120b support */    
Simple merge