diff --git a/arch/arm/configs/htcleo_defconfig b/arch/arm/configs/htcleo_defconfig index 41caf3e4..0d6e27f1 100644 --- a/arch/arm/configs/htcleo_defconfig +++ b/arch/arm/configs/htcleo_defconfig @@ -43,12 +43,11 @@ CONFIG_SWAP=y # # RCU Subsystem # -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set # CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=20 @@ -328,12 +327,11 @@ CONFIG_CPU_32v6K=y CONFIG_CPU_V7=y CONFIG_CPU_32v7=y CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_PABRT_IFAR=y CONFIG_CPU_CACHE_V7=y CONFIG_CPU_CACHE_VIPT=y CONFIG_CPU_COPY_V6=y CONFIG_CPU_TLB_V7=y -CONFIG_VERIFY_PERMISSION_FAULT=y CONFIG_CPU_HAS_ASID=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y @@ -347,7 +345,8 @@ CONFIG_ARM_THUMBEE=y # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_HAS_TLS_REG=y -CONFIG_ARM_L1_CACHE_SHIFT=5 +# CONFIG_OUTER_CACHE is not set +# ONFIG_ARM_L1_CACHE_SHIFT is not set # CONFIG_ARM_ERRATA_430973 is not set # CONFIG_ARM_ERRATA_458693 is not set # CONFIG_ARM_ERRATA_460075 is not set @@ -377,6 +376,7 @@ CONFIG_HZ=100 # CONFIG_THUMB2_KERNEL is not set CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_FLATMEM_HAS_HOLES is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set CONFIG_HIGHMEM=y @@ -392,14 +392,10 @@ CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 -CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_UNEVICTABLE_LRU=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ALIGNMENT_TRAP=y -# CONFIG_UACCESS_WITH_MEMCPY is not set # # Boot options @@ -455,10 +451,10 @@ CONFIG_HAVE_AOUT=y # Power management options # CONFIG_PM=y -CONFIG_PM_DEBUG=y -CONFIG_PM_VERBOSE=y -CONFIG_CAN_PM_TRACE=y -# CONFIG_PM_TRACE is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_VERBOSE is not set +# CONFIG_CAN_PM_TRACE is not set +CONFIG_PM_TRACE=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y # CONFIG_PM_TEST_SUSPEND is not set @@ -480,6 +476,7 @@ CONFIG_NET=y # # Networking options # +CONFIG_COMPAT_NET_DEV_OPS=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y @@ -493,8 +490,11 @@ CONFIG_NET_KEY=y # CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_FIB_HASH=y +# CONFIG_ASK_IP_FIB_HASH is not set +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_VERBOSE=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set @@ -518,7 +518,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_IPV6=y CONFIG_IPV6_PRIVACY=y CONFIG_IPV6_ROUTER_PREF=y -# CONFIG_IPV6_ROUTE_INFO is not set +CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=y CONFIG_INET6_ESP=y @@ -529,13 +529,14 @@ CONFIG_INET6_TUNNEL=y CONFIG_INET6_XFRM_MODE_TRANSPORT=y CONFIG_INET6_XFRM_MODE_TUNNEL=y CONFIG_INET6_XFRM_MODE_BEET=y -# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y CONFIG_IPV6_SIT=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=y CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_PIMSM_V2=y CONFIG_ANDROID_PARANOID_NETWORK=y # CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y @@ -754,7 +755,7 @@ CONFIG_BT_HIDP=y CONFIG_BT_HCIUART=y CONFIG_BT_HCIUART_H4=y # CONFIG_BT_HCIUART_BCSP is not set -# CONFIG_BT_HCIUART_LL is not set +CONFIG_BT_HCIUART_LL=y # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set # CONFIG_AF_RXRPC is not set @@ -1216,7 +1217,7 @@ CONFIG_MEDIA_SUPPORT=y # CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L2_COMMON=y -# CONFIG_VIDEO_ALLOW_V4L1 is not set +CONFIG_VIDEO_ALLOW_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y # CONFIG_DVB_CORE is not set CONFIG_VIDEO_MEDIA=y @@ -1237,6 +1238,7 @@ CONFIG_MEDIA_TUNER_XC2028=y CONFIG_MEDIA_TUNER_XC5000=y CONFIG_MEDIA_TUNER_MC44S803=y CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_V4L1=y CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set diff --git a/arch/arm/mach-msm/board-htcleo-bl-led.c b/arch/arm/mach-msm/board-htcleo-bl-led.c index 95d65721..d2ccd0ee 100644 --- a/arch/arm/mach-msm/board-htcleo-bl-led.c +++ b/arch/arm/mach-msm/board-htcleo-bl-led.c @@ -56,7 +56,7 @@ int htcleo_brightness_set_bkl(uint8_t value) int ret; uint8_t cmd[2], data[2]; - printk("microp_set_bkl(%d)\n", value); + LCMDBG("microp_set_bkl(%d)\n", value); if (value > 9) { diff --git a/arch/arm/mach-msm/board-htcleo-bl.c b/arch/arm/mach-msm/board-htcleo-bl.c index 0f3500fb..7d7525f3 100644 --- a/arch/arm/mach-msm/board-htcleo-bl.c +++ b/arch/arm/mach-msm/board-htcleo-bl.c @@ -58,7 +58,7 @@ int htcleo_brightness_set_bkl(uint8_t value) int ret; uint8_t cmd[2], data[2]; - pr_debug("microp_set_bkl(%d)\n", value); + LCMDBG("microp_set_bkl(%d)\n", value); if (value > 9) { diff --git a/arch/arm/mach-msm/board-htcleo-ls.c b/arch/arm/mach-msm/board-htcleo-ls.c index 0b9d1095..f5e176d0 100644 --- a/arch/arm/mach-msm/board-htcleo-ls.c +++ b/arch/arm/mach-msm/board-htcleo-ls.c @@ -55,7 +55,9 @@ user may be able to adjust time in future static uint16_t lsensor_adc_table[10] = { - 0x000, 0x001, 0x00F, 0x01E, 0x03C, 0x121, 0x190, 0x2BA, 0x26E, 0x3FF + + 0, 10, 30, 60, 100, 160, 250, 355, 465, 598 + }; @@ -226,7 +228,7 @@ static long lightsensor_ioctl(struct file *file, unsigned int cmd, unsigned long mutex_lock(&api_lock); - pr_debug("%s cmd %d\n", __func__, _IOC_NR(cmd)); + D("%s cmd %d\n", __func__, _IOC_NR(cmd)); if (!the_data.opened) { return -EIO; @@ -240,12 +242,12 @@ static long lightsensor_ioctl(struct file *file, unsigned int cmd, unsigned long rc = -EFAULT; break; } - pr_info("%s ls set to: %d\n", __func__, val); + D("%s ls set to: %d\n", __func__, val); rc = val ? lightsensor_enable() : lightsensor_disable(); break; case LIGHTSENSOR_IOCTL_GET_ENABLED: val = p->enabled; - pr_debug("%s enabled %d\n", __func__, val); + D("%s enabled %d\n", __func__, val); rc = put_user(val, (unsigned long __user *)arg); break; default: diff --git a/arch/arm/mach-msm/board-htcleo-microp.c b/arch/arm/mach-msm/board-htcleo-microp.c index 403fdb63..30f49678 100644 --- a/arch/arm/mach-msm/board-htcleo-microp.c +++ b/arch/arm/mach-msm/board-htcleo-microp.c @@ -373,7 +373,7 @@ EXPORT_SYMBOL(microp_gpo_disable); int __capella_cm3602_power(int on) { int rc; - printk(KERN_DEBUG "%s: Turn the capella_cm3602 power %s\n", + pr_debug("%s: Turn the capella_cm3602 power %s\n", __func__, (on) ? "on" : "off"); if (on) { rc = microp_gpo_enable(GPO_CM3602); diff --git a/arch/arm/mach-msm/board-htcleo-proximity.c b/arch/arm/mach-msm/board-htcleo-proximity.c index 0242e9ff..1bf1b56c 100644 --- a/arch/arm/mach-msm/board-htcleo-proximity.c +++ b/arch/arm/mach-msm/board-htcleo-proximity.c @@ -32,6 +32,8 @@ #define INT_PSENSOR (1<<4) #define GPO_PROXIMITY 0x3 +#define D(x...) pr_debug(x) + static int misc_opened; static void p_sensor_do_work(struct work_struct *w); @@ -50,14 +52,14 @@ static int report_psensor_data(void) { int ret, ps_data = 0; uint8_t data[3] = {0, 0, 0}; - pr_info("%s\n", __func__); + D("%s\n", __func__); ret = microp_i2c_read(MICROP_I2C_RCMD_GPIO_STATUS, data, 3); if (ret < 0) pr_err("%s: read data failed\n", __func__); else { ps_data = (data[1] & 0x1) ? 1 : 0; - pr_info("proximity %s\n", ps_data ? "FAR" : "NEAR"); + D("proximity %s\n", ps_data ? "FAR" : "NEAR"); /* 0 is close, 1 is far */ input_report_abs(the_data.input_dev, ABS_DISTANCE, ps_data); @@ -73,7 +75,7 @@ static int capella_cm3602_enable(struct capella_cm3602_data *data) { int rc; if (data->enabled) { - pr_info("%s: already enabled\n", __func__); + D("%s: already enabled\n", __func__); return 0; } @@ -95,7 +97,7 @@ static int capella_cm3602_disable(struct capella_cm3602_data *data) { int rc = -EIO; if (!data->enabled) { - pr_info("%s: already disabled\n", __func__); + D("%s: already disabled\n", __func__); return 0; } @@ -161,7 +163,7 @@ static long capella_cm3602_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int val; - pr_info("%s cmd %d\n", __func__, _IOC_NR(cmd)); + D("%s cmd %d\n", __func__, _IOC_NR(cmd)); switch (cmd) { case CAPELLA_CM3602_IOCTL_ENABLE: if (get_user(val, (unsigned long __user *)arg)) diff --git a/arch/arm/mach-msm/board-htcleo.c b/arch/arm/mach-msm/board-htcleo.c index ab494f0c..6f178d87 100644 --- a/arch/arm/mach-msm/board-htcleo.c +++ b/arch/arm/mach-msm/board-htcleo.c @@ -870,7 +870,18 @@ static void __init htcleo_init(void) perflock_init(&htcleo_perflock_data); init_dex_comm(); + +#ifdef CONFIG_SERIAL_MSM_HS + msm_device_uart_dm1.dev.platform_data = &msm_uart_dm1_pdata; + msm_device_uart_dm1.name = "msm_serial_hs_bcm"; /* for bcm */ + msm_device_uart_dm1.resource[3].end = 6; +#endif + + bt_export_bd_address(); + htcleo_audio_init(); + msm_device_i2c_init(); + /* set the gpu power rail to manual mode so clk en/dis will not * turn off gpu power, and hang it on resume */ @@ -879,20 +890,10 @@ static void __init htcleo_init(void) mdelay(100); htcleo_kgsl_power(true); -#ifdef CONFIG_MICROP_COMMON - htcleo_microp_init(); -#endif - htcleo_init_panel(); - - msm_device_i2c_init(); - platform_add_devices(devices, ARRAY_SIZE(devices)); -#ifdef CONFIG_SERIAL_MSM_HS - msm_device_uart_dm1.dev.platform_data = &msm_uart_dm1_pdata; - msm_device_uart_dm1.name = "msm_serial_hs_bcm"; /* for bcm */ - msm_device_uart_dm1.resource[3].end = 6; -#endif + htcleo_init_panel(); + i2c_register_board_info(0, base_i2c_devices, ARRAY_SIZE(base_i2c_devices)); @@ -903,8 +904,6 @@ static void __init htcleo_init(void) htcleo_init_mmc(0); platform_device_register(&htcleo_timed_gpios); - bt_export_bd_address(); - htcleo_audio_init(); #ifdef CONFIG_USB_ANDROID msm_hsusb_set_vbus_state(htcleo_get_vbus_state()); diff --git a/drivers/media/video/msm/msm_camera.c b/drivers/media/video/msm/msm_camera.c index f8178b83..dbc8d93c 100644 --- a/drivers/media/video/msm/msm_camera.c +++ b/drivers/media/video/msm/msm_camera.c @@ -1802,10 +1802,12 @@ static long msm_ioctl_common(struct msm_device *pmsm, int msm_camera_flash(struct msm_sync *sync, int level) { +#if defined(CONFIG_MACH_HTCLEO) + static int last_level = -1; +#endif int flash_level = 0; uint8_t phy_flash = 0; int ret = 0; - if (!sync->sdata->flash_cfg) { pr_err("%s: camera flash is not supported.\n", __func__); return -EINVAL; @@ -1834,6 +1836,13 @@ int msm_camera_flash(struct msm_sync *sync, int level) phy_flash = 1; break; case MSM_CAMERA_LED_OFF: +#if defined(CONFIG_MACH_HTCLEO) + //--patch for missing flash--- + if (last_level == MSM_CAMERA_LED_LOW) + sync->sdata->flash_cfg->postpone_led_mode = MSM_CAMERA_LED_HIGH; + //-------------------- +#endif + flash_level = 0; phy_flash = 1; break; @@ -1841,10 +1850,12 @@ int msm_camera_flash(struct msm_sync *sync, int level) pr_err("%s: invalid flash level %d.\n", __func__, level); return -EINVAL; } - if (phy_flash) ret = sync->sdata->flash_cfg->camera_flash(flash_level); +#if defined(CONFIG_MACH_HTCLEO) + last_level = level; +#endif return ret; } @@ -2236,6 +2247,11 @@ static void msm_vfe_sync(struct msm_vfe_resp *vdata, sync->sdata->flash_cfg->postpone_led_mode); sync->sdata->flash_cfg->camera_flash( sync->sdata->flash_cfg->postpone_led_mode); +#if defined(CONFIG_MACH_HTCLEO) + //--patch form missing flash------------- + sync->sdata->flash_cfg->postpone_led_mode=MSM_CAMERA_LED_OFF; + //---------------------------- +#endif } } }