diff -urP vd/kernel/AndroidKernel.mk vm670/kernel/AndroidKernel.mk --- vd/kernel/AndroidKernel.mk 2011-02-04 19:00:35.000000000 -0500 +++ vm670/kernel/AndroidKernel.mk 2011-04-12 06:00:34.000000000 -0400 @@ -19,8 +19,11 @@ # LGE_CHANGE [dojip.kim@lge.com] 2010-06-25, temporarily blocked for froyo # LGE_CHANGE_S [kaisr.shin@lge.com] 2010.07.14 : Merge Sprint Extension ( Copy minigzip to kernel/zlib for compile ) HOST_BIN_OUT := $(TARGET_OUT)/../../../../host/linux-x86/bin -FSUA_BIN := $(TARGET_OUT)/../../../../../device/lge/cappuccino/packages/apps/omadm/fsua -FSUA_OUT := $(TARGET_OUT)/../root + +# LGE_CHANGE_S [suhyun99.kim@lge.com] 2010-08-17, [VM670] remove omadm +#FSUA_BIN := $(TARGET_OUT)/../../../../../device/lge/cappuccino/packages/apps/omadm/fsua +#FSUA_OUT := $(TARGET_OUT)/../root +# LGE_CHANGE_E [suhyun99.kim@lge.com] 2010-08-17 # LGE_CHANGE_E [kaisr.shin@lge.com] 2010.05.12 $(KERNEL_OUT): @@ -45,14 +48,16 @@ mkdir -p $(KERNEL_MODULES_OUT) -cp -f $(KERNEL_OUT)/drivers/net/wireless/bcm4325/wireless.ko $(KERNEL_MODULES_OUT) #LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24, -# LGE_CHANGE_S [kaisr.shin@lge.com] 2010.07.14 : Merge Sprint Extension - mkdir -p $(FSUA_OUT) - mkdir -p $(FSUA_OUT)/sbin - mkdir -p $(FSUA_OUT)/res - mkdir -p $(FSUA_OUT)/res/images - cp -f $(FSUA_BIN)/hpfsfota $(FSUA_OUT)/sbin - cp -f $(FSUA_BIN)/res/images/* $(FSUA_OUT)/res/images -# LGE_CHANGE_E [kaisr.shin@lge.com] 2010.07.14 +# LGE_CHANGE_S [suhyun99.kim@lge.com] 2010-08-17, [VM670] remove omadm +## LGE_CHANGE_S [kaisr.shin@lge.com] 2010.07.14 : Merge Sprint Extension +# mkdir -p $(FSUA_OUT) +# mkdir -p $(FSUA_OUT)/sbin +# mkdir -p $(FSUA_OUT)/res +# mkdir -p $(FSUA_OUT)/res/images +# cp -f $(FSUA_BIN)/hpfsfota $(FSUA_OUT)/sbin +# cp -f $(FSUA_BIN)/res/images/* $(FSUA_OUT)/res/images +## LGE_CHANGE_E [kaisr.shin@lge.com] 2010.07.14 +# LGE_CHANGE_E [suhyun99.kim@lge.com] 2010-08-17 kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- tags diff -urP vd/kernel/arch/arm/configs/thunderc-sprint-perf_defconfig vm670/kernel/arch/arm/configs/thunderc-sprint-perf_defconfig --- vd/kernel/arch/arm/configs/thunderc-sprint-perf_defconfig 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/configs/thunderc-sprint-perf_defconfig 2011-04-12 06:00:33.000000000 -0400 @@ -556,7 +556,7 @@ CONFIG_IPV6_TUNNEL=y # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set -CONFIG_ANDROID_PARANOID_NETWORK=y +# CONFIG_ANDROID_PARANOID_NETWORK is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -1356,8 +1356,8 @@ # CONFIG_FB_MSM_MDDI_SHARP_QVGA_128x128 is not set # CONFIG_FB_MSM_EBI2_TMD_QVGA_EPSON_QCIF is not set # CONFIG_FB_MSM_MDDI_HITACHI_HVGA is not set -# CONFIG_FB_MSM_MDDI_NOVATEK_HVGA is not set -CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA=y +CONFIG_FB_MSM_MDDI_NOVATEK_HVGA=y +# CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA is not set # CONFIG_FB_MSM_PANEL_NONE is not set # CONFIG_FB_MSM_TVOUT_NTSC is not set # CONFIG_FB_MSM_TVOUT_PAL is not set diff -urP vd/kernel/arch/arm/mach-msm/include/mach/board.h vm670/kernel/arch/arm/mach-msm/include/mach/board.h --- vd/kernel/arch/arm/mach-msm/include/mach/board.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/board.h 2011-04-12 06:00:32.000000000 -0400 @@ -44,10 +44,6 @@ uint32_t csiirq; }; -/* LGE_CHANGES_S [junyeong.han@lge.com] 2009-09-07, unified code for 7x27 */ -/* Add power on/off function pointers to devide driver and - * platform data which is dependent HW - */ #if defined (CONFIG_MACH_LGE) struct msm_camera_device_platform_data { void (*camera_gpio_on) (void); @@ -63,7 +59,6 @@ struct msm_camera_io_ext ioext; }; #endif -/* LGE_CHANGES_E [junyeong.han@lge.com] 2009-09-07 */ enum msm_camera_csi_data_format { CSI_8BIT, CSI_10BIT, diff -urP vd/kernel/arch/arm/mach-msm/include/mach/board_lge.h vm670/kernel/arch/arm/mach-msm/include/mach/board_lge.h --- vd/kernel/arch/arm/mach-msm/include/mach/board_lge.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/board_lge.h 2011-04-12 06:00:32.000000000 -0400 @@ -26,10 +26,6 @@ #endif #ifdef CONFIG_ANDROID_RAM_CONSOLE -/* allocate 128K * 2 instead of ram_console's original size 128K - * this is for storing kernel panic log which is used by lk loader - * 2010-03-03, cleaneye.kim@lge.com - */ #define MSM7X27_EBI1_CS0_BASE PHYS_OFFSET #define LGE_RAM_CONSOLE_SIZE (128 * SZ_1K * 2) #endif @@ -45,8 +41,6 @@ #ifdef CONFIG_ARCH_MSM7X27 #define MSM_PMEM_MDP_SIZE 0x1B76000 -//LGE_CHANGE[byungsik.choi@lge.com]2010-07-08 chage pmem_adsp size for camera memory allocation -//#define MSM_PMEM_ADSP_SIZE 0xAE4000 #define MSM_PMEM_ADSP_SIZE 0xE4E1C0 #define MSM_PMEM_AUDIO_SIZE 0x5B000 #define MSM_FB_SIZE 0x177000 @@ -60,7 +54,6 @@ /* Using upper 1/2MB of Apps Bootloader memory*/ #define MSM_PMEM_AUDIO_START_ADDR 0x80000ul -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-02, for Sprint #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT /* TA charger */ #define LS670_TA_CHG_CURRENT 700 @@ -267,7 +260,6 @@ int initialized; }; -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, support for Sharp Panel (Novatek DDI) */ struct msm_panel_novatek_pdata { int gpio; int (*backlight_level)(int level, int max, int min); diff -urP vd/kernel/arch/arm/mach-msm/include/mach/camera.h vm670/kernel/arch/arm/mach-msm/include/mach/camera.h --- vd/kernel/arch/arm/mach-msm/include/mach/camera.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/camera.h 2011-04-12 06:00:32.000000000 -0400 @@ -340,8 +340,6 @@ void msm_camio_disable(struct platform_device *); int msm_camio_probe_on(struct platform_device *); int msm_camio_probe_off(struct platform_device *); -int msm_camio_sensor_clk_off(struct platform_device *); -int msm_camio_sensor_clk_on(struct platform_device *); int msm_camio_csi_config(struct msm_camera_csi_params *csi_params); int add_axi_qos(void); int update_axi_qos(uint32_t freq); diff -urP vd/kernel/arch/arm/mach-msm/include/mach/lg_diagcmd.h vm670/kernel/arch/arm/mach-msm/include/mach/lg_diagcmd.h --- vd/kernel/arch/arm/mach-msm/include/mach/lg_diagcmd.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/lg_diagcmd.h 2011-04-12 06:00:32.000000000 -0400 @@ -404,8 +404,6 @@ #define DIAG_MAX_F 255 -/* LGE_CHANGES_E [woonghee@lge.com] 2009-12-29, [VS740] */ - typedef enum { DIAG_SUBSYS_OEM = 0, /* Reserved for OEM use */ DIAG_SUBSYS_ZREX = 1, /* ZREX */ diff -urP vd/kernel/arch/arm/mach-msm/include/mach/lg_diag_testmode.h vm670/kernel/arch/arm/mach-msm/include/mach/lg_diag_testmode.h --- vd/kernel/arch/arm/mach-msm/include/mach/lg_diag_testmode.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/lg_diag_testmode.h 2011-04-12 06:00:32.000000000 -0400 @@ -89,14 +89,12 @@ BT_TEST_MODE_RELEASE = 5, BT_TEST_MODE_11 = 11 // 11~42 } test_mode_req_bt_type; -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-07-27, Testmode cmd 83 Bluetooth RW merge from VS660 */ typedef enum { BT_ADDR_WRITE = 0, BT_ADDR_READ } test_mode_req_bt_rw_type; #define BT_RW_CNT 20 -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-07-27, Testmode cmd 83 Bluetooth RW merge from VS660 */ typedef enum { CAM_TEST_MODE_OFF = 0, @@ -123,17 +121,13 @@ typedef enum { EXTERNAL_SOCKET_MEMORY_CHECK, EXTERNAL_FLASH_MEMORY_SIZE, - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ EXTERNAL_SOCKET_ERASE, EXTERNAL_FLASH_MEMORY_USED_SIZE = 4, - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ } test_mode_req_socket_memory; -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ typedef enum { FIRST_BOOTING_COMPLETE_CHECK, } test_mode_req_fboot; -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ typedef enum { MEMORY_TOTAL_CAPA_TEST, @@ -155,14 +149,12 @@ FACTORY_RESET_ARM9_END = 2, FACTORY_RESET_COLD_BOOT_START = 3, FACTORY_RESET_COLD_BOOT_END = 5, - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-09-03, add Factory reset flag 6 */ FACTORY_RESET_USER_START = 6, FACTORY_RESET_NA = 7, } test_mode_factory_reset_status_type; #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-28, kernel mode typedef enum { SLEEP_MODE_ON, AIR_PLAIN_MODE_ON, @@ -206,28 +198,17 @@ CAL_DATA_CHECK, } test_mode_req_cal_check_type; -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ -/* LGE_CHANGES_S, [jaffrhee@lge.com], 2010-08-03, */ -/* TEST_MODE_DB_INTEGRITY_CHECK */ typedef enum { DB_INTEGRITY_CHECK = 0, DB_CHECK_DUMP_TO_INTERNAL_MEMORY, DB_CHECK_COPY_TO_SD_CARD } test_mode_req_db_check; -/* LGE_CHANGES_E, [jaffrhee@lge.com], 2010-08-03, */ -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ typedef union { test_mode_req_version_type version; test_mode_req_bt_type bt; - /* LGE_CHANGE [sm.shim@lge.com] 2010-07-27, - * Testmode cmd 83 Bluetooth RW merge from VS660 - */ byte bt_rw[BT_RW_CNT]; test_mode_req_socket_memory esm; // external socket memory - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, - * merge First Boot Complete Test from VS660 - */ test_mode_req_fboot fboot; test_mode_req_memory_capa_type mem_capa; word key_data; @@ -246,7 +227,6 @@ test_mode_req_pid_type pid; // pid Write/Read test_mode_req_sw_version_type sw_version; test_mode_req_cal_check_type cal_check; - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ test_mode_req_db_check db_check; #if 0 test_mode_req_lcd_type lcd; @@ -347,14 +327,8 @@ test_mode_req_volume_level_type volume_level; char key_pressed_buf[MAX_KEY_BUFF_SIZE]; char memory_check; - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-31, SD card total size bug fix */ unsigned int socket_memory_size; - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-31, SD card free size bug fix */ unsigned int socket_memory_usedsize; - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, - * merge First Boot Complete Test from VS660 - */ int boot_complete; test_mode_req_cam_type camera; unsigned int mem_capa; @@ -362,14 +336,10 @@ test_mode_req_pid_type pid; test_mode_req_sw_version_type sw_version; test_mode_req_cal_check_type cal_check; - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ test_mode_req_db_check db_check; #ifndef SKW_TEST test_mode_req_factory_reset_mode_type factory_reset; #endif - /* LGE_CHANGE [sm.shim@lge.com] 2010-07-27, - * Testmode cmd 83 Bluetooth RW merge from VS660 - */ byte read_bd_addr[BT_RW_CNT]; #if 0 test_mode_req_lcd_type lcd; @@ -465,7 +435,6 @@ TEST_MODE_SPEAKER_PHONE_TEST, // Speaker Phone test TEST_MODE_VIRTUAL_SIM_TEST = 44, - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, fix typo */ TEST_MODE_PHOTO_SENSOR_TEST, TEST_MODE_VCO_SELF_TUNNING_TEST, @@ -479,9 +448,6 @@ TEST_MODE_MOBILE_SYSTEM_CHANGE_TEST, TEST_MODE_STANDALONE_GPS_TEST, TEST_MODE_PRELOAD_INTEGRITY_TEST, - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, - * merge First Boot Complete Test from VS660 - */ TEST_MODE_FIRST_BOOT_COMPLETE_TEST = 58, TEST_MODE_PID_TEST = 70, // pid R/W @@ -496,21 +462,11 @@ TEST_MODE_SIM_ID_TEST = 79, TEST_MODE_CAL_CHECK = 82, - /* LGE_CHANGE [sm.shim@lge.com] 2010-07-27, - * Testmode cmd 83 Bluetooth RW merge from VS660 - */ TEST_MODE_BLUETOOTH_TEST_RW = 83, TEST_MODE_SKIP_WELCOM_TEST = 87, - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ - /* LGE_CHANGE_S, [dongp.kim@lge.com], 2010-07-15, < MAC Read/Write > */ TEST_MODE_MAC_READ_WRITE = 88, - /* LGE_CHANGE_E, [dongp.kim@lge.com], 2010-07-15, < MAC Read/Write > */ - //[START]LGE_DB_CHECK: jaffrhee@lge.com 2010-08-02 TEST_MODE_DB_INTEGRITY_CHECK = 91, - //[END]LGE_DB_CHECK: jaffrhee@lge.com 2010-08-02 - // - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ MAX_TEST_MODE_SUBCMD = 0xFFFF //TEST_MODE_CURRENT, //TEST_MODE_BREW_FILES, @@ -530,9 +486,6 @@ byte which_procesor; // to choose which processor will do act. } testmode_user_table_entry_type; -/* LGE_CHANGES_S, [dongp.kim@lge.com], 2010-01-10, - * - */ typedef struct { uint16 countresult; uint16 wlan_status; @@ -554,9 +507,6 @@ unsigned long rxbadplcp_new; } wlan_status; -/* LGE_CHANGES_E, [dongp.kim@lge.com], 2010-01-10, - * - */ typedef struct DIAG_TEST_MODE_KEY_F_rsp_tag { diagpkt_header_type xx_header; @@ -565,4 +515,4 @@ char key_pressed_buf[MAX_KEY_BUFF_SIZE]; } PACKED DIAG_TEST_MODE_KEY_F_rsp_type; -#endif /* LG_DIAG_TESTMODE_H */ +#endif /* LG_DIAG_TESTMODE_H */ \ No newline at end of file diff -urP vd/kernel/arch/arm/mach-msm/include/mach/lg_fw_diag_mtc.h vm670/kernel/arch/arm/mach-msm/include/mach/lg_fw_diag_mtc.h --- vd/kernel/arch/arm/mach-msm/include/mach/lg_fw_diag_mtc.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/lg_fw_diag_mtc.h 2011-04-12 06:00:32.000000000 -0400 @@ -218,8 +218,6 @@ unsigned short bmp_height; mtc_bits_pixel_type bits_pixel; mtc_mask_type mask; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, dynamic alloc */ - //unsigned char bmp_data[MTC_SCRN_BUF_SIZE_MAX]; unsigned char bmp_data[0]; } PACKED mtc_capture_rsp_type; diff -urP vd/kernel/arch/arm/mach-msm/include/mach/memory.h vm670/kernel/arch/arm/mach-msm/include/mach/memory.h --- vd/kernel/arch/arm/mach-msm/include/mach/memory.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/memory.h 2011-04-12 06:00:32.000000000 -0400 @@ -40,7 +40,6 @@ #include -/* LGE_CHANGES_S [junyeong.han@lge.com] 2010-01-04, add new machine type condition */ #if defined(CONFIG_MACH_LGE) #define arch_barrier_extra() do \ { \ @@ -52,7 +51,6 @@ write_to_strongly_ordered_memory(); \ } while (0) #endif -/* LGE_CHANGES_E [junyeong.han@lge.com] 2010-01-04 */ #endif #ifdef CONFIG_CACHE_L2X0 diff -urP vd/kernel/arch/arm/mach-msm/include/mach/msm_battery_thunderc.h vm670/kernel/arch/arm/mach-msm/include/mach/msm_battery_thunderc.h --- vd/kernel/arch/arm/mach-msm/include/mach/msm_battery_thunderc.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/msm_battery_thunderc.h 2011-04-12 06:00:32.000000000 -0400 @@ -36,14 +36,10 @@ u32 valid_batt_id; u32 batt_therm; u32 batt_temp; - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670] - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) u32 chg_current; u32 batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ }; struct pseudo_batt_info_type { @@ -60,23 +56,14 @@ POWER_SUPPLY_PROP_BATTERY_ID_CHECK = POWER_SUPPLY_PROP_SERIAL_NUMBER + 1, POWER_SUPPLY_PROP_BATTERY_TEMP_ADC, POWER_SUPPLY_PROP_PSEUDO_BATT, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, - * add charging timer from VS740 - */ POWER_SUPPLY_PROP_CHARGING_TIMER, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ POWER_SUPPLY_PROP_BLOCK_CHARGING, - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) POWER_SUPPLY_PROP_BATTERY_THRM_STATE, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) POWER_SUPPLY_PROP_THERM_NO_STOP_CHARGING, #endif #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ }; #endif diff -urP vd/kernel/arch/arm/mach-msm/include/mach/msm_iomap-7xxx.h vm670/kernel/arch/arm/mach-msm/include/mach/msm_iomap-7xxx.h --- vd/kernel/arch/arm/mach-msm/include/mach/msm_iomap-7xxx.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/msm_iomap-7xxx.h 2011-04-12 06:00:32.000000000 -0400 @@ -36,8 +36,6 @@ */ #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_VIC_BASE IOMEM(0xF8000000) #else /* origin */ #define MSM_VIC_BASE IOMEM(0xE0000000) @@ -46,8 +44,6 @@ #define MSM_VIC_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_CSR_BASE IOMEM(0xF8001000) #else /* origin */ #define MSM_CSR_BASE IOMEM(0xE0001000) @@ -60,8 +56,6 @@ #define MSM_TMR_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_DMOV_BASE IOMEM(0xF8002000) #else /* origin */ #define MSM_DMOV_BASE IOMEM(0xE0002000) @@ -70,8 +64,6 @@ #define MSM_DMOV_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_GPIO1_BASE IOMEM(0xF8003000) #else /* origin */ #define MSM_GPIO1_BASE IOMEM(0xE0003000) @@ -80,8 +72,6 @@ #define MSM_GPIO1_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_GPIO2_BASE IOMEM(0xF8004000) #else /* origin */ #define MSM_GPIO2_BASE IOMEM(0xE0004000) @@ -90,8 +80,6 @@ #define MSM_GPIO2_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_CLK_CTL_BASE IOMEM(0xF8005000) #else /* origin */ #define MSM_CLK_CTL_BASE IOMEM(0xE0005000) @@ -100,8 +88,6 @@ #define MSM_CLK_CTL_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_L2CC_BASE IOMEM(0xF8006000) #else /* origin */ #define MSM_L2CC_BASE IOMEM(0xE0006000) @@ -110,8 +96,6 @@ #define MSM_L2CC_SIZE SZ_4K #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_SHARED_RAM_BASE IOMEM(0xF8100000) #else /* origin */ #define MSM_SHARED_RAM_BASE IOMEM(0xE0100000) @@ -129,8 +113,6 @@ #ifdef CONFIG_MSM_DEBUG_UART #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_DEBUG_UART_BASE 0xF9000000 #else #define MSM_DEBUG_UART_BASE 0xE1000000 @@ -146,8 +128,6 @@ #endif #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_MDC_BASE IOMEM(0xF8200000) #else /* origin */ #define MSM_MDC_BASE IOMEM(0xE0200000) @@ -156,8 +136,6 @@ #define MSM_MDC_SIZE SZ_1M #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_AD5_BASE IOMEM(0xF8300000) #else /* origin */ #define MSM_AD5_BASE IOMEM(0xE0300000) @@ -168,8 +146,6 @@ #if defined(CONFIG_MACH_LGE) /* vibrator for MN Register */ #if !defined(CONFIG_VMSPLIT_2G) && defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define MSM_WEB_BASE IOMEM(0xF900C000) #else /* origin */ #define MSM_WEB_BASE IOMEM(0xE100C000) diff -urP vd/kernel/arch/arm/mach-msm/include/mach/msm_rpcrouter.h vm670/kernel/arch/arm/mach-msm/include/mach/msm_rpcrouter.h --- vd/kernel/arch/arm/mach-msm/include/mach/msm_rpcrouter.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/msm_rpcrouter.h 2011-04-12 06:00:32.000000000 -0400 @@ -48,15 +48,13 @@ uint32_t vers; }; -/* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ -/* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_MACH_LGE typedef uint8_t AT_STR_t; -#define ABSOLUTE_STRING_LENGTH 500 //40 [seypark@lge.com] +#define ABSOLUTE_STRING_LENGTH 500 //40 #define MAX_STRING_RET (ABSOLUTE_STRING_LENGTH/sizeof(AT_STR_t)) typedef uint8_t AT_SEND_BUFFER_t; -#define MAX_SEND_LOOP_NUM 8 // 4 => 8 kageki@lge.com +#define MAX_SEND_LOOP_NUM 8 // 4 #define ABSOLUTE_SEND_SIZE 256 #define MAX_SEND_SIZE_BUFFER (ABSOLUTE_SEND_SIZE/sizeof(AT_SEND_BUFFER_t)) #define LIMIT_MAX_SEND_SIZE_BUFFER (MAX_SEND_SIZE_BUFFER*MAX_SEND_LOOP_NUM) @@ -68,7 +66,6 @@ AT_STR_t ret_string[MAX_STRING_RET]; }; #endif -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ #define RPC_DATA_IN 0 /* @@ -113,14 +110,11 @@ #define RPC_ACCEPTSTAT_SYSTEM_ERR 5 #define RPC_ACCEPTSTAT_PROG_LOCKED 6 -/* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ -/* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_MACH_LGE #define RPC_RETURN_RESULT_ERROR 7 #define RPC_RETURN_RESULT_OK 8 #define RPC_RETURN_RESULT_MIDDLE_OK 9 #endif /*LG_FW_ATS_ETA_MTC*/ -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ /* @@ -131,8 +125,6 @@ */ } rpc_accepted_reply_hdr; -/* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ -/* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_MACH_LGE typedef struct { @@ -161,7 +153,6 @@ } rpc_accepted_AT_reply_hdr; #endif -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ struct rpc_reply_hdr { @@ -176,8 +167,6 @@ } data; }; -/* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ -/* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_MACH_LGE struct rpc_reply_AT_hdr { @@ -189,7 +178,6 @@ }; #endif -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ struct rpc_board_dev { uint32_t prog; @@ -295,12 +283,9 @@ struct rpc_request_hdr *req, struct msm_rpc_xdr *xdr); - /* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ - /* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_MACH_LGE struct retvaluestruct retvalue; #endif -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ }; diff -urP vd/kernel/arch/arm/mach-msm/include/mach/oem_rapi_client.h vm670/kernel/arch/arm/mach-msm/include/mach/oem_rapi_client.h --- vd/kernel/arch/arm/mach-msm/include/mach/oem_rapi_client.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/oem_rapi_client.h 2011-04-12 06:00:32.000000000 -0400 @@ -45,7 +45,6 @@ */ #if defined (CONFIG_LGE_SUPPORT_RAPI) - /* LGE_CHANGES_S [khlee@lge.com] 2009-12-04, [VS740] use OEMRAPI */ LG_FW_RAPI_START = 100, LG_FW_RAPI_CLIENT_EVENT_GET_LINE_TYPE = LG_FW_RAPI_START, LG_FW_TESTMODE_EVENT_FROM_ARM11 = LG_FW_RAPI_START + 1, @@ -53,30 +52,16 @@ LG_FW_A2M_PSEUDO_BATT_INFO_SET = LG_FW_RAPI_START + 3, LG_FW_MEID_GET = LG_FW_RAPI_START + 4, LG_FW_SET_OPERATION_MODE = LG_FW_RAPI_START + 5, - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-05-18, [VS740], - * LG_FW_CHARGING_TIMER - */ LG_FW_SET_CHARGING_TIMER = LG_FW_RAPI_START + 6, LG_FW_GET_CHARGING_TIMER = LG_FW_RAPI_START + 7, - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-29, [LS670] PCB Version */ LG_FW_GET_PCB_VERSION = LG_FW_RAPI_START + 8, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-29, [LS670] LG_FW_RTN_RESET */ LG_FW_RAPI_CLIENT_EVENT_SET_RTN_RESET= LG_FW_RAPI_START + 9, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09, [LS670] - * no stop charging even if hot or cold battery - */ LG_FW_RAPI_CLIENT_EVENT_SET_THM_NO_STOP_CHARGING = LG_FW_RAPI_START + 10, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-9 */ LG_FW_A2M_BLOCK_CHARGING_SET = LG_FW_RAPI_START + 11, - /* LGE_CHANGE [james.jang@lge.com] 2010-08-25 */ LG_FW_CIQ_EXCEPTION_ERROR_TEST = LG_FW_RAPI_START + 12, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-01 */ LG_FW_SET_CHARGING_STAT_REALTIME_UPDATE = LG_FW_RAPI_START + 13, LG_FW_GET_CHARGING_STAT_REALTIME_UPDATE = LG_FW_RAPI_START + 14, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-12, prl version */ LG_FW_GET_PRL_VERSION = LG_FW_RAPI_START + 15, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-28, ftm boot */ LG_FW_SET_FTM_BOOT = LG_FW_RAPI_START + 16, LG_FW_GET_FTM_BOOT = LG_FW_RAPI_START + 17, #endif diff -urP vd/kernel/arch/arm/mach-msm/include/mach/rpc_hsusb.h vm670/kernel/arch/arm/mach-msm/include/mach/rpc_hsusb.h --- vd/kernel/arch/arm/mach-msm/include/mach/rpc_hsusb.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/rpc_hsusb.h 2011-04-12 06:00:32.000000000 -0400 @@ -62,12 +62,7 @@ int msm_fsusb_set_remote_wakeup(void); void msm_fsusb_rpc_deinit(void); #if defined(CONFIG_MACH_MSM7X27_ALOHAV) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * ADD THUNDER feature TO USE VS740 BATT DRIVER - * 2010-05-13, taehung.kim@lge.com - */ -/* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ int msm_hsusb_get_charger_type(void); #endif diff -urP vd/kernel/arch/arm/mach-msm/include/mach/vmalloc.h vm670/kernel/arch/arm/mach-msm/include/mach/vmalloc.h --- vd/kernel/arch/arm/mach-msm/include/mach/vmalloc.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/include/mach/vmalloc.h 2011-04-12 06:00:32.000000000 -0400 @@ -21,8 +21,6 @@ #define VMALLOC_END (PAGE_OFFSET + 0x60000000) #else #if defined (CONFIG_LGE_4G_DDR) -/* 2010-06-29 [junyeong.han@lge.com] Support 512MB SDRAM */ -/* To support 512MB SDRAM in VMSPLIT_3G */ #define VMALLOC_END (PAGE_OFFSET + 0x38000000) #else /* origin */ #define VMALLOC_END (PAGE_OFFSET + 0x20000000) diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-bt.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-bt.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-bt.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-bt.c 2011-04-12 06:00:32.000000000 -0400 @@ -118,9 +118,6 @@ }, }; -/* LGE_CHANGE [dojip.kim@lge.com] 2010-06-09, [LS670] - * FIXME: temporarily call the power off for the current consumption - */ static void __init bt_power_init(void) { int pin, rc; diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc.c 2011-04-12 06:00:32.000000000 -0400 @@ -136,18 +136,39 @@ { .product_id = 0x6003, - .functions = 0x0F /* 001111 Modem,diag,NMEA,Mass*/ + .functions = 0x0F /* 001111 Modem,diag,NMEA,Mass */ }, { + .product_id = 0x6004, + .functions = 0x1E /* 011110 diag,NMEA,Mass,ADB */ + }, + + { + .product_id = 0x6005, + .functions = 0x19 /* 011001 Modem,Mass,ADB */ + }, + + { + .product_id = 0x6006, + .functions = 0x09 /* 001001 Modem,ADB */ + }, + + { .product_id = 0x618E, .functions = 0x1F /* 011111 Modem,diag,NMEA,Mass,ADB */ }, + { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-16, LS670 UMS PID: 0x61CC - .product_id = 0x61CC, + .product_id = 0x61CE, .functions = 0x08 /* 001000 Mass */ }, + + { + .product_id = 0x61A6, + .functions = 0x18 /* 011000 Mass,ADB */ + + }, }; #endif @@ -157,9 +178,6 @@ .phy_info = (USB_PHY_INTEGRATED | USB_PHY_MODEL_65NM), .vendor_id = 0x1004, .product_name = "LG Android USB Device", - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-22, change the serial_number - * for LS670 - */ #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT .serial_number = "LGANDROIDLS670", #else @@ -194,7 +212,6 @@ }, }; -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-28 static struct platform_device testmode_device = { .name = "testmode", .id = -1, @@ -210,7 +227,6 @@ &msm_device_adspdec, &lg_fw_diagcmd_device, &lg_diag_cmd_device, - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-28 &testmode_device, }; @@ -231,11 +247,6 @@ void msm_serial_debug_init(unsigned int base, int irq, struct device *clk_device, int signal_irq); -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-22, merged from thunderg -/* decrease FB pmem size because thunderg uses hvga - * qualcomm's original value depends on wvga resolution - * 2010-04-18, cleaneye.kim@lge.com - */ unsigned pmem_fb_size = 0x96000; unsigned pmem_adsp_size = 0xAE4000; @@ -314,7 +325,6 @@ #endif } -/* LGE_CHANGE [dojip.kim@lge.com] 2010-06-02 [LS670] */ #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT MACHINE_START(MSM7X27_THUNDERC, "THUNDER Sprint board (LGE LS670)") #else diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-camera.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-camera.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-camera.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-camera.c 2011-04-12 06:00:32.000000000 -0400 @@ -23,7 +23,6 @@ #include #include "board-thunderc.h" -//LGE_CHANGE[byungsik.choi@lge.com]2010-08-14 to set up avdd voltage to 2.9V at Rev. 1.2 #include int mclk_rate = 24000000; @@ -48,11 +47,9 @@ GPIO_CFG(9, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */ GPIO_CFG(10, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */ GPIO_CFG(11, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */ - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-16 change pclk current GPIO_CFG(12, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* PCLK */ GPIO_CFG(13, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */ GPIO_CFG(14, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */ - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-16 change mclk current GPIO_CFG(GPIO_CAM_MCLK, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* MCLK */ }; @@ -66,11 +63,9 @@ GPIO_CFG(9, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */ GPIO_CFG(10, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */ GPIO_CFG(11, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */ - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-16 change pclk current GPIO_CFG(12, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* PCLK */ GPIO_CFG(13, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */ GPIO_CFG(14, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */ - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-16 change mclk current GPIO_CFG(GPIO_CAM_MCLK, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* MCLK */ }; @@ -134,7 +129,6 @@ printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO); return rc; } - //LGE_CHANGE[byungsik.choi@lge.com]2010-08-14 to set up avdd voltage to 2.9V at Rev. 1.2 if(lge_bd_rev >= 10){ /* >= Rev 1.2 */ rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 2900); } @@ -278,7 +272,6 @@ void __init lge_add_camera_devices(void) { camera_power_status = CAMERA_POWER_ON; - //LGE_CHANGE[byungsik.choi@lge.com]2010-08-19 Add camera off mode to reduce power consumption config_camera_off_gpios(); platform_add_devices(thunderc_camera_devices, ARRAY_SIZE(thunderc_camera_devices)); diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc.h vm670/kernel/arch/arm/mach-msm/lge/board-thunderc.h --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc.h 2011-04-12 06:00:32.000000000 -0400 @@ -1,6 +1,6 @@ /* arch/arm/mach-msm/include/mach/board_thunderc.h * Copyright (C) 2009 LGE, Inc. - * Author: SungEun Kim + * Author: SungEun Kim * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-input.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-input.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-input.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-input.c 2011-04-12 06:00:32.000000000 -0400 @@ -23,7 +23,6 @@ #include #include #include -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-18, check the pcb revision #include #include "board-thunderc.h" @@ -44,12 +43,6 @@ }, }; -/* None qwerty keypad device - * For Thunder CDMA Keypad [ youngchul.park@lge.com ] - * gpio key pad device - from keypad-surf-ffa */ -/* LGE_CHANGE [LS670:FW:james.jang@lge.com] 2010-05-05, add keys. - * CAM_SHOT, CAM_AF, VOICE - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) static unsigned int keypad_row_gpios[] = { 32, 33, 34 @@ -64,16 +57,10 @@ #define KEYMAP_INDEX(row, col) ((row)*ARRAY_SIZE(keypad_col_gpios) + (col)) -/* LGE_CHANGE [LS670:FW:james.jang@lge.com] 2010-05-05, add keys. - * CAM_SHOT, CAM_AF, VOICE - */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010--05-15, modified the keymap - * BACK <-> HOME - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) static const unsigned short keypad_keymap_thunder[9] = { - [KEYMAP_INDEX(0, 0)] = KEY_HOME, - [KEYMAP_INDEX(0, 1)] = KEY_MENU, + [KEYMAP_INDEX(0, 0)] = KEY_MENU, + [KEYMAP_INDEX(0, 1)] = KEY_HOME, [KEYMAP_INDEX(0, 2)] = KEY_VOLUMEUP, [KEYMAP_INDEX(1, 0)] = KEY_SEARCH, [KEYMAP_INDEX(1, 1)] = KEY_BACK, @@ -182,7 +169,6 @@ .dev.platform_data = &ts_i2c_pdata, }; -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: early wakeup for performance #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT int ts_set_vreg(unsigned char onoff) #else @@ -191,12 +177,10 @@ { struct vreg *vreg_touch; int rc; - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, onoff stat static int old_onoff = 0; printk("[Touch] %s() onoff:%d\n",__FUNCTION__, onoff); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, onoff stat if (old_onoff == onoff) return 0; @@ -214,17 +198,14 @@ return -1; } vreg_enable(vreg_touch); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, onoff stat old_onoff = onoff; } else { vreg_disable(vreg_touch); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, onoff stat old_onoff = onoff; } return 0; } -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: early wakeup for performance #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT EXPORT_SYMBOL(ts_set_vreg); #endif @@ -346,8 +327,6 @@ init_gpio_i2c_pin(&accel_i2c_pdata, accel_i2c_pin[0], &accel_i2c_bdinfo[0]); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-18, check the pcb revision - //i2c_register_board_info(bus_num, &accel_i2c_bdinfo[0], 2); if (lge_bd_rev >= 9) /* KR_3DH >= Rev. 1.1 */ i2c_register_board_info(bus_num, &accel_i2c_bdinfo[0], 1); else @@ -357,9 +336,6 @@ /* proximity & ecompass */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-07-21, ecom power control - * also should be do prox power control - */ #define ECOM_POWER_OFF 0 #define ECOM_POWER_ON 1 @@ -381,9 +357,6 @@ /* proximity power on , * when we turn off I2C line be set to low caues sensor H/W characteristic */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, [LS670] - * change the voltage: 3.0V -> 2.9V - */ #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT vreg_set_level(gp6_vreg, 2900); #else @@ -415,7 +388,6 @@ .power = ecom_power_set, }; -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-21, proxi power control (from MS690) #define PROX_POWER_OFF 0 #define PROX_POWER_ON 1 @@ -430,12 +402,6 @@ onoff, prox_is_power_on); if (onoff) { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-24, [LS670] - * change the voltage: 2.8V -> 3.0V - */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, [LS670] - * change the voltage: 3.0V -> 2.9V - */ if (prox_is_power_on == PROX_POWER_OFF) { #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT vreg_set_level(gp6_vreg, 2900); diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-misc.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-misc.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-misc.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-misc.c 2011-04-12 06:00:32.000000000 -0400 @@ -32,15 +32,9 @@ #include "board-thunderc.h" #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-11, button leds */ static void button_backlight_set(struct led_classdev *led_cdev, enum led_brightness value) { -// LGE_CHANGE [james.jang@lge.com] 2010-08-07, again reduce the current -/* from 0 to 150 mA in 10 mA increments */ -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-14, reduce the current -//#define MAX_KEYPAD_BL_LEVEL 16 /* 15: 150 mA */ -//#define MAX_KEYPAD_BL_LEVEL 127 /* 2: 20 mA */ #define MAX_KEYPAD_BL_LEVEL 255 /* 1: 10 mA */ pmic_set_led_intensity(LED_KEYPAD, value / MAX_KEYPAD_BL_LEVEL); } @@ -95,11 +89,7 @@ int keypad_led_set(unsigned char value) { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-10-18, conflict with button_led. */ return 0; - /* - return pmic_set_led_intensity(LED_KEYPAD, value); - */ } static struct msm_pmic_leds_pdata leds_pdata = { @@ -116,7 +106,6 @@ .id = -1, .dev.platform_data = &leds_pdata, }; -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-11 */ #else /* THUNDER_VZW */ /* add led device for VS660 Rev.D by younchan.kim 2010-05-27 */ @@ -252,7 +241,6 @@ static struct msm_psy_batt_pdata msm_psy_batt_data = { .voltage_min_design = 3200, - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-07, [SPRINT] 4200 -> 4250 #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) .voltage_max_design = 4250, #else @@ -292,8 +280,6 @@ extern int aat2870bl_ldo_set_level(struct device * dev, unsigned num, unsigned vol); extern int aat2870bl_ldo_enable(struct device * dev, unsigned num, unsigned enable); -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-02, -// retry to set the power because sometimes that failed int thunderc_vibrator_power_set(int enable) { static int is_enabled = 0; @@ -335,23 +321,19 @@ int gain = ((PWM_MAX_HALF_DUTY*amp) >> 7)+ GPMN_D_DEFAULT; if (enable) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-21, pwm sleep (from MS690) REG_WRITEL((GPMN_M_DEFAULT & GPMN_M_MASK), GP_MN_CLK_MDIV_REG); REG_WRITEL((~( GPMN_N_DEFAULT - GPMN_M_DEFAULT )&GPMN_N_MASK), GP_MN_CLK_NDIV_REG); REG_WRITEL((gain & GPMN_D_MASK), GP_MN_CLK_DUTY_REG); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-12, GP_MN */ gpio_tlmm_config(GPIO_CFG(GPIO_LIN_MOTOR_PWM,1,GPIO_OUTPUT, GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); REG_WRITEL((gain & GPMN_D_MASK), GP_MN_CLK_DUTY_REG); } else { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-21, pwm sleep (from MS690) REG_WRITEL(0x00, GP_MN_CLK_MDIV_REG); REG_WRITEL(0x1000, GP_MN_CLK_NDIV_REG); REG_WRITEL(0x1FFF, GP_MN_CLK_DUTY_REG); REG_WRITEL(GPMN_D_DEFAULT, GP_MN_CLK_DUTY_REG); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-12, GPIO */ gpio_tlmm_config(GPIO_CFG(GPIO_LIN_MOTOR_PWM,0,GPIO_OUTPUT, GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); gpio_direction_output(GPIO_LIN_MOTOR_PWM, 0); @@ -371,8 +353,6 @@ .power_set = thunderc_vibrator_power_set, .pwm_set = thunderc_vibrator_pwm_set, .ic_enable_set = thunderc_vibrator_ic_enable_set, - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-30, 100->115 (by HW request) - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-03, 110 .amp_value = 110, }; @@ -460,14 +440,8 @@ gpio_value?"injected":"ejected"); if (gpio_value == EAR_EJECT) { state = EAR_STATE_EJECT; - /* LGE_CHANGE_S, [junyoub.an] , 2010-05-28, comment out to control at ARM9 part*/ - //thunderc_hs_mic_bias_power(0); - /* LGE_CHANGE_E, [junyoub.an] , 2010-05-28, comment out to control at ARM9 part*/ } else { state = EAR_STATE_INJECT; - /* LGE_CHANGE_S, [junyoub.an] , 2010-05-28, comment out to control at ARM9 part*/ - //thunderc_hs_mic_bias_power(1); - /* LGE_CHANGE_E, [junyoub.an] , 2010-05-28, comment out to control at ARM9 part*/ } return state; @@ -516,10 +490,6 @@ }; static struct platform_device *thunderc_misc_devices[] __initdata = { - /* LGE_CHANGE - * ADD VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ &msm_batt_device, &msm_device_pmic_leds, &android_vibrator_device, diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-mmc.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-mmc.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-mmc.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-mmc.c 2011-04-12 06:00:32.000000000 -0400 @@ -1,6 +1,6 @@ /* arch/arm/mach-msm/lge/board-thunderc-mmc.c * Copyright (C) 2010 LGE Corporation. - * Author: SungEun Kim + * Author: SungEun Kim * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -245,9 +245,6 @@ } set_bit(pdev->id, &vreg_sts); - /* if first called related to sdcc1, irq should be registered as wakeup source - * * cleaneye.kim@lge.com, 2010-02-19 - * */ if (first_setup == 1) { struct mmc_platform_data *pdata = pdev->dev.platform_data; if (pdev->id == 1) { @@ -322,7 +319,6 @@ #endif #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, BCM4325 control */ #if defined(CONFIG_LGE_BCM432X_PATCH) /* GPIO config */ @@ -346,7 +342,6 @@ #else /* qualcomm or google */ msm_add_sdcc(2, &msm7x2x_sdcc_data); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, BCM4325 control */ #endif #ifdef CONFIG_MMC_MSM_SDC3_SUPPORT diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-panel.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-panel.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-panel.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-panel.c 2011-04-12 06:00:32.000000000 -0400 @@ -22,7 +22,6 @@ #include "devices.h" #include "board-thunderc.h" -/* LGE_CHANGE [james.jang@lge.com] 2010-07-06, to use lge_bd_rev */ #include #define MSM_FB_LCDC_VREG_OP(name, op, level) \ @@ -73,26 +72,14 @@ static void __init msm_fb_add_devices(void) { - /* LGE_CHANGE_S [james.jang@lge.com] 2010-07-06 */ - /* - ------------------------------------ - | Rev C | Rev 1.0 - ------------------------------------ - VREG_GP1 | always off | +2.8V_LCD - ------------------------------------ - VREG_GP2 | +2.8V_LCD | +1.8V_HPVDD - ------------------------------------ - */ if(lge_bd_rev >= 8) /* >= Rev 1.0 */ strcpy(msm_fb_vreg[1], "gp1"); - /* LGE_CHANGE_E [james.jang@lge.com] 2010-07-06 */ msm_fb_register_device("mdp", &mdp_pdata); msm_fb_register_device("pmdh", &mddi_pdata); msm_fb_register_device("lcdc", 0); } -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, support the Sharp Panel (Novatek DDI) */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HVGA) || \ defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) static int mddi_novatek_pmic_backlight(int level) @@ -101,11 +88,6 @@ return 0; } -/* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' - * to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ static struct msm_panel_novatek_pdata mddi_novatek_panel_data = { .gpio = 102, /* lcd reset_n */ .pmic_backlight = mddi_novatek_pmic_backlight, @@ -130,10 +112,6 @@ } #if 1 - /* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ static struct msm_panel_hitachi_pdata mddi_hitachi_panel_data = { .gpio = 102, /* lcd reset_n */ .pmic_backlight = mddi_hitachi_pmic_backlight, @@ -205,12 +183,10 @@ /* common functions */ void __init lge_add_lcd_devices(void) { -/* LGE_CHANGE [james.jang@lge.com] 2010-08-28, probe LCD */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) platform_device_register(&mddi_novatek_panel_device); platform_device_register(&mddi_hitachi_panel_device); #else -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, support the Sharp Panel (Novatek DDI) */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HVGA) platform_device_register(&mddi_novatek_panel_device); #else diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderc-snd.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-snd.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderc-snd.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderc-snd.c 2011-04-12 06:00:32.000000000 -0400 @@ -36,8 +36,6 @@ SND(SPEAKER_IN_CALL,28), SND(CURRENT,30) #else -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-12, Define sound device*/ -/* LGE_CHANGE_S [soocheol.heo@lge.com] 2010-08-22 for voice recognition*/ SND(HANDSET, 5), SND(HEADSET_LOOPBACK, 1), SND(HEADSET, 2), @@ -58,8 +56,6 @@ SND(HEADSET_VR, 20), SND(BT_VR, 22), SND(CURRENT, 29), -/* LGE_CHANGE_E [soocheol.heo@lge.com] 2010-08-22*/ -/* LGE_CHANGE_E, [junyoub.an] , 2010-02-12, Define sound device*/ #endif }; @@ -77,7 +73,6 @@ .platform_data = &msm_device_snd_endpoints }, }; -/* LGE_CHANGE: [sungyoung.lee@lge.com] 2010-02-25, request by QCT */ /* It is related that CASE 284824 which vdec_open failed */ #if 1 #define DEC0_FORMAT ((1< + * Author: SungEun Kim * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -21,7 +21,6 @@ #include #include "pm.h" -/* LGE_S [ynj.kim@lge.com] 2010-05-21 : atcmd - virtual device */ #define KEY_SPEAKERMODE 241 // KEY_VIDEO_NEXT is not used in GED #define KEY_CAMERAFOCUS 242 // KEY_VIDEO_PREV is not used in GED #define KEY_FOLDER_HOME 243 @@ -29,7 +28,6 @@ #define ATCMD_VIRTUAL_KEYPAD_ROW 8 #define ATCMD_VIRTUAL_KEYPAD_COL 8 -/* LGE_E [ynj.kim@lge.com] 2010-05-21 : atcmd - virtual device */ /* sdcard related macros */ #ifdef CONFIG_MMC_MSM_CARD_HW_DETECTION diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderg-input.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-input.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderg-input.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-input.c 2011-04-12 06:00:32.000000000 -0400 @@ -27,7 +27,6 @@ #include "board-thunderg.h" static int prox_power_set(unsigned char onoff); -/* LGE_S [ynj.kim@lge.com] 2010-05-15 : atcmd virtual device */ static unsigned short atcmd_virtual_keycode[ATCMD_VIRTUAL_KEYPAD_ROW][ATCMD_VIRTUAL_KEYPAD_COL] = { {KEY_1, KEY_8, KEY_Q, KEY_I, KEY_D, KEY_HOME, KEY_B, KEY_UP}, {KEY_2, KEY_9, KEY_W, KEY_O, KEY_F, KEY_RIGHTSHIFT, KEY_N, KEY_DOWN}, @@ -53,7 +52,6 @@ .platform_data = &atcmd_virtual_pdata, }, }; -/* LGE_E [ynj.kim@lge.com] 2010-05-15 : atcmd virtual device */ /* head set device */ static struct msm_handset_platform_data hs_platform_data = { @@ -145,12 +143,6 @@ static int thunderg_gpio_matrix_power( const struct gpio_event_platform_data *pdata, bool on) { - /* this is dummy function to make gpio_event driver register suspend function - * 2010-01-29, cleaneye.kim@lge.com - * copy from ALOHA code - * 2010-04-22 younchan.kim@lge.com - */ - return 0; } diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderg-mmc.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-mmc.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderg-mmc.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-mmc.c 2011-04-12 06:00:32.000000000 -0400 @@ -1,6 +1,6 @@ /* arch/arm/mach-msm/lge/board-thunderg-mmc.c * Copyright (C) 2010 LGE Corporation. - * Author: SungEun Kim + * Author: SungEun Kim * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -253,9 +253,6 @@ } set_bit(pdev->id, &vreg_sts); - /* if first called related to sdcc1, irq should be registered as wakeup source - * cleaneye.kim@lge.com, 2010-02-19 - */ #if 0 if (first_setup == 1) { struct mmc_platform_data *pdata = pdev->dev.platform_data; @@ -276,7 +273,6 @@ } #endif -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, BCM4325 control gpio */ #if defined(CONFIG_LGE_BCM432X_PATCH) static unsigned int bcm432x_sdcc_wlan_slot_status(struct device *dev) { @@ -297,7 +293,6 @@ .nonremovable = 1, }; #endif /* CONFIG_LGE_BCM432X_PATCH*/ -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, BCM4325 control gpio */ static struct mmc_platform_data msm7x2x_sdcc_data = { #ifdef CONFIG_MMC_MSM_CARD_HW_DETECTION @@ -335,7 +330,6 @@ #endif #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, BCM4325 control */ #if defined(CONFIG_LGE_BCM432X_PATCH) /* GPIO config */ @@ -358,7 +352,6 @@ #else /* qualcomm or google */ msm_add_sdcc(2, &msm7x2x_sdcc_data); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, BCM4325 control */ #endif #ifdef CONFIG_MMC_MSM_SDC3_SUPPORT diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderg-panel.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-panel.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderg-panel.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-panel.c 2011-04-12 06:00:32.000000000 -0400 @@ -79,10 +79,6 @@ } #if 1//def CONFIG_MACH_MSM7X27_ALOHAG - /* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ static struct msm_panel_hitachi_pdata mddi_hitachi_panel_data = { .gpio = 102, /* lcd reset_n */ .pmic_backlight = mddi_hitachi_pmic_backlight, diff -urP vd/kernel/arch/arm/mach-msm/lge/board-thunderg-snd.c vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-snd.c --- vd/kernel/arch/arm/mach-msm/lge/board-thunderg-snd.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/board-thunderg-snd.c 2011-04-12 06:00:32.000000000 -0400 @@ -33,7 +33,6 @@ SND(IN_S_SADC_OUT_SPEAKER_PHONE, 25), SND(CURRENT, 27), #else -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-12, Define sound device*/ SND(HANDSET, 5), SND(HEADSET_LOOPBACK, 1), SND(HEADSET, 2), @@ -51,7 +50,6 @@ SND(TTY_HCO, 16), SND(TTY_HCO_SPEAKER, 17), SND(CURRENT, 25), -/* LGE_CHANGE_E, [junyoub.an] , 2010-02-12, Define sound device*/ #endif }; diff -urP vd/kernel/arch/arm/mach-msm/lge/devices_lge.c vm670/kernel/arch/arm/mach-msm/lge/devices_lge.c --- vd/kernel/arch/arm/mach-msm/lge/devices_lge.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/devices_lge.c 2011-04-12 06:00:32.000000000 -0400 @@ -2,7 +2,7 @@ * * Copyright (C) 2008 Google, Inc. * Copyright (C) 2009 LGE. - * Author: SungEun Kim + * Author: SungEun Kim * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -42,13 +42,11 @@ #include "../devices.h" #include "../pm.h" -/* LGE_CHANGE [james.jang@lge.com] 2010-07-06 */ #include /* setting board revision information */ int lge_bd_rev; -/* LGE_CHANGE_S [james.jang@lge.com] 2010-07-06, only LS670 */ #if 0 static char *rev_str[LGE_REV_TOT_NUM] = { "evb", "rev_a", "rev_b", "rev_c", "rev_d", "rev_e", "rev_10"}; @@ -145,7 +143,6 @@ return 1; } #endif -/* LGE_CHANGE_E [james.jang@lge.com] 2010-07-06 */ __setup("lge.rev=", board_revno_setup); @@ -171,31 +168,6 @@ __setup("uart_console=", lge_uart_mode); #if defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * To support VS660 Smart factory reset - * We dont check flag in kernel if system booting is recovery mode - * 2010-06-08, taehung.kim@lge.com - */ -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ -/* -static int recovery_mode; -int lge_get_recovery_state(void) -{ - return recovery_mode; -} - -static int __init lge_recovery_state(char* s) -{ - if(!strcmp(s,"on")) - recovery_mode = 1; - else - recovery_mode = 0; - printk("%s: recovery mode = %s\n",__func__,s); - return 1; -} -__setup("recovery=",lge_recovery_state); -*/ -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ #endif #ifdef CONFIG_ANDROID_RAM_CONSOLE @@ -445,11 +417,9 @@ } __early_param("pmem_fb_size=", fb_size_setup); -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-06, lge_mtd_direct_access #ifdef CONFIG_MACH_MSM7X27_THUNDERC extern void *lge_mtd_direct_access_addr; #endif -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-06 void __init msm_msm7x2x_allocate_memory_regions(void) { @@ -504,12 +474,10 @@ size, addr, __pa(addr)); #endif - // LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-06, lge_mtd_direct_access #ifdef CONFIG_MACH_MSM7X27_THUNDERC // PAGE_NUM_PER_BLK*PAGE_SIZE_BYTE lge_mtd_direct_access_addr = alloc_bootmem(64*2048); #endif - // LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-06 } void __init msm_add_pmem_devices(void) diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_diag_event_log.c vm670/kernel/arch/arm/mach-msm/lge/lg_diag_event_log.c --- vd/kernel/arch/arm/mach-msm/lge/lg_diag_event_log.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_diag_event_log.c 2011-04-12 06:00:32.000000000 -0400 @@ -19,8 +19,6 @@ * along with this program; if not, you can find it at http://www.fsf.org */ -/* LGE_CHANGE [sm.shim@lge.com] 2010-07-26, File add "lg_diag-event_log.c" Testmode cmd 22 Key test merge from VS660 */ - #include #include @@ -32,8 +30,6 @@ int diag_log_status = 0; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-31, add KEY_CHAT for Sprint -/* key list */ int diag_key_list[]= { /* thunder keypad key */ KEY_MENU, @@ -55,14 +51,6 @@ struct input_handle *handle; printk(" connect () %s \n\n",dev->name); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-31, why need? - /* - for (i = 0 ; i < ARRAY_SIZE(diag_key_list); i++){ - if (!test_bit(diag_key_list[i], dev->keybit)) - continue; - } - */ - handle = kzalloc(sizeof(*handle), GFP_KERNEL); if(!handle) return -ENOMEM; diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_diag_keypress.c vm670/kernel/arch/arm/mach-msm/lge/lg_diag_keypress.c --- vd/kernel/arch/arm/mach-msm/lge/lg_diag_keypress.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_diag_keypress.c 2011-04-12 06:00:32.000000000 -0400 @@ -27,17 +27,13 @@ static unsigned saveKeycode = 0; -/* LGE_CHANGE [dojip.kim@lge.com] 2010-06-11, virtual key */ extern struct input_dev *get_ats_input_dev(void); void SendKeyToInputDevie(unsigned int code, int value) { struct input_dev *ats_input_dev; - /* LGE_CHANGE [james.jang@lge.com] 2010-09-05, block it */ - // printk("keycode = %d, value = %d\n", code, value); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-11, virtual key */ ats_input_dev = get_ats_input_dev(); if (ats_input_dev) input_report_key(ats_input_dev, code, value); diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_diag_testmode.c vm670/kernel/arch/arm/mach-msm/lge/lg_diag_testmode.c --- vd/kernel/arch/arm/mach-msm/lge/lg_diag_testmode.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_diag_testmode.c 2011-04-12 06:00:32.000000000 -0400 @@ -32,18 +32,12 @@ extern PACK(void *) diagpkt_free(PACK(void *)pkt); extern void send_to_arm9(void *pReq, void *pRsp); extern testmode_user_table_entry_type testmode_mstr_tbl[TESTMODE_MSTR_TBL_SIZE]; -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-07-26, Testmode cmd 22 Key test merge from VS660 */ extern int diag_event_log_start(void); extern int diag_event_log_end(void); -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-07-26, Testmode cmd 22 Key test merge from VS660 */ -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ extern void set_operation_mode(boolean isOnline); extern struct input_dev* get_ats_input_dev(void); -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-28, ftm boot extern void remote_set_ftm_boot(int info); -/* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ extern int boot_info; #define KEY_TRANS_MAP_SIZE 70 @@ -108,7 +102,6 @@ rsp_ptr = (DIAG_TEST_MODE_F_rsp_type *) diagpkt_alloc(DIAG_TEST_MODE_F, rsp_len); - // LGE_CHANGE [dojip.kim@lge.com] 2010-10-10, null check if (NULL == rsp_ptr) { printk(KERN_ERR "LGF_TestMode: failed the memory allocation\n"); return NULL; @@ -185,9 +178,6 @@ return pRsp; } -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-07-27, - * Testmode cmd 83 Bluetooth RW merge from VS660 - */ byte *pReq_valid_address(byte *pstr) { int pcnt=0; @@ -225,7 +215,6 @@ if (diagpdev != NULL) { //250-83-0 bluetooth write if(strlen(p_Req_addr) > 0) { - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-03, merge from VS660 */ //update_diagcmd_state(diagpdev, "BT_TEST_MODE_RW", 0); update_diagcmd_state(diagpdev, "BT_TEST_MODE_RW", (int)p_Req_addr); memset((void*)g_bd_addr, 0x00, BT_RW_CNT); @@ -251,9 +240,6 @@ } return pRsp; } -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-07-27, - * Testmode cmd 83 Bluetooth RW merge from VS660 - */ void *LGF_TestPhotoSensor(test_mode_req_type * pReq, DIAG_TEST_MODE_F_rsp_type * pRsp) @@ -382,18 +368,12 @@ if_condition_is_on_key_buffering = TRUE; memset((void *)key_buf, 0x00, MAX_KEY_BUFF_SIZE); count_key_buf = 0; - /* LGE_CHANGE [sm.shim@lge.com] 2010-07-26, - * Testmode cmd 22 Key test merge from VS660 - */ diag_event_log_start(); } else { if_condition_is_on_key_buffering = FALSE; memcpy((void *)((DIAG_TEST_MODE_KEY_F_rsp_type *) pRsp)-> key_pressed_buf, (void *)key_buf, MAX_KEY_BUFF_SIZE); - /* LGE_CHANGE [sm.shim@lge.com] 2010-07-26, - * Testmode cmd 22 Key test merge from VS660 - */ diag_event_log_end(); } return pRsp; @@ -408,8 +388,6 @@ case CAM_TEST_CAMERA_SELECT: case CAM_TEST_FLASH_ON: case CAM_TEST_FLASH_OFF: - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-17, modify cam_save_ moving_file command */ - //case CAM_TEST_CAMCORDER_SAVE_MOVING_FILE: case CAM_TEST_CAMCORDER_FLASH_ON: case CAM_TEST_CAMCORDER_FLASH_OFF: case CAM_TEST_STROBE_LIGHT_ON: @@ -445,7 +423,6 @@ return ret; } -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ void LGF_SendKey(word keycode) { struct input_dev* idev = NULL; @@ -470,22 +447,16 @@ LGF_SendKey(KEY_END); break; case AIR_PLAIN_MODE_ON: - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-28, ftm boot remote_set_ftm_boot(0); // clear flag if_condition_is_on_air_plain_mode = 1; set_operation_mode(FALSE); break; - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-28, ftm boot - case FTM_BOOT_ON: /* kernel mode */ - remote_set_ftm_boot(1); // set flag - break; default: pRsp->ret_stat_code = TEST_NOT_SUPPORTED_S; break; } return pRsp; } -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ char external_memory_copy_test(void) { @@ -497,7 +468,6 @@ int ret; mm_segment_t old_fs; - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, kernel data segment old_fs = get_fs(); set_fs(KERNEL_DS); fd = sys_open((const char __user *)"/sdcard/SDTest.txt", O_CREAT | O_RDWR, 0); @@ -512,7 +482,6 @@ goto file_fail; } sprintf(src, "TEST"); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, kernel data segment old_fs = get_fs(); set_fs(KERNEL_DS); ret = sys_write(fd, (const char __user *)src, 5); @@ -529,7 +498,6 @@ goto file_fail; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, kernel data segment old_fs = get_fs(); set_fs(KERNEL_DS); ret = sys_read(fd, (char __user *)dest, 5); @@ -576,17 +544,10 @@ printk(KERN_ERR "blocks %d \n", sf.f_blocks); printk(KERN_ERR "block size %d \n", sf.f_bsize); - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-31, - * SD card total size bug fix (MB) - */ pRsp->test_mode_rsp.socket_memory_size = (((sf.f_blocks / 1024) * sf.f_bsize) / 1024); break; - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ case EXTERNAL_SOCKET_ERASE: - /* LGE_CHANGE [sm.shim@lge.com] 2010-09-04, - * bug fix: No SD card return OK - */ if (external_memory_copy_test()) { pRsp->ret_stat_code = TEST_FAIL_S; @@ -594,8 +555,6 @@ } if (diagpdev != NULL) { update_diagcmd_state(diagpdev, "MMCFORMAT", 1); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-26, - // delay time : 5 sec -> 10 sec (from VS660) ssleep(10); pRsp->ret_stat_code = TEST_OK_S; } @@ -611,16 +570,10 @@ pRsp->ret_stat_code = TEST_FAIL_S; break; } - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-31, - * SD card free size bug fix (Byte) - */ pRsp->test_mode_rsp.socket_memory_usedsize = ((long long)(sf.f_blocks - (long long)sf.f_bfree) * sf.f_bsize); break; - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, - * Testmode merge from VS660 - */ default: pRsp->ret_stat_code = TEST_NOT_SUPPORTED_S; break; @@ -629,19 +582,14 @@ return pRsp; } -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ void * LGF_TestModeFboot ( test_mode_req_type* pReq ,DIAG_TEST_MODE_F_rsp_type *pRsp) { printk(KERN_ERR "khlee debug %d \n", pReq->fboot); - /* LGE_CHANGE [sm.shim@lge.com] 2010-09-03, Boot Complete Test fix */ pRsp->ret_stat_code = TEST_FAIL_S; switch( pReq->fboot){ case FIRST_BOOTING_COMPLETE_CHECK: pRsp->test_mode_rsp.boot_complete = boot_info; printk("LOG Very Very emergency!!!!%d \n",boot_info); - /* LGE_CHANGE [sm.shim@lge.com] 2010-09-03, - * Boot Complete Test fix - */ if (boot_info == 1) { pRsp->ret_stat_code = TEST_OK_S; } @@ -652,7 +600,6 @@ } return pRsp; } -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ void *LGF_MemoryVolumeCheck(test_mode_req_type * pReq, DIAG_TEST_MODE_F_rsp_type * pRsp) @@ -730,7 +677,6 @@ unsigned char pbuf[BUF_PAGE_SIZE]; int mtd_op_result = 0; unsigned char startStatus; - /* LGE_CHANGE [james.jang@lge.com] 2010-08-30 */ static unsigned char firstStartStatus = 0;; pRsp->ret_stat_code = TEST_OK_S; @@ -769,7 +715,6 @@ "[Testmode]factory reset backup status = %d \n", startStatus); - /* LGE_CHANGE [james.jang@lge.com] 2010-08-30 */ if (firstStartStatus == 0) firstStartStatus = startStatus; } @@ -804,12 +749,6 @@ sizeof(word)), pRsp); printk(KERN_INFO "[Testmode]send_to_arm9 end\n"); - /* LG_FW khlee 2010.03.04 -If we start at 5, - * we have to go to APP reset state(3) directly - */ - /* LGE_CHANGE [james.jang@lge.com] 2010-08-30 */ - //if (startStatus == FACTORY_RESET_COLD_BOOT_END) - /* LGE_CHANGE [sm.shim@lge.com] 2010-09-03, add Factory reset flag 6 */ if (firstStartStatus == FACTORY_RESET_COLD_BOOT_END || firstStartStatus == FACTORY_RESET_USER_START) test_mode_factory_reset_status = FACTORY_RESET_COLD_BOOT_START; @@ -1079,7 +1018,6 @@ return pRsp; } -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ void* LGF_TestModeDBIntegrityCheck(test_mode_req_type* pReq, DIAG_TEST_MODE_F_rsp_type *pRsp) { @@ -1098,15 +1036,6 @@ return pRsp; } -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ - -/* USAGE - * 1. If you want to handle at ARM9 side, - * you have to insert fun_ptr as NULL and mark ARM9_PROCESSOR - * 2. If you want to handle at ARM11 side , - * you have to insert fun_ptr as you want and mark AMR11_PROCESSOR. - */ - testmode_user_table_entry_type testmode_mstr_tbl[TESTMODE_MSTR_TBL_SIZE] = { /* sub_command fun_ptr which procesor */ /* 0 ~ 5 */ @@ -1146,17 +1075,10 @@ /* 41 ~ 45 */ {TEST_MODE_MEMORY_CAPA_TEST, LGF_MemoryVolumeCheck, ARM11_PROCESSOR} , - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ - //{TEST_MODE_SLEEP_MODE_TEST, linux_app_handler, ARM11_PROCESSOR} {TEST_MODE_SLEEP_MODE_TEST, LGF_PowerSaveMode, ARM11_PROCESSOR} , {TEST_MODE_SPEAKER_PHONE_TEST, LGF_TestModeSpeakerPhone, ARM11_PROCESSOR} , - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-09, Photo Sensor disable */ - /* - {TEST_MODE_PHOTO_SENSER_TEST, linux_app_handler, ARM11_PROCESSOR} - , - */ /* 46 ~ 50 */ {TEST_MODE_MRD_USB_TEST, NULL, ARM9_PROCESSOR} @@ -1171,9 +1093,6 @@ /* 51 ~ */ {TEST_MODE_VOLUME_TEST, LGT_TestModeVolumeLevel, ARM11_PROCESSOR} , - /* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, - * merge First Boot Complete Test from VS660 - */ { TEST_MODE_FIRST_BOOT_COMPLETE_TEST, LGF_TestModeFboot, ARM11_PROCESSOR} , /*70~ */ @@ -1200,18 +1119,13 @@ /*80~ */ {TEST_MODE_CAL_CHECK, NULL, ARM9_PROCESSOR} , - /* LGE_CHANGE [sm.shim@lge.com] 2010-07-27, - * Testmode cmd 83 Bluetooth RW merge from VS660 - */ {TEST_MODE_BLUETOOTH_TEST_RW, LGF_TestModeBlueTooth_RW, ARM11_PROCESSOR} , {TEST_MODE_SKIP_WELCOM_TEST, NULL, ARM9_PROCESSOR} , - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ { TEST_MODE_MAC_READ_WRITE, linux_app_handler, ARM11_PROCESSOR } , /*90~ */ { TEST_MODE_DB_INTEGRITY_CHECK, LGF_TestModeDBIntegrityCheck, ARM11_PROCESSOR} , - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ }; diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_diag_wifi.c vm670/kernel/arch/arm/mach-msm/lge/lg_diag_wifi.c --- vd/kernel/arch/arm/mach-msm/lge/lg_diag_wifi.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_diag_wifi.c 2011-04-12 06:00:32.000000000 -0400 @@ -22,21 +22,29 @@ extern PACK(void *) diagpkt_alloc (diagpkt_cmd_code_type code, unsigned int length); PACK (void *)LGF_WIFI( - PACK (void *)req_pkt_ptr, /* pointer to request packet */ - uint16 pkt_len ) /* length of request packet */ -{ - DIAG_LGE_WIFI_MAC_ADDRESS_req_tag *req_ptr = - (DIAG_LGE_WIFI_MAC_ADDRESS_req_tag *) req_pkt_ptr; - DIAG_LGE_WIFI_MAC_ADDRESS_rsp_tag *rsp_ptr = NULL; - - printk(KERN_ERR "[WIFI] SubCmd=<%d>\n",req_ptr->sub_cmd); - - switch( req_ptr->sub_cmd ) - { - default: - break; - } + PACK (void *)req_pkt_ptr, /* pointer to request packet */ + uint16 pkt_len ) /* length of request packet */ - return (rsp_ptr); + { + DIAG_LGE_WIFI_MAC_ADDRESS_req_tag *req_ptr = (DIAG_LGE_WIFI_MAC_ADDRESS_req_tag *) req_pkt_ptr; + DIAG_LGE_WIFI_MAC_ADDRESS_rsp_tag *rsp_ptr = NULL; +// unsigned int rsp_len; + +// rsp_len = sizeof(DIAG_LGE_WIFI_MAC_ADDRESS_rsp_tag); +// rsp_ptr = (DIAG_LGE_WIFI_MAC_ADDRESS_rsp_tag *)diagpkt_alloc(DIAG_WIFI_MAC_ADDR, rsp_len); +// rsp_ptr->nrb_udm_mode.sub_cmd_code = req_ptr->nrb_udm_mode.sub_cmd_code; +// rsp_ptr->result = TEST_OK_S; + + printk(KERN_ERR "[WIFI] SubCmd=<%d>\n",req_ptr->sub_cmd); + + switch( req_ptr->sub_cmd ) + { + + default: +// rsp_ptr->nrb_udm_mode.ret_stat_code = TEST_FAIL_S; + break; + } + + return (rsp_ptr); } EXPORT_SYMBOL(LGF_WIFI); diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_ats_event_log.c vm670/kernel/arch/arm/mach-msm/lge/lge_ats_event_log.c --- vd/kernel/arch/arm/mach-msm/lge/lge_ats_event_log.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_ats_event_log.c 2011-04-12 06:00:32.000000000 -0400 @@ -32,7 +32,6 @@ static struct input_handler input_handler; static struct work_struct event_log_work; struct ats_mtc_key_log_type ats_mtc_key_log1; -/* LGE_CHANGE [james.jang@lge.com] 2010-08-03, exception code for panic */ static int ats_log_status = 0; extern unsigned int ats_mtc_log_mask; diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_ats.h vm670/kernel/arch/arm/mach-msm/lge/lge_ats.h --- vd/kernel/arch/arm/mach-msm/lge/lge_ats.h 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_ats.h 2011-04-12 06:00:32.000000000 -0400 @@ -108,19 +108,18 @@ #define ATCMD_WLANWL 78 #define ATCMD_ATD 79 -#define ATCMD_MTC 80 //LGE_CHANGE_S [seypark@lge.com] for AT+MTC +#define ATCMD_MTC 80 //songth - more drm command -#define ATCMD_DRMINDEX 81 //LGE_CHANGE_S [kageki@lge.com] +#define ATCMD_DRMINDEX 81 -//LGE_UPDATE_S 2009.07.07 [seypark@lge.com] #define ATCMD_FLIGHT 82 #define ATCMD_LANG 83 //LGE_UPDATE_E // yorong drm command #define ATCMD_DRMIMEI 84 -#define ATCMD_POWERDOWN 85 // LGE_CHANGE [jinwoonam@lge.com] Powerdown system when no battery +#define ATCMD_POWERDOWN 85 ////////////////////////////////////////////////////////////////// // at_cmd value end diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_ats_mmc.c vm670/kernel/arch/arm/mach-msm/lge/lge_ats_mmc.c --- vd/kernel/arch/arm/mach-msm/lge/lge_ats_mmc.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_ats_mmc.c 2011-04-12 06:00:32.000000000 -0400 @@ -22,13 +22,11 @@ char *src = NULL, *dest = NULL; off_t fd_offset; int fd = -1; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, kernel data segment mm_segment_t old_fs; int ret; old_fs = get_fs(); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, kernel data segment set_fs(KERNEL_DS); fd = sys_open((const char __user *) "/sdcard/SDTest.txt", O_CREAT | O_RDWR, 0); set_fs(old_fs); @@ -44,7 +42,6 @@ } sprintf(src,"TEST"); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, kernel data segment old_fs = get_fs(); set_fs(KERNEL_DS); ret = sys_write(fd, (const char __user *) src, 5); @@ -61,7 +58,6 @@ goto file_fail; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, kernel data segment old_fs = get_fs(); set_fs(KERNEL_DS); ret = sys_read(fd, (char __user *) dest, 5); diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_ats_uevent.c vm670/kernel/arch/arm/mach-msm/lge/lge_ats_uevent.c --- vd/kernel/arch/arm/mach-msm/lge/lge_ats_uevent.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_ats_uevent.c 2011-04-12 06:00:32.000000000 -0400 @@ -1,7 +1,7 @@ /* drivers/misc/lge_ats_uevent.c * * Copyright (C) 2010 LGE. - * Author: Munyoung Hwang + * Author: Munyoung Hwang * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_ers.c vm670/kernel/arch/arm/mach-msm/lge/lge_ers.c --- vd/kernel/arch/arm/mach-msm/lge/lge_ers.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_ers.c 2011-04-12 06:00:32.000000000 -0400 @@ -2,7 +2,7 @@ * arch/arm/mach-msm/lge/ers-lge.c * * Copyright (C) 2009 LGE, Inc - * Author: Jun-Yeong Han + * Author: Jun-Yeong Han * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -304,5 +304,5 @@ module_exit(ers_exit); MODULE_DESCRIPTION("Exception Reporting System Driver"); -MODULE_AUTHOR("Jun-Yeong Han "); +MODULE_AUTHOR("Jun-Yeong Han"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_gpio_h2w.c vm670/kernel/arch/arm/mach-msm/lge/lge_gpio_h2w.c --- vd/kernel/arch/arm/mach-msm/lge/lge_gpio_h2w.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_gpio_h2w.c 2011-04-12 06:00:32.000000000 -0400 @@ -5,7 +5,7 @@ * Copyright (C) 2008 Google, Inc. * * Authors: - * kiwone seo + * kiwone seo * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -458,6 +458,6 @@ module_init(gpio_h2w_init); module_exit(gpio_h2w_exit); -MODULE_AUTHOR("Kiwone,Seo "); +MODULE_AUTHOR("Kiwone,Seo"); MODULE_DESCRIPTION("LGE 2 Wire detection driver"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_handle_panic.c vm670/kernel/arch/arm/mach-msm/lge/lge_handle_panic.c --- vd/kernel/arch/arm/mach-msm/lge/lge_handle_panic.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_handle_panic.c 2011-04-12 06:00:32.000000000 -0400 @@ -382,5 +382,5 @@ module_exit(lge_panic_handler_exit); MODULE_DESCRIPTION("LGE panic handler driver"); -MODULE_AUTHOR("SungEun Kim "); +MODULE_AUTHOR("SungEun Kim"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_mtd_direct_access.c vm670/kernel/arch/arm/mach-msm/lge/lge_mtd_direct_access.c --- vd/kernel/arch/arm/mach-msm/lge/lge_mtd_direct_access.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_mtd_direct_access.c 2011-04-12 06:00:32.000000000 -0400 @@ -20,31 +20,19 @@ #include #include #include -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-23, do something after cold boot #include "lg_fw_diag_communication.h" #if defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE [james.jang@lge.com] 2010-07-20, for FOTA_STO */ -//#define MISC_PART_NUM 6 #define MISC_PART_NUM 7 #define MISC_PART_SIZE 4 -/* LGE_CHANGE [james.jang@lge.com] 2010-07-20, for FOTA_STO */ -//#define PERSIST_PART_NUM 7 #define PERSIST_PART_NUM 8 #define PERSIST_PART_SIZE 12 -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-06, size is hard coded -//#define PAGE_NUM_PER_BLK 64 -//#define PAGE_SIZE_BYTE 2048 -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-06 #else #define MISC_PART_NUM 4 #endif static struct mtd_info *mtd; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, allocated memory via bootmem in devices.lge.c -// kthread_lg_diag: page allocation failure. order:5, mode:0xd0, -// lge_init_mtd_access: error: cannot allocate memory void *lge_mtd_direct_access_addr; static unsigned char *global_buf; //static unsigned char global_buf[PAGE_NUM_PER_BLK*PAGE_SIZE_BYTE]; @@ -67,15 +55,12 @@ static int dev; static int target_block; static int dummy_arg = 0; -/* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ int boot_info = 0; module_param(dev, int, S_IRUGO); module_param(target_block, int, S_IRUGO); -/* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ module_param(boot_info, int, 0664); -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ static int test_init(void) { int partition = PERSIST_PART_NUM; @@ -85,7 +70,6 @@ } static int test_erase_block(void) -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ { int i; int err; @@ -110,15 +94,12 @@ return 0; } -/* LGE_CHANGE [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ static int test_write_block(const char *val, struct kernel_param *kp) { int i; int err; -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ unsigned char *test_string; unsigned long flag=0; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-23, do something after cold boot struct diagcmd_dev *diagpdev; flag = simple_strtoul(val,NULL,10); @@ -126,16 +107,16 @@ test_string="FACT_RESET_5"; else if(6 == flag) test_string="FACT_RESET_6"; - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-04, for RTN and Factory reset else if (3 == flag) test_string="FACT_RESET_3"; + else if (7 == flag) + test_string="FACT_RESET_7"; else return -1; test_init(); test_erase_block(); printk(KERN_INFO"%s: writing block: flag = %lu\n", __func__, flag); -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ for (i = 0; i < ebcnt; i++) { if (bbt[i]) @@ -152,7 +133,6 @@ printk(KERN_INFO"%s: write %u block\n", __func__, i); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-23, do something after cold boot if (flag == 5) { diagpdev = diagcmd_get_dev(); if (diagpdev != NULL) { @@ -164,7 +144,6 @@ } module_param_call(write_block, test_write_block, param_get_bool, &dummy_arg, S_IWUSR | S_IRUGO); -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ #define FACTORY_RESET_STR_SIZE 11 #define FACTORY_RESET_STR "FACT_RESET_" static int test_read_block(char *buf, struct kernel_param *kp) @@ -206,7 +185,6 @@ } module_param_call(read_block, param_get_bool, test_read_block, &dummy_arg, (S_IWUSR | S_IRUGO)); -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ int lge_erase_block(int ebnum) { @@ -350,7 +328,6 @@ goto out; } #endif - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-06 global_buf = (unsigned char *)lge_mtd_direct_access_addr; err = scan_for_bad_eraseblocks(); @@ -408,5 +385,5 @@ module_exit(lge_mtd_direct_access_exit); MODULE_DESCRIPTION("LGE mtd direct access apis"); -MODULE_AUTHOR("SungEun Kim "); +MODULE_AUTHOR("SungEun Kim"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/arch/arm/mach-msm/lge/lge_proc_comm.c vm670/kernel/arch/arm/mach-msm/lge/lge_proc_comm.c --- vd/kernel/arch/arm/mach-msm/lge/lge_proc_comm.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lge_proc_comm.c 2011-04-12 06:00:32.000000000 -0400 @@ -56,7 +56,6 @@ EXPORT_SYMBOL(lge_get_lpm_info); #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-04, power on status #if defined(CONFIG_LGE_GET_POWER_ON_STATUS) /* * return value: @@ -86,7 +85,6 @@ EXPORT_SYMBOL(lge_get_power_on_status); #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-24, notify the power status int lge_set_sleep_status(int status) { int cmd_state = 1; diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_fw_diag_class.c vm670/kernel/arch/arm/mach-msm/lge/lg_fw_diag_class.c --- vd/kernel/arch/arm/mach-msm/lge/lg_fw_diag_class.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_fw_diag_class.c 2011-04-12 06:00:32.000000000 -0400 @@ -11,12 +11,6 @@ * GNU General Public License for more details. * */ -/* - * LGE_CHANGE_S [kiwone.seo@lge.com] 2010-02-03, LG_FW_AUDIO_TESTMODE - * - * kiwone creates this file for audio test mode, - * and the use of another function to send framework. - */ #include #include @@ -59,14 +53,6 @@ int env_offset = 0; int length; -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ - /* - * 2010-08-12, jinkyu.choi@lge.com, Do not check the state - * Now, each command has own state number which is the sub command number of testmode tools. - * The sub commands can be same though the major commands are different. - * It is result in not sending the commnad to Android Diag application - */ - //if (sdev->state != state) { sdev->state = state; sdev->name = cmd; @@ -97,7 +83,6 @@ kobject_uevent(&sdev->dev->kobj, KOBJ_CHANGE); } //} -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ } EXPORT_SYMBOL_GPL(update_diagcmd_state); @@ -172,6 +157,6 @@ module_init(lg_fw_diag_class_init); module_exit(lg_fw_diag_class_exit); -MODULE_AUTHOR("kiwone.seo@lge.com"); +MODULE_AUTHOR("kiwone.seo"); MODULE_DESCRIPTION("lg_fw_diag class driver"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_fw_diag_communication.c vm670/kernel/arch/arm/mach-msm/lge/lg_fw_diag_communication.c --- vd/kernel/arch/arm/mach-msm/lge/lg_fw_diag_communication.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_fw_diag_communication.c 2011-04-12 06:00:32.000000000 -0400 @@ -11,12 +11,6 @@ * GNU General Public License for more details. * */ -/* - * LGE_CHANGE_S [kiwone.seo@lge.com] 2010-02-03, LG_FW_AUDIO_TESTMODE - * - * kiwone creates this file for audio test mode, - * and the use of another function to send framework. - */ #include #include @@ -107,7 +101,7 @@ module_init(diagcmd_init); module_exit(diagcmd_exit); -MODULE_AUTHOR("kiwone.seo@lge.com"); +MODULE_AUTHOR("kiwone.seo"); MODULE_DESCRIPTION("lg_fw_diagcmd driver"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_fw_diag_mtc.c vm670/kernel/arch/arm/mach-msm/lge/lg_fw_diag_mtc.c --- vd/kernel/arch/arm/mach-msm/lge/lg_fw_diag_mtc.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_fw_diag_mtc.c 2011-04-12 06:00:32.000000000 -0400 @@ -197,9 +197,6 @@ ext_msg_type msg; dword sendKeyValue = 0; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04 [LS670] - * don't send a raw diag packet in running MTC - */ if (mtc_running) return; @@ -266,7 +263,6 @@ } else send_to_arm9((void *)req_ptr, (void *)rsp_ptr); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04 [LS670] */ mtc_running = 0; return (rsp_ptr); @@ -287,7 +283,6 @@ pRsp = (DIAG_MTC_F_rsp_type *) diagpkt_alloc(DIAG_MTC_F, rsp_len); if (pRsp == NULL) { printk(KERN_ERR "[MTC] diagpkt_alloc failed\n"); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, null check */ return pRsp; } @@ -395,9 +390,6 @@ printk(KERN_INFO "[MTC]mtc_capture_screen\n"); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, - * allocation the memory for bmp_data - */ rsp_len = sizeof(mtc_capture_rsp_type) + MTC_SCRN_BUF_SIZE_MAX; printk(KERN_INFO "[MTC] mtc_capture_screen rsp_len :(%d)\n", rsp_len); @@ -407,7 +399,6 @@ (DIAG_MTC_F_rsp_type *) diagpkt_alloc(DIAG_MTC_F, rsp_len); if (pCaputureRsp == NULL) { printk(KERN_ERR "[MTC] diagpkt_alloc failed\n"); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, null check */ return pCaputureRsp; } } @@ -465,9 +456,6 @@ void ats_eta_mtc_key_logging(int scancode, unsigned char keystate) { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04 [LS670] - * don't send a raw diag packet in running MTC - */ if (mtc_running) return; @@ -532,9 +520,6 @@ void ats_eta_mtc_touch_logging (int pendown, int x, int y) { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04 [LS670] - * don't send a raw diag packet in running MTC - */ if (mtc_running) return; @@ -617,8 +602,6 @@ pRsp = (DIAG_MTC_F_rsp_type *) diagpkt_alloc(DIAG_MTC_F, rsp_len); if (pRsp == NULL) { printk(KERN_ERR "[MTC] diagpkt_alloc failed\n"); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, null check */ - //diagpkt_commit(pRsp); return; } @@ -781,7 +764,6 @@ printk("\n [MTC]execute /system/bin/mtc, %s\n", cmdstr); sys_close(fd); } - // END: eternalblue@lge.com.2009-10-23 printk(KERN_INFO "[MTC]execute mtc : data - %s\n\n", cmdstr); ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); diff -urP vd/kernel/arch/arm/mach-msm/lge/lg_rapi_client.c vm670/kernel/arch/arm/mach-msm/lge/lg_rapi_client.c --- vd/kernel/arch/arm/mach-msm/lge/lg_rapi_client.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/lge/lg_rapi_client.c 2011-04-12 06:00:32.000000000 -0400 @@ -1,7 +1,7 @@ /* arch/arm/mach-msm/lge/lg_rapi_client.c * * Copyright (C) 2009 LGE, Inc. - * Created by khlee@lge.com + * Created by khlee * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -20,15 +20,10 @@ #if defined(CONFIG_MACH_MSM7X27_ALOHAV) #include #elif defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * ADD THUNERC feature to use VS740 BATT DRIVER - * 2010-5-13, taehung.kim@lge.com - */ #include #else #include #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-09, pcb version check #include #include @@ -59,7 +54,6 @@ static uint32_t open_count; struct msm_rpc_client *client; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-12, initial value static int old_cable_type = -1; int LG_rapi_init(void) @@ -88,19 +82,11 @@ struct oem_rapi_client_streaming_func_ret ret; char output[LG_RAPI_CLIENT_MAX_OUT_BUFF_SIZE]; int retValue = 0; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-12, - * add error control code, try 2 times if error occurs - * (from VS660) - */ int rc = -1; int errCount = 0; Open_check(); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-12, - * add error control code, try 2 times if error occurs - * (from VS660) - */ do { arg.event = LG_FW_RAPI_CLIENT_EVENT_GET_LINE_TYPE; arg.cb_func = NULL; @@ -119,7 +105,6 @@ retValue = old_cable_type; } else { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-21, memcpy */ memcpy(output, ret.output, *ret.out_len); retValue = GET_INT32(output); @@ -129,7 +114,6 @@ old_cable_type = retValue; } - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -137,14 +121,11 @@ } while (rc < 0 && errCount++ < 3); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-09, - // workaround for wrong detection cable type in Rev.A #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT if (lge_bd_rev < HW_PCB_REV_B && retValue == 10) // LT_130K retValue = 0; #endif - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-09, debugging message */ printk("USB Cable type: %s(): %d\n", __func__, retValue); return retValue; } @@ -177,14 +158,12 @@ oem_rapi_client_streaming_function(client, &arg, &ret); memcpy(pRsp, ret.output, *ret.out_len); - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) kfree(ret.out_len); } -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ void set_operation_mode(boolean info) { struct oem_rapi_client_streaming_func_arg arg; @@ -206,14 +185,12 @@ oem_rapi_client_streaming_function(client, &arg, &ret); - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-08-14, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) kfree(ret.out_len); } EXPORT_SYMBOL(set_operation_mode); -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-13, Testmode merge from VS660 */ #ifdef CONFIG_MACH_MSM7X27_THUNDERC void battery_info_get(struct batt_info *resp_buf) @@ -239,36 +216,26 @@ ret_val = oem_rapi_client_streaming_function(client, &arg, &ret); if (ret_val == 0) { - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, memcpy */ memcpy(&rsp_buf, ret.output, *ret.out_len); resp_buf->valid_batt_id = GET_U_INT32(&rsp_buf.valid_batt_id); resp_buf->batt_therm = GET_U_INT32(&rsp_buf.batt_therm); resp_buf->batt_temp = GET_INT32(&rsp_buf.batt_temp); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) resp_buf->chg_current = GET_U_INT32(&rsp_buf.chg_current); resp_buf->batt_thrm_state = GET_U_INT32(&rsp_buf.batt_thrm_state); #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } else { /* In case error */ resp_buf->valid_batt_id = 1; /* authenticated battery id */ resp_buf->batt_therm = 100; /* 100 battery therm adc */ resp_buf->batt_temp = 30; /* 30 degree celcius */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) resp_buf->chg_current = 0; resp_buf->batt_thrm_state = 0; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -299,7 +266,6 @@ oem_rapi_client_streaming_function(client, &arg, &ret); - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -308,7 +274,6 @@ } EXPORT_SYMBOL(pseudo_batt_info_set); -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-09 void block_charging_set(int bypass) { struct oem_rapi_client_streaming_func_arg arg; @@ -337,7 +302,6 @@ } EXPORT_SYMBOL(block_charging_set); -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-09 #endif /* CONFIG_MACH_MSM7X27_THUNDERC */ void msm_get_MEID_type(char *sMeid) @@ -363,7 +327,6 @@ memcpy(sMeid, ret.output, 14); - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -371,7 +334,6 @@ } -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, from VS740 */ #ifdef CONFIG_MACH_MSM7X27_THUNDERC void set_charging_timer(int info) { @@ -395,7 +357,6 @@ ret_val = oem_rapi_client_streaming_function(client, &arg, &ret); - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -428,7 +389,6 @@ ret_val = oem_rapi_client_streaming_function(client, &arg, &ret); if (ret_val == 0) { - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, memcpy */ memcpy(&resp_buf, ret.output, *ret.out_len); *info = GET_INT32(&resp_buf); @@ -436,7 +396,6 @@ *info = 1; //default value } - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -447,7 +406,6 @@ EXPORT_SYMBOL(get_charging_timer); #endif -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-29, pcb version from LS680*/ #ifdef CONFIG_LGE_PCB_VERSION int lg_get_hw_version(void) { @@ -472,7 +430,6 @@ oem_rapi_client_streaming_function(client, &arg, &ret); memcpy(&pcb_ver, ret.output, *ret.out_len); - /* LGE_CHAGNE [dojip.kim@lge.com] 2010-06-21, free the allocated mem */ if (ret.output) kfree(ret.output); if (ret.out_len) @@ -484,9 +441,6 @@ EXPORT_SYMBOL(lg_get_hw_version); #endif /* CONFIG_LGE_PCB_VERSION */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09, [LS670] - * no stop charing even if hot or cold battery - */ #ifdef CONFIG_LGE_THERM_NO_STOP_CHARGING void set_charging_therm_no_stop_charging(int info) { @@ -520,7 +474,6 @@ EXPORT_SYMBOL(set_charging_therm_no_stop_charging); #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-01 void remote_set_charging_stat_realtime_update(int info) { struct oem_rapi_client_streaming_func_arg arg; @@ -588,7 +541,6 @@ } EXPORT_SYMBOL(remote_get_charging_stat_realtime_update); -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-12, prl version void remote_get_prl_version(int *info) { struct oem_rapi_client_streaming_func_arg arg; @@ -625,7 +577,6 @@ } EXPORT_SYMBOL(remote_get_prl_version); -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-28, FTM boot void remote_set_ftm_boot(int info) { struct oem_rapi_client_streaming_func_arg arg; @@ -661,16 +612,10 @@ struct oem_rapi_client_streaming_func_ret ret; int ret_val; int resp_buf; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-29, - * add error control code, try 2 times if error occurs - */ int errCount = 0; Open_check(); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-09-29, - * add error control code, try 2 times if error occurs - */ do { arg.event = LG_FW_GET_FTM_BOOT; arg.cb_func = NULL; diff -urP vd/kernel/arch/arm/mach-msm/nand_partitions.c vm670/kernel/arch/arm/mach-msm/nand_partitions.c --- vd/kernel/arch/arm/mach-msm/nand_partitions.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/nand_partitions.c 2011-04-12 06:00:32.000000000 -0400 @@ -46,16 +46,11 @@ __u32 flags; }; -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-06-15, increase max for fota */ #if defined(CONFIG_MACH_MSM7X27_THUNDERG) #define MSM_MAX_PARTITIONS 11 #else /* original */ -/* LGE_CHANGE [james.jang@lge.com] 2010-07-12, - only LS670 for FOTA 8 -> 9 */ -//#define MSM_MAX_PARTITIONS 8 #define MSM_MAX_PARTITIONS 9 #endif -/* LGE_CHANGE_E */ static struct mtd_partition msm_nand_partitions[MSM_MAX_PARTITIONS]; static char msm_nand_names[MSM_MAX_PARTITIONS * 16]; diff -urP vd/kernel/arch/arm/mach-msm/pm2.c vm670/kernel/arch/arm/mach-msm/pm2.c --- vd/kernel/arch/arm/mach-msm/pm2.c 2011-02-04 19:00:38.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/pm2.c 2011-04-12 06:00:32.000000000 -0400 @@ -53,15 +53,7 @@ #include "pm.h" #include "spm.h" -/* LGE_CHANGE - * factory reset check after booting - * 2010-05-30, taehung.kim@lge.com - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE_S [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ -//extern int factory_reset_check(void); -//extern int lge_get_recovery_state(void); -/* LGE_CHANGE_E [sm.shim@lge.com] 2010-08-22, merge First Boot Complete Test from VS660 */ #endif /****************************************************************************** * Debug Definitions @@ -1687,11 +1679,6 @@ static uint32_t restart_reason = 0x776655AA; #ifdef CONFIG_MACH_LGE -/* LGE_CHANGE - * flush console before reboot - * from google's mahimahi kernel - * 2010-05-04, cleaneye.kim@lge.com - */ static bool console_flushed; @@ -1719,21 +1706,16 @@ } #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-04, clean the ram console when normal shutdown #if defined(CONFIG_LGE_RAM_CONSOLE_CLEAN) extern void ram_console_clean_buffer(void); #endif static void msm_pm_power_off(void) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-04, clean the ram console when normal shutdown #if defined(CONFIG_LGE_RAM_CONSOLE_CLEAN) ram_console_clean_buffer(); #endif #ifdef CONFIG_MACH_LGE - /* To prevent Phone freezing during power off - * blue.park@lge.com 2010-04-14 - */ smsm_change_state_nonotify(SMSM_APPS_STATE, 0, SMSM_SYSTEM_POWER_DOWN); #endif @@ -1746,11 +1728,6 @@ static void msm_pm_restart(char str, const char *cmd) { #ifdef CONFIG_MACH_LGE - /* LGE_CHANGE - * flush console before reboot - * from google's mahimahi kernel - * 2010-05-04, cleaneye.kim@lge.com - */ msm_pm_flush_console(); #endif diff -urP vd/kernel/arch/arm/mach-msm/qdsp5/snd.c vm670/kernel/arch/arm/mach-msm/qdsp5/snd.c --- vd/kernel/arch/arm/mach-msm/qdsp5/snd.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/qdsp5/snd.c 2011-04-12 06:00:32.000000000 -0400 @@ -58,8 +58,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-08, [VS740] for testmode and so on */ -// #define ONCRPC_SND_LOOPBACK_CMD_PROC 60,-->already defined in app(snd_rpc.h,snd_client.c), ONCRPC_SND_LOOPBACK_CMD_PROC #define SND_SET_LOOPBACK_MODE_PROC 61 #else #define SND_SET_LOOPBACK_MODE_PROC 61 @@ -81,7 +79,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-10, [VS740] for testmode call acoustic rec/play */ #define SND_SET_CALL_ACOUSTIC_PATH_ONOFF_PROC 62 #endif @@ -139,7 +136,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-08, [VS740] for testmode and so on */ struct snd_set_loopback_param_rep { struct rpc_reply_hdr hdr; uint32_t get_mode; @@ -155,7 +151,6 @@ struct rpc_snd_set_loopback_mode_args args; }; #else -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-19, for sound cal tool*/ struct snd_set_loopback_param_rep { struct rpc_reply_hdr hdr; @@ -385,11 +380,9 @@ static int loopback_at=false; static int last_device_at=-1; static int fm_radio_flag = 0; -/* LGE_CHANGE_E, [junyoub.an] , 2010-02-19, for sound cal tool*/ #endif #if defined (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-10, [VS740] for testmode call acoustic rec/play */ struct snd_set_call_acoustic_path_onoff_param_rep { struct rpc_reply_hdr hdr; uint32_t get_on_off; @@ -455,7 +448,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) - /* LGE_CHANGES_S [kiwone@lge.com] 2010-01-08, [VS740] for testmode and so on */ struct msm_snd_set_loopback_mode_param loopback; struct snd_set_loopback_mode_msg lbmsg; #else @@ -488,7 +480,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-10, [VS740] for testmode call acoustic rec/play */ struct msm_snd_set_call_acoustic_path_onoff_param call_acoustic_path_onoff; struct snd_set_call_acoustic_path_onoff_param_msg call_acoustic_path_onoff_msg; #endif @@ -525,7 +516,6 @@ SND_SET_DEVICE_PROC, &dmsg, sizeof(dmsg), 5 * HZ); #ifndef CONFIG_MACH_MSM7X27_ALOHAV -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-19, for sound cal tool*/ if (dev.device == VOC_CODEC_FM_RADIO_HEADSET_MEDIA || dev.device == VOC_CODEC_FM_RADIO_SPEAKER_MEDIA){ fm_radio_flag =1; @@ -537,7 +527,6 @@ && (fm_radio_flag == 1)){ fm_radio_flag = 0; } -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-19, for sound cal tool*/ #endif break; @@ -621,7 +610,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) - /* LGE_CHANGES_S [kiwone@lge.com] 2010-01-08, [VS740] for testmode and so on */ case SND_SET_LOOPBACK_MODE: if (copy_from_user(&loopback, (void __user *) arg, sizeof(loopback))) { pr_err("snd_ioctl set_loopback_mode: invalid pointer.\n"); @@ -687,7 +675,6 @@ } break; -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-19, for sound cal tool*/ case SND_SET_VOCCAL_PARAM: if (copy_from_user(&voccal, (void __user *) arg, sizeof(voccal))) { pr_err("snd_ioctl set voccal_param: invalid pointer.\n"); @@ -1054,8 +1041,6 @@ } } break; -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-19, for sound cal tool*/ -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-28, for hook key*/ case SND_SET_HOOK_MODE: if (copy_from_user(&hook_param, (void __user *) arg, sizeof(hook_param))) { pr_err("snd_ioctl set_loopback_mode: invalid pointer.\n"); @@ -1086,12 +1071,10 @@ } } break; -/* LGE_CHANGE_E, [junyoub.an] , 2010-02-28, for hook key*/ #endif #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) - /* LGE_CHANGES_S [kiwone@lge.com] 2010-01-10, [VS740] for testmode call acoustic rec/play */ case SND_SET_CALL_ACOUSTIC_PATH_ONOFF: if (copy_from_user(&call_acoustic_path_onoff, (void __user *) arg, sizeof(call_acoustic_path_onoff))) { pr_err("snd_ioctl setCallAcousticPathOnOff: invalid pointer.\n"); diff -urP vd/kernel/arch/arm/mach-msm/rpc_hsusb.c vm670/kernel/arch/arm/mach-msm/rpc_hsusb.c --- vd/kernel/arch/arm/mach-msm/rpc_hsusb.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/rpc_hsusb.c 2011-04-12 06:00:32.000000000 -0400 @@ -373,12 +373,7 @@ EXPORT_SYMBOL(msm_hsusb_is_serial_num_null); #if defined(CONFIG_MACH_MSM7X27_ALOHAV) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * ADD THUNDER feature TO USE VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ -/* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ static int charger_type; #endif @@ -391,11 +386,6 @@ } req; #if defined(CONFIG_MACH_MSM7X27_ALOHAV) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * ADD THUNDER feature TO USE VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - /* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ charger_type = device; #endif @@ -447,11 +437,6 @@ } req; #if defined(CONFIG_MACH_MSM7X27_ALOHAV) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * ADD THUNDER feature TO USE VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - /* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ charger_type = 3; /* CHG_UNDEFINDED */ #endif @@ -654,12 +639,6 @@ #endif #if defined(CONFIG_MACH_MSM7X27_ALOHAV) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE - * ADD THUNDER feature TO USE VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - -/* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ int msm_hsusb_get_charger_type(void) { return charger_type; diff -urP vd/kernel/arch/arm/mach-msm/rpc_server_handset.c vm670/kernel/arch/arm/mach-msm/rpc_server_handset.c --- vd/kernel/arch/arm/mach-msm/rpc_server_handset.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/rpc_server_handset.c 2011-04-12 06:00:32.000000000 -0400 @@ -59,12 +59,6 @@ #define HS_REL_K 0xFF /* key release */ #ifndef CONFIG_MACH_MSM7X27_ALOHAV -/* LGE_CHANGE - * for hook key - * 2010-03-03, junyeob.an - * for deskdock detect from muic - * 2010-04-19 - */ #define HS_ON_HOOK_K 0x01 /* headphone hook key */ #define GPIO_EAR_SENSE_BIAS 0x1D #define HS_DESKDOCK_DETECT 0x02 /* deskdock detect */ @@ -244,7 +238,6 @@ static struct msm_handset *hs; static void (*deskdock_detect_callback)(int); -/* LGE_CHANGE [james.jang@lge.com] 2010-06-12 */ #if defined(CONFIG_LGE_DIAGTEST) /* for SLATE */ extern void mtc_send_key_log_packet(unsigned long keycode, unsigned long state); @@ -252,7 +245,6 @@ /* fot MTC */ extern void ats_eta_mtc_key_logging(int scancode, unsigned char keystate); -/* LGE_CHANGES_S [woonghee@lge.com] 2010-01-23, [VS740] for key test */ extern uint8_t if_condition_is_on_key_buffering; extern uint8_t lgf_factor_key_test_rsp(char); #endif @@ -318,9 +310,6 @@ break; case KEY_MEDIA: if (gpio_get_value(GPIO_EAR_SENSE_BIAS) == 1) { - /* LGE_CHANGE - * 2010-03-09, junyoub.an@lge.com To protect from wrong hook key operation - */ input_report_key(hs->ipdev, key, (key_code != HS_REL_K)); } break; @@ -336,10 +325,6 @@ case KEY_VOLUMEDOWN: input_report_key(hs->ipdev, key, (key_code != HS_REL_K)); #if defined(CONFIG_LGE_DIAGTEST) - /* LGE_CHANGES - * [woonghee@lge.com] 2010-01-23, - * [VS740] for key test - */ if(if_condition_is_on_key_buffering == HS_TRUE && key_code == 0/*press*/) lgf_factor_key_test_rsp((uint8_t)key); #endif @@ -351,9 +336,6 @@ report_headset_switch(hs->ipdev, key, (key_code != HS_REL_K)); #endif #if defined(CONFIG_LGE_DIAGTEST) - /* LGE_CHANGES - * [woonghee@lge.com] 2010-01-23 - * [VS740] for key test */ if(if_condition_is_on_key_buffering == HS_TRUE && key_code == 0/*press*/) lgf_factor_key_test_rsp((uint8_t)key); #endif diff -urP vd/kernel/arch/arm/mach-msm/rpc_server_time_remote.c vm670/kernel/arch/arm/mach-msm/rpc_server_time_remote.c --- vd/kernel/arch/arm/mach-msm/rpc_server_time_remote.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/rpc_server_time_remote.c 2011-04-12 06:00:32.000000000 -0400 @@ -108,13 +108,6 @@ args = (struct rpc_time_tod_set_apps_bases_args *)(req + 1); args->tick = be32_to_cpu(args->tick); args->stamp = be64_to_cpu(args->stamp); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-04, too noisy - /* - printk(KERN_INFO "RPC_TIME_TOD_SET_APPS_BASES:\n" - "\ttick = %d\n" - "\tstamp = %lld\n", - args->tick, args->stamp); - */ rtc_hctosys(); return 0; } diff -urP vd/kernel/arch/arm/mach-msm/smd.c vm670/kernel/arch/arm/mach-msm/smd.c --- vd/kernel/arch/arm/mach-msm/smd.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/smd.c 2011-04-12 06:00:32.000000000 -0400 @@ -225,16 +225,8 @@ pr_err("ARM9 has CRASHED\n"); smd_diag(); #ifdef CONFIG_LGE_HANDLE_MODEM_CRASH - /* flush console before reboot - * from google's mahimahi kernel - * 2010-05-04, cleaneye.kim@lge.com - */ msm_pm_flush_console(); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-13, comment out - // To solve Phone Freezing problem during Power On/Off Test by QM or DQ - //atomic_notifier_call_chain(&panic_notifier_list, 0, 0x87654321); - smsm_reset_modem(SMSM_SYSTEM_REBOOT); #endif /* hard reboot if possible FIXME @@ -1451,9 +1443,6 @@ #ifdef CONFIG_MACH_LGE -/* Make a api to not report a changed SMSM state to other processor - * blue.park@lge.com 2010-04-14 - */ int smsm_change_state_nonotify(uint32_t smsm_entry, uint32_t clear_mask, uint32_t set_mask) { diff -urP vd/kernel/arch/arm/mach-msm/smd_private.h vm670/kernel/arch/arm/mach-msm/smd_private.h --- vd/kernel/arch/arm/mach-msm/smd_private.h 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/smd_private.h 2011-04-12 06:00:32.000000000 -0400 @@ -166,9 +166,6 @@ void smsm_reset_modem_cont(void); void smd_sleep_exit(void); #ifdef CONFIG_MACH_LGE -/* Make a api to not report a changed SMSM state to other processor - * blue.park@lge.com 2010-04-14 - */ int smsm_change_state_nonotify(uint32_t smsm_entry, uint32_t clear_mask, uint32_t set_mask); #endif diff -urP vd/kernel/arch/arm/mach-msm/smd_rpcrouter_servers.c vm670/kernel/arch/arm/mach-msm/smd_rpcrouter_servers.c --- vd/kernel/arch/arm/mach-msm/smd_rpcrouter_servers.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/smd_rpcrouter_servers.c 2011-04-12 06:00:32.000000000 -0400 @@ -192,8 +192,6 @@ return rc; } -/* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ -/* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_LGE_SUPPORT_AT_CMD static int AT_rpc_send_accepted_void_reply(struct msm_rpc_endpoint *client, uint32_t xid, uint32_t accept_status, struct msm_rpc_server *server) @@ -298,22 +296,6 @@ return rc; } #endif -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ -/* - * Interface to be used to start accepted reply message for a - * request. Returns the buffer pointer to attach any payload. - * Should call msm_rpc_server_send_accepted_reply to complete sending - * reply. Marshaling should be handled by user for the payload. - * - * server: pointer to server data structure - * - * xid: transaction id. Has to be same as the one in request. - * - * accept_status: acceptance status - * - * Return Value: - * pointer to buffer to attach the payload. - */ void *msm_rpc_server_start_accepted_reply(struct msm_rpc_server *server, uint32_t xid, uint32_t accept_status) { @@ -692,8 +674,6 @@ rc = server->rpc_call(server, req1, rc); } -/* LGE_CHANGES_S [hoonylove004@lge.com] 2009-12-29, [VS740] AT CMD */ -/* Factory AT CMD feature added based on EVE */ #ifdef CONFIG_LGE_SUPPORT_AT_CMD switch (rc) { case 0: @@ -704,8 +684,6 @@ break; - /* LGE_CHANGES LGE_FACTORY_AT_COMMANDS */ - // give Error result to ARM9 AT Command case RPC_RETURN_RESULT_OK: case RPC_RETURN_RESULT_ERROR: { @@ -723,7 +701,6 @@ (rc), server); break; - /* LGE_CHANGES LGE_FACTORY_AT_COMMANDS */ default: @@ -749,7 +726,6 @@ msm_rpc_server_send_accepted_reply(server, 0); } #endif -/* LGE_CHANGES_E [hoonylove004@lge.com] 2009-12-29, [VS740] */ free_buffer: xdr_clean_input(&server_xdr); server_xdr.out_index = 0; diff -urP vd/kernel/arch/arm/mach-msm/smd_rpcrouter_xdr.c vm670/kernel/arch/arm/mach-msm/smd_rpcrouter_xdr.c --- vd/kernel/arch/arm/mach-msm/smd_rpcrouter_xdr.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/smd_rpcrouter_xdr.c 2011-04-12 06:00:32.000000000 -0400 @@ -72,11 +72,6 @@ uint32_t temp; #if defined(CONFIG_MACH_MSM7X27_THUNDERC) - /* LGE_CHANGE - * No match oem rapi rpc interface arm9 and arm11 when input(*data) arg is null only - * This code is work around code - * 2010-05-17, taehung.kim@lge.com - */ if (!size || !data) #else if (!size || !data || !*data) diff -urP vd/kernel/arch/arm/mach-msm/socinfo.c vm670/kernel/arch/arm/mach-msm/socinfo.c --- vd/kernel/arch/arm/mach-msm/socinfo.c 2011-02-04 19:00:39.000000000 -0500 +++ vm670/kernel/arch/arm/mach-msm/socinfo.c 2011-04-12 06:00:32.000000000 -0400 @@ -323,7 +323,6 @@ socinfo_get_platform_version()); } -/* LGE_CHANGE [dojip@lge.com] 2010-05-29, pcb version from LS680 */ #ifdef CONFIG_LGE_PCB_VERSION static char hw_pcb_version[10] = "Unknown"; @@ -343,7 +342,6 @@ }; #endif /* CONFIG_LGE_PCB_VERSION */ -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-09-12, prl version */ extern void remote_get_prl_version(int *info); static ssize_t lg_show_prl_version(struct sys_device *dev, @@ -358,9 +356,7 @@ static struct sysdev_attribute prl_ver_file[] = { _SYSDEV_ATTR(prl_version, 0444, lg_show_prl_version, NULL), }; -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-09-12 */ -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-09-28, ftm boot */ extern void remote_get_ftm_boot(int *info); static ssize_t lg_show_ftm_boot(struct sys_device *dev, @@ -375,7 +371,6 @@ static struct sysdev_attribute ftm_boot_file[] = { _SYSDEV_ATTR(ftm_boot, 0444, lg_show_ftm_boot, NULL), }; -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-09-28 */ static struct sysdev_attribute socinfo_v1_files[] = { _SYSDEV_ATTR(id, 0444, socinfo_show_id, NULL), @@ -438,15 +433,11 @@ return; } - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-09-12, prl version */ socinfo_create_files(&soc_sys_device, prl_ver_file, ARRAY_SIZE(prl_ver_file)); - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-09-12 */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-09-28, ftm boot */ socinfo_create_files(&soc_sys_device, ftm_boot_file, ARRAY_SIZE(ftm_boot_file)); - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-09-28 */ #ifdef CONFIG_LGE_PCB_VERSION /* LG_FW_PCB_VERSION */ socinfo_create_files(&soc_sys_device, pcb_ver_file, Only in vd/kernel/Documentation: io-mapping.txt diff -urP vd/kernel/Documentation/IO-mapping.txt vm670/kernel/Documentation/IO-mapping.txt --- vd/kernel/Documentation/IO-mapping.txt 2011-02-04 19:00:35.000000000 -0500 +++ vm670/kernel/Documentation/IO-mapping.txt 2011-04-12 06:00:34.000000000 -0400 @@ -1,208 +1,82 @@ -[ NOTE: The virt_to_bus() and bus_to_virt() functions have been - superseded by the functionality provided by the PCI DMA interface - (see Documentation/PCI/PCI-DMA-mapping.txt). They continue - to be documented below for historical purposes, but new code - must not use them. --davidm 00/12/12 ] - -[ This is a mail message in response to a query on IO mapping, thus the - strange format for a "document" ] - -The AHA-1542 is a bus-master device, and your patch makes the driver give the -controller the physical address of the buffers, which is correct on x86 -(because all bus master devices see the physical memory mappings directly). - -However, on many setups, there are actually _three_ different ways of looking -at memory addresses, and in this case we actually want the third, the -so-called "bus address". - -Essentially, the three ways of addressing memory are (this is "real memory", -that is, normal RAM--see later about other details): - - - CPU untranslated. This is the "physical" address. Physical address - 0 is what the CPU sees when it drives zeroes on the memory bus. - - - CPU translated address. This is the "virtual" address, and is - completely internal to the CPU itself with the CPU doing the appropriate - translations into "CPU untranslated". - - - bus address. This is the address of memory as seen by OTHER devices, - not the CPU. Now, in theory there could be many different bus - addresses, with each device seeing memory in some device-specific way, but - happily most hardware designers aren't actually actively trying to make - things any more complex than necessary, so you can assume that all - external hardware sees the memory the same way. - -Now, on normal PCs the bus address is exactly the same as the physical -address, and things are very simple indeed. However, they are that simple -because the memory and the devices share the same address space, and that is -not generally necessarily true on other PCI/ISA setups. - -Now, just as an example, on the PReP (PowerPC Reference Platform), the -CPU sees a memory map something like this (this is from memory): - - 0-2 GB "real memory" - 2 GB-3 GB "system IO" (inb/out and similar accesses on x86) - 3 GB-4 GB "IO memory" (shared memory over the IO bus) - -Now, that looks simple enough. However, when you look at the same thing from -the viewpoint of the devices, you have the reverse, and the physical memory -address 0 actually shows up as address 2 GB for any IO master. - -So when the CPU wants any bus master to write to physical memory 0, it -has to give the master address 0x80000000 as the memory address. - -So, for example, depending on how the kernel is actually mapped on the -PPC, you can end up with a setup like this: - - physical address: 0 - virtual address: 0xC0000000 - bus address: 0x80000000 - -where all the addresses actually point to the same thing. It's just seen -through different translations.. - -Similarly, on the Alpha, the normal translation is - - physical address: 0 - virtual address: 0xfffffc0000000000 - bus address: 0x40000000 - -(but there are also Alphas where the physical address and the bus address -are the same). - -Anyway, the way to look up all these translations, you do - - #include - - phys_addr = virt_to_phys(virt_addr); - virt_addr = phys_to_virt(phys_addr); - bus_addr = virt_to_bus(virt_addr); - virt_addr = bus_to_virt(bus_addr); - -Now, when do you need these? - -You want the _virtual_ address when you are actually going to access that -pointer from the kernel. So you can have something like this: - - /* - * this is the hardware "mailbox" we use to communicate with - * the controller. The controller sees this directly. - */ - struct mailbox { - __u32 status; - __u32 bufstart; - __u32 buflen; - .. - } mbox; - - unsigned char * retbuffer; - - /* get the address from the controller */ - retbuffer = bus_to_virt(mbox.bufstart); - switch (retbuffer[0]) { - case STATUS_OK: - ... - -on the other hand, you want the bus address when you have a buffer that -you want to give to the controller: - - /* ask the controller to read the sense status into "sense_buffer" */ - mbox.bufstart = virt_to_bus(&sense_buffer); - mbox.buflen = sizeof(sense_buffer); - mbox.status = 0; - notify_controller(&mbox); - -And you generally _never_ want to use the physical address, because you can't -use that from the CPU (the CPU only uses translated virtual addresses), and -you can't use it from the bus master. - -So why do we care about the physical address at all? We do need the physical -address in some cases, it's just not very often in normal code. The physical -address is needed if you use memory mappings, for example, because the -"remap_pfn_range()" mm function wants the physical address of the memory to -be remapped as measured in units of pages, a.k.a. the pfn (the memory -management layer doesn't know about devices outside the CPU, so it -shouldn't need to know about "bus addresses" etc). - -NOTE NOTE NOTE! The above is only one part of the whole equation. The above -only talks about "real memory", that is, CPU memory (RAM). - -There is a completely different type of memory too, and that's the "shared -memory" on the PCI or ISA bus. That's generally not RAM (although in the case -of a video graphics card it can be normal DRAM that is just used for a frame -buffer), but can be things like a packet buffer in a network card etc. - -This memory is called "PCI memory" or "shared memory" or "IO memory" or -whatever, and there is only one way to access it: the readb/writeb and -related functions. You should never take the address of such memory, because -there is really nothing you can do with such an address: it's not -conceptually in the same memory space as "real memory" at all, so you cannot -just dereference a pointer. (Sadly, on x86 it _is_ in the same memory space, -so on x86 it actually works to just deference a pointer, but it's not -portable). - -For such memory, you can do things like - - - reading: - /* - * read first 32 bits from ISA memory at 0xC0000, aka - * C000:0000 in DOS terms - */ - unsigned int signature = isa_readl(0xC0000); - - - remapping and writing: - /* - * remap framebuffer PCI memory area at 0xFC000000, - * size 1MB, so that we can access it: We can directly - * access only the 640k-1MB area, so anything else - * has to be remapped. - */ - char * baseptr = ioremap(0xFC000000, 1024*1024); - - /* write a 'A' to the offset 10 of the area */ - writeb('A',baseptr+10); - - /* unmap when we unload the driver */ - iounmap(baseptr); - - - copying and clearing: - /* get the 6-byte Ethernet address at ISA address E000:0040 */ - memcpy_fromio(kernel_buffer, 0xE0040, 6); - /* write a packet to the driver */ - memcpy_toio(0xE1000, skb->data, skb->len); - /* clear the frame buffer */ - memset_io(0xA0000, 0, 0x10000); - -OK, that just about covers the basics of accessing IO portably. Questions? -Comments? You may think that all the above is overly complex, but one day you -might find yourself with a 500 MHz Alpha in front of you, and then you'll be -happy that your driver works ;) - -Note that kernel versions 2.0.x (and earlier) mistakenly called the -ioremap() function "vremap()". ioremap() is the proper name, but I -didn't think straight when I wrote it originally. People who have to -support both can do something like: - - /* support old naming silliness */ - #if LINUX_VERSION_CODE < 0x020100 - #define ioremap vremap - #define iounmap vfree - #endif - -at the top of their source files, and then they can use the right names -even on 2.0.x systems. - -And the above sounds worse than it really is. Most real drivers really -don't do all that complex things (or rather: the complexity is not so -much in the actual IO accesses as in error handling and timeouts etc). -It's generally not hard to fix drivers, and in many cases the code -actually looks better afterwards: - - unsigned long signature = *(unsigned int *) 0xC0000; - vs - unsigned long signature = readl(0xC0000); +The io_mapping functions in linux/io-mapping.h provide an abstraction for +efficiently mapping small regions of an I/O device to the CPU. The initial +usage is to support the large graphics aperture on 32-bit processors where +ioremap_wc cannot be used to statically map the entire aperture to the CPU +as it would consume too much of the kernel address space. -I think the second version actually is more readable, no? +A mapping object is created during driver initialization using - Linus + struct io_mapping *io_mapping_create_wc(unsigned long base, + unsigned long size) + 'base' is the bus address of the region to be made + mappable, while 'size' indicates how large a mapping region to + enable. Both are in bytes. + + This _wc variant provides a mapping which may only be used + with the io_mapping_map_atomic_wc or io_mapping_map_wc. + +With this mapping object, individual pages can be mapped either atomically +or not, depending on the necessary scheduling environment. Of course, atomic +maps are more efficient: + + void *io_mapping_map_atomic_wc(struct io_mapping *mapping, + unsigned long offset) + + 'offset' is the offset within the defined mapping region. + Accessing addresses beyond the region specified in the + creation function yields undefined results. Using an offset + which is not page aligned yields an undefined result. The + return value points to a single page in CPU address space. + + This _wc variant returns a write-combining map to the + page and may only be used with mappings created by + io_mapping_create_wc + + Note that the task may not sleep while holding this page + mapped. + + void io_mapping_unmap_atomic(void *vaddr) + + 'vaddr' must be the the value returned by the last + io_mapping_map_atomic_wc call. This unmaps the specified + page and allows the task to sleep once again. + +If you need to sleep while holding the lock, you can use the non-atomic +variant, although they may be significantly slower. + + void *io_mapping_map_wc(struct io_mapping *mapping, + unsigned long offset) + + This works like io_mapping_map_atomic_wc except it allows + the task to sleep while holding the page mapped. + + void io_mapping_unmap(void *vaddr) + + This works like io_mapping_unmap_atomic, except it is used + for pages mapped with io_mapping_map_wc. + +At driver close time, the io_mapping object must be freed: + + void io_mapping_free(struct io_mapping *mapping) + +Current Implementation: + +The initial implementation of these functions uses existing mapping +mechanisms and so provides only an abstraction layer and no new +functionality. + +On 64-bit processors, io_mapping_create_wc calls ioremap_wc for the whole +range, creating a permanent kernel-visible mapping to the resource. The +map_atomic and map functions add the requested offset to the base of the +virtual address returned by ioremap_wc. + +On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses +kmap_atomic_pfn to map the specified page in an atomic fashion; +kmap_atomic_pfn isn't really supposed to be used with device pages, but it +provides an efficient mapping for this usage. + +On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and +io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which +performs an IPI to inform all processors about the new mapping. This results +in a significant performance penalty. diff -urP vd/kernel/drivers/bluetooth/bluetooth-power.c vm670/kernel/drivers/bluetooth/bluetooth-power.c --- vd/kernel/drivers/bluetooth/bluetooth-power.c 2011-02-04 19:01:00.000000000 -0500 +++ vm670/kernel/drivers/bluetooth/bluetooth-power.c 2011-04-12 06:00:31.000000000 -0400 @@ -41,7 +41,6 @@ return ret; } #endif -/* LGE_CHANGES_S [taekeun1.kim@lge.com] 2010-06-06, for bt */ #if defined (CONFIG_MACH_LGE) static struct rfkill_ops bluetooth_power_rfkill_ops; #else @@ -55,7 +54,6 @@ struct rfkill *rfkill; int ret; -/* LGE_CHANGES_S [taekeun1.kim@lge.com] 2010-06-06, for bt */ #if defined (CONFIG_MACH_LGE) bluetooth_power_rfkill_ops.set_block = bt_platform_data->bluetooth_toggle_radio; #endif diff -urP vd/kernel/drivers/char/diag/diagchar_core.c vm670/kernel/drivers/char/diag/diagchar_core.c --- vd/kernel/drivers/char/diag/diagchar_core.c 2011-02-04 19:01:00.000000000 -0500 +++ vm670/kernel/drivers/char/diag/diagchar_core.c 2011-04-12 06:00:31.000000000 -0400 @@ -31,12 +31,10 @@ #include "diagmem.h" #include "diagchar.h" #include -/* LGE_CHANGES_S [woonghee@lge.com] 2009-12-29, [VS740] kernel diag service */ #if defined (CONFIG_LGE_DIAGTEST) #include #include #endif -/* LGE_CHANGES_E [woonghee@lge.com] 2009-12-29, [VS740] */ MODULE_DESCRIPTION("Diag Char Driver"); MODULE_LICENSE("GPL v2"); @@ -65,16 +63,12 @@ struct timer_list drain_timer; int timer_in_progress; -/* LGE_CHANGES_S [woonghee@lge.com] 2009-12-29, [VS740] kernel diag service */ #if defined (CONFIG_LGE_DIAGTEST) extern void lgfw_diag_kernel_service_init(int); extern int lg_diag_cmd_dev_register(struct lg_diag_cmd_dev *sdev); extern void lg_diag_cmd_dev_unregister(struct lg_diag_cmd_dev *sdev); #endif -/* LGE_CHANGES_E [woonghee@lge.com] 2009-12-29, [VS740] */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-29, changed static variable */ -//void *buf_hdlc; static void *buf_hdlc; module_param(itemsize, uint, 0); module_param(poolsize, uint, 0); @@ -185,8 +179,6 @@ driver->client_map[i].pid); driver->display_alert = 0; - // LGE_CHAGNE [dojiop.kim@lge.com] 2010-07-02, - // debugging { char comm[sizeof(current->comm)]; printk(KERN_WARNING "Try to open the diag by pid %d (%s)\n", @@ -227,12 +219,6 @@ if (driver) { mutex_lock(&driver->diagchar_mutex); driver->ref_count--; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-28, [LS670] - * exit iff ref_count is zero - */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-07-02, [LS670] - * fix the negative ref count - */ #ifdef CONFIG_MACH_LGE if (0 >= driver->ref_count) { driver->ref_count = 0; @@ -779,7 +765,6 @@ } #if defined (CONFIG_LGE_DIAGTEST) -/* LGE_CHANGES_S [woonghee@lge.com] 2009-12-29, [VS740] kernel diag service */ extern int lg_diag_create_file(struct platform_device *pdev); extern int lg_diag_remove_file(struct platform_device *pdev); @@ -863,12 +848,10 @@ printk(KERN_INFO "diagchar initialized\n"); -/* LGE_CHANGES_S [woonghee@lge.com] 2009-12-29, [VS740] kernel diag service */ #if defined (CONFIG_LGE_DIAGTEST) platform_driver_register(&lg_diag_cmd_driver); lgfw_diag_kernel_service_init((int)driver); #endif -/* LGE_CHANGES_E [woonghee@lge.com] 2009-12-29, [VS740] */ return 0; diff -urP vd/kernel/drivers/char/diag/diagfwd.c vm670/kernel/drivers/char/diag/diagfwd.c --- vd/kernel/drivers/char/diag/diagfwd.c 2011-02-04 19:01:00.000000000 -0500 +++ vm670/kernel/drivers/char/diag/diagfwd.c 2011-04-12 06:00:31.000000000 -0400 @@ -94,10 +94,8 @@ driver->usb_write_ptr_svc = (struct diag_request *) (diagmem_alloc(driver, sizeof(struct diag_request), POOL_TYPE_USB_STRUCT)); - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-07-14, diagmem_alloc bug fix */ if(!driver->usb_write_ptr_svc) return -1; - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-07-14, diagmem_alloc bug fix */ driver->usb_write_ptr_svc->length = driver->used; driver->usb_write_ptr_svc->buf = buf; err = diag_write(driver->usb_write_ptr_svc); @@ -465,7 +463,6 @@ hdlc.dest_idx = 0; hdlc.escaping = 0; -/* LGE_CHANGES_S [kyuhyung.lee@lge.com] 2010.02.05*/ /* - In the Radio test process, APP will send packet with double 0x7E tail. */ #if defined (CONFIG_LGE_DIAGTEST) @@ -539,7 +536,6 @@ #endif } #endif -/* LGE_CHANGES_E [kyuhyung.lee@lge.com] 2010.02.05*/ } diff -urP vd/kernel/drivers/char/diag/lg_diag_kernel_service.c vm670/kernel/drivers/char/diag/lg_diag_kernel_service.c --- vd/kernel/drivers/char/diag/lg_diag_kernel_service.c 2011-02-04 19:01:00.000000000 -0500 +++ vm670/kernel/drivers/char/diag/lg_diag_kernel_service.c 2011-04-12 06:00:31.000000000 -0400 @@ -20,7 +20,7 @@ #include "diagchar.h" #include "lg_diag_kernel_service.h" #include -#include // sungkwang2.lee@lge.com +#include #include #include @@ -31,12 +31,8 @@ PACK (void *)LGF_KeyPress (PACK (void *)req_pkt_ptr, uint16 pkt_len ); PACK (void *)LGF_ScreenShot (PACK (void *)req_pkt_ptr, uint16 pkt_len ); PACK (void *)LGF_Udm (PACK (void *)req_pkt_ptr, uint16 pkt_len ); -/* LGE_CHANGE_S [jihoon.lee@lge.com] 2010-02-07, LG_FW_MTC */ PACK (void *)LGF_MTCProcess (PACK (void *)req_pkt_ptr, uint16 pkt_len ); -/* LGE_CHANGE_E [jihoon.lee@lge.com] 2010-02-07, LG_FW_MTC */ -/* LGE_CHANGE_S [yongman.kwon@lge.com] 2010-03-05, LG_FW_DIAG_SCREEN_CAPTURE */ PACK (void *)LGF_PartScreenShot (PACK (void *)req_pkt_ptr, uint16 pkt_len ); -/* LGE_CHANGE_S [yongman.kwon@lge.com] 2010-03-05, LG_FW_DIAG_SCREEN_CAPTURE */ void diagpkt_commit (PACK(void *)pkt); @@ -47,10 +43,8 @@ {DIAG_HS_KEY_F, DIAG_HS_KEY_F, LGF_KeyPress}, {DIAG_LGF_SCREEN_SHOT_F, DIAG_LGF_SCREEN_SHOT_F, LGF_ScreenShot}, {DIAG_UDM_SMS_MODE, DIAG_UDM_SMS_MODE, LGF_Udm}, -/* LGE_CHANGE_S [jihoon.lee@lge.com] 2010-02-07, LG_FW_MTC */ {DIAG_MTC_F, DIAG_MTC_F, LGF_MTCProcess}, {DIAG_LGF_SCREEN_PARTSHOT_F, DIAG_LGF_SCREEN_PARTSHOT_F, LGF_PartScreenShot}, -/* LGE_CHANGE_E [jihoon.lee@lge.com] 2010-02-07, LG_FW_MTC */ }; /* This is the user dispatch table. */ @@ -69,12 +63,8 @@ void* lg_diag_req_pkt_ptr; -/* LGE_CHANGES_S, [dongp.kim@lge.com], 2010-01-10, - * - */ wlan_status lg_diag_req_wlan_status={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/* LGE_CHANGES_E, [dongp.kim@lge.com] */ -udm_sms_status_new lg_diag_req_udm_sms_status_new; // sungkwang2.lee@lge.com +udm_sms_status_new lg_diag_req_udm_sms_status_new; uint16 lg_diag_req_pkt_length; uint16 lg_diag_rsp_pkt_length; char lg_diag_cmd_line[LG_DIAG_CMD_LINE_LEN]; @@ -223,9 +213,6 @@ return read_len; } -/* LGE_CHANGES_S, [dongp.kim@lge.com], 2010-01-10, - * - */ static ssize_t read_wlan_status(struct device *dev, struct device_attribute *attr, char *buf) { @@ -292,7 +279,6 @@ return size; } -//-> 2010.06.22 inserted by sungkwang2.lee@lge.com static ssize_t read_sms_status_new(struct device *dev, struct device_attribute *attr, char *buf) { @@ -308,24 +294,16 @@ { int udm_sms_statu_len = sizeof(udm_sms_status_new); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-14 memset((void*)&lg_diag_req_udm_sms_status_new, 0, sizeof(udm_sms_status_new)); memcpy((void*)&lg_diag_req_udm_sms_status_new, buf, udm_sms_statu_len); return udm_sms_statu_len; } -//<- 2010.06.22 inserted by sungkwang2.lee@lge.com -/* LGE_CHANGES_E, [dongp.kim@lge.com], 2010-01-10 */ static DEVICE_ATTR(cmd_pkt, S_IRUGO | S_IWUSR,read_cmd_pkt, write_cmd_pkt); static DEVICE_ATTR(length, S_IRUGO | S_IWUSR,read_cmd_pkt_length, write_cmd_pkt_length); -/* LGE_CHANGES_S, [dongp.kim@lge.com], 2010-01-10, - * - */ static DEVICE_ATTR(wlan_status, S_IRUGO | S_IWUSR,read_wlan_status, write_wlan_status); -/* LGE_CHANGES_E, [dongp.kim@lge.com], 2010-01-10 */ -//-> 2010.06.22 inserted by sungkwang2.lee@lge.com static DEVICE_ATTR(get_sms, S_IRUGO | S_IWUSR,read_sms_status_new, write_sms_status_new); static DEVICE_ATTR(set_sms, S_IRUGO | S_IWUSR,read_sms_status_new, write_sms_status_new); @@ -334,7 +312,6 @@ static DEVICE_ATTR(rsp_set_sms, S_IRUGO | S_IWUSR,read_sms_status_new, write_sms_status_new); static DEVICE_ATTR(rsp_sms_status, S_IRUGO | S_IWUSR,read_sms_status_new, write_sms_status_new); -//<- 2010.06.22 inserted by sungkwang2.lee@lge.com static DEVICE_ATTR(mtc_cmd_pkt, S_IRUGO | S_IWUSR,read_mtc_cmd_pkt, NULL); static DEVICE_ATTR(mtc_length, S_IRUGO | S_IWUSR,read_mtc_cmd_pkt_length, NULL); @@ -355,9 +332,6 @@ device_remove_file(&pdev->dev, &dev_attr_length); return ret; } - /* LGE_CHANGES_S, [dongp.kim@lge.com], 2010-01-10, - * - */ ret = device_create_file(&pdev->dev, &dev_attr_wlan_status); if (ret) { @@ -365,11 +339,7 @@ device_remove_file(&pdev->dev, &dev_attr_wlan_status); return ret; } - /* LGE_CHANGES_E, [dongp.kim@lge.com], 2010-01-10, - * - */ - //-> 2010.06.22 inserted by sungkwang2.lee@lge.com ret = device_create_file(&pdev->dev, &dev_attr_sms_status); if (ret) { printk( KERN_DEBUG "LG DIAG : diag device file3 create fail\n"); @@ -412,7 +382,6 @@ return ret; } - //<- 2010.06.22 inserted by sungkwang2.lee@lge.com ret = device_create_file(&pdev->dev, &dev_attr_mtc_cmd_pkt); if (ret) { printk( KERN_DEBUG "LG DIAG : diag device file create fail\n"); @@ -433,21 +402,13 @@ int lg_diag_remove_file(struct platform_device *pdev) { device_remove_file(&pdev->dev, &dev_attr_cmd_pkt); - /* LGE_CHANGES_S [dongp.kim@lge.com], 2010-01-10, - * - */ device_remove_file(&pdev->dev, &dev_attr_wlan_status); - /* LGE_CHANGES_E, [dongp.kim@lge.com], 2010-01-10, - * - */ - //-> 2010.06.22 inserted by sungkwang2.lee@lge.com device_remove_file(&pdev->dev, &dev_attr_sms_status); device_remove_file(&pdev->dev, &dev_attr_get_sms); device_remove_file(&pdev->dev, &dev_attr_set_sms); device_remove_file(&pdev->dev, &dev_attr_rsp_sms_status); device_remove_file(&pdev->dev, &dev_attr_rsp_get_sms); device_remove_file(&pdev->dev, &dev_attr_rsp_set_sms); - //<- 2010.06.22 inserted by sungkwang2.lee@lge.com device_remove_file(&pdev->dev, &dev_attr_length); device_remove_file(&pdev->dev, &dev_attr_mtc_cmd_pkt); @@ -471,8 +432,6 @@ NULL, }; - // BEGIN: eternalblue@lge.com.2009-10-23 - // 0001794: [ARM9] ATS AT CMD added fd = sys_open((const char __user *) "/system/bin/lg_diag_app", O_RDONLY ,0); if (fd < 0) { printk(KERN_ERR "LG DIAG: can not open /system/bin/lg_diag_app\n"); @@ -481,7 +440,6 @@ printk(KERN_DEBUG "LG DIAG: execute /system/bin/lg_diag_app\n"); sys_close(fd); } - // END: eternalblue@lge.com.2009-10-23 printk(KERN_INFO "LG DIAG execute - %s\n", argv[0]); ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); @@ -540,7 +498,6 @@ int err = -1; struct mtc_data_buffer *mb; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-29, check the usb connection */ if (check_usb && !driver->usb_connected) { /* Drop the diag payload */ return -EIO; @@ -581,7 +538,6 @@ buf_hdlc = diagmem_alloc(driver, HDLC_OUT_BUF_SIZE, POOL_TYPE_HDLC); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-29, null check */ if (NULL == buf_hdlc) { mutex_unlock(&driver->diagchar_mutex); return -1; @@ -592,12 +548,10 @@ (diagmem_alloc(driver, sizeof(struct diag_request), POOL_TYPE_USB_STRUCT)); - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-07-14, diagmem_alloc bug fix */ if(NULL == driver->usb_write_ptr_svc) { mutex_unlock(&driver->diagchar_mutex); return -1; } - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-07-14, diagmem_alloc bug fix */ /* TODO: check the length, overflow? */ memcpy(buf_hdlc, mb->data, mb->data_length); @@ -607,9 +561,6 @@ err = diag_write(driver->usb_write_ptr_svc); if (err) { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-06, - * should free the usb_write_ptr_svc also - */ diagmem_free(driver, driver->usb_write_ptr_svc, POOL_TYPE_USB_STRUCT); /* Free the buffer right away if write failed */ @@ -623,7 +574,6 @@ return err; } -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-30, [LS670] no usb check for registration */ int diagchar_ioctl(unsigned int iocmd, unsigned long ioarg) { return __diagchar_ioctl(iocmd, ioarg, 1); @@ -771,24 +721,20 @@ if (NULL == buf_hdlc) { buf_hdlc = diagmem_alloc(driver, HDLC_OUT_BUF_SIZE, POOL_TYPE_HDLC); - /* LGE_CHANGE_S [sm.shim@lge.com] 2010-07-14, diagmem_alloc bug fix */ if (NULL == buf_hdlc) { ret = -ENOMEM; goto fail_free_hdlc; } - /* LGE_CHANGE_E [sm.shim@lge.com] 2010-07-14, diagmem_alloc bug fix */ } if (HDLC_OUT_BUF_SIZE - driver->used <= payload_size + 7) { driver->usb_write_ptr_svc = (struct diag_request *) (diagmem_alloc(driver, sizeof(struct diag_request), POOL_TYPE_USB_STRUCT)); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-06-06 */ if (NULL == driver->usb_write_ptr_svc) { ret = -EIO; goto fail_free_usb_struct; } - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-06-06 */ driver->usb_write_ptr_svc->buf = buf_hdlc; driver->usb_write_ptr_svc->length = driver->used; err = diag_write(driver->usb_write_ptr_svc); @@ -813,16 +759,7 @@ } enc.dest = buf_hdlc + driver->used; - /* LG_FW khlee 2010.02.01 - to support screen capture, - * In that case, it has too many 'ESC_CHAR' - */ - /* LGE_CHANGES_S [kyuhyung.lee@lge.com] - #ifdef LG_FW_DIAG_SCREEN_CAPTURE */ enc.dest_last = (void *)(buf_hdlc + HDLC_OUT_BUF_SIZE -1); - /* LG_CHANGES_E -#else */ - /* LGE_COMMENT_OUT - enc.dest_last = (void *)(buf_hdlc + driver->used + payload_size + 7); - #endif - */ diag_hdlc_encode(&send, &enc); #ifdef LG_DIAG_DEBUG @@ -845,12 +782,10 @@ driver->usb_write_ptr_svc = (struct diag_request *) (diagmem_alloc(driver, sizeof(struct diag_request), POOL_TYPE_USB_STRUCT)); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-06-06 */ if (driver->usb_write_ptr_svc == NULL) { ret = -EIO; goto fail_free_usb_struct; } - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-06-06 */ driver->usb_write_ptr_svc->buf = buf_hdlc; driver->usb_write_ptr_svc->length = driver->used; err = diag_write(driver->usb_write_ptr_svc); @@ -894,12 +829,10 @@ driver->usb_write_ptr_svc = (struct diag_request *) (diagmem_alloc(driver, sizeof(struct diag_request), POOL_TYPE_USB_STRUCT)); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-06-06 */ if (NULL == driver->usb_write_ptr_svc) { ret = -EIO; goto fail_free_usb_struct; } - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-06-06 */ driver->usb_write_ptr_svc->buf = buf_hdlc; driver->usb_write_ptr_svc->length = driver->used; err = diag_write(driver->usb_write_ptr_svc); @@ -921,10 +854,8 @@ diagmem_free(driver, buf_copy, POOL_TYPE_COPY); return 0; - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-06-06 */ fail_free_usb_struct: diagmem_free(driver, buf_hdlc, POOL_TYPE_HDLC); - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-06-06 */ fail_free_hdlc: diagmem_free(driver, buf_copy, POOL_TYPE_COPY); mutex_unlock(&driver->diagchar_mutex); @@ -994,9 +925,6 @@ } bind_req_send.params = bind_req; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-30, [LS670] - * no usb check for registration - */ if(__diagchar_ioctl(DIAG_IOCTL_COMMAND_REG, (unsigned long)&bind_req_send, 0)) { printk(KERN_ERR "LG DIAG: diagpkt_tbl_reg: DeviceIOControl failed. \n"); } @@ -1041,15 +969,11 @@ while(rsp_len > 0) { if(rsp_len > DIAGPKT_RSP_MAX) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-28 - // allocate if not allocated if (NULL == temp) { temp = (unsigned char*) kmalloc( (int)DIAG_REST_OF_DATA_POS + DIAGPKT_RSP_MAX, GFP_KERNEL); } - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-22, - // null check if (NULL == temp) { printk(KERN_ERR "LG DIAG: %s(): failed to " "allocate memory\n", @@ -1084,22 +1008,16 @@ send_index++; rsp_len -= DIAGPKT_RSP_MAX; kfree(temp); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-22, - // set the temp as null temp = NULL; msleep(100); } else { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-28 - // allocate if not allocated if (NULL == temp) { temp = (unsigned char*) kmalloc( (int)DIAG_REST_OF_DATA_POS + (int)(rsp_len), GFP_KERNEL); } - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-22, - // null check if (NULL == temp) { printk(KERN_ERR "LG DIAG: %s(): failed to " "allocate memory\n", diff -urP vd/kernel/drivers/char/diag/lg_diag_kernel_service.h vm670/kernel/drivers/char/diag/lg_diag_kernel_service.h --- vd/kernel/drivers/char/diag/lg_diag_kernel_service.h 2011-02-04 19:01:00.000000000 -0500 +++ vm670/kernel/drivers/char/diag/lg_diag_kernel_service.h 2011-04-12 06:00:31.000000000 -0400 @@ -105,13 +105,11 @@ unsigned int size; /* Size of usable buffer (diagpkt_q_type->pkt) */ unsigned int length; /* Size of packet */ -/* LGE_CHANGES_S [kyuhyung.lee@lge.com] 2010-02-08, LG_FW_DIAG_SCREEN_CAPTURE */ #if defined (CONFIG_MACH_MSM7X27_THUNDERC) || defined (LG_FW_DIAG_SCREEN_CAPTURE) || defined (LG_FW_MTC) byte pkt[4096]; /*LG_FW size up*/ #else byte pkt[1024]; /* Sized by 'length' field. */ #endif -/* LGE_CHANGES_E [kyuhyung.lee@lge.com] 2010-02-08, LG_FW_DIAG_SCREEN_CAPTURE */ } diagpkt_rsp_type; typedef void (*diag_cmd_rsp) (const byte *rsp, unsigned int length, void *param); diff -urP vd/kernel/drivers/char/mem.c vm670/kernel/drivers/char/mem.c --- vd/kernel/drivers/char/mem.c 2011-02-04 19:01:01.000000000 -0500 +++ vm670/kernel/drivers/char/mem.c 2011-04-12 06:00:31.000000000 -0400 @@ -901,8 +901,6 @@ [7] = { "full", 0666, &full_fops, NULL }, [8] = { "random", 0666, &random_fops, NULL }, [9] = { "urandom", 0666, &urandom_fops, NULL }, - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-15, permission modified - //[11] = { "kmsg", 0, &kmsg_fops, NULL }, [11] = { "kmsg", 0666, &kmsg_fops, NULL }, #ifdef CONFIG_CRASH_DUMP [12] = { "oldmem", 0, &oldmem_fops, NULL }, diff -urP vd/kernel/drivers/cpufreq/Kconfig vm670/kernel/drivers/cpufreq/Kconfig --- vd/kernel/drivers/cpufreq/Kconfig 2011-03-31 02:01:55.876997813 -0400 +++ vm670/kernel/drivers/cpufreq/Kconfig 2011-04-13 22:38:42.766209622 -0400 @@ -180,7 +180,7 @@ tristate "'interactive' cpufreq policy governor" help 'interactive' - This driver adds a dynamic cpufreq policy governor. - Designed for low latency burst workloads. Scaling it done when coming + Designed for low latency burst workloads. Scaling is done when coming out of idle instead of polling. config CPU_FREQ_GOV_CONSERVATIVE diff -urP vd/kernel/drivers/gpu/msm/kgsl.c vm670/kernel/drivers/gpu/msm/kgsl.c --- vd/kernel/drivers/gpu/msm/kgsl.c 2011-02-04 19:01:05.000000000 -0500 +++ vm670/kernel/drivers/gpu/msm/kgsl.c 2011-04-12 06:00:31.000000000 -0400 @@ -1347,13 +1347,6 @@ return result; } -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-29, google patch -// The mmap(2) functionality of kgsl is no longer used, and it had a -// bug that would crash the kernel when mmap(2) was called with -// "odd" parameters. So we have removed the mmap functionality. -// If for some reason in the future you want to resurrect this, -// make sure memdesc is properly initialized in all paths through -// the kgsl_mmap() routine. #if 0 static int kgsl_mmap(struct file *file, struct vm_area_struct *vma) { @@ -1406,14 +1399,6 @@ .owner = THIS_MODULE, .release = kgsl_release, .open = kgsl_open, - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-29, google patch - // The mmap(2) functionality of kgsl is no longer used, and it had a - // bug that would crash the kernel when mmap(2) was called with - // "odd" parameters. So we have removed the mmap functionality. - // If for some reason in the future you want to resurrect this, - // make sure memdesc is properly initialized in all paths through - // the kgsl_mmap() routine. - //.mmap = kgsl_mmap, .unlocked_ioctl = kgsl_ioctl, }; diff -urP vd/kernel/drivers/input/misc/gpio_matrix.c vm670/kernel/drivers/input/misc/gpio_matrix.c --- vd/kernel/drivers/input/misc/gpio_matrix.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/misc/gpio_matrix.c 2011-04-12 06:00:31.000000000 -0400 @@ -34,7 +34,6 @@ unsigned long keys_pressed[0]; }; -/* LGE_CHANGE [james.jang@lge.com] 2010-06-12 */ #if defined(CONFIG_LGE_DIAGTEST) /* for SLATE */ extern void mtc_send_key_log_packet(unsigned long keycode, unsigned long state); @@ -135,7 +134,6 @@ mi->input_gpios[in], pressed); input_report_key(kp->input_devs->dev[dev], keycode, pressed); -/* LGE_CHANGE [james.jang@lge.com] 2010-06-12 */ #if defined(CONFIG_LGE_DIAGTEST) mtc_send_key_log_packet((unsigned long)keycode, (unsigned long)!pressed); ats_eta_mtc_key_logging((int)keycode, (char)pressed); diff -urP vd/kernel/drivers/input/sensor/akm8973.c vm670/kernel/drivers/input/sensor/akm8973.c --- vd/kernel/drivers/input/sensor/akm8973.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/sensor/akm8973.c 2011-04-12 06:00:31.000000000 -0400 @@ -3,7 +3,7 @@ * Copyright (C) 2007-2008 HTC Corporation. * Author: Hou-Kun Chen * - * rework by hyesung.shin@lge.com on 2010-1-21, for + * rework by hyesung.shin on 2010-1-21, for * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -73,21 +73,19 @@ static atomic_t p_flag; static int first_start = 0 ; -static int powerDownOrOff=0; //For used current //diyu@lge.com +static int powerDownOrOff=0; static int akm8973_set_vreg_check= 0; //static int failure_count = 0; static short akmd_delay = 0; -/* LGE_CHANGE_S [ey.cho@lge.com] 2010-02-22, for TestMode */ short pitch, roll; -/* LGE_CHANGE_E [ey.cho@lge.com] 2010-02-22*/ #if defined(CONFIG_PM) static atomic_t suspend_flag = ATOMIC_INIT(0); #endif -static char akecs_power_mode; /* LGE_CHANGE [hyesung.shin@lge.com] on 2010-2-22, for */ +static char akecs_power_mode; //static struct akm8973_platform_data *pdata; @@ -113,7 +111,6 @@ static DEVICE_ATTR(name, S_IWUSR | S_IRUGO, name##_show, name##_store) config_ctrl_reg(ms1, AKECS_REG_MS1); -/* LGE_CHANGE_S [ey.cho@lge.com] 2010-02-22, for TestMode */ static ssize_t p_show(struct device *dev, struct device_attribute *attr, char *buf) { return sprintf(buf, "%d\n", pitch); @@ -129,7 +126,6 @@ static DEVICE_ATTR(roll, S_IRUGO | S_IWUSR, r_show, NULL); -/* LGE_CHANGE_E [ey.cho@lge.com] 2010-02-22*/ static int AKI2C_RxData(char *rxData, int length) { @@ -326,7 +322,6 @@ return ret; } -//LGE_CHANGE_S diyu@lge.com. To add for used current static int AKECS_PowerOff(void) { //char buffer[2]; @@ -341,7 +336,6 @@ return 0; } -//LGE_CHANGE_E diyu@lge.com static int AKECS_StartE2PRead(void) @@ -425,10 +419,8 @@ } input_sync(data->input_dev); -/* LGE_CHANGE_S [ey.cho@lge.com] 2010-02-22, for TestMode */ pitch = rbuf[1]; roll = rbuf[2]; -/* LGE_CHANGE_E [ey.cho@lge.com] 2010-02-22*/ } static int AKECS_GetOpenStatus(void) @@ -609,7 +601,7 @@ char msg[RBUFF_SIZE + 1], rwbuf[16]; int ret = -1, status; short mode, value[13], delay; -#if 1 /* LGE_CHANGE [hyesung.shin@lge.com] on 2010-1-21, for */ +#if 1 char accel_dev_path[30]; int fdata_sign[7]; s16 *alayout; @@ -686,7 +678,6 @@ case ECS_IOCTL_GET_DELAY: delay = akmd_delay; break; -/* LGE_CHANGE_S [hyesung.shin@lge.com] on 2010-1-21, for [start] */ case ECS_IOCTL_GET_ACCEL_PATH: break; case ECS_IOCTL_ACCEL_INIT: @@ -695,7 +686,6 @@ break; case ECS_IOCTL_GET_HLAYOUT_INIO: break; -/* LGE_CHANGE_E [hyesung.shin@lge.com] on 2010-1-21, for [end] */ default: return -ENOTTY; @@ -720,7 +710,6 @@ return -EFAULT; break; -/* LGE_CHANGE_S [hyesung.shin@lge.com] on 2010-1-21, for [start] */ case ECS_IOCTL_GET_ACCEL_PATH: sprintf(accel_dev_path, "/dev/%s", ecom_pdata->accelerator_name); if (copy_to_user(argp, accel_dev_path, sizeof(accel_dev_path))) @@ -756,7 +745,6 @@ if (copy_to_user(argp, h_layout, sizeof(h_layout))) return -EFAULT; break; -/* LGE_CHANGE_E [hyesung.shin@lge.com] on 2010-1-21, for [end] */ default: break; @@ -998,10 +986,8 @@ } err = device_create_file(&client->dev, &dev_attr_ms1); -/* LGE_CHANGE_S [ey.cho@lge.com] 2010-02-22, for TestMode */ err = device_create_file(&client->dev, &dev_attr_pitch); err = device_create_file(&client->dev, &dev_attr_roll); -/* LGE_CHANGE_E [ey.cho@lge.com] 2010-02-22*/ return 0; diff -urP vd/kernel/drivers/input/sensor/ami304.c vm670/kernel/drivers/input/sensor/ami304.c --- vd/kernel/drivers/input/sensor/ami304.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/sensor/ami304.c 2011-04-12 06:00:31.000000000 -0400 @@ -29,9 +29,6 @@ #include -#define AMI304_DRV_NAME "ami304" -#define DRIVER_VERSION "1.0.11.19" - #define AMI304_DEBUG_PRINT 1 #define AMI304_ERROR_PRINT 1 @@ -72,6 +69,7 @@ #endif static struct i2c_client *ami304_i2c_client = NULL; +static int AMI304_Init(int mode); #if defined(CONFIG_HAS_EARLYSUSPEND) #include @@ -88,45 +86,41 @@ static int ami304_resume(struct device *device); #endif +#define AMI_ORIENTATION_SENSOR 0 +#define AMI_MAGNETIC_FIELD_SENSOR 1 +#define AMI_ACCELEROMETER_SENSOR 2 + /* Addresses to scan */ static unsigned short normal_i2c[] = { AMI304_I2C_ADDRESS, I2C_CLIENT_END }; /* Insmod parameters */ -I2C_CLIENT_INSMOD; +I2C_CLIENT_INSMOD_1(ami304); struct _ami304_data { rwlock_t lock; - int chipset; int mode; int rate; volatile int updated; } ami304_data; -typedef struct { - int x; - int y; - int z; -}ami304_vec_t; - -typedef struct { - unsigned long pedo_step; - unsigned long pedo_time; - int pedo_stat; -}ami304_pedo_t; - struct _ami304mid_data { rwlock_t datalock; rwlock_t ctrllock; - int controldata[AMI304_CB_LENGTH]; - int pedometerparam[AMI304_PD_LENGTH]; + int controldata[10]; int yaw; int roll; int pitch; - ami304_vec_t nm; - ami304_vec_t na; - ami304_vec_t gyro; - ami304_pedo_t pedo; - int status; + int nmx; + int nmy; + int nmz; + int nax; + int nay; + int naz; + int mag_status; +#if defined(AMI304_MAG_OFFSET_ADJ) + u8 coar[3]; + u8 fine[3]; +#endif } ami304mid_data; struct ami304_i2c_data { @@ -138,182 +132,514 @@ static atomic_t hal_open_count; static atomic_t daemon_open_count; -static u8 i2c_read_addr, i2c_read_len; +static atomic_t o_status; +static atomic_t m_status; +static atomic_t a_status; + +#if defined(AMI304_MAG_OFFSET_ADJ) +#define OFFX_REG 0x6c +#define OFFY_REG 0x72 +#define OFFZ_REG 0x78 + +#define SEH_SEQ_1_0 0 +#define SEH_SEQ_1_1 1 +#define SEH_SEQ_1_2 2 +#define SEH_SEQ_2_0 3 +#define SEH_SEQ_2_1 4 +#define SEH_SEQ_END 5 +#define SEH_SEQ_ERR 6 + +#define SEH_OVER_MIN 100 +#define SEH_OVER_MAX 3950 + +static void AMI304_ChageWindowSeq1_0(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out); +static void AMI304_ChageWindowSeq1_1(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out); +static void AMI304_ChageWindowSeq1_2(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out); +static void AMI304_ChageWindowSeq2_0(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out); +static void AMI304_ChageWindowSeq2_1(u8 axis , u8 seq[][2], s8 *fine,s16 *mea); static int AMI304_I2c_Read(u8 regaddr, u8 *buf, u8 buf_len) { int res = 0; res = i2c_master_send(ami304_i2c_client, ®addr, 1); - if (res <= 0) { - printk(KERN_ERR "%s AMI304_I2c_Read error res = %d\n", __func__, res); - return res; - } + if (res<=0) goto exit_AMI304_I2c_Read; res = i2c_master_recv(ami304_i2c_client, buf, buf_len); - if (res <= 0) { - printk(KERN_ERR "%s AMI304_I2c_Read error res = %d\n", __func__, res); - return res; - } + if (res<=0) goto exit_AMI304_I2c_Read; + + return res; + +exit_AMI304_I2c_Read: + return res; +} + +static int AMI304_I2c_Read_W(u8 regaddr, u16 *buf, u8 buf_len) +{ + int res; + + res = AMI304_I2c_Read(regaddr,(u8*)&buf[0],buf_len*2); + if (res<=0) goto exit_AMI304_I2c_Read_W; return res; + +exit_AMI304_I2c_Read_W: + return res; } static int AMI304_I2c_Write(u8 reg_adr, u8 *buf, u8 buf_len) { int res = 0; - u8 databuf[64]; - - // LGE_CHANGE [dojip.kim@lge.com] 2010-10-05, check the buf_len - if ( (buf_len+2) > 64) - return -EINVAL; + u8 databuf[buf_len+2]; databuf[0] = reg_adr; memcpy(&databuf[1], buf, buf_len); databuf[buf_len+1] = 0x00; res = i2c_master_send(ami304_i2c_client, databuf, buf_len+1); - if (res <= 0) - printk(KERN_ERR "%s AMI304_I2c_Write error res = %d\n", __func__, res); + if (res<=0) goto exit_AMI304_I2c_Write; + return res; + +exit_AMI304_I2c_Write: + return res; +} + +static int AMI304_I2c_Write_W(u8 reg_adr, u16 *buf, u8 buf_len) +{ + int res; + + res = AMI304_I2c_Write(reg_adr,(u8 *)&buf[0],2*buf_len); + if (res<=0) goto exit_AMI304_I2c_Write_W; + + return res; + +exit_AMI304_I2c_Write_W: + return res; +} + +static int AMI304_GetOffset(u8 *coar, u8 *fine) +{ + + int res = 0; + u16 wk[3]; + + res = AMI304_I2c_Read_W(OFFX_REG,&wk[0],1); + if (res<=0) goto exit_AMI304_GetOffset; + + res = AMI304_I2c_Read_W(OFFY_REG,&wk[1],1); + if (res<=0) goto exit_AMI304_GetOffset; + + res = AMI304_I2c_Read_W(OFFZ_REG,&wk[2],1); + if (res<=0) goto exit_AMI304_GetOffset; + + coar[0] = (wk[0] & 0x01c0) >> 6; + coar[1] = (wk[1] & 0x01c0) >> 6; + coar[2] = (wk[2] & 0x01c0) >> 6; + + fine[0] = (wk[0] & 0x003f); + fine[1] = (wk[1] & 0x003f); + fine[2] = (wk[2] & 0x003f); + +#if defined(AMI304_TEST) + printk(KERN_INFO "AMI304:%s Read Magnetic Offset : x=%d y=%d z=%d\n",__FUNCTION__, wk[0], wk[1], wk[2]); +#endif + +exit_AMI304_GetOffset: + + return res; +} + +static int AMI304_SetOffset(u8 *coar,u8 *fine) +{ + int res =0; + u16 wk[3]; + + wk[0] = ( (u16)coar[0]<< 6) | (u16)fine[0]; + wk[1] = ( (u16)coar[1]<< 6) | (u16)fine[1]; + wk[2] = ( (u16)coar[2]<< 6) | (u16)fine[2]; + + /* x */ + res = AMI304_I2c_Write_W(OFFX_REG,&wk[0],1); + if (res<=0) goto exit_AMI304_SetOffset; + + /* y */ + res = AMI304_I2c_Write_W(OFFY_REG,&wk[1],1); + if (res<=0) goto exit_AMI304_SetOffset; + + /* z */ + res = AMI304_I2c_Write_W(OFFZ_REG,&wk[2],1); + if (res<=0) goto exit_AMI304_SetOffset; + +#if defined(AMI304_TEST) + printk(KERN_INFO "AMI304:%s Set Magnetic Offset : x=%d y=%d z=%d\n",__FUNCTION__, wk[0], wk[1], wk[2]); +#endif + +exit_AMI304_SetOffset: + + return res; +} + +static void AMI304_ChageWindowSeq1_0(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out) +{ + if (mea[axis] < SEH_OVER_MIN ) { + seq[axis][0] = SEH_SEQ_1_1; + seq[axis][1] = 0; + } else if ((SEH_OVER_MIN < mea[axis]) && (mea[axis] < SEH_OVER_MAX)) { + AMI304_ChageWindowSeq2_0(axis,seq,coar,fine,mea, fine_out); + } else { + seq[axis][0] = SEH_SEQ_1_2; + seq[axis][1] = 0; + } +} + +static void AMI304_ChageWindowSeq1_1(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out) +{ + static u16 mea_old[6]; + + if (seq[axis][1] == 0) + { + coar[axis] +=1; + seq[axis][1] = 1; + + mea_old[axis] = mea[axis]; + + } else { + + if ((mea_old[axis] < 2048 ) && (mea[axis] > SEH_OVER_MAX)) + { + AMI304_ChageWindowSeq2_1(axis,seq,fine,mea); + } else if (mea[axis] < SEH_OVER_MIN ) + { + coar[axis] +=1; + } else { + AMI304_ChageWindowSeq2_0(axis,seq,coar,fine,mea, fine_out); + } + } + // check coarse + if (( coar[axis] < 0 ) || ( 7 < coar[axis])) + { + seq[axis][0] = SEH_SEQ_ERR; + seq[axis][1] = 1; + } +} + +static void AMI304_ChageWindowSeq1_2(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out) +{ + if (seq[axis][1] == 0) + { + coar[axis] -=1; + seq[axis][1] = 1; + + } else { + + if (mea[axis] < SEH_OVER_MAX) + { + AMI304_ChageWindowSeq2_0(axis,seq,coar,fine,mea, fine_out); + } else { // SEH_OVER_MAX < mea[axis] + coar[axis] -=1; + } + + } + // check coarse + if (( coar[axis] < 0 ) || ( 7 < coar[axis])) + { + seq[axis][0] = SEH_SEQ_ERR; + seq[axis][1] = 1; + } +} + +static void AMI304_ChageWindowSeq2_0(u8 axis , u8 seq[][2], s8 *coar, s8 *fine, s16 *mea, u16 *fine_out) +{ + + //float wk; + int wk, wk2; + s8 wk_fine; + + //wk = (float)(mea[axis] - 2048 ) / fine_out[axis]; + wk = (mea[axis] - 2048 ) / fine_out[axis]; + wk2 = (mea[axis] - 2048 ) % fine_out[axis]; + + if ( wk > 0 ) { + //wk_fine = fine[axis] + (s16)(wk + 0.5); + if(wk2*2 >= fine_out[axis]) + wk_fine = fine[axis] + wk; + else + wk_fine = fine[axis] + wk+1; + } else { + //wk_fine = fine[axis] + (s16)(wk - 0.5); + if(wk2*(-2) >= fine_out[axis]) + wk_fine = fine[axis] + wk; + else + wk_fine = fine[axis] + wk-1; + } + + if ( wk_fine < 0 ) { + seq[axis][0] = SEH_SEQ_1_1; + seq[axis][1] = 0; + } else if ((0<= wk_fine) && ( wk_fine <=63)) + { + fine[axis] = wk_fine; + seq[axis][0] = SEH_SEQ_END; + seq[axis][1] = 0; + } else { + seq[axis][0] = SEH_SEQ_1_2; + seq[axis][1] = 0; + } +} + +static void AMI304_ChageWindowSeq2_1(u8 axis , u8 seq[][2], s8 *fine,s16 *mea) +{ + + if ( SEH_OVER_MAX < mea[axis] ) { + fine[axis] += 5; + } else { + seq[axis][0] = SEH_SEQ_2_0; + seq[axis][1] = 0; + } + +} + +static int AMI304_Mea(s16 *val) +{ + + s16 mi_mes[3]; + u8 wk_buf[9]; + int res; + + memset(wk_buf,0x00,9); + + wk_buf[0] = 0x40; + res = AMI304_I2c_Write(AMI304_REG_CTRL3,wk_buf,1); + if (res<=0) goto exit_AMI304_Mea; + + res = AMI304_I2c_Read(AMI304_REG_DATAXH,&wk_buf[0],6); + if (res<=0) goto exit_AMI304_Mea; + + mi_mes[0] = (s16)wk_buf[1] << 8 | wk_buf[0]; // x-axis + mi_mes[1] = (s16)wk_buf[3] << 8 | wk_buf[2]; // y-axis + mi_mes[2] = (s16)wk_buf[5] << 8 | wk_buf[4]; // z-axis + + val[0] = mi_mes[0]+2048; + val[1] = mi_mes[1]+2048; + val[2] = mi_mes[2]+2048; return res; + +exit_AMI304_Mea: + return res; + } -static int AMI304_Chipset_Init(int mode, int chipset) +static int AMI304_SearchOffset(void) +{ + int res; + s16 mea[7]; + int i; + u8 run_flg[3] = {1,1,1}; + u8 seq[3][2] ={{SEH_SEQ_1_0,0}, + {SEH_SEQ_1_0,0}, + {SEH_SEQ_1_0,0}}; + + u8 wk_coar[3]; + u8 wk_fine[3]; + + u16 g_au16fine_output[3]; + u16 buf[8]; + + res = AMI304_I2c_Read_W(0x92,buf,1); + if (res<=0) goto exit_AMI304_SearchOffset; + + g_au16fine_output[0] = (buf[0] & 0xff00) >> 8; + g_au16fine_output[1] = (buf[0] & 0x00ff); + g_au16fine_output[2] = (buf[1] & 0xff00) >> 8; + + res = AMI304_GetOffset(wk_coar,wk_fine); + if (res<=0) goto exit_AMI304_SearchOffset; + + buf[0] = 0x0001; + res = AMI304_I2c_Write_W(AMI304_REG_CTRL4,buf,1); + if (res<=0) goto exit_AMI304_SearchOffset; + + res = AMI304_Mea(mea); + if (res<=0) goto exit_AMI304_SearchOffset; + + while (1) { + for (i=0;i<3;i++) { + + // cal coarse, fine + if (run_flg[i] == 1 ) { + + switch (seq[i][0]) { + case SEH_SEQ_1_0: + AMI304_ChageWindowSeq1_0(i,seq,(s8 *)wk_coar,(s8 *)wk_fine,mea, g_au16fine_output); + break; + case SEH_SEQ_1_1: + AMI304_ChageWindowSeq1_1(i,seq,(s8 *)wk_coar,(s8 *)wk_fine,mea, g_au16fine_output); + break; + case SEH_SEQ_1_2: + AMI304_ChageWindowSeq1_2(i,seq,(s8 *)wk_coar,(s8 *)wk_fine,mea, g_au16fine_output); + break; + case SEH_SEQ_2_0: + AMI304_ChageWindowSeq2_0(i,seq,(s8 *)wk_coar,(s8 *)wk_fine,mea, g_au16fine_output); + break; + case SEH_SEQ_2_1: + break; + case SEH_SEQ_END: + run_flg[i] = 0; + break; + case SEH_SEQ_ERR: + res = SEH_SEQ_ERR; + goto exit_AMI304_SearchOffset; + } + } + } + + res = AMI304_SetOffset((u8 *)&wk_coar[0],(u8 *)&wk_fine[0]); + if (res<=0) goto exit_AMI304_SearchOffset; + + write_lock(&ami304mid_data.ctrllock); + ami304mid_data.coar[0] = wk_coar[0]; + ami304mid_data.coar[1] = wk_coar[1]; + ami304mid_data.coar[2] = wk_coar[2]; + ami304mid_data.fine[0] = wk_fine[0]; + ami304mid_data.fine[1] = wk_fine[1]; + ami304mid_data.fine[2] = wk_fine[2]; + write_unlock(&ami304mid_data.ctrllock); + + res = AMI304_Mea(mea); + if (res<=0) goto exit_AMI304_SearchOffset; + + if ((run_flg[0] == 0) && (run_flg[1] == 0) && (run_flg[2] == 0)) + { + break; + } + } + + buf[0] = 0x0000; + res = AMI304_I2c_Write_W(AMI304_REG_CTRL4,buf,1); + if (res<=0) goto exit_AMI304_SearchOffset; + +#if defined(AMI304_TEST) + printk(KERN_INFO "AMI304:%s success\n",__FUNCTION__); +#endif + AMI304_Init(AMI304_FORCE_MODE); // default is Force State + + return 0; + +exit_AMI304_SearchOffset: + + AMI304_SetOffset((u8 *)&wk_coar[0],(u8 *)&wk_fine[0]); + write_lock(&ami304mid_data.ctrllock); + ami304mid_data.coar[0] = wk_coar[0]; + ami304mid_data.coar[1] = wk_coar[1]; + ami304mid_data.coar[2] = wk_coar[2]; + ami304mid_data.fine[0] = wk_fine[0]; + ami304mid_data.fine[1] = wk_fine[1]; + ami304mid_data.fine[2] = wk_fine[2]; + write_unlock(&ami304mid_data.ctrllock); + buf[0] = 0x0000; + res = AMI304_I2c_Write_W(AMI304_REG_CTRL4,buf,1); + + AMI304_Init(AMI304_FORCE_MODE); // default is Force State + + if (res<=0) { + printk(KERN_ERR "AMI304_SearchOffset error: res value=%d\n", res); + } + + return -3; +} +#endif + +static int AMI304_Init(int mode) { u8 databuf[10]; u8 regaddr; u8 ctrl1, ctrl2, ctrl3; - unsigned char ctrl4[2]; - + int res = 0; + regaddr = AMI304_REG_CTRL1; - i2c_master_send(ami304_i2c_client, ®addr, 1); - i2c_master_recv(ami304_i2c_client, &ctrl1, 1); + res = i2c_master_send(ami304_i2c_client, ®addr, 1); + if (res<=0) goto exit_AMI304_Init; + res = i2c_master_recv(ami304_i2c_client, &ctrl1, 1); + if (res<=0) goto exit_AMI304_Init; regaddr = AMI304_REG_CTRL2; - i2c_master_send(ami304_i2c_client, ®addr, 1); - i2c_master_recv(ami304_i2c_client, &ctrl2, 1); - + res = i2c_master_send(ami304_i2c_client, ®addr, 1); + if (res<=0) goto exit_AMI304_Init; + res = i2c_master_recv(ami304_i2c_client, &ctrl2, 1); + if (res<=0) goto exit_AMI304_Init; + regaddr = AMI304_REG_CTRL3; - i2c_master_send(ami304_i2c_client, ®addr, 1); - i2c_master_recv(ami304_i2c_client, &ctrl3, 1); + res = i2c_master_send(ami304_i2c_client, ®addr, 1); + if (res<=0) goto exit_AMI304_Init; + res = i2c_master_recv(ami304_i2c_client, &ctrl3, 1); + if (res<=0) goto exit_AMI304_Init; - regaddr = AMI304_REG_CTRL4; //2 bytes - i2c_master_send(ami304_i2c_client, ®addr, 1); - i2c_master_recv(ami304_i2c_client, &(ctrl4[0]), 2); - databuf[0] = AMI304_REG_CTRL1; - if( mode == AMI304_FORCE_MODE ) { + if( mode==AMI304_FORCE_MODE ) + { databuf[1] = ctrl1 | AMI304_CTRL1_PC1 | AMI304_CTRL1_FS1_FORCE; write_lock(&ami304_data.lock); ami304_data.mode = AMI304_FORCE_MODE; write_unlock(&ami304_data.lock); } - else { + else + { databuf[1] = ctrl1 | AMI304_CTRL1_PC1 | AMI304_CTRL1_FS1_NORMAL | AMI304_CTRL1_ODR1; write_lock(&ami304_data.lock); ami304_data.mode = AMI304_NORMAL_MODE; write_unlock(&ami304_data.lock); } - i2c_master_send(ami304_i2c_client, databuf, 2); - + res = i2c_master_send(ami304_i2c_client, databuf, 2); + if (res<=0) goto exit_AMI304_Init; + databuf[0] = AMI304_REG_CTRL2; - databuf[1] = ctrl2 | AMI304_CTRL2_DREN | AMI304_CTRL2_DRP; - i2c_master_send(ami304_i2c_client, databuf, 2); - + databuf[1] = ctrl2 | AMI304_CTRL2_DREN; + res = i2c_master_send(ami304_i2c_client, databuf, 2); + if (res<=0) goto exit_AMI304_Init; + databuf[0] = AMI304_REG_CTRL3; databuf[1] = ctrl3 | AMI304_CTRL3_B0_LO_CLR; - i2c_master_send(ami304_i2c_client, databuf, 2); - - databuf[0] = AMI304_REG_CTRL4; - if( chipset == AMI304_CHIPSET ) { //AMI304 - ctrl4[1] = ctrl4[1] & AMI304_CTRL4_COMPASS_MODE; //0x5D - } - else { //AMI306 - ctrl4[1] = ctrl4[1] | AMI306_CTRL4_HIGHSPEED_MODE; //0x5D - } - databuf[1] = ctrl4[0]; - databuf[2] = ctrl4[1]; - i2c_master_send(ami304_i2c_client, databuf, 3); - + res = i2c_master_send(ami304_i2c_client, databuf, 2); + if (res<=0) goto exit_AMI304_Init; + +#if defined(AMI304_MAG_OFFSET_ADJ) + //AMI304_SearchOffset(); //just for test. +#endif + +exit_AMI304_Init: + if (res<=0) { + if (printk_ratelimit()) { + AMIE("I2C error: ret value=%d\n", res); + } + return -3; + } return 0; } static int AMI304_SetMode(int newmode) { int mode = 0; - int chipset = 0; read_lock(&ami304_data.lock); mode = ami304_data.mode; - chipset = ami304_data.chipset; read_unlock(&ami304_data.lock); if (mode == newmode) return 0; - return AMI304_Chipset_Init(newmode, chipset); + return AMI304_Init(newmode); } static int AMI304_ReadChipInfo(char *buf, int bufsize) { if ((!buf)||(bufsize<=30)) return -1; - - if (!ami304_i2c_client) { + if (!ami304_i2c_client) + { *buf = 0; return -2; } - if (ami304_data.chipset == AMI306_CHIPSET) { - sprintf(buf, "AMI306 Chip"); - } - else { - sprintf(buf, "AMI304 Chip"); - } - - return 0; -} - -static int AMI304_WIA(char *wia, int bufsize) -{ - char cmd; - unsigned char databuf[10]; - - if ((!wia)||(bufsize<=30)) - return -1; - - if (!ami304_i2c_client) { - *wia = 0; - return -2; - } - - cmd = AMI304_REG_WIA; - i2c_master_send(ami304_i2c_client, &cmd, 1); - udelay(20); - i2c_master_recv(ami304_i2c_client, &(databuf[0]), 1); - - sprintf(wia, "%02x", databuf[0]); - - return 0; -} - -static int Identify_AMI_Chipset(void) -{ - char strbuf[AMI304_BUFSIZE]; - int WIARet = 0; - int ret; - - if( (ret=AMI304_WIA(strbuf, AMI304_BUFSIZE))!=0 ) - return ret; - - sscanf(strbuf, "%x", &WIARet); - - if (WIARet == AMI306_WIA_VALUE) { - ami304_data.chipset = AMI306_CHIPSET; - } - else { - ami304_data.chipset = AMI304_CHIPSET; - } - + sprintf(buf, "AMI304 Chip"); return 0; } @@ -326,8 +652,8 @@ if ((!buf)||(bufsize<=80)) return -1; - - if (!ami304_i2c_client) { + if (!ami304_i2c_client) + { *buf = 0; return -2; } @@ -338,25 +664,20 @@ databuf[0] = AMI304_REG_CTRL3; databuf[1] = AMI304_CTRL3_FORCE_BIT; - res = i2c_master_send(ami304_i2c_client, databuf, 2); - if (res <= 0) - goto exit_AMI304_ReadSensorData; - msleep(1); + res = i2c_master_send(ami304_i2c_client, databuf, 2); + if (res<=0) goto exit_AMI304_ReadSensorData; + // We can read all measured data in once cmd = AMI304_REG_DATAXH; - res = i2c_master_send(ami304_i2c_client, &cmd, 1); - if (res <= 0) - goto exit_AMI304_ReadSensorData; - udelay(20); + res = i2c_master_send(ami304_i2c_client, &cmd, 1); + if (res<=0) goto exit_AMI304_ReadSensorData; res = i2c_master_recv(ami304_i2c_client, &(databuf[0]), 6); - if (res <= 0) - goto exit_AMI304_ReadSensorData; + if (res<=0) goto exit_AMI304_ReadSensorData; - sprintf(buf, "%02x %02x %02x %02x %02x %02x", - databuf[0], databuf[1], databuf[2], - databuf[3], databuf[4], databuf[5]); + sprintf(buf, "%02x %02x %02x %02x %02x %02x", databuf[0], databuf[1], databuf[2], databuf[3], databuf[4], databuf[5]); - if (AMI304_DEBUG_DEV_STATUS & ami304_debug_mask) { + if (AMI304_DEBUG_DEV_STATUS & ami304_debug_mask) + { int mx, my, mz; mx = my = mz = 0; @@ -368,14 +689,13 @@ if (my>32768) my = my-65536; if (mz>32768) mz = mz-65536; - AMID("Magnetic Raw Data: X=%d, Y=%d, Z=%d\n", mx, my, mz); + //AMID("X=%d, Y=%d, Z=%d\n", (int)(databuf[0] | (databuf[1] << 8)), (int)(databuf[2] | (databuf[3] << 8)), (int)(databuf[4] | (databuf[5] << 8))); + AMID("X=%d, Y=%d, Z=%d\n", mx, my, mz); } exit_AMI304_ReadSensorData: - if (res <= 0) { - if (printk_ratelimit()) { - AMIE("I2C error: ret value=%d\n", res); - } + if (res<=0) { + AMIE("I2C error: ret value=%d\n", res); return -3; } return 0; @@ -387,11 +707,7 @@ return -1; read_lock(&ami304mid_data.datalock); - sprintf(buf, "%d %d %d %d", - ami304mid_data.yaw, - ami304mid_data.pitch, - ami304mid_data.roll, - ami304mid_data.status); + sprintf(buf, "%d %d %d %d", ami304mid_data.yaw, ami304mid_data.pitch, ami304mid_data.roll, ami304mid_data.mag_status); read_unlock(&ami304mid_data.datalock); return 0; } @@ -402,46 +718,11 @@ return -1; read_lock(&ami304mid_data.datalock); - sprintf(buf, "%d %d %d %d %d %d %d", - ami304mid_data.nm.x, - ami304mid_data.nm.y, - ami304mid_data.nm.z, - ami304mid_data.na.x, - ami304mid_data.na.y, - ami304mid_data.na.z, - ami304mid_data.status); + sprintf(buf, "%d %d %d %d %d %d %d", ami304mid_data.nmx, ami304mid_data.nmy, ami304mid_data.nmz,ami304mid_data.nax,ami304mid_data.nay,ami304mid_data.naz,ami304mid_data.mag_status); read_unlock(&ami304mid_data.datalock); return 0; } -static int AMI304_ReadGyroData(char *buf, int bufsize) -{ - if ((!buf)||(bufsize<=80)) - return -1; - - read_lock(&ami304mid_data.datalock); - sprintf(buf, "%d %d %d", - ami304mid_data.gyro.x, - ami304mid_data.gyro.y, - ami304mid_data.gyro.z); - read_unlock(&ami304mid_data.datalock); - return 0; -} - -static int AMI304_ReadPedoData(char *buf, int bufsize) -{ - if ((!buf)||(bufsize<=80)) - return -1; - - read_lock(&ami304mid_data.datalock); - sprintf(buf, "%ld %ld %d", - ami304mid_data.pedo.pedo_step, - ami304mid_data.pedo.pedo_time, - ami304mid_data.pedo.pedo_stat); - read_unlock(&ami304mid_data.datalock); - return 0; -} - static int AMI304_ReadMiddleControl(char *buf, int bufsize) { if ((!buf)||(bufsize<=80)) @@ -449,138 +730,104 @@ read_lock(&ami304mid_data.ctrllock); sprintf(buf, "%d %d %d %d %d %d %d %d %d %d", - ami304mid_data.controldata[AMI304_CB_LOOPDELAY], - ami304mid_data.controldata[AMI304_CB_RUN], - ami304mid_data.controldata[AMI304_CB_ACCCALI], - ami304mid_data.controldata[AMI304_CB_MAGCALI], - ami304mid_data.controldata[AMI304_CB_ACTIVESENSORS], - ami304mid_data.controldata[AMI304_CB_PD_RESET], - ami304mid_data.controldata[AMI304_CB_PD_EN_PARAM], - ami304mid_data.controldata[AMI304_CB_UNDEFINE_1], - ami304mid_data.controldata[AMI304_CB_UNDEFINE_2], - ami304mid_data.controldata[AMI304_CB_UNDEFINE_3] ); + ami304mid_data.controldata[0], ami304mid_data.controldata[1], ami304mid_data.controldata[2],ami304mid_data.controldata[3],ami304mid_data.controldata[4], + ami304mid_data.controldata[5], ami304mid_data.controldata[6], ami304mid_data.controldata[7], ami304mid_data.controldata[8], ami304mid_data.controldata[9]); read_unlock(&ami304mid_data.ctrllock); return 0; } -static int AMI304_Report_Value(int iEnable) +static int AMI304_Report_Value(int en_dis) { - int controlbuf[AMI304_CB_LENGTH]; struct ami304_i2c_data *data = i2c_get_clientdata(ami304_i2c_client); - int report_enable = 0; - - if( !iEnable ) - return -1; + char report_enable = 0; - read_lock(&ami304mid_data.ctrllock); - memcpy(controlbuf, &ami304mid_data.controldata[0], sizeof(controlbuf)); - read_unlock(&ami304mid_data.ctrllock); - - if(controlbuf[AMI304_CB_ACTIVESENSORS] & AMIT_BIT_ACCELEROMETER) { - input_report_abs(data->input_dev, ABS_X, ami304mid_data.na.x);/* x-axis raw acceleration */ - input_report_abs(data->input_dev, ABS_Y, ami304mid_data.na.y);/* y-axis raw acceleration */ - input_report_abs(data->input_dev, ABS_Z, ami304mid_data.na.z);/* z-axis raw acceleration */ - report_enable = 1; - } - - if(controlbuf[AMI304_CB_ACTIVESENSORS] & AMIT_BIT_MAGNETIC_FIELD) { - input_report_abs(data->input_dev, ABS_HAT0X, ami304mid_data.nm.x); /* x-axis of raw magnetic vector */ - input_report_abs(data->input_dev, ABS_HAT0Y, ami304mid_data.nm.y); /* y-axis of raw magnetic vector */ - input_report_abs(data->input_dev, ABS_BRAKE, ami304mid_data.nm.z); /* z-axis of raw magnetic vector */ - input_report_abs(data->input_dev, ABS_WHEEL, ami304mid_data.status);/* status of magnetic sensor */ - report_enable = 1; - } + if( !en_dis ) + return 0; - if(controlbuf[AMI304_CB_ACTIVESENSORS] & AMIT_BIT_ORIENTATION) { + if(atomic_read(&o_status)) + { input_report_abs(data->input_dev, ABS_RX, ami304mid_data.yaw); /* yaw */ input_report_abs(data->input_dev, ABS_RY, ami304mid_data.pitch);/* pitch */ input_report_abs(data->input_dev, ABS_RZ, ami304mid_data.roll);/* roll */ - input_report_abs(data->input_dev, ABS_RUDDER, ami304mid_data.status);/* status of orientation sensor */ + input_report_abs(data->input_dev, ABS_RUDDER, ami304mid_data.mag_status);/* status of orientation sensor */ report_enable = 1; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-10-28, not supported -#if 0 - if(controlbuf[AMI304_CB_ACTIVESENSORS] & AMIT_BIT_GYROSCOPE) { - input_report_abs(data->input_dev, ABS_HAT1X, ami304mid_data.gyro.x);/* x-axis of gyro sensor */ - input_report_abs(data->input_dev, ABS_HAT1Y, ami304mid_data.gyro.y);/* y-axis of gyro sensor */ - input_report_abs(data->input_dev, ABS_THROTTLE, ami304mid_data.gyro.z);/* z-axis of gyro sensor */ + if(atomic_read(&a_status)) + { + input_report_abs(data->input_dev, ABS_X, ami304mid_data.nax);/* x-axis raw acceleration */ + input_report_abs(data->input_dev, ABS_Y, ami304mid_data.nay);/* y-axis raw acceleration */ + input_report_abs(data->input_dev, ABS_Z, ami304mid_data.naz);/* z-axis raw acceleration */ report_enable = 1; } -#endif - - if (AMI304_DEBUG_DEV_DEBOUNCE & ami304_debug_mask) { + if(atomic_read(&m_status)) + { + input_report_abs(data->input_dev, ABS_HAT0X, ami304mid_data.nmx); /* x-axis of raw magnetic vector */ + input_report_abs(data->input_dev, ABS_HAT0Y, ami304mid_data.nmy); /* y-axis of raw magnetic vector */ + input_report_abs(data->input_dev, ABS_BRAKE, ami304mid_data.nmz); /* z-axis of raw magnetic vector */ + input_report_abs(data->input_dev, ABS_WHEEL, ami304mid_data.mag_status);/* status of magnetic sensor */ + report_enable = 1; + } + + if (AMI304_DEBUG_DEV_DEBOUNCE & ami304_debug_mask) + { AMID("yaw: %d, pitch: %d, roll: %d\n", ami304mid_data.yaw, ami304mid_data.pitch, ami304mid_data.roll); - AMID("nax: %d, nay: %d, naz: %d\n", ami304mid_data.na.x, ami304mid_data.na.y, ami304mid_data.na.z); - AMID("nmx: %d, nmy: %d, nmz: %d\n", ami304mid_data.nm.x, ami304mid_data.nm.y, ami304mid_data.nm.z); - AMID("mag_status: %d\n", ami304mid_data.status); + AMID("nax: %d, nay: %d, naz: %d\n", ami304mid_data.nax, ami304mid_data.nay, ami304mid_data.naz); + AMID("nmx: %d, nmy: %d, nmz: %d\n", ami304mid_data.nmx, ami304mid_data.nmy, ami304mid_data.nmz); + AMID("mag_status: %d\n", ami304mid_data.mag_status); } - if (report_enable) + if(report_enable) input_sync(data->input_dev); return 0; } -static ssize_t show_chipinfo_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_chipinfo_value(struct device *dev, struct device_attribute *attr, char *buf) { char strbuf[AMI304_BUFSIZE]; AMI304_ReadChipInfo(strbuf, AMI304_BUFSIZE); return sprintf(buf, "%s\n", strbuf); } -static ssize_t show_sensordata_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_sensordata_value(struct device *dev, struct device_attribute *attr, char *buf) { char strbuf[AMI304_BUFSIZE]; AMI304_ReadSensorData(strbuf, AMI304_BUFSIZE); return sprintf(buf, "%s\n", strbuf); } -static ssize_t show_posturedata_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_posturedata_value(struct device *dev, struct device_attribute *attr, char *buf) { char strbuf[AMI304_BUFSIZE]; AMI304_ReadPostureData(strbuf, AMI304_BUFSIZE); return sprintf(buf, "%s\n", strbuf); } -static ssize_t show_calidata_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_calidata_value(struct device *dev, struct device_attribute *attr, char *buf) { char strbuf[AMI304_BUFSIZE]; AMI304_ReadCaliData(strbuf, AMI304_BUFSIZE); return sprintf(buf, "%s\n", strbuf); } -static ssize_t show_gyrodata_value(struct device *dev, struct device_attribute *attr, char *buf) -{ - char strbuf[AMI304_BUFSIZE]; - AMI304_ReadGyroData(strbuf, AMI304_BUFSIZE); - return sprintf(buf, "%s\n", strbuf); -} - -static ssize_t show_midcontrol_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_midcontrol_value(struct device *dev, struct device_attribute *attr, char *buf) { char strbuf[AMI304_BUFSIZE]; AMI304_ReadMiddleControl(strbuf, AMI304_BUFSIZE); return sprintf(buf, "%s\n", strbuf); } -static ssize_t store_midcontrol_value(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) +static ssize_t store_midcontrol_value(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { write_lock(&ami304mid_data.ctrllock); - memcpy(&ami304mid_data.controldata[0], buf, sizeof(int)*AMI304_CB_LENGTH); + memcpy(&ami304mid_data.controldata[0], buf, sizeof(int)*10); write_unlock(&ami304mid_data.ctrllock); return count; } -static ssize_t show_mode_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_mode_value(struct device *dev, struct device_attribute *attr, char *buf) { int mode=0; read_lock(&ami304_data.lock); @@ -589,8 +836,7 @@ return sprintf(buf, "%d\n", mode); } -static ssize_t store_mode_value(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) +static ssize_t store_mode_value(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int mode = 0; sscanf(buf, "%d", &mode); @@ -598,22 +844,13 @@ return count; } -static ssize_t show_wia_value(struct device *dev, struct device_attribute *attr, char *buf) -{ - char strbuf[AMI304_BUFSIZE]; - AMI304_WIA(strbuf, AMI304_BUFSIZE); - return sprintf(buf, "%s\n", strbuf); -} - /* Test mode attribute */ -static ssize_t show_pitch_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_pitch_value(struct device *dev, struct device_attribute *attr, char *buf) { return sprintf(buf, "%d\n", ami304mid_data.pitch); } -static ssize_t show_roll_value(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t show_roll_value(struct device *dev, struct device_attribute *attr, char *buf) { return sprintf(buf, "%d\n", ami304mid_data.roll); } @@ -622,41 +859,20 @@ static DEVICE_ATTR(sensordata, S_IRUGO, show_sensordata_value, NULL); static DEVICE_ATTR(posturedata, S_IRUGO, show_posturedata_value, NULL); static DEVICE_ATTR(calidata, S_IRUGO, show_calidata_value, NULL); -static DEVICE_ATTR(gyrodata, S_IRUGO, show_gyrodata_value, NULL); static DEVICE_ATTR(midcontrol, S_IRUGO | S_IWUSR, show_midcontrol_value, store_midcontrol_value ); static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, show_mode_value, store_mode_value ); -static DEVICE_ATTR(wia, S_IRUGO, show_wia_value, NULL); static DEVICE_ATTR(pitch, S_IRUGO | S_IWUSR, show_pitch_value, NULL); static DEVICE_ATTR(roll, S_IRUGO | S_IWUSR, show_roll_value, NULL); -static struct attribute *ami304_attributes[] = { - &dev_attr_chipinfo.attr, - &dev_attr_sensordata.attr, - &dev_attr_posturedata.attr, - &dev_attr_calidata.attr, - &dev_attr_gyrodata.attr, - &dev_attr_midcontrol.attr, - &dev_attr_mode.attr, - &dev_attr_wia.attr, - /* Test mode attribute */ - &dev_attr_pitch.attr, - &dev_attr_roll.attr, - NULL, -}; - -static struct attribute_group ami304_attribute_group = { - .attrs = ami304_attributes -}; - static int ami304_open(struct inode *inode, struct file *file) { - int res = -1; - if (atomic_cmpxchg(&dev_open_count, 0, 1) == 0) { + int ret = -1; + if( atomic_cmpxchg(&dev_open_count, 0, 1)==0 ) { if (AMI304_DEBUG_FUNC_TRACE & ami304_debug_mask) AMID("Open device node:ami304\n"); - res = nonseekable_open(inode, file); + ret = nonseekable_open(inode, file); } - return res; + return ret; } static int ami304_release(struct inode *inode, struct file *file) @@ -670,24 +886,17 @@ static int ami304_ioctl(struct inode *inode, struct file *file, unsigned int cmd,unsigned long arg) { char strbuf[AMI304_BUFSIZE]; - int controlbuf[AMI304_CB_LENGTH]; - int valuebuf[4]; - int calidata[7]; - int gyrodata[3]; - long pedodata[3]; - int pedoparam[AMI304_PD_LENGTH]; + int controlbuf[10]; void __user *data; int retval=0; - int mode=0,chipset=0; - int iEnReport; + int mode=0; switch (cmd) { case AMI304_IOCTL_INIT: read_lock(&ami304_data.lock); mode = ami304_data.mode; - chipset = ami304_data.chipset; read_unlock(&ami304_data.lock); - AMI304_Chipset_Init(mode, chipset); + AMI304_Init(mode); break; case AMI304_IOCTL_READ_CHIPINFO: @@ -722,23 +931,7 @@ goto err_out; } break; - - case AMI304_IOCTL_WRITE_POSTUREDATA: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&valuebuf, data, sizeof(valuebuf))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.datalock); - ami304mid_data.yaw = valuebuf[0]; - ami304mid_data.pitch = valuebuf[1]; - ami304mid_data.roll = valuebuf[2]; - ami304mid_data.status = valuebuf[3]; - write_unlock(&ami304mid_data.datalock); - break; - + case AMI304_IOCTL_READ_CALIDATA: data = (void __user *) arg; if (data == NULL) @@ -749,104 +942,7 @@ goto err_out; } break; - - case AMI304_IOCTL_WRITE_CALIDATA: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&calidata, data, sizeof(calidata))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.datalock); - ami304mid_data.nm.x = calidata[0]; - ami304mid_data.nm.y = calidata[1]; - ami304mid_data.nm.z = calidata[2]; - ami304mid_data.na.x = calidata[3]; - ami304mid_data.na.y = calidata[4]; - ami304mid_data.na.z = calidata[5]; - ami304mid_data.status = calidata[6]; - write_unlock(&ami304mid_data.datalock); - break; - - case AMI304_IOCTL_READ_GYRODATA: - data = (void __user *) arg; - if (data == NULL) - break; - AMI304_ReadGyroData(strbuf, AMI304_BUFSIZE); - if (copy_to_user(data, strbuf, strlen(strbuf)+1)) { - retval = -EFAULT; - goto err_out; - } - break; - - case AMI304_IOCTL_WRITE_GYRODATA: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&gyrodata, data, sizeof(gyrodata))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.datalock); - ami304mid_data.gyro.x = gyrodata[0]; - ami304mid_data.gyro.y = gyrodata[1]; - ami304mid_data.gyro.z = gyrodata[2]; - write_unlock(&ami304mid_data.datalock); - break; - - case AMI304_IOCTL_READ_PEDODATA: - data = (void __user *) arg; - if (data == NULL) - break; - AMI304_ReadPedoData(strbuf, AMI304_BUFSIZE); - if (copy_to_user(data, strbuf, strlen(strbuf)+1)) { - retval = -EFAULT; - goto err_out; - } - break; - case AMI304_IOCTL_WRITE_PEDODATA: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&pedodata, data, sizeof(pedodata))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.datalock); - ami304mid_data.pedo.pedo_step = pedodata[0]; - ami304mid_data.pedo.pedo_time = pedodata[1]; - ami304mid_data.pedo.pedo_stat = (int)pedodata[2]; - write_unlock(&ami304mid_data.datalock); - break; - - case AMI304_IOCTL_READ_PEDOPARAM: - read_lock(&ami304mid_data.ctrllock); - memcpy(pedoparam, &ami304mid_data.pedometerparam[0], sizeof(pedoparam)); - read_unlock(&ami304mid_data.ctrllock); - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_to_user(data, pedoparam, sizeof(pedoparam))) { - retval = -EFAULT; - goto err_out; - } - break; - - case AMI304_IOCTL_WRITE_PEDOPARAM: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(pedoparam, data, sizeof(pedoparam))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.ctrllock); - memcpy(&ami304mid_data.pedometerparam[0], pedoparam, sizeof(pedoparam)); - write_unlock(&ami304mid_data.ctrllock); - break; - case AMI304_IOCTL_READ_CONTROL: read_lock(&ami304mid_data.ctrllock); memcpy(controlbuf, &ami304mid_data.controldata[0], sizeof(controlbuf)); @@ -860,7 +956,7 @@ } break; - case AMI304_IOCTL_WRITE_CONTROL: + case AMI304_IOCTL_SET_CONTROL: data = (void __user *) arg; if (data == NULL) break; @@ -873,7 +969,7 @@ write_unlock(&ami304mid_data.ctrllock); break; - case AMI304_IOCTL_WRITE_MODE: + case AMI304_IOCTL_SET_MODE: data = (void __user *) arg; if (data == NULL) break; @@ -883,29 +979,7 @@ } AMI304_SetMode(mode); break; - - case AMI304_IOCTL_WRITE_REPORT: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&iEnReport, data, sizeof(iEnReport))) { - retval = -EFAULT; - goto err_out; - } - AMI304_Report_Value(iEnReport); - break; - - case AMI304_IOCTL_READ_WIA: - data = (void __user *) arg; - if (data == NULL) - break; - AMI304_WIA(strbuf, AMI304_BUFSIZE); - if (copy_to_user(data, strbuf, strlen(strbuf)+1)) { - retval = -EFAULT; - goto err_out; - } - break; - + default: if (AMI304_DEBUG_USER_ERROR & ami304_debug_mask) AMIE("not supported command= 0x%04x\n", cmd); @@ -919,14 +993,14 @@ static int ami304daemon_open(struct inode *inode, struct file *file) { - int res = -1; - - if (atomic_cmpxchg(&daemon_open_count, 0, 1) == 0) { + //return nonseekable_open(inode, file); + int ret = -1; + if( atomic_cmpxchg(&daemon_open_count, 0, 1)==0 ) { if (AMI304_DEBUG_FUNC_TRACE & ami304_debug_mask) AMID("Open device node:ami304daemon\n"); - res = 0; + ret = 0; } - return res; + return ret; } static int ami304daemon_release(struct inode *inode, struct file *file) @@ -942,21 +1016,23 @@ { int valuebuf[4]; int calidata[7]; - int gyrodata[3]; - long pedodata[3]; - int controlbuf[AMI304_CB_LENGTH]; + int controlbuf[10]; char strbuf[AMI304_BUFSIZE]; - int pedoparam[AMI304_PD_LENGTH]; - char i2creaddata[3]; void __user *data; int retval=0; int mode; #if !defined(CONFIG_HAS_EARLYSUSPEND) - int iEnReport; + int en_dis_Report=1; +#endif +#if defined(AMI304_MAG_OFFSET_ADJ) + int mag_offset[3]; + u8 wk_coar[3]; + u8 wk_fine[3]; #endif switch (cmd) { - case AMI304DAE_IOCTL_GET_SENSORDATA: + + case AMI304MID_IOCTL_GET_SENSORDATA: data = (void __user *) arg; if (data == NULL) break; @@ -967,7 +1043,7 @@ } break; - case AMI304DAE_IOCTL_SET_POSTURE: + case AMI304MID_IOCTL_SET_POSTURE: data = (void __user *) arg; if (data == NULL) break; @@ -979,11 +1055,11 @@ ami304mid_data.yaw = valuebuf[0]; ami304mid_data.pitch = valuebuf[1]; ami304mid_data.roll = valuebuf[2]; - ami304mid_data.status = valuebuf[3]; + ami304mid_data.mag_status = valuebuf[3]; write_unlock(&ami304mid_data.datalock); break; - case AMI304DAE_IOCTL_SET_CALIDATA: + case AMI304MID_IOCTL_SET_CALIDATA: data = (void __user *) arg; if (data == NULL) break; @@ -992,13 +1068,13 @@ goto err_out; } write_lock(&ami304mid_data.datalock); - ami304mid_data.nm.x = calidata[0]; - ami304mid_data.nm.y = calidata[1]; - ami304mid_data.nm.z = calidata[2]; - ami304mid_data.na.x = calidata[3]; - ami304mid_data.na.y = calidata[4]; - ami304mid_data.na.z = calidata[5]; - ami304mid_data.status = calidata[6]; + ami304mid_data.nmx = calidata[0]; + ami304mid_data.nmy = calidata[1]; + ami304mid_data.nmz = calidata[2]; + ami304mid_data.nax = calidata[3]; + ami304mid_data.nay = calidata[4]; + ami304mid_data.naz = calidata[5]; + ami304mid_data.mag_status = calidata[6]; write_unlock(&ami304mid_data.datalock); #if defined(CONFIG_HAS_EARLYSUSPEND) /* @@ -1006,68 +1082,12 @@ * On-Demand Governor set max cpu frequency when input event is appeared */ AMI304_Report_Value(atomic_read(&ami304_report_enabled)); +#else + AMI304_Report_Value(en_dis_Report); #endif break; - - case AMI304DAE_IOCTL_SET_GYRODATA: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&gyrodata, data, sizeof(gyrodata))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.datalock); - ami304mid_data.gyro.x = gyrodata[0]; - ami304mid_data.gyro.y = gyrodata[1]; - ami304mid_data.gyro.z = gyrodata[2]; - write_unlock(&ami304mid_data.datalock); - break; - - case AMI304DAE_IOCTL_SET_PEDODATA: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(&pedodata, data, sizeof(pedodata))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.datalock); - ami304mid_data.pedo.pedo_step = pedodata[0]; - ami304mid_data.pedo.pedo_time = pedodata[1]; - ami304mid_data.pedo.pedo_stat = (int)pedodata[2]; - write_unlock(&ami304mid_data.datalock); - break; - - case AMI304DAE_IOCTL_GET_PEDOPARAM: - read_lock(&ami304mid_data.ctrllock); - memcpy(pedoparam, &ami304mid_data.pedometerparam[0], - sizeof(pedoparam)); - read_unlock(&ami304mid_data.ctrllock); - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_to_user(data, pedoparam, sizeof(pedoparam))) { - retval = -EFAULT; - goto err_out; - } - break; - - case AMI304DAE_IOCTL_SET_PEDOPARAM: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(pedoparam, data, sizeof(pedoparam))) { - retval = -EFAULT; - goto err_out; - } - write_lock(&ami304mid_data.ctrllock); - memcpy(&ami304mid_data.pedometerparam[0], pedoparam, sizeof(pedoparam)); - write_unlock(&ami304mid_data.ctrllock); - break; - - case AMI304DAE_IOCTL_GET_CONTROL: + case AMI304MID_IOCTL_GET_CONTROL: read_lock(&ami304mid_data.ctrllock); memcpy(controlbuf, &ami304mid_data.controldata[0], sizeof(controlbuf)); read_unlock(&ami304mid_data.ctrllock); @@ -1080,7 +1100,7 @@ } break; - case AMI304DAE_IOCTL_SET_CONTROL: + case AMI304MID_IOCTL_SET_CONTROL: data = (void __user *) arg; if (data == NULL) break; @@ -1093,7 +1113,7 @@ write_unlock(&ami304mid_data.ctrllock); break; - case AMI304DAE_IOCTL_SET_MODE: + case AMI304MID_IOCTL_SET_MODE: data = (void __user *) arg; if (data == NULL) break; @@ -1105,66 +1125,68 @@ break; //Add for input_device sync - case AMI304DAE_IOCTL_SET_REPORT: + case AMI304MID_IOCTL_SET_REPORT: #if defined(CONFIG_HAS_EARLYSUSPEND) break; #else data = (void __user *) arg; if (data == NULL) break; - if (copy_from_user(&iEnReport, data, sizeof(iEnReport))) { + if (copy_from_user(&en_dis_Report, data, sizeof(mode))) { retval = -EFAULT; goto err_out; } - AMI304_Report_Value(iEnReport); +// read_lock(&ami304mid_data.datalock); + AMI304_Report_Value(en_dis_Report); +// read_lock(&ami304mid_data.datalock); #endif break; - - case AMI304DAE_IOCTL_GET_WIA: - data = (void __user *) arg; - if (data == NULL) - break; - AMI304_WIA(strbuf, AMI304_BUFSIZE); - if (copy_to_user(data, strbuf, strlen(strbuf)+1)) { - retval = -EFAULT; - goto err_out; - } - break; - case AMI304DAE_IOCTL_SET_I2CDATA: - data = (void __user *)arg; - if (data == NULL) - break; - if (copy_from_user(strbuf, data, sizeof(strbuf))) { - retval = -EFAULT; - goto err_out; - } - AMI304_I2c_Write(strbuf[0], &strbuf[2], strbuf[1]); +#if defined(AMI304_MAG_OFFSET_ADJ) + case AMI304MID_IOCTL_MAG_OFFSET_ADJ: + AMI304_SearchOffset(); break; - case AMI304DAE_IOCTL_SET_I2CADDR: - data = (void __user *)arg; + case AMI304MID_IOCTL_GET_MAG_OFFSET: + read_lock(&ami304mid_data.ctrllock); + mag_offset[0] = ( (u16)ami304mid_data.coar[0]<< 6) | (u16)ami304mid_data.fine[0]; + mag_offset[1] = ( (u16)ami304mid_data.coar[1]<< 6) | (u16)ami304mid_data.fine[1]; + mag_offset[2] = ( (u16)ami304mid_data.coar[2]<< 6) | (u16)ami304mid_data.fine[2]; + read_unlock(&ami304mid_data.ctrllock); + data = (void __user *) arg; if (data == NULL) - break; - if (copy_from_user(i2creaddata, data, 2)) { + break; + if (copy_to_user(data, mag_offset, sizeof(mag_offset))) { retval = -EFAULT; goto err_out; - } - i2c_read_addr = i2creaddata[0]; - i2c_read_len = i2creaddata[1]; + } break; - case AMI304DAE_IOCTL_GET_I2CDATA: - AMI304_I2c_Read(i2c_read_addr, &strbuf[0], i2c_read_len); - data = (void __user *)arg; + case AMI304MID_IOCTL_SET_MAG_OFFSET: + data = (void __user *) arg; if (data == NULL) - break; - if (copy_to_user(data, strbuf, i2c_read_len)) { + break; + if (copy_from_user(mag_offset, data, sizeof(mag_offset))) { retval = -EFAULT; goto err_out; } + wk_coar[0] = (mag_offset[0] & 0x000001c0) >> 6; + wk_coar[1] = (mag_offset[1] & 0x000001c0) >> 6; + wk_coar[2] = (mag_offset[2] & 0x000001c0) >> 6; + wk_fine[0] = (mag_offset[0] & 0x0000003f); + wk_fine[1] = (mag_offset[1] & 0x0000003f); + wk_fine[2] = (mag_offset[2] & 0x0000003f); + AMI304_SetOffset((u8 *)&wk_coar,(u8 *)&wk_fine); + write_lock(&ami304mid_data.ctrllock); + ami304mid_data.coar[0] = wk_coar[0]; + ami304mid_data.coar[1] = wk_coar[1]; + ami304mid_data.coar[2] = wk_coar[2]; + ami304mid_data.fine[0] = wk_fine[0]; + ami304mid_data.fine[1] = wk_fine[1]; + ami304mid_data.fine[2] = wk_fine[2]; + write_unlock(&ami304mid_data.ctrllock); break; - +#endif default: if (AMI304_DEBUG_USER_ERROR & ami304_debug_mask) AMIE("not supported command= 0x%04x\n", cmd); @@ -1178,6 +1200,7 @@ static int ami304hal_open(struct inode *inode, struct file *file) { + //return nonseekable_open(inode, file); atomic_inc(&hal_open_count); if (AMI304_DEBUG_FUNC_TRACE & ami304_debug_mask) AMID("Open device node:ami304hal %d times.\n", atomic_read(&hal_open_count)); @@ -1194,12 +1217,14 @@ static int ami304hal_ioctl(struct inode *inode, struct file *file, unsigned int cmd,unsigned long arg) { - int controlbuf[AMI304_CB_LENGTH]; char strbuf[AMI304_BUFSIZE]; - int pedoparam[AMI304_PD_LENGTH]; void __user *data; int retval=0; + unsigned int mode =0; + int controlbuf[10]; + switch (cmd) { + case AMI304HAL_IOCTL_GET_SENSORDATA: data = (void __user *) arg; if (data == NULL) @@ -1233,54 +1258,35 @@ } break; - case AMI304HAL_IOCTL_GET_GYRODATA: + case AMI304HAL_IOCTL_SET_ACTIVE: data = (void __user *) arg; if (data == NULL) break; - AMI304_ReadGyroData(strbuf, AMI304_BUFSIZE); - if (copy_to_user(data, strbuf, strlen(strbuf)+1)) { - retval = -EFAULT; - goto err_out; - } - break; - - case AMI304HAL_IOCTL_GET_PEDODATA: - data = (void __user *) arg; - if (data == NULL) - break; - AMI304_ReadPedoData(strbuf, AMI304_BUFSIZE); - if (copy_to_user(data, strbuf, strlen(strbuf)+1)) { - retval = -EFAULT; - goto err_out; - } - break; - case AMI304HAL_IOCTL_GET_PEDOPARAM: - read_lock(&ami304mid_data.ctrllock); - memcpy(pedoparam, &ami304mid_data.pedometerparam[0], - sizeof(pedoparam)); - read_unlock(&ami304mid_data.ctrllock); - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_to_user(data, pedoparam, sizeof(pedoparam))) { - retval = -EFAULT; - goto err_out; - } - break; - - case AMI304HAL_IOCTL_SET_PEDOPARAM: - data = (void __user *) arg; - if (data == NULL) - break; - if (copy_from_user(pedoparam, data, sizeof(pedoparam))) { + if (copy_from_user(&mode, data, sizeof(mode))) { retval = -EFAULT; goto err_out; - } - write_lock(&ami304mid_data.ctrllock); - memcpy(&ami304mid_data.pedometerparam[0], pedoparam, sizeof(pedoparam)); - write_unlock(&ami304mid_data.ctrllock); - break; + } + + if (AMI304_DEBUG_GEN_INFO & ami304_debug_mask) + AMID("ami304hal active sensor %d\n", mode); + + if(mode & (0x00000001<input_dev = input_allocate_device(); - if (!data->input_dev) { - err = -ENOMEM; - AMIE("ami304_i2c_detect: Failed to allocate input device\n"); - goto exit_input_dev_alloc_failed; - } - - set_bit(EV_ABS, data->input_dev->evbit); - - /* yaw */ - input_set_abs_params(data->input_dev, ABS_RX, 0, (360*10), 0, 0); - /* pitch */ - input_set_abs_params(data->input_dev, ABS_RY, -(180*10), (180*10), 0, 0); - /* roll */ - input_set_abs_params(data->input_dev, ABS_RZ, -(90*10), (90*10), 0, 0); - /* status of orientation sensor */ - input_set_abs_params(data->input_dev, ABS_RUDDER, 0, 5, 0, 0); - - /* x-axis of raw acceleration and the range is -2g to +2g */ - input_set_abs_params(data->input_dev, ABS_X, -(1000*2), (1000*2), 0, 0); - /* y-axis of raw acceleration and the range is -2g to +2g */ - input_set_abs_params(data->input_dev, ABS_Y, -(1000*2), (1000*2), 0, 0); - /* z-axis of raw acceleration and the range is -2g to +2g */ - input_set_abs_params(data->input_dev, ABS_Z, -(1000*2), (1000*2), 0, 0); - - /* x-axis of raw magnetic vector and the range is -3g to +3g */ - input_set_abs_params(data->input_dev, ABS_HAT0X, -(4000*3), (4000*3), 0, 0); - /* y-axis of raw magnetic vector and the range is -3g to +3g */ - input_set_abs_params(data->input_dev, ABS_HAT0Y, -(4000*3), (4000*3), 0, 0); - /* z-axis of raw magnetic vector and the range is -3g to +3g */ - input_set_abs_params(data->input_dev, ABS_BRAKE, -(4000*3), (4000*3), 0, 0); - /* status of magnetic sensor */ - input_set_abs_params(data->input_dev, ABS_WHEEL, 0, 5, 0, 0); - - /* x-axis of gyro sensor */ - input_set_abs_params(data->input_dev, ABS_HAT1X, -10000, 10000, 0, 0); - /* y-axis of gyro sensor */ - input_set_abs_params(data->input_dev, ABS_HAT1Y, -10000, 10000, 0, 0); - /* z-axis of gyro sensor */ - input_set_abs_params(data->input_dev, ABS_THROTTLE, -10000, 10000, 0, 0); - - data->input_dev->name = "Acompass"; - - err = input_register_device(data->input_dev); - if (err) { - AMIE("ami304_i2c_detect: Unable to register input device: %s\n", - data->input_dev->name); - goto exit_input_register_device_failed; - } - if (AMI304_DEBUG_FUNC_TRACE & ami304_debug_mask) - AMID("register input device successfully!!!\n"); - return 0; - -exit_input_register_device_failed: - input_free_device(data->input_dev); -exit_input_dev_alloc_failed: - return err; -} - -static int __devinit ami304_probe(struct i2c_client *client, - const struct i2c_device_id * devid) +static int __init ami304_probe(struct i2c_client *client, const struct i2c_device_id * devid) { int err = 0; struct ami304_i2c_data *data; @@ -1454,12 +1387,16 @@ } memset(data, 0, sizeof(struct ami304_i2c_data)); - data->client = client; i2c_set_clientdata(client, data); ami304_i2c_client = client; ecom_pdata = ami304_i2c_client->dev.platform_data; ecom_pdata->power(1); + AMI304_Init(AMI304_FORCE_MODE); // default is Force State + + atomic_set(&o_status, 0); + atomic_set(&m_status, 0); + atomic_set(&a_status, 0); #if defined(CONFIG_HAS_EARLYSUSPEND) ami304_sensor_early_suspend.suspend = ami304_early_suspend; @@ -1468,79 +1405,112 @@ atomic_set(&ami304_report_enabled, 1); #endif - err=Identify_AMI_Chipset(); - if (err != 0) { //get ami304_data.chipset - printk(KERN_INFO "Failed to identify AMI_Chipset!\n"); - goto exit_kfree; + + data->input_dev = input_allocate_device(); + if (!data->input_dev) { + err = -ENOMEM; + AMIE("ami304_i2c_detect: Failed to allocate input device\n"); + goto exit_input_dev_alloc_failed; } - AMI304_Chipset_Init(AMI304_FORCE_MODE, ami304_data.chipset); // default is Force State - dev_info(&client->dev, "%s operating mode\n", ami304_data.mode? "force" : "normal"); + set_bit(EV_ABS, data->input_dev->evbit); + /* yaw */ + input_set_abs_params(data->input_dev, ABS_RX, 0, 360, 0, 0); + /* pitch */ + input_set_abs_params(data->input_dev, ABS_RY, -180, 180, 0, 0); + /* roll */ + input_set_abs_params(data->input_dev, ABS_RZ, -90, 90, 0, 0); + /* status of magnetic sensor */ + input_set_abs_params(data->input_dev, ABS_RUDDER, 0, 5, 0, 0); + + /* x-axis acceleration */ + input_set_abs_params(data->input_dev, ABS_X, -2000, 2000, 0, 0); + /* y-axis acceleration */ + input_set_abs_params(data->input_dev, ABS_Y, -2000, 2000, 0, 0); + /* z-axis acceleration */ + input_set_abs_params(data->input_dev, ABS_Z, -2000, 2000, 0, 0); + + /* x-axis of raw magnetic vector */ + input_set_abs_params(data->input_dev, ABS_HAT0X, -3000, 3000, 0, 0); + /* y-axis of raw magnetic vector */ + input_set_abs_params(data->input_dev, ABS_HAT0Y, -3000, 3000, 0, 0); + /* z-axis of raw magnetic vector */ + input_set_abs_params(data->input_dev, ABS_BRAKE, -3000, 3000, 0, 0); + /* status of acceleration sensor */ + input_set_abs_params(data->input_dev, ABS_WHEEL, 0, 5, 0, 0); + + data->input_dev->name = "Acompass"; - printk(KERN_INFO "Register input device!\n"); - err = ami304_input_init(data); - if(err) - goto exit_kfree; + err = input_register_device(data->input_dev); + if (err) { + AMIE("ami304_i2c_detect: Unable to register input device: %s\n", + data->input_dev->name); + goto exit_input_register_device_failed; + } + if (AMI304_DEBUG_FUNC_TRACE & ami304_debug_mask) + AMID("register input device successfully!!!\n"); - //register misc device:ami304 err = misc_register(&ami304_device); if (err) { AMIE("ami304_device register failed\n"); - goto exit_misc_ami304_device_register_failed; + goto exit_misc_device_register_failed; } - //register misc device:ami304daemon + err = device_create_file(&client->dev, &dev_attr_chipinfo); + err = device_create_file(&client->dev, &dev_attr_sensordata); + err = device_create_file(&client->dev, &dev_attr_posturedata); + err = device_create_file(&client->dev, &dev_attr_calidata); + err = device_create_file(&client->dev, &dev_attr_midcontrol); + err = device_create_file(&client->dev, &dev_attr_mode); + /* Test mode attribute */ + err = device_create_file(&client->dev, &dev_attr_pitch); + err = device_create_file(&client->dev, &dev_attr_roll); + err = misc_register(&ami304daemon_device); if (err) { AMIE("ami304daemon_device register failed\n"); - goto exit_misc_ami304daemon_device_register_failed; + goto exit_misc_device_register_failed; } - //register misc device:ami304hal + err = misc_register(&ami304hal_device); if (err) { AMIE("ami304hal_device register failed\n"); - goto exit_misc_ami304hal_device_register_failed; - } - - /* Register sysfs hooks */ - err = sysfs_create_group(&client->dev.kobj, &ami304_attribute_group); - if (err) { - AMIE("ami304 sysfs register failed\n"); - goto exit_sysfs_create_group_failed; + goto exit_misc_device_register_failed; } return 0; - -exit_sysfs_create_group_failed: - sysfs_remove_group(&client->dev.kobj, &ami304_attribute_group); -exit_misc_ami304hal_device_register_failed: - misc_deregister(&ami304daemon_device); -exit_misc_ami304daemon_device_register_failed: - misc_deregister(&ami304_device); -exit_misc_ami304_device_register_failed: - input_unregister_device(data->input_dev); +exit_misc_device_register_failed: +exit_input_register_device_failed: input_free_device(data->input_dev); -exit_kfree: +exit_input_dev_alloc_failed: kfree(data); exit: return err; } -static int __devexit ami304_remove(struct i2c_client *client) +static int ami304_remove(struct i2c_client *client) { struct ami304_i2c_data *data = i2c_get_clientdata(client); - sysfs_remove_group(&client->dev.kobj, &ami304_attribute_group); - - misc_deregister(&ami304_device); - misc_deregister(&ami304daemon_device); - misc_deregister(&ami304hal_device); - input_unregister_device(data->input_dev); input_free_device(data->input_dev); ami304_i2c_client = NULL; kfree(data); + device_remove_file(&client->dev, &dev_attr_chipinfo); + device_remove_file(&client->dev, &dev_attr_sensordata); + device_remove_file(&client->dev, &dev_attr_posturedata); + device_remove_file(&client->dev, &dev_attr_calidata); + device_remove_file(&client->dev, &dev_attr_midcontrol); + device_remove_file(&client->dev, &dev_attr_mode); + /* Test mode attribute */ + device_remove_file(&client->dev, &dev_attr_pitch); + device_remove_file(&client->dev, &dev_attr_roll); + + misc_deregister(&ami304_device); + misc_deregister(&ami304daemon_device); + misc_deregister(&ami304hal_device); + #if defined(CONFIG_HAS_EARLYSUSPEND) unregister_early_suspend(&ami304_sensor_early_suspend); #endif @@ -1583,13 +1553,13 @@ AMID("AMI304 resume....!\n"); ecom_pdata->power(1); - AMI304_Chipset_Init(ami304_data.mode, ami304_data.chipset); + AMI304_Init(ami304_data.mode); return 0; } #endif -static const struct i2c_device_id ami304_ids[] = { +static const struct i2c_device_id motion_ids[] = { { "ami304_sensor", 0 }, { }, }; @@ -1603,8 +1573,8 @@ static struct i2c_driver ami304_i2c_driver = { .probe = ami304_probe, - .remove = __devexit_p(ami304_remove), - .id_table = ami304_ids, + .remove = ami304_remove, + .id_table = motion_ids, .driver = { .owner = THIS_MODULE, .name = "ami304_sensor", @@ -1616,7 +1586,7 @@ static int __init ami304_init(void) { - int res; + int ret; if (AMI304_DEBUG_FUNC_TRACE & ami304_debug_mask) AMID("AMI304 MI sensor driver: init\n"); @@ -1624,31 +1594,24 @@ rwlock_init(&ami304mid_data.datalock); rwlock_init(&ami304_data.lock); memset(&ami304mid_data.controldata[0], 0, sizeof(int)*10); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-27, [LS670] - * 200ms is too slow to calibrate, so set 100ms - */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-11, [LS670] - * 20 ms by sprint request - */ - ami304mid_data.controldata[AMI304_CB_LOOPDELAY] = 20; // Loop Delay - ami304mid_data.controldata[AMI304_CB_RUN] = 1; // Run - ami304mid_data.controldata[AMI304_CB_ACCCALI] = 0; // Start-AccCali - ami304mid_data.controldata[AMI304_CB_MAGCALI] = 1; // Start-MagCali - ami304mid_data.controldata[AMI304_CB_ACTIVESENSORS] = 0; // Active Sensors - ami304mid_data.controldata[AMI304_CB_PD_RESET] = 0; // Pedometer not reset - ami304mid_data.controldata[AMI304_CB_PD_EN_PARAM] = 0; // Disable parameters of Pedometer - memset(&ami304mid_data.pedometerparam[0], 0, sizeof(int)*AMI304_PD_LENGTH); + ami304mid_data.controldata[0] = 20*1000; //Loop Delay + ami304mid_data.controldata[1] = 0; // Run + ami304mid_data.controldata[2] = 0; // Disable Start-AccCali + ami304mid_data.controldata[3] = 1; // Enable Start-Cali + ami304mid_data.controldata[4] = 350; // MW-Timout + ami304mid_data.controldata[5] = 10; // MW-IIRStrength_M + ami304mid_data.controldata[6] = 10; // MW-IIRStrength_G atomic_set(&dev_open_count, 0); atomic_set(&hal_open_count, 0); atomic_set(&daemon_open_count, 0); - res = i2c_add_driver(&ami304_i2c_driver); - if (res) { + ret = i2c_add_driver(&ami304_i2c_driver); + if (ret) { AMIE("failed to probe i2c \n"); i2c_del_driver(&ami304_i2c_driver); } - return res; + return ret; } static void __exit ami304_exit(void) @@ -1663,6 +1626,5 @@ module_exit(ami304_exit); MODULE_AUTHOR("Kyle K.Y. Chen"); -MODULE_DESCRIPTION("AMI304 MI-Sensor driver without DRDY"); +MODULE_DESCRIPTION("AMI304 MI sensor input_dev driver v1.0.5.10"); MODULE_LICENSE("GPL"); -MODULE_VERSION(DRIVER_VERSION); diff -urP vd/kernel/drivers/input/sensor/ami304.h vm670/kernel/drivers/input/sensor/ami304.h --- vd/kernel/drivers/input/sensor/ami304.h 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/sensor/ami304.h 2011-04-12 06:00:31.000000000 -0400 @@ -25,6 +25,8 @@ //new Addr=0x0E(Low), old Addr=0x0F(High) #define AMI304_I2C_ADDRESS 0x0E +//#define AMI304_MAG_OFFSET_ADJ + /* AMI304 Internal Register Address (Please refer to AMI304 Specifications) */ #define AMI304_REG_CTRL1 0x1B #define AMI304_REG_CTRL2 0x1C @@ -48,107 +50,43 @@ #define AMI304_CTRL3_NOFORCE_BIT 0x00 #define AMI304_CTRL3_FORCE_BIT 0x40 #define AMI304_CTRL3_B0_LO_CLR 0x00 -#define AMI304_CTRL4_COMPASS_MODE 0x00 -#define AMI306_CTRL4_HIGHSPEED_MODE 0x80 -#define AMI304_WIA_VALUE 0x47 -#define AMI306_WIA_VALUE 0x46 /* IOCTLs for ami304 misc. device library */ -#define AMI304IO 0x83 +#define AMI304IO 0x83 #define AMI304_IOCTL_INIT _IO(AMI304IO, 0x01) #define AMI304_IOCTL_READ_CHIPINFO _IOR(AMI304IO, 0x02, int) #define AMI304_IOCTL_READ_SENSORDATA _IOR(AMI304IO, 0x03, int) #define AMI304_IOCTL_READ_POSTUREDATA _IOR(AMI304IO, 0x04, int) -#define AMI304_IOCTL_WRITE_POSTUREDATA _IOW(AMI304IO, 0x05, int) -#define AMI304_IOCTL_READ_CALIDATA _IOR(AMI304IO, 0x06, int) -#define AMI304_IOCTL_WRITE_CALIDATA _IOW(AMI304IO, 0x07, int) -#define AMI304_IOCTL_READ_GYRODATA _IOR(AMI304IO, 0x08, int) -#define AMI304_IOCTL_WRITE_GYRODATA _IOW(AMI304IO, 0x09, int) -#define AMI304_IOCTL_READ_PEDODATA _IOR(AMI304IO, 0x0A, long) -#define AMI304_IOCTL_WRITE_PEDODATA _IOW(AMI304IO, 0x0B, long) -#define AMI304_IOCTL_READ_PEDOPARAM _IOR(AMI304IO, 0x0C, int) -#define AMI304_IOCTL_WRITE_PEDOPARAM _IOW(AMI304IO, 0x0D, int) -#define AMI304_IOCTL_READ_CONTROL _IOR(AMI304IO, 0x0E, int) -#define AMI304_IOCTL_WRITE_CONTROL _IOW(AMI304IO, 0x0F, int) -#define AMI304_IOCTL_WRITE_MODE _IOW(AMI304IO, 0x10, int) -#define AMI304_IOCTL_WRITE_REPORT _IOW(AMI304IO, 0x11, int) -#define AMI304_IOCTL_READ_WIA _IOR(AMI304IO, 0x12, int) +#define AMI304_IOCTL_READ_CALIDATA _IOR(AMI304IO, 0x05, int) +#define AMI304_IOCTL_READ_CONTROL _IOR(AMI304IO, 0x06, int) +#define AMI304_IOCTL_SET_CONTROL _IOW(AMI304IO, 0x07, int) +#define AMI304_IOCTL_SET_MODE _IOW(AMI304IO, 0x08, int) /* IOCTLs for AMI304 middleware misc. device library */ -#define AMI304DAEIO 0x84 -#define AMI304DAE_IOCTL_GET_SENSORDATA _IOR(AMI304DAEIO, 0x01, int) -#define AMI304DAE_IOCTL_SET_POSTURE _IOW(AMI304DAEIO, 0x02, int) -#define AMI304DAE_IOCTL_SET_CALIDATA _IOW(AMI304DAEIO, 0x03, int) -#define AMI304DAE_IOCTL_SET_GYRODATA _IOW(AMI304DAEIO, 0x04, int) -#define AMI304DAE_IOCTL_SET_PEDODATA _IOW(AMI304DAEIO, 0x05, long) -#define AMI304DAE_IOCTL_GET_PEDOPARAM _IOR(AMI304DAEIO, 0x06, int) -#define AMI304DAE_IOCTL_SET_PEDOPARAM _IOR(AMI304DAEIO, 0x07, int) -#define AMI304DAE_IOCTL_SET_CONTROL _IOW(AMI304DAEIO, 0x08, int) -#define AMI304DAE_IOCTL_GET_CONTROL _IOR(AMI304DAEIO, 0x09, int) -#define AMI304DAE_IOCTL_SET_MODE _IOW(AMI304DAEIO, 0x0A, int) -#define AMI304DAE_IOCTL_SET_REPORT _IOW(AMI304DAEIO, 0x0B, int) -#define AMI304DAE_IOCTL_GET_WIA _IOR(AMI304DAEIO, 0x0C, int) -#define AMI304DAE_IOCTL_SET_I2CDATA _IOW(AMI304DAEIO, 0x0d, int) -#define AMI304DAE_IOCTL_SET_I2CADDR _IOW(AMI304DAEIO, 0x0e, int) -#define AMI304DAE_IOCTL_GET_I2CDATA _IOR(AMI304DAEIO, 0x0f, int) +#define AMI304MIDIO 0x84 +#define AMI304MID_IOCTL_GET_SENSORDATA _IOR(AMI304MIDIO, 0x01, int) +#define AMI304MID_IOCTL_SET_POSTURE _IOW(AMI304MIDIO, 0x02, int) +#define AMI304MID_IOCTL_SET_CALIDATA _IOW(AMI304MIDIO, 0x03, int) +#define AMI304MID_IOCTL_SET_CONTROL _IOW(AMI304MIDIO, 0x04, int) +#define AMI304MID_IOCTL_GET_CONTROL _IOR(AMI304MIDIO, 0x05, int) +#define AMI304MID_IOCTL_SET_MODE _IOW(AMI304MIDIO, 0x06, int) +#define AMI304MID_IOCTL_SET_REPORT _IOW(AMI304MIDIO, 0x07, int) +#define AMI304MID_IOCTL_MAG_OFFSET_ADJ _IO(AMI304MIDIO, 0x08) +#define AMI304MID_IOCTL_GET_MAG_OFFSET _IOW(AMI304MIDIO, 0x09, int) +#define AMI304MID_IOCTL_SET_MAG_OFFSET _IOW(AMI304MIDIO, 0x0a, int) /* IOCTLs for AMI304 HAL misc. device library */ #define AMI304HALIO 0x85 #define AMI304HAL_IOCTL_GET_SENSORDATA _IOR(AMI304HALIO, 0x01, int) #define AMI304HAL_IOCTL_GET_POSTURE _IOR(AMI304HALIO, 0x02, int) #define AMI304HAL_IOCTL_GET_CALIDATA _IOR(AMI304HALIO, 0x03, int) -#define AMI304HAL_IOCTL_GET_GYRODATA _IOR(AMI304HALIO, 0x04, int) -#define AMI304HAL_IOCTL_GET_PEDODATA _IOR(AMI304HALIO, 0x05, long) -#define AMI304HAL_IOCTL_GET_PEDOPARAM _IOR(AMI304HALIO, 0x06, int) -#define AMI304HAL_IOCTL_SET_PEDOPARAM _IOW(AMI304HALIO, 0x07, int) -#define AMI304HAL_IOCTL_GET_CONTROL _IOR(AMI304HALIO, 0x08, int) -#define AMI304HAL_IOCTL_SET_CONTROL _IOW(AMI304HALIO, 0x09, int) -#define AMI304HAL_IOCTL_GET_WIA _IOR(AMI304HALIO, 0x0A, int) +#define AMI304HAL_IOCTL_SET_ACTIVE _IOW(AMI304HALIO, 0x04, int) +#define AMI304HAL_IOCTL_SET_CONTROL _IOW(AMI304HALIO, 0x05, int) +#define AMI304HAL_IOCTL_GET_CONTROL _IOR(AMI304HALIO, 0x06, int) -#define AMI304_CHIPSET 0 -#define AMI306_CHIPSET 1 #define AMI304_BUFSIZE 256 #define AMI304_NORMAL_MODE 0 #define AMI304_FORCE_MODE 1 #define AMI304_IRQ IRQ_EINT9 -/* Define items in Control-Byte */ -#define AMI304_CB_LENGTH 10 -#define AMI304_CB_LOOPDELAY 0 -#define AMI304_CB_RUN 1 -#define AMI304_CB_ACCCALI 2 -#define AMI304_CB_MAGCALI 3 -#define AMI304_CB_ACTIVESENSORS 4 -#define AMI304_CB_PD_RESET 5 -#define AMI304_CB_PD_EN_PARAM 6 -#define AMI304_CB_UNDEFINE_1 7 -#define AMI304_CB_UNDEFINE_2 8 -#define AMI304_CB_UNDEFINE_3 9 - -/* Pedometer Parameters */ -#define AMI304_PD_LENGTH 10 -#define AMI304_PD_PRARM_IIR1 0 -#define AMI304_PD_PRARM_IIR2 1 -#define AMI304_PD_PRARM_IIR3 2 -#define AMI304_PD_PRARM_IIR4 3 -#define AMI304_PD_PRARM_TH1 4 -#define AMI304_PD_PRARM_TH2 5 -#define AMI304_PD_PRARM_TH3 6 -#define AMI304_PD_PRARM_TH4 7 -#define AMI304_PD_UNDEFINE_1 8 -#define AMI304_PD_UNDEFINE_2 9 - -/* Define AMIT Sensor Type */ -#define AMIT_ACCELEROMETER_SENSOR 0 -#define AMIT_MAGNETIC_FIELD_SENSOR 1 -#define AMIT_ORIENTATION_SENSOR 2 -//#define AMIT_GYROSCOPE_SENSOR 3 -//#define AMIT_PEDOMETER_SENSOR 4 - -#define AMIT_BIT_ACCELEROMETER (1< - * Modified by EunYoung, Cho LGE Inc. + * Modified by EunYoung, Cho LGE Inc. * - Modified power sequence * - I2c driver register(probe, release) * @@ -26,15 +26,11 @@ #include #include #include -//#include /*LGE_CHANGE 2009.09.27 [eycho1004@lge.com]*/ #include #include -//#include /*LGE_CHANGE 2009.09.27 [eycho1004@lge.com]*/ -//#include /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]*/ #include #include -/*LGE_CHANGE_S 2009.09.27 [eycho1004@lge.com] - Add head file and defined debug message*/ #include #include #include @@ -83,7 +79,6 @@ static int mode = AMI602_INIT; -/*LGE_CHANGE_E 2009.09.27 [eycho1004@lge.com]*/ static struct work_struct ami602_readmeasure_work; @@ -117,7 +112,6 @@ struct _ami602_data { rwlock_t lock; -// int mode; /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]*/ int rate; volatile int updated; int ch1; @@ -144,98 +138,6 @@ int mag_status; } ami602mid_data; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ -static int -s3c_irqext_type(unsigned int irq, unsigned int type) -{ - - unsigned long newvalue = 0; - - - /* Set the external interrupt to pointed trigger type */ - switch (type) { - case IRQT_NOEDGE: - printk(KERN_WARNING "No edge setting!\n"); - break; - - case IRQT_RISING: - newvalue = S3C_EXTINT_RISEEDGE; - break; - - case IRQT_FALLING: - newvalue = S3C_EXTINT_FALLEDGE; - break; - - case IRQT_BOTHEDGE: - newvalue = S3C_EXTINT_BOTHEDGE; - break; - - case IRQT_LOW: - newvalue = S3C_EXTINT_LOWLEV; - break; - - case IRQT_HIGH: - newvalue = S3C_EXTINT_HILEV; - break; - - default: - printk(KERN_ERR "No such irq type %d", type); - return -1; - } - - switch (irq) { - case AMI602_IRQ: - s3c_gpio_cfgpin(S3C_GPN9, S3C_GPN9_EXTINT9); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 16)) | - (newvalue << 16), S3C_EINTCON0); - break; - - case IRQ_EINT10: - s3c_gpio_cfgpin(S3C_GPN10, S3C_GPN10_EXTINT10); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) | - (newvalue << 20), S3C_EINTCON0); - break; - - case IRQ_EINT11: - s3c_gpio_cfgpin(S3C_GPN11, S3C_GPN11_EXTINT11); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) | - (newvalue << 20), S3C_EINTCON0); - break; - case IRQ_EINT12: - s3c_gpio_cfgpin(S3C_GPN12, S3C_GPN12_EXTINT12); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) | - (newvalue << 24), S3C_EINTCON0); - break; - - case IRQ_EINT13: - s3c_gpio_cfgpin(S3C_GPN13, S3C_GPN13_EXTINT13); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) | - (newvalue << 24), S3C_EINTCON0); - break; - - case IRQ_EINT14: - s3c_gpio_cfgpin(S3C_GPN14, S3C_GPN14_EXTINT14); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) | - (newvalue << 28), S3C_EINTCON0); - break; - - case IRQ_EINT15: - s3c_gpio_cfgpin(S3C_GPN15, S3C_GPN15_EXTINT15); - __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) | - (newvalue << 28), S3C_EINTCON0); - break; - default: - printk(KERN_ERR - "s3c_irqext_type : Only support EINT9,10,11,12,13,14,15 interrupt.\n"); - break; - - } - return 0; -} -#endif -/*LGE_CHANGE_E 2009.10.02 [eycho1004@lge.com]*/ - -/*LGE_CHANGE_S 2009.09.27 [eycho1004@lge.com] - Changed GPIO API*/ #if 1 static int AMI602_SendTrigger(void) { @@ -259,37 +161,21 @@ return 0; } #endif -/*LGE_CHANGE_E 2009.09.27 [eycho1004@lge.com]*/ static int AMI602_SetMode(int newmode) { u8 databuf[10]; int res = 0; -// int mode = 0; /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- AICHI STEEL Orginal Source Code*/ - -#if 0 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - read_lock(&ami602_data.lock); - mode = ami602_data.mode; - read_unlock(&ami602_data.lock); -#endif if (mode == newmode) return 0; memset(databuf, 0, sizeof(u8)*10); -#if 0 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- AICHI STEEL Orginal Source Code*/ - if (mode==2) { -#else if (mode > 2){ -#endif AMI602_SendTrigger(); udelay(1000); } -#if 0 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- AICHI STEEL Orginal Source Code*/ - if (newmode==0) { -#else if (newmode == AMI602_HOST_ON) { -#endif //Stop 6CH sensor triggered measurement AMI602_SendTrigger(); databuf[0] = AMI602_CMD_SET_MES_6CH_AUTO_STOP; @@ -316,17 +202,10 @@ if (res<=0) goto exit_AMI602_SetMode; -// flush_scheduled_work(); /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- AICHI STEEL Orginal Source Code*/ -#if 1 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- Add MODE STATE STORE*/ mode = AMI602_HOST_ON; -#endif } -#if 0 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- AICHI STEEL Orginal Source Code*/ - else if (newmode == 1){ -#else else if (newmode == AMI602_SENSOR_ON){ -#endif AMI602_SendTrigger(); //Set Enable of accelerometers databuf[0] = AMI602_CMD_SET_AEN; @@ -354,15 +233,8 @@ res = i2c_master_recv(ami602_i2c_client, databuf, 0x01); if (res<=0) goto exit_AMI602_SetMode; -#if 1 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- Add MODE STATE STORE*/ - mode = AMI602_SENSOR_ON; -#endif } -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - else if (newmode == 2) { -#else else if (newmode == AMI602_HOST_OFF || newmode == AMI602_SENSOR_OFF) { -#endif AMI602_SendTrigger(); //Transfer to Power Down mode databuf[0] = AMI602_CMD_SET_PWR_DOWN; @@ -377,23 +249,14 @@ if (res<=0) goto exit_AMI602_SetMode; -#if 1 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- Add MODE STATE STORE*/ if(mode == AMI602_HOST_ON) mode = AMI602_HOST_OFF; else mode = AMI602_SENSOR_OFF; -#endif } else return -3; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - write_lock(&ami602_data.lock); - ami602_data.mode = newmode; - write_unlock(&ami602_data.lock); - printk(KERN_INFO "Set AMI602 to mode %d\n", newmode); -#endif - exit_AMI602_SetMode: if (res<=0) { return -1; @@ -404,7 +267,6 @@ return 0; } -/*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - sequence of power*/ static int AMI602_Power_On(void) { int res = 0; @@ -430,9 +292,8 @@ return res; } -/*LGE_CHANGE_E 2009.10.02 [eycho1004@lge.com]*/ -#if 1 /*LGE_CHANGE_E 2009.10.02 [eycho1004@lge.com] Changed Host Trigger Mode initialization*/ +#if 1 static int AMI602_Init(void) { u8 databuf[10]; @@ -537,13 +398,6 @@ u8 databuf[10]; int res = 0; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - AMID("SensorTrigger start... \n"); - write_lock(&ami602_data.lock); - ami602_data.mode = 1;//sensor trigger mode - write_unlock(&ami602_data.lock); -#endif - AMI602_SendTrigger(); memset(databuf, 0, sizeof(u8)*10); @@ -575,7 +429,7 @@ if (res<=0) goto exit_AMI602_Init_SensorTrigger; -#if 1 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- Add MODE STATE STORE*/ +#if 1 mode = AMI602_SENSOR_ON; #endif @@ -595,20 +449,12 @@ char cmd; int res = 0; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - int mode = 0; - - read_lock(&ami602_data.lock); - mode = ami602_data.mode; - read_unlock(&ami602_data.lock); -#endif - cmd = AMI602_CMD_GET_FIRMWARE; memset(databuf, 0, sizeof(u8)*10); if ((!buf)||(bufsize<=50)) return -1; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ +#if 0 if (mode != 0){ #else if (mode != AMI602_HOST_ON){ @@ -668,7 +514,6 @@ goto exit_AMI602_ReadSensorDataFromChip; if (databuf[0] == 0) { -// write_lock(&ami602_data.lock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ ami602_data.ch1 = ((int) databuf[1]) << 4 | ((int) databuf[2]) >> 4; ami602_data.ch2 = ((int) databuf[2] & 0x0f) << 8 | ((int) databuf[3]); ami602_data.ch3 = ((int) databuf[4]) << 4 | ((int) databuf[5]) >> 4; @@ -690,7 +535,6 @@ return 0; } -/*LGE_CHANGE_S [eycho1004@lge.com] changed ReadSensorData*/ static int AMI602_ReadSensorData_HostMode(char *buf, int bufsize) { char cmd; @@ -752,85 +596,21 @@ } return 0; } -/*LGE_CHANGE_E [eycho1004@lge.com] changed ReadSensorData*/ -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ -static int AMI602_ReadSensorDataHostMode(void) -{ - char cmd; - u8 databuf[20]; - int res = 0; - int updated = 0; - - memset(databuf, 0, sizeof(u8)*10); - if (!ami602_i2c_client) - return -3; - - AMI602_SendTrigger(); - - cmd = AMI602_CMD_REQ_MES; - res = i2c_master_send(ami602_i2c_client, &cmd, 0x1); - if (res<=0) - goto exit_AMI602_ReadSensorDataHostMode; - udelay(350); - - res = i2c_master_recv(ami602_i2c_client, databuf, 1); - if (res<=0) - goto exit_AMI602_ReadSensorDataHostMode; - - write_lock(&ami602_data.lock); - ami602_data.updated = 0; - write_unlock(&ami602_data.lock); - - do { - read_lock(&ami602_data.lock); - updated = ami602_data.updated; - msleep(1); - read_unlock(&ami602_data.lock); - } while (updated == 0); - -exit_AMI602_ReadSensorDataHostMode: - if (res<=0) { - return -1; - } - else if (databuf[0] != 0) { - return -2; - } - return 0; -} -#endif static int AMI602_ReadSensorData(char *buf, int bufsize) { int ch1,ch2,ch3,ch4,ch5,ch6; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - int mode = 0; - int res=0; -#endif if ((!buf)||(bufsize<=80)) return -10; -#if 0 /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ - if (mode == AMI602_HOST_ON) - { - res = AMI602_ReadSensorDataHostMode(); - if (res<0) - { - sprintf(buf, "Error in reading sensor!"); - return res; - } - } -#endif - -// read_lock(&ami602_data.lock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ ch1 = ami602_data.ch1; ch2 = ami602_data.ch2; ch3 = ami602_data.ch3; ch4 = ami602_data.ch4; ch5 = ami602_data.ch5; ch6 = ami602_data.ch6; -// read_lock(&ami602_data.lock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ sprintf(buf, "%04x %04x %04x %04x %04x %04x", ch1,ch2,ch3,ch4,ch5,ch6); return 0; @@ -848,7 +628,6 @@ { if ((!buf)||(bufsize<=80)) return -1; -// read_lock(&ami602mid_data.datalock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ sprintf(buf, "%d %d %d %d %d %d %d", ami602mid_data.nmx, ami602mid_data.nmy, ami602mid_data.nmz,ami602mid_data.nax,ami602mid_data.nay,ami602mid_data.naz, ami602mid_data.mag_status); // read_unlock(&ami602mid_data.datalock); @@ -859,7 +638,6 @@ { if ((!buf)||(bufsize<=80)) return -1; -// read_lock(&ami602mid_data.datalock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ sprintf(buf, "%d %d %d %d %d", ami602mid_data.controldata[0], ami602mid_data.controldata[1], ami602mid_data.controldata[2],ami602mid_data.controldata[3],ami602mid_data.controldata[4]); // read_unlock(&ami602mid_data.ctrllock); @@ -876,7 +654,7 @@ static ssize_t show_sensordata_value(struct device *dev, struct device_attribute *attr, char *buf) { char strbuf[AMI602_BUFSIZE]; -#if 1 /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com]- SensorData*/ +#if 1 if(mode == AMI602_HOST_ON) AMI602_ReadSensorData_HostMode(strbuf, AMI602_BUFSIZE); @@ -913,14 +691,11 @@ static ssize_t store_midcontrol_value(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { -// write_lock(&ami602mid_data.ctrllock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ sscanf(buf, "%d %d %d %d %d", &(ami602mid_data.controldata[0]), &(ami602mid_data.controldata[1]), &(ami602mid_data.controldata[2]),&(ami602mid_data.controldata[3]),&(ami602mid_data.controldata[4])); -// write_unlock(&ami602mid_data.ctrllock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ return count; } #if 1 -/*LGE_CHANGE_S 2009.11.02 [eycho1004@lge.com] - mode to change*/ static ssize_t show_mode_value(struct device *dev, struct device_attribute *attr, char *buf) { char *s; @@ -965,7 +740,6 @@ return count; } -/*LGE_CHANGE_E 2009.11.02 [eycho1004@lge.com] */ #else static ssize_t show_mode_value(struct device *dev, struct device_attribute *attr, char *buf) @@ -1019,7 +793,6 @@ switch (cmd) { case AMI602MID_IOCTL_SET_POSTURE: -// printk(KERN_INFO "Enter AMI602MID_IOCTL_SET_POSTURE\n"); /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ data = (void __user *) arg; if (data == NULL) break; @@ -1027,13 +800,10 @@ retval = -EFAULT; goto err_out; } -// printk(KERN_INFO "Set posture to be %d %d %d\n", valuebuf[0],valuebuf[1],valuebuf[2]); /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ -// write_lock(&ami602mid_data.datalock); /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ ami602mid_data.yaw = valuebuf[0]; ami602mid_data.pitch = valuebuf[1]; ami602mid_data.roll = valuebuf[2]; ami602mid_data.mag_status = valuebuf[3]; -// write_unlock(&ami602mid_data.datalock); /*LGE_CHANGE 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ break; case AMI602MID_IOCTL_SET_CALIDATA: @@ -1044,7 +814,6 @@ retval = -EFAULT; goto err_out; } -// write_lock(&ami602mid_data.datalock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ ami602mid_data.nmx = calidata[0]; ami602mid_data.nmy = calidata[1]; ami602mid_data.nmz = calidata[2]; @@ -1052,7 +821,6 @@ ami602mid_data.nay = calidata[4]; ami602mid_data.naz = calidata[5]; ami602mid_data.mag_status = calidata[6]; -// write_unlock(&ami602mid_data.datalock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ break; case AMI602MID_IOCTL_GET_CONTROL: @@ -1074,9 +842,7 @@ retval = -EFAULT; goto err_out; } -// write_lock(&ami602mid_data.ctrllock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ memcpy(&ami602mid_data.controldata[0], controlbuf, sizeof(controlbuf)); -// write_unlock(&ami602mid_data.ctrllock); /*LGE_CHANGE_S 2009.10.02 [eycho1004@lge.com] - AICHI STEEL Orginal Source Code*/ break; default: printk(KERN_ERR "%s not supported = 0x%04x", __FUNCTION__, cmd); @@ -1203,7 +969,6 @@ AMI602_ReadSensorDataFromChip(); } -/* LGE_CHANGE_S 2009.09.27 [eycho1004@lge.com]- Add GED 6-axis Sensor */ #if 1 /* AMI602 BUSY rising isr */ static irqreturn_t ami602_busy_rising_isr(int irq, void *dev_id) @@ -1401,7 +1166,6 @@ }, .id = 1601, }; -/* LGE_CHANGE_E 2009.09.27 [eycho1004@lge.com] */ #else /* AICHI STEEL Orginal Source Code */ static int ami602_interrupt(int irq, void *dev_id) @@ -1515,7 +1279,7 @@ static int __init ami602_init(void) { -#if 1 /*LGE_CHANGE 2009.09.27 [eycho1004@lge.com] - Add ERROR condition*/ +#if 1 int ret; ami602mid_data.controldata[0] = 50000; ami602mid_data.controldata[1] = 0; diff -urP vd/kernel/drivers/input/sensor/gp2ap002.c vm670/kernel/drivers/input/sensor/gp2ap002.c --- vd/kernel/drivers/input/sensor/gp2ap002.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/sensor/gp2ap002.c 2011-04-12 06:00:31.000000000 -0400 @@ -2,8 +2,8 @@ * drivers/input/sensor/gp2ap002.c - Proximity Sensor driver * * Copyright (C) 2009 - 2010 LGE, Inc. - * Author: Lee, Kenobi [sungyoung.lee@lge.com] - * Cho, EunYoung [ey.cho@lge.com] + * Author: Lee, Kenobi + * Cho, EunYoung * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -378,7 +378,6 @@ PROXD("exit\n"); } -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-07, rework the work_func static void gp2ap_work_func(struct work_struct *work) { struct proximity_gp2ap_device *dev = diff -urP vd/kernel/drivers/input/sensor/kr3dh.c vm670/kernel/drivers/input/sensor/kr3dh.c --- vd/kernel/drivers/input/sensor/kr3dh.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/sensor/kr3dh.c 2011-04-12 06:00:31.000000000 -0400 @@ -129,7 +129,6 @@ u8 resume_state[5]; }; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, x, y, z for sysfs static unsigned char kr3dh_xyz[3] = {0,}; /* @@ -352,7 +351,6 @@ hw_d[1] = (int) (((acc_data[3]) << 8) | acc_data[2]); hw_d[2] = (int) (((acc_data[5]) << 8) | acc_data[4]); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, x, y, z for sysfs kr3dh_xyz[0] = (unsigned char)(hw_d[0] >> 4); kr3dh_xyz[1] = (unsigned char)(hw_d[1] >> 4); kr3dh_xyz[2] = (unsigned char)(hw_d[2] >> 4); @@ -661,7 +659,6 @@ input_free_device(kr->input_dev); } -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-19, sysfs static ssize_t kr3dh_x_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -694,7 +691,6 @@ static struct attribute_group dev_attr_grp = { .attrs = dev_attrs, }; -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-19, sysfs static int kr3dh_probe(struct i2c_client *client, const struct i2c_device_id *id) @@ -810,7 +806,6 @@ mutex_unlock(&kr->lock); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, sysfs sysfs_create_group(&client->dev.kobj, &dev_attr_grp); dev_info(&client->dev, "%s kr3dh: Accelerometer chip found\n", client->name); @@ -838,7 +833,6 @@ /* TODO: revisit ordering here once _probe order is finalized */ struct kr3dh_data *kr = i2c_get_clientdata(client); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, sysfs sysfs_remove_group(&client->dev.kobj, &dev_attr_grp); misc_deregister(&kr3dh_misc_device); diff -urP vd/kernel/drivers/input/sensor/kr3dm.c vm670/kernel/drivers/input/sensor/kr3dm.c --- vd/kernel/drivers/input/sensor/kr3dm.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/sensor/kr3dm.c 2011-04-12 06:00:31.000000000 -0400 @@ -130,7 +130,6 @@ u8 resume_state[5]; }; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, x, y, z for sysfs static unsigned char kr3dm_xyz[3] = {0,}; /* @@ -356,7 +355,6 @@ err = kr3dm_i2c_read(kr,&acc_data[2], 1); xyz[2] = (int)((signed char)acc_data[2]); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, x, y, z for sysfs kr3dm_xyz[0] = (unsigned char)(acc_data[0]); kr3dm_xyz[1] = (unsigned char)(acc_data[1]); kr3dm_xyz[2] = (unsigned char)(acc_data[2]); @@ -495,7 +493,7 @@ break; - case AKMD2_TO_ACCEL_IOCTL_READ_XYZ: /* LGE_CHANGE [hyesung.shin@lge.com] on 2010-1-23, for */ + case AKMD2_TO_ACCEL_IOCTL_READ_XYZ: err=kr3dm_get_acceleration_data(kr, buf); if (err < 0) return err; @@ -650,7 +648,6 @@ input_free_device(kr->input_dev); } -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-19, sysfs static ssize_t kr3dm_x_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -683,7 +680,6 @@ static struct attribute_group dev_attr_grp = { .attrs = dev_attrs, }; -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-19, sysfs static int kr3dm_probe(struct i2c_client *client, const struct i2c_device_id *id) @@ -799,7 +795,6 @@ mutex_unlock(&kr->lock); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, sysfs sysfs_create_group(&client->dev.kobj, &dev_attr_grp); dev_info(&client->dev, "%s kr3dm: Accelerometer chip found\n", client->name); @@ -827,7 +822,6 @@ /* TODO: revisit ordering here once _probe order is finalized */ struct kr3dm_data *kr = i2c_get_clientdata(client); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, sysfs sysfs_remove_group(&client->dev.kobj, &dev_attr_grp); misc_deregister(&kr3dm_misc_device); diff -urP vd/kernel/drivers/input/touchscreen/mcs6000_ts.c vm670/kernel/drivers/input/touchscreen/mcs6000_ts.c --- vd/kernel/drivers/input/touchscreen/mcs6000_ts.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/input/touchscreen/mcs6000_ts.c 2011-04-12 06:00:31.000000000 -0400 @@ -44,7 +44,6 @@ static void mcs6000_late_resume(struct early_suspend *h); #endif -/* LGE_CHANGE [dojip.kim@lge.com] 2010-07-01, touch event logging */ #if defined (CONFIG_LGE_DIAGTEST) extern void ats_eta_mtc_touch_logging (int pendown, int x, int y); #endif @@ -98,9 +97,7 @@ int sda_gpio; bool pendown; int (*power)(unsigned char onoff); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12 unsigned int count; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, fix the freezing (from VS660) struct workqueue_struct *ts_wq; }; @@ -126,8 +123,6 @@ MAX_KEY_TOUCH }; -/* LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.23 : to support touch event from UTS*/ -/* [FIXME temporary code] copy form VS740 by younchan.kim 2010-06-11 */ void Send_Touch( unsigned int x, unsigned int y) { #ifdef LG_FW_MULTI_TOUCH @@ -151,8 +146,6 @@ #endif } EXPORT_SYMBOL(Send_Touch); -/* LGE_CHANGE_E [kyuhyung.lee@lge.com] 2010.02.23 */ -/* copy form VS740 by younchan.kim 2010-06-11 */ static __inline void mcs6000_key_event_touch(int touch_reg, int value, struct mcs6000_ts_device *dev) { @@ -248,7 +241,6 @@ #define to_delayed_work(_work) container_of(_work, struct delayed_work, work) -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-12, save the previous count static unsigned int saved_count = -1; static void mcs6000_work(struct work_struct *work) @@ -260,11 +252,8 @@ static unsigned int s_input_type = NON_TOUCHED_STATE; #endif unsigned int input_type; - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - //unsigned int key_touch; unsigned char read_buf[READ_NUM]; - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used //static int key_pressed = 0; static int touch_pressed = 0; @@ -273,15 +262,7 @@ dev->pendown = !gpio_get_value(dev->intr_gpio); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12, new event if (dev->pendown && (saved_count != dev->count)) { - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - /* - if(key_pressed) { - mcs6000_key_event_touch(key_pressed, RELEASED, dev); - key_pressed = 0; - } - */ if (touch_pressed) { #ifdef LG_FW_MULTI_TOUCH @@ -317,16 +298,6 @@ } input_type = read_buf[0] & 0x0f; - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - //key_touch = (read_buf[0] & 0xf0) >> 4; - - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - /* - x1 = y1 =0; -#ifdef LG_FW_MULTI_TOUCH - x2 = y2 = 0; -#endif - */ x1 = (read_buf[1] & 0xf0) << 4; y1 = (read_buf[1] & 0x0f) << 8; @@ -345,26 +316,12 @@ #endif if (dev->pendown) { /* touch pressed case */ - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - /* - if(key_touch) { - mcs6000_key_event_touch(key_touch, PRESSED, dev); - key_pressed = key_touch; - } - */ if(input_type) { touch_pressed = 1; /* exceptional routine for the touch case moving from key area to touch area of touch screen */ - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - /* - if(key_pressed) { - mcs6000_key_event_touch(key_pressed, RELEASED, dev); - key_pressed = 0; - } - */ #ifdef LG_FW_MULTI_TOUCH if(input_type == MULTI_POINT_TOUCH) { mcs6000_multi_ts_event_touch(x1, y1, x2, y2, PRESSED, dev); @@ -376,14 +333,12 @@ else if(input_type == SINGLE_POINT_TOUCH) { mcs6000_multi_ts_event_touch(x1, y1, -1, -1, PRESSED, dev); s_input_type = SINGLE_POINT_TOUCH; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12 pre_x1 = x1; pre_y1 = y1; } #else if(input_type == SINGLE_POINT_TOUCH) { mcs6000_single_ts_event_touch(x1, y1, PRESSED, dev); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12 pre_x1 = x1; pre_y1 = y1; } @@ -391,13 +346,6 @@ } } else { /* touch released case */ - // LGE_CHANGE [dojip.kim@lgecom] 2010-08-12, not used - /* - if(key_pressed) { - mcs6000_key_event_touch(key_pressed, RELEASED, dev); - key_pressed = 0; - } - */ if(touch_pressed) { #ifdef LG_FW_MULTI_TOUCH @@ -410,7 +358,6 @@ DMSG("%s: single touch release... %d, %d\n", __FUNCTION__, x1, y1); mcs6000_multi_ts_event_touch(x1, y1, -1, -1, RELEASED, dev); } - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12 touch_pressed = 0; #else DMSG("%s: single release... %d, %d\n", __FUNCTION__, x1, y1); @@ -420,7 +367,6 @@ } } -/* LGE_CHANGE [james.jang@lge.com] 2010-06-12, touch event logging */ #if defined (CONFIG_LGE_DIAGTEST) ats_eta_mtc_touch_logging(dev->pendown, x1, y1); if(input_type == MULTI_POINT_TOUCH) @@ -430,18 +376,10 @@ touch_retry: if (dev->pendown) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, fix the freezing (from VS660) //schedule_delayed_work(&dev->work, msecs_to_jiffies(TS_POLLING_TIME)); queue_delayed_work(dev->ts_wq, &dev->work,msecs_to_jiffies(TS_POLLING_TIME)); } - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12 - /* - else { - enable_irq(dev->num_irq); - DMSG("%s: irq enable\n", __FUNCTION__); - } - */ } static irqreturn_t mcs6000_ts_irq_handler(int irq, void *handle) @@ -449,15 +387,8 @@ struct mcs6000_ts_device *dev = handle; if (gpio_get_value(dev->intr_gpio) == 0) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12, no block the irq - //disable_irq_nosync(dev->num_irq); - //DMSG("%s: irq disable\n", __FUNCTION__); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-12, queueing the event dev->count++; if (!dev->pendown) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, - // fix the freezing (from VS660) - //schedule_delayed_work(&dev->work, 0); queue_delayed_work(dev->ts_wq, &dev->work,msecs_to_jiffies(TS_POLLING_TIME)); } @@ -491,8 +422,6 @@ dev = &mcs6000_ts_dev; int try_cnt = 0; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-19, - // for avoiding the read fail from mcs6000 IC (from VS660) do { data = i2c_smbus_read_byte_data(dev->client, MCS6000_TS_FW_VERSION); msleep(10); @@ -684,9 +613,6 @@ mcs6000_firmware_info(); err = mcs6000_ts_dev.input_dev->id.version; break; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-21, - * add HW_VER - */ case MCS6000_TS_IOCTL_HW_VER: mcs6000_firmware_info(); err = mcs6000_ts_dev.input_dev->id.product; @@ -784,14 +710,6 @@ return err; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-20, use request_irq for quick response - /* TODO: You have try to change this driver's architecture using request_threaded_irq() - * So, I will change this to request_threaded_irq() - */ - /* - err = request_threaded_irq(dev->num_irq, NULL, mcs6000_ts_irq_handler, - IRQF_TRIGGER_LOW | IRQF_ONESHOT, "mcs6000_ts", dev); - */ err = request_irq(dev->num_irq, mcs6000_ts_irq_handler, IRQF_TRIGGER_FALLING, "mcs6000_ts", dev); @@ -878,8 +796,6 @@ if(is_downloading == 0) { DMSG(KERN_INFO"%s: start! \n", __FUNCTION__); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: - // early wakeup touch for performance, touch power on in mddi_novatek_hvga.c #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT enable_irq(dev->num_irq); #else @@ -915,7 +831,6 @@ static int __devinit mcs6000_ts_init(void) { int err = 0; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, fix the freezing (from VS660) struct mcs6000_ts_device *dev = &mcs6000_ts_dev; memset(&mcs6000_ts_dev, 0, sizeof(struct mcs6000_ts_device)); @@ -935,23 +850,12 @@ set_bit(EV_ABS, mcs6000_ts_input->evbit); #ifdef LG_FW_MULTI_TOUCH set_bit(ABS_MT_TOUCH_MAJOR, mcs6000_ts_input->absbit); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-23, android multi touch set_bit(ABS_MT_POSITION_X, mcs6000_ts_input->absbit); set_bit(ABS_MT_POSITION_Y, mcs6000_ts_input->absbit); #else set_bit(EV_KEY, mcs6000_ts_input->evbit); set_bit(BTN_TOUCH, mcs6000_ts_input->keybit); #endif - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-23, don't use it - /* -#if defined(LG_FW_TOUCH_SOFT_KEY) || defined(LG_FW_AUDIO_HAPTIC_TOUCH_SOFT_KEY) - set_bit(TOUCH_BACK, mcs6000_ts_input->keybit); - set_bit(TOUCH_SEARCH, mcs6000_ts_input->keybit); -#else - set_bit(KEY_BACK, mcs6000_ts_input->keybit); - set_bit(KEY_SEARCH, mcs6000_ts_input->keybit); -#endif - */ err = input_register_device(mcs6000_ts_input); if (err < 0) { @@ -971,7 +875,6 @@ goto err_misc_register; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, fix the freezing (from VS660) dev->ts_wq = create_singlethread_workqueue("ts_wq"); if (!dev->ts_wq) { err = -ENOMEM; @@ -995,14 +898,12 @@ static void __exit mcs6000_ts_exit(void) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, fix the freezing (from VS660) struct mcs6000_ts_device *dev = &mcs6000_ts_dev; i2c_del_driver(&mcs6000_i2c_ts_driver); input_unregister_device(mcs6000_ts_input); input_free_device(mcs6000_ts_input); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-22, fix the freezing (from VS660) if (dev->ts_wq) destroy_workqueue(dev->ts_wq); diff -urP vd/kernel/drivers/leds/leds-msm-pmic.c vm670/kernel/drivers/leds/leds-msm-pmic.c --- vd/kernel/drivers/leds/leds-msm-pmic.c 2011-02-04 19:01:07.000000000 -0500 +++ vm670/kernel/drivers/leds/leds-msm-pmic.c 2011-04-12 06:00:30.000000000 -0400 @@ -29,11 +29,6 @@ struct msm_pmic_leds_pdata *leds_pdata = 0; #endif -// LGE_CHANGE [james.jang@lge.com] 2010-08-07, again reduce the current -/* from 0 to 150 mA in 10 mA increments */ -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-14, reduce the current -//#define MAX_KEYPAD_BL_LEVEL 16 /* 15: 150 mA */ -//#define MAX_KEYPAD_BL_LEVEL 127 /* 2: 20 mA */ #define MAX_KEYPAD_BL_LEVEL 255 /* 1: 10 mA */ static void msm_keypad_bl_led_set(struct led_classdev *led_cdev, diff -urP vd/kernel/drivers/media/video/msm/isx005.c vm670/kernel/drivers/media/video/msm/isx005.c --- vd/kernel/drivers/media/video/msm/isx005.c 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/isx005.c 2011-04-12 06:00:30.000000000 -0400 @@ -1,7 +1,7 @@ /* Copyright (c) 2009, Code Aurora Forum. All rights reserved. * * Sony 3M ISX005 camera sensor driver - * Auther: Lee Hyung Tae[hyungtae.lee@lge.com], 2010-04-09 + * Auther: Lee Hyung Tae, 2010-04-09 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -48,7 +48,6 @@ #define ISX005_OM_CHANGED 0x0001 /* Operating mode */ #define ISX005_CM_CHANGED 0x0002 /* Camera mode */ -//LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch DEFINE_MUTEX(isx005_tuning_mutex); static int tuning_thread_run; @@ -61,7 +60,6 @@ struct config_work_queue *cfg_wq; static int cfg_wq_num; -//LGE_CHANGE_E[byungsik.choi@lge.com] /* It is distinguish normal from macro focus */ @@ -82,14 +80,12 @@ static struct isx005_ctrl *isx005_ctrl; static DECLARE_WAIT_QUEUE_HEAD(isx005_wait_queue); -/* LGE_CHANGE_S [youngki.an@lge.com] 2010-05-18 */ /*============================================================= EXTERNAL DECLARATIONS ==============================================================*/ #if 1//def LG_CAMERA_HIDDEN_MENU extern bool sensorAlwaysOnTest; #endif -/* LGE_CHANGE_E [youngki.an@lge.com] 2010-05-18 */ DEFINE_MUTEX(isx005_mutex); @@ -255,7 +251,6 @@ return rc; } -//LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch static int dequeue_sensor_config(int cfgtype, int mode); static void dequeue_cfg_wq(struct config_work_queue *cfg_wq) @@ -285,9 +280,7 @@ ++cfg_wq_num; } -//LGE_CHANGE_E[byungsik.choi@lge.com] -//LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch int isx005_reg_tuning(void *data) { int rc = 0; @@ -316,7 +309,6 @@ kfree(cfg_wq); tuning_thread_run = 0; mutex_unlock(&isx005_tuning_mutex); -//LGE_CHANGE_E[byungsik.choi@lge.com] return rc; } @@ -324,7 +316,6 @@ { int rc = 0; int i; - //LGE_CHANGE[byungsik.choi@lge.com]2010-08-04 to set focus initilaization in preview mode if(prev_af_mode == FOCUS_MACRO){ isx005_i2c_write(isx005_client->addr, 0x002E, 0x02, BYTE_LEN); isx005_i2c_write(isx005_client->addr, 0x0012, 0x01, BYTE_LEN); @@ -342,11 +333,6 @@ if (rc < 0) return rc; } - //LGE_CHANGE_[byungsik.choi@lge.com]2010-07-23 6020 patch - /* Checking the mode change status */ - /* BUG FIX : msm is changed preview mode but sensor is not change preview mode. */ - /*so there is case that vfe get capture image on preview mode */ - /* eunyoung.shin@lge.com 2010.07.13*/ for(i = 0; i < 300; i++) { unsigned short cm_changed_status = 0; @@ -360,7 +346,6 @@ else msleep(10); } - //LGE_CHANGE_[byungsik.choi@lge.com] return rc; @@ -383,9 +368,6 @@ return rc; } - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch - /* Checking the mode change status */ - /* eunyoung.shin@lge.com 2010.07.13*/ for(i = 0; i < 300; i++) { CDBG("[%s]:Sensor Snapshot Mode Start\n", __func__); @@ -402,53 +384,9 @@ CDBG("[%s]:Sensor Snapshot Mode checking : %d \n", __func__, cm_changed_status); } - //LGE_CHANGE_E[byungsik.choi@lge.com] return rc; } -/* - -//LGE_CHANGE_S[byungsik.choi@lge.com] 2010-06-29Add aqua effect -static int isx005_reg_effect_off(void) -{ - int rc = 0; - int i; - - // Configure sensor for Snapshot mode - for (i = 0; i < isx005_regs.effect_off_reg_settings_size; ++i) { - rc = isx005_i2c_write(isx005_client->addr, - isx005_regs.effect_off_reg_settings[i].register_address, - isx005_regs.effect_off_reg_settings[i].register_value, - isx005_regs.effect_off_reg_settings[i].register_length); - - if (rc < 0) - return rc; - } - - return rc; -} - - -static int isx005_reg_effect_aqua(void) -{ - int rc = 0; - int i; - - //Configure sensor for Snapshot mode - for (i = 0; i < isx005_regs.effect_aqua_reg_settings_size; ++i) { - rc = isx005_i2c_write(isx005_client->addr, - isx005_regs.effect_aqua_reg_settings[i].register_address, - isx005_regs.effect_aqua_reg_settings[i].register_value, - isx005_regs.effect_aqua_reg_settings[i].register_length); - - if (rc < 0) - return rc; - } - - return rc; -} -//LGE_CHANGE_E[byungsik.choi@lge.com]2010-06-29 -*/ static int isx005_set_sensor_mode(int mode) { @@ -634,8 +572,6 @@ return rc; } - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-29 fix macro AF problem - //When the result of af is success if (af_result == 1) { if((macro_AF_1 != macro_AF_2) ){ *lock = CFG_AF_LOCKED; // success @@ -650,7 +586,6 @@ *lock = CFG_AF_UNLOCKED; //0: focus fail or 2: during focus return rc; } - //LGE_CHANGE_E[byungsik.choi@lge.com]2010-07-29 return -ETIME; } @@ -899,8 +834,6 @@ break; - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-30 change effect mode value - //case CAMERA_EFFECT_BLUE: case CAMERA_EFFECT_AQUA: rc = isx005_i2c_write(isx005_client->addr, 0x005F, 0x03, BYTE_LEN); if (rc < 0) @@ -1322,7 +1255,6 @@ { int rc; int nNum = 0; - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-23 6020 patch struct task_struct *p; rc = data->pdata->camera_power_on(); @@ -1376,12 +1308,10 @@ } */ - //LGE_CAHNGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch p = kthread_run(isx005_reg_tuning, 0, "reg_tuning"); if (IS_ERR(p)) return PTR_ERR(p); - //LGE_CAHNGE_S[byungsik.choi@lge.com] return rc; } @@ -1399,8 +1329,6 @@ #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || \ defined(CONFIG_MACH_MSM7X27_THUNDERC) - /* LGE_CHANGE_S. Change code to apply new LUT for display quality. - * 2010-08-13. minjong.gong@lge.com */ mdp_load_thunder_lut(2); /* Camera LUT */ #endif rc = isx005_init_sensor(data); @@ -1408,7 +1336,6 @@ printk(KERN_ERR "[ERROR]%s:failed to initialize sensor!\n", __func__); goto init_probe_fail; } - //LGE_CHANGE[byungsik.choi@lge.com]2010-07-23 6020 patch tuning_thread_run = 0; cfg_wq = 0; @@ -1452,7 +1379,6 @@ int isx005_sensor_release(void) { int rc = 0; -/* LGE_CHANGE_S [youngki.an@lge.com] 2010-05-18 */ #if 1//def LG_CAMERA_HIDDEN_MENU if(sensorAlwaysOnTest ==true) { @@ -1465,7 +1391,6 @@ printk("==========================isx005_sensor_release sensorAlwaysOnTest is false =========================="); } #endif -/* LGE_CHANGE_E [youngki.an@lge.com] 2010-05-18 */ mutex_lock(&isx005_mutex); @@ -1477,15 +1402,11 @@ #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || \ defined(CONFIG_MACH_MSM7X27_THUNDERC) - /* LGE_CHANGE_S. Change code to apply new LUT for display quality. - * 2010-08-13. minjong.gong@lge.com */ mdp_load_thunder_lut(1); /* Normal LUT */ #endif return rc; } - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch - static int dequeue_sensor_config(int cfgtype, int mode) { @@ -1534,7 +1455,6 @@ } return rc; } - //LGE_CHANGE_E[byungsik.choi@lge.com]2010-07-23 6020 patch int isx005_sensor_config(void __user *argp) { @@ -1550,7 +1470,6 @@ CDBG("isx005_ioctl, cfgtype = %d, mode = %d\n", cfg_data.cfgtype, cfg_data.mode); - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-23 6020 patch mutex_lock(&isx005_tuning_mutex); if (tuning_thread_run) { if (cfg_data.cfgtype == CFG_MOVE_FOCUS) @@ -1561,8 +1480,6 @@ return rc; } mutex_unlock(&isx005_tuning_mutex); - //LGE_CHANGE_E[byungsik.choi@lge.com]2010-07-23 - mutex_lock(&isx005_mutex); switch (cfg_data.cfgtype) { diff -urP vd/kernel/drivers/media/video/msm/isx005.h vm670/kernel/drivers/media/video/msm/isx005.h --- vd/kernel/drivers/media/video/msm/isx005.h 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/isx005.h 2011-04-12 06:00:30.000000000 -0400 @@ -48,7 +48,6 @@ const struct isx005_register_address_value_pair *af_normal_reg_settings; uint16_t af_normal_reg_settings_size; - //LGE_CHANGE[byungsik.choi@lge.com]2010-09-09 add auto focus mode const struct isx005_register_address_value_pair *af_auto_reg_settings; uint16_t af_auto_reg_settings_size; const struct isx005_register_address_value_pair *af_macro_reg_settings; @@ -134,8 +133,6 @@ #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || \ defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE_S. Change code to apply new LUT for display quality. - * 2010-08-13. minjong.gong@lge.com */ extern void mdp_load_thunder_lut(int lut_type); #endif diff -urP vd/kernel/drivers/media/video/msm/isx005_reg.h vm670/kernel/drivers/media/video/msm/isx005_reg.h --- vd/kernel/drivers/media/video/msm/isx005_reg.h 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/isx005_reg.h 2011-04-12 06:00:30.000000000 -0400 @@ -36,7 +36,7 @@ {0x00FC, 0x1F ,BYTE_LEN}, // {0x000b, 0x02, BYTE_LEN}, // PLL_CKSEL - {0x3208, 0x01 ,BYTE_LEN}, // [LGE_CODE] FAST MODE CHANGE - eunyoung.shin@lge.com 2010-07-13 + {0x3208, 0x01 ,BYTE_LEN}, // {0x0009, 0x06 ,BYTE_LEN}, // INCK_SET {0x02C7, 0x01, BYTE_LEN}, // SRCCK_DIV {0x0038, 0x0D ,BYTE_LEN}, // sync masking on off - for QCT @@ -185,14 +185,12 @@ {0x4C18,0x8001,WORD_LEN}, {0x4C1A,0xC000,WORD_LEN}, {0x000E,0x12,BYTE_LEN}, - //LGE_CHANGE[byungsik.choi@lge.com] 2010-08-17 change camera sensor current {0x02CD,0xBE,BYTE_LEN}, {0x003A,0x0002,WORD_LEN}, {0x001C,0x00,BYTE_LEN}, {0x001F,0x03,BYTE_LEN}, {0x0022,0x8002,WORD_LEN}, {0x0028,0xE001,WORD_LEN}, - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-07-01 to stabilize the preview mode {0xB000, 0xBCBC ,WORD_LEN}, {0xB002, 0x2130 ,WORD_LEN}, {0xB004, 0x5580 ,WORD_LEN}, @@ -335,7 +333,6 @@ {0xB116, 0x1800 ,WORD_LEN}, {0xB118, 0x40EC ,WORD_LEN}, {0xB11A, 0x3000 ,WORD_LEN}, - //LGE_CHANGE_E[byungsik.choi@lge.com]2010-07-01 {0x0009, 0x16 ,BYTE_LEN}, @@ -1814,9 +1811,6 @@ {0x4808,0x9600,WORD_LEN}, {0x480A,0xFA00,WORD_LEN}, {0x480C,0xE803,WORD_LEN}, - //LGE_CHANGE[byungsik.choi@lge.com]2010-08-30 fix AF problem in normal focus mode - //{0x480E,0x4B00,WORD_LEN}, - //{0x4810,0x4B00,WORD_LEN}, {0x480E,0x7701,WORD_LEN}, {0x4810,0x7701,WORD_LEN}, {0x4812,0xE803,WORD_LEN}, @@ -1829,8 +1823,6 @@ {0x4838,0x1600,WORD_LEN}, {0x4844,0x5000,WORD_LEN}, {0x484F,0x00,BYTE_LEN}, - //LGE_CHANGE[byungsik.choi@lge.com]2010-08-30 fix AF problem in normal focus mode - //{0x4856,0x14,BYTE_LEN}, {0x4856,0x28,BYTE_LEN}, {0x486A,0x6400,WORD_LEN}, {0x486C,0x2800,WORD_LEN}, @@ -2851,40 +2843,6 @@ #define ISX005_CAPTURE_SIZE_WIDTH 0x0008 //0x0280 //0x0500 // 1280 #define ISX005_CAPTURE_SIZE_HIGHT 0x0006 //0x01E0 //0x03C0 // 960 -/*LGE_CHNAGE_S[byungsik.choi@lge.com]2010-06-29 Add aqua effect -static struct isx005_register_address_value_pair const -effect_off_reg_settings_array[] = { - - // - // effect off mode Setting - // - {0x005F, 0x00,BYTE_LEN}, // fmode [2:0] 00 : off - //{0x4A08, 0x5a01,WORD_LEN},//3200k r gain adjust this using the pre-white balance function of the adjustment mode. - {0x4A08, 0x3D01,WORD_LEN},//3200k r gain adjust this using the pre-white balance function of the adjustment mode. - {0x4A0a, 0x4602,WORD_LEN},//3200k b gain adjust this using the pre-white balance function of the adjustment mode. - {0x01b1, 0x80,BYTE_LEN}, // uisaturation_type1 : - {0x0060, 0x00,BYTE_LEN}, // uibrightness[7:0] - {0x0061, 0x80,BYTE_LEN}, // uicontrast[7:0] - {0x0062, 0x52,BYTE_LEN}, - -}; - -static struct isx005_register_address_value_pair const -effect_aqua_reg_settings_array[] = { - - // - // Aqua effect mode Setting - // - {0x005F, 0x00,BYTE_LEN},// fmode [2:0] 00 : off - {0x4A08, 0x6000,WORD_LEN}, // awbprer : - {0x4A0a, 0x0005,WORD_LEN}, // awbprer : - {0x01b1, 0x80,BYTE_LEN}, // uisaturation_type1 : - {0x0060, 0x00,BYTE_LEN}, // uibrightness[7:0] - {0x0061, 0x80,BYTE_LEN}, // uicontrast[7:0] -}; -//LGE_CHNAGE_E[byungsik.choi@lge.com]2010-06-29 -*/ - static struct isx005_register_address_value_pair const snapshot_mode_reg_settings_array[] = { @@ -2924,7 +2882,6 @@ {0x01DC, 0x04, BYTE_LEN}, //AF_SN10 {0x01DD, 0x04, BYTE_LEN}, //AF_SN11 {0x01DE, 0x04, BYTE_LEN}, //AF_SN12 - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-08-03 fix AF problem {0x4C4C,0x1003,WORD_LEN}, {0x4C4E,0x1002,WORD_LEN}, {0x4C50,0x5002,WORD_LEN}, @@ -2957,7 +2914,6 @@ {0x01DC, 0x04, BYTE_LEN}, //AF_SN10 {0x01DD, 0x04, BYTE_LEN}, //AF_SN11 {0x01DE, 0x04, BYTE_LEN}, //AF_SN12 - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-08-03 fix AF problem {0x4C4C,0x1003,WORD_LEN}, {0x4C4E,0x1002,WORD_LEN}, {0x4C50,0x5002,WORD_LEN}, @@ -2969,7 +2925,6 @@ {0x4856,0x14,BYTE_LEN}, {0x4857,0x0a,BYTE_LEN}, {0x4844,0x5000,WORD_LEN}, - //LGE_CHANGE_E[byungsik.choi@lge.com] {0x002E, 0x02, BYTE_LEN}, {0x0012, 0x01, BYTE_LEN}, {0x4852, 0x3200, WORD_LEN}, @@ -2992,7 +2947,6 @@ {0x01DC, 0x02, BYTE_LEN}, //AF_SN10 {0x01DD, 0x02, BYTE_LEN}, //AF_SN11 {0x01DE, 0x02, BYTE_LEN}, //AF_SN12 - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-08-03 fix AF problem {0x4C4C,0x0002,WORD_LEN}, {0x4C4E,0x0001,WORD_LEN}, {0x4C50,0x5004,WORD_LEN}, @@ -3004,7 +2958,6 @@ {0x4856,0x1e,BYTE_LEN}, {0x4857,0x14,BYTE_LEN}, {0x4844,0x2800,WORD_LEN}, - //LGE_CHANGE_E[byungsik.choi@lge.com] {0x002E, 0x02, BYTE_LEN}, {0x0012, 0x01, BYTE_LEN}, {0x4852, 0x4402, WORD_LEN}, @@ -3156,11 +3109,9 @@ .af_normal_reg_settings = af_normal_mode_reg_settings_array, .af_normal_reg_settings_size = ARRAY_SIZE( af_normal_mode_reg_settings_array), - //LGE_CHANGE_S[byungsik.choi@lge.com]2010-09-09 Add normal focus mode .af_auto_reg_settings = af_auto_mode_reg_settings_array, .af_auto_reg_settings_size = ARRAY_SIZE( af_auto_mode_reg_settings_array), - //LGE_CHANGE_E[byungsik.choi@lge.com]2010-09-09 .af_macro_reg_settings = af_macro_mode_reg_settings_array, .af_macro_reg_settings_size = ARRAY_SIZE( af_macro_mode_reg_settings_array), diff -urP vd/kernel/drivers/media/video/msm/msm_camera.c vm670/kernel/drivers/media/video/msm/msm_camera.c --- vd/kernel/drivers/media/video/msm/msm_camera.c 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/msm_camera.c 2011-04-12 06:00:30.000000000 -0400 @@ -56,11 +56,9 @@ static LIST_HEAD(msm_sensors); struct msm_control_device *g_v4l2_control_device; int g_v4l2_opencnt; -/* LGE_CHANGE_S [youngki.an@lge.com] 2010-05-18 */ #if 1//def LG_CAMERA_HIDDEN_MENU bool sensorAlwaysOnTest = false; #endif -/* LGE_CHANGE_E [youngki.an@lge.com] 2010-05-18 */ #define __CONTAINS(r, v, l, field) ({ \ typeof(r) __r = r; \ @@ -145,21 +143,6 @@ qcmd; \ }) - #define msm_delete_entry(queue, member, q_cmd) ({ \ - unsigned long flags; \ - struct msm_device_queue *__q = (queue); \ - struct msm_queue_cmd *qcmd = 0; \ - spin_lock_irqsave(&__q->lock, flags); \ - if (!list_empty(&__q->list)) { \ - list_for_each_entry(qcmd, &__q->list, member) \ - if (qcmd == q_cmd) { \ - __q->len--; \ - list_del_init(&qcmd->member); \ - break; \ - } \ - } \ - spin_unlock_irqrestore(&__q->lock, flags); \ - }) #define msm_queue_drain(queue, member) do { \ unsigned long flags; \ struct msm_device_queue *__q = (queue); \ @@ -167,7 +150,6 @@ spin_lock_irqsave(&__q->lock, flags); \ CDBG("%s: draining queue %s\n", __func__, __q->name); \ while (!list_empty(&__q->list)) { \ - __q->len--; \ qcmd = list_first_entry(&__q->list, \ struct msm_queue_cmd, member); \ if (qcmd) { \ @@ -175,7 +157,7 @@ list_del_init(&qcmd->member); \ free_qcmd(qcmd); \ } \ - } \ + }; \ spin_unlock_irqrestore(&__q->lock, flags); \ } while (0) @@ -614,7 +596,6 @@ rc = -ETIMEDOUT; if (rc < 0) { pr_err("%s: wait_event error %d\n", __func__, rc); - msm_delete_entry(&sync->event_q, list_config, qcmd); return ERR_PTR(rc); } } @@ -1879,7 +1860,6 @@ sdata->flash_data, led_state); break; } -/* LGE_CHANGE_S [youngki.an@lge.com] 2010-05-18 */ #if 1//def LG_CAMERA_HIDDEN_MENU case MSM_CAM_IOCTL_SENSOR_ALWAYS_ON_TEST: { @@ -1902,7 +1882,6 @@ } break; #endif -/* LGE_CHANGE_E [youngki.an@lge.com] 2010-05-18 */ case MSM_CAM_IOCTL_ERROR_CONFIG: rc = msm_error_config(pmsm->sync, argp); @@ -1997,12 +1976,7 @@ struct hlist_node *n; mutex_lock(&sync->lock); - //LGE_CHANGE[byungsik.choi@lge.com]2010-08-09 fix potential memory release problem #if defined (CONFIG_MACH_LGE) - /* [junyeong.han@lge.com] 2010-08-09 - * When opencnt is 0, just return 0. - * below code has potential risk(run release twise), - * when opencnt value is 0 */ if (!sync->opencnt) { mutex_unlock(&sync->lock); return 0; @@ -2011,12 +1985,11 @@ if (sync->opencnt) sync->opencnt--; if (!sync->opencnt) { + /*sensor release*/ + sync->sctrl.s_release(); /* need to clean up system resource */ if (sync->vfefn.vfe_release) sync->vfefn.vfe_release(sync->pdev); - /*sensor release*/ - sync->sctrl.s_release(); - msm_camio_sensor_clk_off(sync->pdev); kfree(sync->cropinfo); sync->cropinfo = NULL; sync->croplen = 0; @@ -2299,9 +2272,10 @@ msm_camvfe_fn_init(&sync->vfefn, sync); if (sync->vfefn.vfe_init) { sync->get_pic_abort = 0; - rc = msm_camio_sensor_clk_on(sync->pdev); + rc = sync->vfefn.vfe_init(&msm_vfe_s, + sync->pdev); if (rc < 0) { - pr_err("%s: setting sensor clocks failed: %d\n", + pr_err("%s: vfe_init failed at %d\n", __func__, rc); goto msm_open_done; } @@ -2311,13 +2285,6 @@ __func__, rc); goto msm_open_done; } - rc = sync->vfefn.vfe_init(&msm_vfe_s, - sync->pdev); - if (rc < 0) { - pr_err("%s: vfe_init failed at %d\n", - __func__, rc); - goto msm_open_done; - } } else { pr_err("%s: no sensor init func\n", __func__); rc = -ENODEV; diff -urP vd/kernel/drivers/media/video/msm/msm_io7x.c vm670/kernel/drivers/media/video/msm/msm_io7x.c --- vd/kernel/drivers/media/video/msm/msm_io7x.c 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/msm_io7x.c 2011-04-12 06:00:30.000000000 -0400 @@ -146,63 +146,53 @@ rc = -ENOMEM; goto apps_no_mem; } - msm_camio_clk_enable(CAMIO_VFE_CLK); - msm_camio_clk_enable(CAMIO_MDC_CLK); - return 0; -apps_no_mem: - release_mem_region(camio_ext.appphy, camio_ext.appsz); -enable_fail: - return rc; -} - - -int msm_camio_sensor_clk_on(struct platform_device *pdev) -{ - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - int32_t rc = 0; - camio_ext = camdev->ioext; + mdcio = request_mem_region(camio_ext.mdcphy, camio_ext.mdcsz, pdev->name); - if (!mdcio) + if (!mdcio) { rc = -EBUSY; - + goto mdc_busy; + } mdcbase = ioremap(camio_ext.mdcphy, camio_ext.mdcsz); if (!mdcbase) { - rc = -EINVAL; + rc = -ENOMEM; goto mdc_no_mem; } camdev->camera_gpio_on(); - return msm_camio_clk_enable(CAMIO_VFE_MDC_CLK); + + msm_camio_clk_enable(CAMIO_VFE_CLK); + msm_camio_clk_enable(CAMIO_MDC_CLK); + msm_camio_clk_enable(CAMIO_VFE_MDC_CLK); + return 0; mdc_no_mem: release_mem_region(camio_ext.mdcphy, camio_ext.mdcsz); +mdc_busy: + iounmap(appbase); +apps_no_mem: + release_mem_region(camio_ext.appphy, camio_ext.appsz); +enable_fail: return rc; } -int msm_camio_sensor_clk_off(struct platform_device *pdev) +void msm_camio_disable(struct platform_device *pdev) { struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; struct msm_camera_device_platform_data *camdev = sinfo->pdata; - camdev->camera_gpio_off(); iounmap(mdcbase); release_mem_region(camio_ext.mdcphy, camio_ext.mdcsz); - return msm_camio_clk_disable(CAMIO_VFE_MDC_CLK); -} -void msm_camio_disable(struct platform_device *pdev) -{ - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - iounmap(appbase); release_mem_region(camio_ext.appphy, camio_ext.appsz); + camdev->camera_gpio_off(); + msm_camio_clk_disable(CAMIO_VFE_CLK); msm_camio_clk_disable(CAMIO_MDC_CLK); + msm_camio_clk_disable(CAMIO_VFE_MDC_CLK); } void msm_disable_io_gpio_clk(struct platform_device *pdev) diff -urP vd/kernel/drivers/media/video/msm/msm_io_8x60.c vm670/kernel/drivers/media/video/msm/msm_io_8x60.c --- vd/kernel/drivers/media/video/msm/msm_io_8x60.c 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/msm_io_8x60.c 2011-04-12 06:00:30.000000000 -0400 @@ -366,11 +366,13 @@ int rc = 0; struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; struct msm_camera_device_platform_data *camdev = sinfo->pdata; - uint32_t val; camio_ext = camdev->ioext; + camdev->camera_gpio_on(); + msm_camera_vreg_enable(); + msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK); msm_camio_clk_enable(CAMIO_VFE_CLK); msm_camio_clk_enable(CAMIO_CSI0_VFE_CLK); msm_camio_clk_enable(CAMIO_CSI_SRC_CLK); @@ -394,22 +396,7 @@ IRQF_TRIGGER_RISING, "csi", 0); if (rc < 0) goto csi_irq_fail; - msleep(10); - val = (20 << - MIPI_PHY_D0_CONTROL2_SETTLE_COUNT_SHFT) | - (0x0F << MIPI_PHY_D0_CONTROL2_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_D0_CONTROL2_LP_REC_EN_SHFT) | - (0x1 << MIPI_PHY_D0_CONTROL2_ERR_SOT_HS_EN_SHFT); - CDBG("%s MIPI_PHY_D0_CONTROL2 val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_D0_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D1_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D2_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D3_CONTROL2); - - val = (0x0F << MIPI_PHY_CL_CONTROL_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_CL_CONTROL_LP_REC_EN_SHFT); - CDBG("%s MIPI_PHY_CL_CONTROL val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_CL_CONTROL); + return 0; csi_irq_fail: @@ -431,58 +418,25 @@ void msm_camio_disable(struct platform_device *pdev) { - uint32_t val; - - val = (20 << - MIPI_PHY_D0_CONTROL2_SETTLE_COUNT_SHFT) | - (0x0F << MIPI_PHY_D0_CONTROL2_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_D0_CONTROL2_LP_REC_EN_SHFT) | - (0x1 << MIPI_PHY_D0_CONTROL2_ERR_SOT_HS_EN_SHFT); - CDBG("%s MIPI_PHY_D0_CONTROL2 val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_D0_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D1_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D2_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D3_CONTROL2); - - val = (0x0F << MIPI_PHY_CL_CONTROL_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_CL_CONTROL_LP_REC_EN_SHFT); - CDBG("%s MIPI_PHY_CL_CONTROL val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_CL_CONTROL); - msleep(10); + struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; + struct msm_camera_device_platform_data *camdev = sinfo->pdata; free_irq(camio_ext.csiirq, 0); iounmap(csibase); release_mem_region(camio_ext.csiphy, camio_ext.csisz); CDBG("disable clocks\n"); + msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); msm_camio_clk_disable(CAMIO_CSI0_VFE_CLK); msm_camio_clk_disable(CAMIO_CSI0_CLK); msm_camio_clk_disable(CAMIO_VFE_PCLK); msm_camio_clk_disable(CAMIO_CSI0_PCLK); +/* Disable CAMIO_CSI1_VFE_CLK, CAMIO_CSI1_CLK, + CAMIO_CSI1_PCLK for the secondary sensor */ msm_camera_vreg_disable(); camdev->camera_gpio_off(); } - -int msm_camio_sensor_clk_on(struct platform_device *pdev) -{ - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - msm_camera_vreg_enable(); - msleep(10); - camdev->camera_gpio_on(); - return msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK); -} - -int msm_camio_sensor_clk_off(struct platform_device *pdev) -{ - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - msm_camera_vreg_disable(); - camdev->camera_gpio_off(); - return 0; -} - void msm_camio_vfe_blk_reset(void) { return; @@ -503,7 +457,7 @@ struct msm_camera_device_platform_data *camdev = sinfo->pdata; msm_camera_vreg_disable(); camdev->camera_gpio_off(); - return 0; + return msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); } int msm_camio_csi_config(struct msm_camera_csi_params *csi_params) diff -urP vd/kernel/drivers/media/video/msm/msm_io8x.c vm670/kernel/drivers/media/video/msm/msm_io8x.c --- vd/kernel/drivers/media/video/msm/msm_io8x.c 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/msm_io8x.c 2011-04-12 06:00:30.000000000 -0400 @@ -134,6 +134,10 @@ int msm_camio_enable(struct platform_device *pdev) { int rc = 0; + struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; + struct msm_camera_device_platform_data *camdev = sinfo->pdata; + + camio_ext = camdev->ioext; appio = request_mem_region(camio_ext.appphy, camio_ext.appsz, pdev->name); @@ -147,62 +151,54 @@ rc = -ENOMEM; goto apps_no_mem; } - msm_camio_clk_enable(CAMIO_MDC_CLK); - msm_camio_clk_enable(CAMIO_VFE_AXI_CLK); - return 0; - -apps_no_mem: - release_mem_region(camio_ext.appphy, camio_ext.appsz); -enable_fail: - return rc; -} - -void msm_camio_disable(struct platform_device *pdev) -{ - iounmap(appbase); - release_mem_region(camio_ext.appphy, camio_ext.appsz); - msm_camio_clk_disable(CAMIO_MDC_CLK); - msm_camio_clk_disable(CAMIO_VFE_AXI_CLK); -} - -int msm_camio_sensor_clk_on(struct platform_device *pdev) -{ - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - int32_t rc = 0; - camio_ext = camdev->ioext; mdcio = request_mem_region(camio_ext.mdcphy, camio_ext.mdcsz, pdev->name); - if (!mdcio) + if (!mdcio) { rc = -EBUSY; - mdcbase = ioremap(camio_ext.mdcphy, - camio_ext.mdcsz); - if (!mdcbase) - goto mdc_no_mem; + goto mdc_busy; + } + mdcbase = ioremap(camio_ext.mdcphy, camio_ext.mdcsz); + if (!mdcbase) { + rc = -ENOMEM; + goto mdc_no_mem; + } camdev->camera_gpio_on(); msm_camio_clk_enable(CAMIO_VFE_CLK); + msm_camio_clk_enable(CAMIO_MDC_CLK); msm_camio_clk_enable(CAMIO_VFE_MDC_CLK); - return rc; + msm_camio_clk_enable(CAMIO_VFE_AXI_CLK); + return 0; mdc_no_mem: release_mem_region(camio_ext.mdcphy, camio_ext.mdcsz); - return -EINVAL; +mdc_busy: + iounmap(appbase); +apps_no_mem: + release_mem_region(camio_ext.appphy, camio_ext.appsz); +enable_fail: + return rc; } -int msm_camio_sensor_clk_off(struct platform_device *pdev) +void msm_camio_disable(struct platform_device *pdev) { struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; struct msm_camera_device_platform_data *camdev = sinfo->pdata; - - camdev->camera_gpio_off(); + iounmap(mdcbase); release_mem_region(camio_ext.mdcphy, camio_ext.mdcsz); + iounmap(appbase); + release_mem_region(camio_ext.appphy, camio_ext.appsz); + + camdev->camera_gpio_off(); + + msm_camio_clk_disable(CAMIO_VFE_MDC_CLK); + msm_camio_clk_disable(CAMIO_MDC_CLK); msm_camio_clk_disable(CAMIO_VFE_CLK); - return msm_camio_clk_disable(CAMIO_VFE_MDC_CLK); + msm_camio_clk_disable(CAMIO_VFE_AXI_CLK); } void msm_disable_io_gpio_clk(struct platform_device *pdev) diff -urP vd/kernel/drivers/media/video/msm/msm_io_vfe31.c vm670/kernel/drivers/media/video/msm/msm_io_vfe31.c --- vd/kernel/drivers/media/video/msm/msm_io_vfe31.c 2011-02-04 19:01:09.000000000 -0500 +++ vm670/kernel/drivers/media/video/msm/msm_io_vfe31.c 2011-04-12 06:00:30.000000000 -0400 @@ -403,12 +403,29 @@ struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; struct msm_camera_device_platform_data *camdev = sinfo->pdata; - uint32_t val; + camio_ext = camdev->ioext; + + camdev->camera_gpio_on(); + msm_camera_vreg_enable(); msm_camio_clk_enable(CAMIO_VFE_PBDG_CLK); - if(!sinfo->csi_if) + msm_camio_clk_enable(CAMIO_CAMIF_PAD_PBDG_CLK); + msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK); + msm_camio_clk_enable(CAMIO_VFE_CLK); + if (!sinfo->csi_if) { + camifpadio = request_mem_region(camio_ext.camifpadphy, + camio_ext.camifpadsz, pdev->name); + if (!camifpadio) { + rc = -EBUSY; + goto common_fail; + } + camifpadbase = ioremap(camio_ext.camifpadphy, + camio_ext.camifpadsz); + if (!camifpadbase) { + rc = -ENOMEM; + goto parallel_busy; + } msm_camio_clk_enable(CAMIO_VFE_CAMIF_CLK); - else { - msm_camio_clk_enable(CAMIO_VFE_CLK); + } else { csiio = request_mem_region(camio_ext.csiphy, camio_ext.csisz, pdev->name); if (!csiio) { @@ -429,68 +446,51 @@ msm_camio_clk_enable(CAMIO_CSI0_PCLK); msm_camio_clk_enable(CAMIO_CSI0_VFE_CLK); msm_camio_clk_enable(CAMIO_CSI0_CLK); - msleep(10); - val = (20 << - MIPI_PHY_D0_CONTROL2_SETTLE_COUNT_SHFT) | - (0x0F << MIPI_PHY_D0_CONTROL2_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_D0_CONTROL2_LP_REC_EN_SHFT) | - (0x1 << MIPI_PHY_D0_CONTROL2_ERR_SOT_HS_EN_SHFT); - CDBG("%s MIPI_PHY_D0_CONTROL2 val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_D0_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D1_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D2_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D3_CONTROL2); - - val = (0x0F << MIPI_PHY_CL_CONTROL_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_CL_CONTROL_LP_REC_EN_SHFT); - CDBG("%s MIPI_PHY_CL_CONTROL val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_CL_CONTROL); } return 0; +parallel_busy: + release_mem_region(camio_ext.camifpadphy, camio_ext.camifpadsz); + goto common_fail; csi_irq_fail: iounmap(csibase); csi_busy: release_mem_region(camio_ext.csiphy, camio_ext.csisz); common_fail: + msm_camio_clk_disable(CAMIO_VFE_CLK); + msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); + msm_camio_clk_disable(CAMIO_CAMIF_PAD_PBDG_CLK); msm_camio_clk_disable(CAMIO_VFE_PBDG_CLK); - msm_camio_clk_disable(CAMIO_VFE_CLK); + msm_camera_vreg_disable(); + camdev->camera_gpio_off(); return rc; } void msm_camio_disable(struct platform_device *pdev) { struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; + struct msm_camera_device_platform_data *camdev = sinfo->pdata; if (!sinfo->csi_if) { msm_camio_clk_disable(CAMIO_VFE_CAMIF_CLK); + iounmap(camifpadbase); + release_mem_region(camio_ext.camifpadphy, camio_ext.camifpadsz); } else { - val = (20 << - MIPI_PHY_D0_CONTROL2_SETTLE_COUNT_SHFT) | - (0x0F << MIPI_PHY_D0_CONTROL2_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_D0_CONTROL2_LP_REC_EN_SHFT) | - (0x1 << MIPI_PHY_D0_CONTROL2_ERR_SOT_HS_EN_SHFT); - CDBG("%s MIPI_PHY_D0_CONTROL2 val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_D0_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D1_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D2_CONTROL2); - msm_io_w(val, csibase + MIPI_PHY_D3_CONTROL2); - val = (0x0F << MIPI_PHY_CL_CONTROL_HS_TERM_IMP_SHFT) | - (0x0 << MIPI_PHY_CL_CONTROL_LP_REC_EN_SHFT); - CDBG("%s MIPI_PHY_CL_CONTROL val=0x%x\n", __func__, val); - msm_io_w(val, csibase + MIPI_PHY_CL_CONTROL); - msleep(10); - free_irq(camio_ext.csiirq, 0); msm_camio_clk_disable(CAMIO_CSI0_PCLK); msm_camio_clk_disable(CAMIO_CSI0_VFE_CLK); msm_camio_clk_disable(CAMIO_CSI0_CLK); - msm_camio_clk_disable(CAMIO_VFE_CLK); iounmap(csibase); release_mem_region(camio_ext.csiphy, camio_ext.csisz); } + CDBG("disable clocks\n"); + msm_camio_clk_disable(CAMIO_VFE_CLK); + msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); + msm_camio_clk_disable(CAMIO_CAMIF_PAD_PBDG_CLK); msm_camio_clk_disable(CAMIO_VFE_PBDG_CLK); + msm_camera_vreg_disable(); + camdev->camera_gpio_off(); } void msm_camio_camif_pad_reg_reset(void) @@ -578,61 +578,6 @@ camdev->camera_gpio_off(); return msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); } -int msm_camio_sensor_clk_on(struct platform_device *pdev) -{ - int rc = 0; - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - camio_ext = camdev->ioext; - camdev->camera_gpio_on(); - msm_camera_vreg_enable(); - msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK); - msm_camio_clk_enable(CAMIO_CAMIF_PAD_PBDG_CLK); - if (!sinfo->csi_if) { - camifpadio = request_mem_region(camio_ext.camifpadphy, - camio_ext.camifpadsz, pdev->name); - msm_camio_clk_enable(CAMIO_VFE_CLK); - if (!camifpadio) { - rc = -EBUSY; - goto common_fail; - } - camifpadbase = ioremap(camio_ext.camifpadphy, - camio_ext.camifpadsz); - if (!camifpadbase) { - CDBG("msm_camio_sensor_clk_on fail\n"); - rc = -ENOMEM; - goto parallel_busy; - } - } - return rc; -parallel_busy: - release_mem_region(camio_ext.camifpadphy, camio_ext.camifpadsz); - goto common_fail; -common_fail: - msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); - msm_camio_clk_disable(CAMIO_VFE_CLK); - msm_camio_clk_disable(CAMIO_CAMIF_PAD_PBDG_CLK); - msm_camera_vreg_disable(); - camdev->camera_gpio_off(); - return rc; -} - -int msm_camio_sensor_clk_off(struct platform_device *pdev) -{ - uint32_t rc = 0; - struct msm_camera_sensor_info *sinfo = pdev->dev.platform_data; - struct msm_camera_device_platform_data *camdev = sinfo->pdata; - camdev->camera_gpio_off(); - msm_camera_vreg_disable(); - rc = msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); - rc = msm_camio_clk_disable(CAMIO_CAMIF_PAD_PBDG_CLK); - if (!sinfo->csi_if) { - iounmap(camifpadbase); - release_mem_region(camio_ext.camifpadphy, camio_ext.camifpadsz); - rc = msm_camio_clk_disable(CAMIO_VFE_CLK); - } - return rc; -} int msm_camio_csi_config(struct msm_camera_csi_params *csi_params) { diff -urP vd/kernel/drivers/misc/android_vibrator.c vm670/kernel/drivers/misc/android_vibrator.c --- vd/kernel/drivers/misc/android_vibrator.c 2011-02-04 19:01:10.000000000 -0500 +++ vm670/kernel/drivers/misc/android_vibrator.c 2011-04-12 06:00:31.000000000 -0400 @@ -3,7 +3,7 @@ * * Copyright (C) 2009 LGE, Inc. * - * Author: Jinkyu Choi + * Author: Jinkyu Choi * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,7 +46,6 @@ #if defined(CONFIG_VIB_USE_WORK_QUEUE) /* C710 Rev.D */ static atomic_t nForce = ATOMIC_INIT(128); /* default max gain */ struct work_struct vib_power_set_work_queue; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue static struct workqueue_struct *vibrator_wq = NULL; #endif /* CONFIG_VIB_USE_WORK_QUEUE */ @@ -120,7 +119,6 @@ } #if defined(CONFIG_VIB_USE_WORK_QUEUE) -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, real time static void vib_power_set_work(struct work_struct *work) { struct sched_param s = { .sched_priority = 1 }; @@ -153,7 +151,6 @@ { #if defined(CONFIG_VIB_USE_WORK_QUEUE) atomic_set(&nForce, 0); - //LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue if (vibrator_wq) queue_work(vibrator_wq, &vib_power_set_work_queue); else @@ -211,7 +208,6 @@ value = data->max_timeout; #if defined(CONFIG_VIB_USE_WORK_QUEUE) atomic_set(&nForce, gain); - //LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue if (vibrator_wq) queue_work(vibrator_wq, &vib_power_set_work_queue); else @@ -223,7 +219,6 @@ } else { #if defined(CONFIG_VIB_USE_WORK_QUEUE) atomic_set(&nForce, 0); - //LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue if (vibrator_wq) queue_work(vibrator_wq, &vib_power_set_work_queue); else @@ -283,7 +278,6 @@ INIT_WORK(&vib_power_set_work_queue, vib_power_set_work); atomic_set(&nForce, 0); - //LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue if (vibrator_wq) queue_work(vibrator_wq, &vib_power_set_work_queue); else @@ -365,7 +359,6 @@ { printk(KERN_INFO "LGE: Android Vibrator Driver Init\n"); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue #if defined(CONFIG_VIB_USE_WORK_QUEUE) vibrator_wq = create_singlethread_workqueue("vibrator_wq"); if (!vibrator_wq) { @@ -379,7 +372,6 @@ { printk(KERN_INFO "LGE: Android Vibrator Driver Exit\n"); platform_driver_unregister(&android_vibrator_driver); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, single thread workqueue #if defined(CONFIG_VIB_USE_WORK_QUEUE) if (vibrator_wq) destroy_workqueue(vibrator_wq); diff -urP vd/kernel/drivers/mmc/card/block.c vm670/kernel/drivers/mmc/card/block.c --- vd/kernel/drivers/mmc/card/block.c 2011-02-04 19:01:10.000000000 -0500 +++ vm670/kernel/drivers/mmc/card/block.c 2011-04-12 06:00:31.000000000 -0400 @@ -444,7 +444,6 @@ #endif } - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-29, // don't redo I/O when nomedium error #if defined(CONFIG_MACH_LGE) if (brq.cmd.error == -ENOMEDIUM) { @@ -507,7 +506,6 @@ spin_lock_irq(&md->lock); while (ret) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-29, // supressed the error message #if defined(CONFIG_MACH_LGE) req->cmd_flags |= REQ_QUIET; diff -urP vd/kernel/drivers/mmc/core/core.c vm670/kernel/drivers/mmc/core/core.c --- vd/kernel/drivers/mmc/core/core.c 2011-02-04 19:01:11.000000000 -0500 +++ vm670/kernel/drivers/mmc/core/core.c 2011-04-12 06:00:31.000000000 -0400 @@ -912,8 +912,6 @@ host->ios.timing = MMC_TIMING_LEGACY; mmc_set_ios(host); - printk("%s: mmc power up\n", mmc_hostname(host)); - /* * This delay should be sufficient to allow the power supply * to reach the minimum voltage. @@ -945,7 +943,6 @@ host->ios.bus_width = MMC_BUS_WIDTH_1; host->ios.timing = MMC_TIMING_LEGACY; mmc_set_ios(host); - printk("%s: mmc power down\n", mmc_hostname(host)); } EXPORT_SYMBOL(mmc_power_off); @@ -1095,12 +1092,6 @@ int extend_wakelock = 0; int ret; - /* - * Add checking gpio pin status before initialization of bus. - * If the GPIO pin status is changed, check gpio pin status again. - * Should check until it's stable. - * fred.cho@lge.com, 2010-09-27 - */ if (host->ops->get_status){ ret = host->ops->get_status(host); if (ret == 1) { @@ -1331,18 +1322,13 @@ } mmc_bus_put(host); -/* - * LGE_CHANGE - * Don't turn off the Power of SD card during Suspend - * fred.cho@lge.com, 2010-10-31 - */ + if (!strcmp(mmc_hostname(host), "mmc1")){ + if (!err) + mmc_power_off(host); + } else + printk("sd card suspend...\n"); + return err; - if (!strcmp(mmc_hostname(host), "mmc1")){ - if (!err) - mmc_power_off(host); - } else - printk("sd card suspend...\n"); - return err; } EXPORT_SYMBOL(mmc_suspend_host); diff -urP vd/kernel/drivers/mmc/host/msm_sdcc.c vm670/kernel/drivers/mmc/host/msm_sdcc.c --- vd/kernel/drivers/mmc/host/msm_sdcc.c 2011-02-04 19:01:11.000000000 -0500 +++ vm670/kernel/drivers/mmc/host/msm_sdcc.c 2011-04-12 06:00:31.000000000 -0400 @@ -51,15 +51,10 @@ #include "msm_sdcc.h" -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, for gpio_to_irq */ #if defined(CONFIG_LGE_BCM432X_PATCH) #include -/*LGE_CHANGE_S, [dongp.kim@lge.com], 2010-03-17, mmc_fmax is 24576000Hz for Wi-Fi */ -//#define BRCM_WLAN_SLOT 2 #define BRCM_WLAN_SLOT 100 // give 50MHz for test -/*LGE_CHANGE_E, [dongp.kim@lge.com], 2010-03-17, mmc_fmax is 24576000Hz for Wi-Fi */ #endif -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, for gpio_to_irq */ #define DRIVER_NAME "msm-sdcc" #define TIME_STEP ( 4 * HZ / 5 ) @@ -126,7 +121,6 @@ } #endif -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) struct early_suspend dhdpm; EXPORT_SYMBOL(dhdpm); @@ -153,7 +147,6 @@ } EXPORT_SYMBOL(unregister_mmc_card_pm); #endif -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, Support Host Wakeup */ static void msmsdcc_start_command(struct msmsdcc_host *host, struct mmc_command *cmd, @@ -753,12 +746,6 @@ if (!(status & (MCI_TXFIFOHALFEMPTY | MCI_RXDATAAVLBL))) break; - /* LGE_CHANGE - * QCT SR Defect 00364002 - * Kernel Panic issue by Null Pointer - * Exception handling - * fred.cho@lge.com , 2010-08-26 - */ if(!host->curr.data) { @@ -780,13 +767,11 @@ if (status & MCI_TXACTIVE) len = msmsdcc_pio_write(host, buffer, remain, status); -/*LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24, when PIO_irq, delay is given */ #if defined(CONFIG_LGE_BCM432X_PATCH) if (host->mmc->card != NULL && host->mmc->card->type == MMC_TYPE_SDIO){ msmsdcc_delay(host); } #endif -/*LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24, when PIO_irq, delay is given */ /* Unmap the buffer */ kunmap_atomic(buffer, KM_BIO_SRC_IRQ); local_irq_restore(flags); @@ -1162,12 +1147,6 @@ } } -/* LGE_CHANGE - * Func : check gpio pin status - * If the status is changed, go to rescan through delayed work queue. - * And still same status, just skip. - * fred.cho@lge.com, 2010-08-05 - */ static int msmsdcc_get_status(struct mmc_host *mmc) { struct msmsdcc_host *host = mmc_priv(mmc); @@ -1239,12 +1218,6 @@ .get_status = msmsdcc_get_status, }; -/* LGE_CHANGE - * Func : check gpio pin status - * If the status is changed, go to rescan through delayed work queue. - * And still same status, just skip. - * fred.cho@lge.com, 2010-08-05 - */ static void msmsdcc_check_status(unsigned long data) { @@ -1378,34 +1351,26 @@ struct msmsdcc_host *host = container_of(h, struct msmsdcc_host, early_suspend); unsigned long flags; -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, don't do this to WLAN */ - //printk(KERN_ERR "msmsdcc_early_suspend : start \n"); #ifdef CONFIG_BCM4325_GPIO_WL_RESET if ( host->plat->status_irq != gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET) ) #endif { -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-10-24, don't do this to WLAN */ spin_lock_irqsave(&host->lock, flags); host->polling_enabled = host->mmc->caps & MMC_CAP_NEEDS_POLL; host->mmc->caps &= ~MMC_CAP_NEEDS_POLL; spin_unlock_irqrestore(&host->lock, flags); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-10-24, don't do this to WLAN */ } //printk(KERN_ERR "msmsdcc_early_suspend : end \n"); -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, don't do this to WLAN */ }; static void msmsdcc_late_resume(struct early_suspend *h) { struct msmsdcc_host *host = container_of(h, struct msmsdcc_host, early_suspend); unsigned long flags; -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, don't do this to WLAN */ - //printk(KERN_ERR "msmsdcc_late_resume : start \n"); #ifdef CONFIG_BCM4325_GPIO_WL_RESET if ( host->plat->status_irq != gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET) ) #endif { -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-29, check the card unsigned int status; if (!host->plat->status) { @@ -1422,18 +1387,14 @@ } host->oldstat = status; } -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-29 -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-10-24, don't do this to WLAN */ if (host->polling_enabled) { spin_lock_irqsave(&host->lock, flags); host->mmc->caps |= MMC_CAP_NEEDS_POLL; mmc_detect_change(host->mmc, 0); spin_unlock_irqrestore(&host->lock, flags); } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-10-24, don't do this to WLAN */ } //printk(KERN_ERR "msmsdcc_late_resume : END \n"); -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, don't do this to WLAN */ }; #endif @@ -1563,7 +1524,6 @@ */ mmc->ops = &msmsdcc_ops; mmc->f_min = plat->msmsdcc_fmin; -/*LGE_CHANGE_S, [dongp.kim@lge.com], 2010-03-17, mmc_fmax is 24576000Hz for Wi-Fi */ #if !defined(CONFIG_LGE_BCM432X_PATCH) mmc->f_max = plat->msmsdcc_fmax; #else @@ -1587,7 +1547,6 @@ mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED; } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/*LGE_CHANGE_E, [dongp.kim@lge.com], 2010-03-17, mmc_fmax is 24576000Hz for Wi-Fi */ if (plat->nonremovable) mmc->caps |= MMC_CAP_NONREMOVABLE; @@ -1800,9 +1759,6 @@ struct mmc_host *mmc = mmc_get_drvdata(dev); struct msmsdcc_host *host = mmc_priv(mmc); int rc = 0; -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24 */ - //printk(KERN_ERR "msmsdcc_suspend : start \n"); -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24 */ #ifdef CONFIG_MMC_AUTO_SUSPEND if (test_and_set_bit(0, &host->suspended)) @@ -1814,7 +1770,6 @@ if (!mmc->card || mmc->card->type != MMC_TYPE_SDIO) rc = mmc_suspend_host(mmc, state); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24, */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) //else if (mmc->card && mmc->card->type == MMC_TYPE_SDIO) { else if (host->plat->status_irq == gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)) { @@ -1826,7 +1781,6 @@ printk("[WiFi] %s: dhdpm.suspend=NULL \n",__FUNCTION__);*/ } #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24, */ if (!rc) { writel(0, host->base + MMCIMASK0); @@ -1837,18 +1791,13 @@ host->clks_on = 0; } } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-04, */ #if 0 if (host->plat->sdiowakeup_irq) // original #else if (host->plat->sdiowakeup_irq && host->plat->status_irq != gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)) #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-04, */ enable_irq(host->plat->sdiowakeup_irq); } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24 */ - //printk(KERN_ERR "msmsdcc_suspend : end \n"); -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24 */ return rc; } @@ -1859,10 +1808,6 @@ struct msmsdcc_host *host = mmc_priv(mmc); unsigned long flags; -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24 */ - //printk(KERN_ERR "msmsdcc_resume : start \n"); -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24 */ - #ifdef CONFIG_MMC_AUTO_SUSPEND if (!test_and_clear_bit(0, &host->suspended)) return 0; @@ -1880,13 +1825,11 @@ spin_unlock_irqrestore(&host->lock, flags); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-04, */ #if 0 if (host->plat->sdiowakeup_irq) // original #else if (host->plat->sdiowakeup_irq && host->plat->status_irq != gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)) #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-04, */ disable_irq(host->plat->sdiowakeup_irq); if (!mmc->card || mmc->card->type != MMC_TYPE_SDIO) @@ -1894,7 +1837,6 @@ if (host->plat->status_irq) enable_irq(host->plat->status_irq); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24, */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) //if ( mmc->card && mmc->card->type == MMC_TYPE_SDIO) { if (host->plat->status_irq == gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)) { @@ -1908,11 +1850,7 @@ printk("[WiFi] %s: dhdpm.suspend=NULL \n",__FUNCTION__);*/ } #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24, */ } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-24 */ - //printk(KERN_ERR "msmsdcc_resume : end \n"); -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-24 */ return 0; } #else diff -urP vd/kernel/drivers/mtd/devices/msm_nand.c vm670/kernel/drivers/mtd/devices/msm_nand.c --- vd/kernel/drivers/mtd/devices/msm_nand.c 2011-02-04 19:01:11.000000000 -0500 +++ vm670/kernel/drivers/mtd/devices/msm_nand.c 2011-04-12 06:00:30.000000000 -0400 @@ -395,10 +395,8 @@ { /* Flash ID ID Mask Density(MB) Wid Pgsz Blksz oobsz Manuf */ {0x00000000, 0xFFFFFFFF, 0, 0, 0, 0, 0, }, /*ONFI*/ - /* LGE_CHANGES_S [hoonylove004@lge.com] 2009.08.26, support nand */ {0x5500bcec, 0xFF00FFFF, (512<<20), 1, 2048, (2048<<6), 64, }, /*Samsung K524G2GACB-A050, 512MB*/ {0x5510bcad, 0xFF00FFFF, (512<<20), 1, 2048, (2048<<6), 64, }, /*Hynix H8BCS0UN0MCR-46M (45ns DDR333), 512MB*/ - /* LGE_CHANGES_E hoonylove004@lge.com] 2009.08.26 */ {0x1500aaec, 0xFF00FFFF, (256<<20), 0, 2048, (2048<<6), 64, }, /*Sams*/ {0x5500baec, 0xFF00FFFF, (256<<20), 1, 2048, (2048<<6), 64, }, /*Sams*/ {0x6600bcec, 0xFF00FFFF, (512<<20), 1, 4096, (4096<<6), 128,}, /*Sams*/ diff -urP vd/kernel/drivers/net/wireless/bcm4325/brcm_static_buf.c vm670/kernel/drivers/net/wireless/bcm4325/brcm_static_buf.c --- vd/kernel/drivers/net/wireless/bcm4325/brcm_static_buf.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/brcm_static_buf.c 2011-04-12 06:00:31.000000000 -0400 @@ -9,10 +9,7 @@ #define DBG(args) #endif -/* BEGIN: 0005337 mingi.sung@lge.com 2010-03-23 */ -/* MOD 0005337: [WLAN] Use static SKB when initializing */ #define USE_STATIC_SKB /* Use DHD_USE_STATIC_BUF at SKB */ -/* END: 0005337 mingi.sung@lge.com 2010-03-23 */ #define MAX_WIFI_SECTION 4 #define MAX_STATIC_PKT_NUM 8 diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc.c vm670/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc.c --- vd/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc.c 2011-04-12 06:00:31.000000000 -0400 @@ -70,10 +70,7 @@ uint sd_f2_blocksize = 64; /* Default blocksize */ #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* BEGIN: 0005337 mingi.sung@lge.com 2010-03-23 */ -/* MOD 0005337: [WLAN] Use static SKB when initializing */ #define USE_STATIC_SKB /* Use DHD_USE_STATIC_BUF at SKB */ -/* END: 0005337 mingi.sung@lge.com 2010-03-23 */ uint sd_divisor = 2; /* Default 48MHz/2 = 24MHz */ @@ -680,11 +677,7 @@ extern SDIOH_API_RC sdioh_request_byte(sdioh_info_t *sd, uint rw, uint func, uint regaddr, uint8 *byte) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248349 */ int err_ret = 0; -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ sd_info(("%s: rw=%d, func=%d, addr=0x%05x\n", __FUNCTION__, rw, func, regaddr)); diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc_linux.c vm670/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc_linux.c --- vd/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc_linux.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/bcmsdio/sys/bcmsdh_sdmmc_linux.c 2011-04-12 06:30:48.000000000 -0400 @@ -64,7 +64,6 @@ #include #endif /* #if defined(CONFIG_BRCM_GPIO_INTR) && defined(CONFIG_HAS_EARLYSUSPEND) */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) #include #include @@ -88,7 +87,6 @@ extern void unregister_mmc_card_pm(void); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) && defined(CONFIG_PM_SLEEP) extern volatile bool dhd_mmc_suspend; @@ -127,7 +125,6 @@ extern void *dhd_es_get_dhd_bus_sdh(void); static int dhd_register_early_suspend(void); static void dhd_unregister_early_suspend(void); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) void dhd_early_suspend(struct early_suspend *h); @@ -138,10 +135,8 @@ .resume = dhd_late_resume }; #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ DECLARE_WAIT_QUEUE_HEAD(bussleep_wake); typedef struct dhd_early_suspend { -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) int wait_driver_load; /* waiting for driver loaded */ bool skip; @@ -150,7 +145,6 @@ bool drv_loaded; struct dhd_bus_t *bus; } dhd_early_suspend_t; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) dhd_early_suspend_t dhd_early_suspend_ctrl = { 0, 0, 0, 0, 0}; #else /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ @@ -267,39 +261,28 @@ return dhd_early_suspend_ctrl.bus; } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) static int dhd_es_lock_dhd_bus(void) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248350 */ void *bus; bus = dhd_es_get_dhd_pub(); if( bus ) dhd_os_proto_block(bus); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ - return 0; } static int dhd_es_unlock_dhd_bus(void) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248351 */ void *bus; bus = dhd_es_get_dhd_pub(); if( bus ) dhd_os_proto_unblock(bus); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ return 0; } #endif /* defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ bool dhd_early_suspend_state(void) @@ -307,12 +290,9 @@ return dhd_early_suspend_ctrl.state; } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) static void dhd_enable_sdio_irq(int enable) { -/* BEGIN: 0004825 mingi.sung@lge.com 2010-03-09 */ -/* MOD 0004825: [WLAN] Prevent insmod failed */ struct mmc_card *card; struct mmc_host *host; @@ -323,7 +303,6 @@ card = gInstance->func[0]->card; host = card->host; -/* END: 0004825 mingi.sung@lge.com 2010-03-09 */ if (enable == TRUE ) host->ops->enable_sdio_irq(host, 1); @@ -390,9 +369,6 @@ { #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) int gpio = 0; -/* BEGIN: 0003780 mingi.sung@lge.com 2010-02-02 */ -/* DEL 0003780: [WLAN] Reduce the time to resume when using host-wakeup */ -/* END: 0003780 mingi.sung@lge.com 2010-02-02 */ dhd_enable_sdio_irq(FALSE); dhd_suspend_context = FALSE; @@ -403,21 +379,17 @@ if (NULL != dhd_early_suspend_ctrl.bus) { dhd_early_suspend_ctrl.state = FALSE; #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) -/* LGE_CHANGE_S, [hyuksang], due to power consumption, the below line is discarded to reduce 2s delay */ /* Instead of wake_lock_timeout(), use wake_lock */ // wake_lock_timeout(&wlan_host_wakelock_resume, 2*HZ); wake_lock(&wlan_host_wakelock_resume); -/* LGE_CHANGE_E, [hyuksang], due to power consumption, the below line is discarded to reduce 2s delay */ #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ dhdsdio_dpc(dhd_early_suspend_ctrl.bus); dhd_es_unlock_dhd_bus(); #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) gpio = gpio_get_value(GPIO_WLAN_HOST_WAKE); DHD_TRACE(("%s: RESUME Done gpio->%d\n", __FUNCTION__, gpio)); -/* LGE_CHANGE_S, [hyuksang], due to power consumption, the below line is discarded to reduce 2s delay */ /* Instead of wake_lock_timeout(), use wake_lock */ wake_unlock(&wlan_host_wakelock_resume); -/* LGE_CHANGE_E, [hyuksang], due to power consumption, the below line is discarded to reduce 2s delay */ #else /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ DHD_TRACE(("%s: RESUME Done\n", __FUNCTION__)); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ @@ -427,7 +399,6 @@ return 0; } #endif /* defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #endif /* #if defined(CONFIG_HAS_EARLYSUSPEND) */ /* Interrupt enable/disable */ @@ -522,19 +493,13 @@ sd_trace(("%s Enter\n", __FUNCTION__)); #if defined(CONFIG_HAS_EARLYSUSPEND) -/* BEGIN: 0004486 mingi.sung@lge.com 2010-02-28 */ -/* ADD 0004486: [WLAN] Fix a bug - Reset when Wi-Fi turn on/off */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) dhd_enable_sdio_irq(FALSE); #endif -/* END: 0004486 mingi.sung@lge.com 2010-02-28 */ dhd_unregister_early_suspend(); -/* BEGIN: 0004486 mingi.sung@lge.com 2010-02-28 */ -/* ADD 0004486: [WLAN] Fix a bug - Reset when Wi-Fi turn on/off */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) dhd_suspend_context = TRUE; #endif -/* END: 0004486 mingi.sung@lge.com 2010-02-28 */ #endif /* defined(CONFIG_HAS_EARLYSUSPEND) */ sdio_unregister_driver(&bcmsdh_sdmmc_driver); @@ -542,21 +507,16 @@ if (gInstance) kfree(gInstance); } -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) extern int dhd_config_arp_offload(void *bus, bool flag); #endif /* CONFIG_BRCM_LGE_WL_ARPOFFLOAD */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_PKTFILTER) extern int dhdsdio_enable_filters(void *bus); extern int dhdsdio_disable_filters(void *bus); #endif /* defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_PKTFILTER) */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_HAS_EARLYSUSPEND) -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) void dhd_early_suspend(struct early_suspend *h) { @@ -572,18 +532,14 @@ /* If chip active is done, do put the device to suspend */ del_wl_timers(); -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) /*Enable ARP Offloading*/ dhd_config_arp_offload(dhd_early_suspend_ctrl.bus , TRUE); #endif /* CONFIG_BRCM_LGE_WL_ARPOFFLOAD */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_PKTFILTER) dhdsdio_enable_filters(dhd_early_suspend_ctrl.bus); #endif /* CONFIG_BRCM_LGE_WL_PKTFILTER */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ if(dhd_suspend() < 0) { dhd_enable_sdio_irq(TRUE); /* make sure one more for testing, later */ @@ -617,29 +573,23 @@ }else printk("%s: Do not dhd_suspend mode setting.\n",__FUNCTION__); -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) /*DiSable ARP Offloading*/ dhd_config_arp_offload(dhd_early_suspend_ctrl.bus, FALSE); #endif /* CONFIG_BRCM_LGE_WL_ARPOFFLOAD */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined (CONFIG_BRCM_LGE_WL_PKTFILTER) dhdsdio_disable_filters(dhd_early_suspend_ctrl.bus); #endif /* CONFIG_BRCM_LGE_WL_PKTFILTER */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ return; } EXPORT_SYMBOL(dhd_early_suspend); EXPORT_SYMBOL(dhd_late_resume); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_GPIO_INTR) -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-06, Support Host Wakeup */ #if !defined(CONFIG_LGE_BCM432X_PATCH) #define GPIO_WLAN_HOST_WAKE 0 @@ -650,7 +600,6 @@ static struct dhd_wifisleep_info *dhd_wifi_sleep; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-06, Support Host Wakeup */ /** * Supposed that Early Suspend/Resume is disable @@ -699,11 +648,9 @@ printk(KERN_ERR "[%s] HostWakeup Get GPIO %d: %d\n", __func__, GPIO_WLAN_HOST_WAKE, gpio); gpio_set_value(GPIO_WLAN_HOST_WAKE, 0); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-06, Support Host Wakeup */ #if !defined(CONFIG_LGE_BCM432X_PATCH) set_irq_type(dhd_wifi_sleep->host_wake_irq, gpio ? IRQF_TRIGGER_LOW : IRQF_TRIGGER_HIGH); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-06, Support Host Wakeup */ if (!gpio) { DHD_INFO(("[WiFi] complete on host-wakeup \n")); @@ -733,13 +680,11 @@ printk(KERN_ERR "[yoohoo] dhd_register_hwakeup : start \n"); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Init wakelock */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) /* wake lock initialize */ wake_lock_init(&wlan_host_wakelock, WAKE_LOCK_SUSPEND, "WLAN_HOST_WAKE"); wake_lock_init(&wlan_host_wakelock_resume, WAKE_LOCK_SUSPEND, "WLAN_HOST_WAKE_RESUME"); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Init wakelock */ ret = gpio_request(dhd_wifi_sleep->host_wake, "wifi_hostwakeup"); if (ret < 0) { @@ -748,7 +693,6 @@ return 0; } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Set gpio init value to zero */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) /* Set gpio init value to zero */ ret = gpio_direction_output(dhd_wifi_sleep->host_wake, 0); @@ -757,7 +701,6 @@ } //gpio_set_value(dhd_wifi_sleep->host_wake, 0); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Init wakelock */ ret = gpio_direction_input(dhd_wifi_sleep->host_wake); if (ret < 0) { @@ -772,16 +715,14 @@ return 0; } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-06, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) ret = request_irq(dhd_wifi_sleep->host_wake_irq, dhd_hostwakeup_isr, //IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING , "wifi_hostwakeup", NULL); - IRQF_DISABLED | IRQF_TRIGGER_RISING , "wifi_hostwakeup", NULL); //jisung.yang@lge.com + IRQF_DISABLED | IRQF_TRIGGER_RISING , "wifi_hostwakeup", NULL); #else /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ ret = request_irq(dhd_wifi_sleep->host_wake_irq, dhd_hostwakeup_isr, IRQF_DISABLED | IRQF_TRIGGER_HIGH, "wifi_hostwakeup", NULL); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-06, Support Host Wakeup */ if (ret) { DHD_ERROR(("[WiFi] Failed to get HostWakeUp IRQ \n")); free_irq(dhd_wifi_sleep->host_wake_irq, 0); @@ -793,7 +734,6 @@ printk (KERN_ERR "[yoohoo] dhd_register_hwakeup : OK\n"); } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, set_irq_type and disable_irq */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) //set_irq_type(dhd_wifi_sleep->host_wake_irq, IRQ_TYPE_EDGE_BOTH); set_irq_type(dhd_wifi_sleep->host_wake_irq, IRQ_TYPE_EDGE_RISING); @@ -801,7 +741,6 @@ disable_irq(dhd_wifi_sleep->host_wake_irq); #endif /* CONFIG_BRCM_GPIO_INTR */ #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, set_irq_type and disable_irq */ return ret; } @@ -819,7 +758,6 @@ static int dhd_register_early_suspend(void) { - /* LGE_CHANGE_S [yoohoo@lge.com] 2009-01-14, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) dhd_early_suspend_ctrl.drv_loaded = TRUE; @@ -838,13 +776,11 @@ #else /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ return 0; #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2010-01-14, Support Host Wakeup */ } static void dhd_unregister_early_suspend(void) { -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-01-14, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) if (dhd_early_suspend_ctrl.drv_loaded == FALSE) return; @@ -862,6 +798,5 @@ #else /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ return; #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2010-01-14, Support Host Wakeup */ } #endif /* #if defined(CONFIG_HAS_EARLYSUSPEND) */ diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_cdc.c vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_cdc.c --- vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_cdc.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_cdc.c 2011-04-12 06:00:31.000000000 -0400 @@ -485,7 +485,6 @@ return; } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-03, configs */ #if defined(CONFIG_LGE_BCM432X_PATCH) #include #include @@ -569,14 +568,8 @@ #endif -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-27, */ bool PM_control = TRUE; -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-27, */ - -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ bool roam_off_control = TRUE; -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ - static int dhd_preinit_proc(dhd_pub_t *dhd, int ifidx, char *name, char *value) { @@ -600,7 +593,6 @@ WLC_SET_ROAM_TRIGGER : WLC_SET_ROAM_DELTA, &x, sizeof(x)); } else if (!strcmp(name, "PM")) { var_int = (int)simple_strtol(value, NULL, 0); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-27, */ if (var_int == 0) { printk("[yoohoo] dhd_preinit_proc: do not control power save mode (%d)\n", var_int); PM_control = FALSE; @@ -609,10 +601,8 @@ printk("[yoohoo] dhd_preinit_proc: docontrol power save mode (%d)\n", var_int); PM_control = TRUE; } -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-27, */ return dhdcdc_set_ioctl(dhd, ifidx, WLC_SET_PM, &var_int, sizeof(var_int)); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-28, < MAC write > */ } else if(!strcmp(name,"cur_etheraddr")){ struct ether_addr ea; char buf[32]; @@ -642,7 +632,6 @@ memcpy(dhd->mac.octet, (void *)&ea, ETHER_ADDR_LEN); return ret; } -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-28, < MAC write > */ } else { uint iovlen; char iovbuf[WLC_IOCTL_SMLEN]; @@ -652,7 +641,6 @@ /* Setup timeout bcm_timeout from dhd driver 4.217.48 */ if(!strcmp(name, "roam_off")) { -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ if (var_int == 1) { printk("[yoohoo] dhd_preinit_proc: do not control roam_off (%d)\n", var_int); roam_off_control = FALSE; @@ -661,7 +649,6 @@ printk("[yoohoo] dhd_preinit_proc: do control roam_off (%d)\n", var_int); roam_off_control = TRUE; } -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ /* Setup timeout if Beacons are lost to report link down */ if (var_int) { @@ -735,11 +722,7 @@ if (fp) dhd_os_close_image(fp); if (buf) -/* BEGIN: 001936 cosmichigh26@lge.com 2009-11-13 */ -/* MOD 0001936: Modify BCM4325 driver(by MMC Technology) */ -/* MFREE(dhd->osh, buf, stat.size); * original */ MFREE(dhd->osh, buf, stat.size + 1); -/* END: 001936 cosmichigh26@lge.com 2009-11-13 */ return ret; err: @@ -747,7 +730,6 @@ goto out; } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-03, configs */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_PKTFILTER) extern int dhdsdio_set_pktfilters(dhd_pub_t *dhd); @@ -759,20 +741,16 @@ char eventmask[WL_EVENTING_MASK_LEN]; char iovbuf[WLC_IOCTL_SMLEN]; /* Room for "event_msgs" + '\0' + bitvec */ uint up = 0; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-08-27, roam_off, PM */ #if !defined(CONFIG_LGE_BCM432X_PATCH) uint roamvar = 1; uint power_mode = PM_FAST; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-08-27, roam_off, PM */ uint32 dongle_align = DHD_SDALIGN; uint32 glom = 0; int ret; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-09-22, bcn_timeout */ #if !defined(CONFIG_LGE_BCM432X_PATCH) uint bcn_timeout = 3; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-09-22, bcn_timeout */ /* Get the device MAC address */ strcpy(iovbuf, "cur_etheraddr"); @@ -781,11 +759,9 @@ return BCME_NOTUP; } memcpy(dhd->mac.octet, iovbuf, ETHER_ADDR_LEN); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-03, configs */ #if defined(CONFIG_LGE_BCM432X_PATCH) dhd_preinit_config(dhd, 0); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-03, configs */ /* Set Country code */ if (dhd->country_code[0] != 0) { @@ -795,12 +771,10 @@ } } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-08-27, already PM setup is configured */ #if !defined(CONFIG_LGE_BCM432X_PATCH) /* Set PowerSave mode */ dhdcdc_set_ioctl(dhd, 0, WLC_SET_PM, (char *)&power_mode, sizeof(power_mode)); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-08-27, already PM setup is configured */ /* Match Host and Dongle rx alignment */ bcm_mkiovar("bus:txglomalign", (char *)&dongle_align, 4, iovbuf, sizeof(iovbuf)); @@ -809,7 +783,6 @@ /* disable glom option per default */ bcm_mkiovar("bus:txglom", (char *)&glom, 4, iovbuf, sizeof(iovbuf)); dhdcdc_set_ioctl(dhd, 0, WLC_SET_VAR, iovbuf, sizeof(iovbuf)); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-09-22, already setting bcn_timeout in dhd_preinit_config */ #if !defined(CONFIG_LGE_BCM432X_PATCH) /* Setup timeout if Beacons are lost to report link down */ if (roamvar) { @@ -817,15 +790,12 @@ dhdcdc_set_ioctl(dhd, 0, WLC_SET_VAR, iovbuf, sizeof(iovbuf)); } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-09-22, already setting bcn_timeout in dhd_preinit_config */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-08, roam_off */ #if !defined(CONFIG_LGE_BCM432X_PATCH) /* Disable build-in roaming to allowed ext supplicant to take of romaing */ bcm_mkiovar("roam_off", (char *)&roamvar, 4, iovbuf, sizeof(iovbuf)); dhdcdc_set_ioctl(dhd, 0, WLC_SET_VAR, iovbuf, sizeof(iovbuf)); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-08, roam_off */ /* Force STA UP */ dhdcdc_set_ioctl(dhd, 0, WLC_UP, (char *)&up, sizeof(up)); @@ -887,7 +857,6 @@ /* Nothing to do for CDC */ } -/* LGE_CHANGE_S, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_BRCM_USE_DEEPSLEEP) extern dhd_pub_t * get_dhd_pub_from_dev(struct net_device *dev); int dhd_deep_sleep(struct net_device *dev, int flag) @@ -938,4 +907,3 @@ } #endif /* CONFIG_LGE_BCM432X_PATCH && CONFIG_BRCM_USE_DEEPSLEEP */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_common.c vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_common.c --- vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_common.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_common.c 2011-04-12 06:00:31.000000000 -0400 @@ -41,11 +41,9 @@ int dhd_msg_level; char fw_path[MOD_PARAM_PATHLEN]; char nv_path[MOD_PARAM_PATHLEN]; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-03, configs */ #if defined(CONFIG_LGE_BCM432X_PATCH) char config_path[MOD_PARAM_PATHLEN] = ""; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-03, configs */ /* Last connection success/failure status */ uint32 dhd_conn_event; @@ -105,11 +103,9 @@ * first time that the driver is initialized vs subsequent initializations. */ dhd_msg_level = DHD_ERROR_VAL; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-09-03, don't init */ #if !defined(CONFIG_LGE_BCM432X_PATCH) fw_path[0] = '\0'; nv_path[0] = '\0'; -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-09-03, don't init */ #endif /* CONFIG_LGE_BCM432X_PATCH */ } diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_custom_gpio.c vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_custom_gpio.c --- vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_custom_gpio.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_custom_gpio.c 2011-04-12 06:00:31.000000000 -0400 @@ -37,12 +37,10 @@ #include #include -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-05-14, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) #include #include #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-05-14, support start/stop */ #ifndef BCMDONGLEHOST #include @@ -99,7 +97,6 @@ } #endif /* defined(OOB_INTR_ONLY) */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-12-08, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) /* Customer function to control hw specific wlan gpios */ void @@ -109,7 +106,6 @@ void dhd_customer_gpio_wlan_ctrl(int onoff) #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-12-08, support start/stop */ { switch (onoff) { case WLAN_RESET_OFF: @@ -119,7 +115,6 @@ bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ WL_ERROR(("=========== WLAN placed in RESET ========\n")); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-12-08, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) if (gpio_get_value(CONFIG_BCM4325_GPIO_WL_RESET)) { if(irq_detect_ctrl) @@ -127,7 +122,6 @@ gpio_set_value(CONFIG_BCM4325_GPIO_WL_RESET, 0); } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-12-08, support start/stop */ break; case WLAN_RESET_ON: @@ -137,7 +131,6 @@ bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ WL_ERROR(("=========== WLAN going back to live ========\n")); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-12-08, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) if (!gpio_get_value(CONFIG_BCM4325_GPIO_WL_RESET)) { gpio_set_value(CONFIG_BCM4325_GPIO_WL_RESET, 1); @@ -145,7 +138,6 @@ enable_irq(gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)); } #endif /* CONFIG_LGE_BCM432X_PATCH */ - /* LGE_CHANGE_E [yoohoo@lge.com] 2009-12-08, support start/stop */ break; case WLAN_POWER_OFF: @@ -154,16 +146,13 @@ #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-05-14, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) #ifdef CONFIG_BCM4325_GPIO_WL_REGON if (!gpio_get_value(CONFIG_BCM4325_GPIO_BT_RESET)) { gpio_set_value(CONFIG_BCM4325_GPIO_WL_REGON, 0); } #endif /* CONFIG_BCM4325_GPIO_WL_REGON */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-07-02, add BCM4325_GPIO_WL_REGON on /off when "DRIVER START/STOP */ #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-05-14, support start/stop */ break; case WLAN_POWER_ON: @@ -172,21 +161,17 @@ #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-05-14, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-07-02, add BCM4325_GPIO_WL_REGON on /off when "DRIVER START/STOP */ #ifdef CONFIG_BCM4325_GPIO_WL_REGON if (!gpio_get_value(CONFIG_BCM4325_GPIO_WL_REGON)) { gpio_set_value(CONFIG_BCM4325_GPIO_WL_REGON, 1); mdelay(150); } #endif /* CONFIG_BCM4325_GPIO_WL_REGON */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-07-02, add BCM4325_GPIO_WL_REGON on /off when "DRIVER START/STOP */ #else /* CONFIG_LGE_BCM432X_PATCH */ /* Lets customer power to get stable */ OSL_DELAY(500); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-05-14, support start/stop */ break; } } diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd.h vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd.h --- vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd.h 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd.h 2011-04-12 06:00:31.000000000 -0400 @@ -295,13 +295,11 @@ extern void dhd_os_sdlock_rxq(dhd_pub_t * pub); extern void dhd_os_sdunlock_rxq(dhd_pub_t * pub); extern void dhd_os_sdlock_sndup_rxq(dhd_pub_t * pub); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-12-08, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) extern void dhd_customer_gpio_wlan_ctrl(int onoff, int irq_detect_ctrl); #else /* CONFIG_LGE_BCM432X_PATCH */ extern void dhd_customer_gpio_wlan_ctrl(int onoff); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-12-08, support start/stop */ extern void dhd_os_sdunlock_sndup_rxq(dhd_pub_t * pub); #if defined(OOB_INTR_ONLY) extern int dhd_customer_oob_irq_map(void); @@ -395,20 +393,16 @@ /* optionally set by a module_param_string() */ -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, gcc compile of this version limits array size. */ #if 0 #define MOD_PARAM_PATHLEN 2048 #else #define MOD_PARAM_PATHLEN 512 #endif -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, gcc compile of this version limits array size. */ extern char fw_path[MOD_PARAM_PATHLEN]; extern char nv_path[MOD_PARAM_PATHLEN]; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-03, configs */ #if defined(CONFIG_LGE_BCM432X_PATCH) extern char config_path[MOD_PARAM_PATHLEN]; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-03, configs */ /* For supporting multiple interfaces */ #define DHD_MAX_IFS 16 diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_linux.c vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_linux.c --- vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_linux.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_linux.c 2011-04-12 06:00:31.000000000 -0400 @@ -56,19 +56,15 @@ #include -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-03-05, for gpio set in dhd_linux */ #if defined(CONFIG_LGE_BCM432X_PATCH) #include #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-03-05, for gpio set in dhd_linux */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-03-30, change ifname to wlan%d */ #if defined(CONFIG_LGE_BCM432X_PATCH) #undef alloc_etherdev #define alloc_etherdev(sizeof_priv) \ alloc_netdev(sizeof_priv, "wlan%d", ether_setup) #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-03-30, change ifname to wlan%d */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) && defined(CONFIG_PM_SLEEP) #include @@ -166,11 +162,9 @@ /* load firmware and/or nvram values from the filesystem */ module_param_string(firmware_path, firmware_path, MOD_PARAM_PATHLEN, 0); module_param_string(nvram_path, nvram_path, MOD_PARAM_PATHLEN, 0); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-03, configs */ #if defined(CONFIG_LGE_BCM432X_PATCH) module_param_string(config_path, config_path, MOD_PARAM_PATHLEN, 0); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-03, configs */ /* Error bits */ module_param(dhd_msg_level, int, 0); @@ -1961,11 +1955,9 @@ printf("%s: Broadcom Dongle Host Driver mac=%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", net->name, dhd->pub.mac.octet[0], dhd->pub.mac.octet[1], dhd->pub.mac.octet[2], dhd->pub.mac.octet[3], dhd->pub.mac.octet[4], dhd->pub.mac.octet[5]); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-04, */ #if 0 wl_iw_iscan_set_scan_broadcast_prep(net, 1); #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-04, */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) && 1 g_dhd_registration_status = TRUE; @@ -2078,7 +2070,6 @@ DHD_TRACE(("%s: Enter\n", __FUNCTION__)); dhd_bus_unregister(); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-03-05, for gpio set in dhd_linux */ #if defined(CONFIG_LGE_BCM432X_PATCH) #if defined(CONFIG_BCM4325_GPIO_WL_REGON) /* Call customer gpio to turn off power with WL_REG_ON signal */ @@ -2089,7 +2080,6 @@ /* Call customer gpio to turn off power with WL_REG_ON signal */ dhd_customer_gpio_wlan_ctrl(WLAN_POWER_OFF); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-03-05, for gpio set in dhd_linux */ } static int __init dhd_module_init(void) @@ -2112,12 +2102,10 @@ return -EINVAL; } while (0); -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-03-05, for gpio set in dhd_linux */ #if !defined(CONFIG_LGE_BCM432X_PATCH) /* Call customer gpio to turn on power with WL_REG_ON signal */ dhd_customer_gpio_wlan_ctrl(WLAN_POWER_ON); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-03-05, for gpio set in dhd_linux */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) && 1 g_dhd_registration_status = FALSE; diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_sdio.c vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_sdio.c --- vd/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_sdio.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/dhd/sys/dhd_sdio.c 2011-04-12 06:25:58.000000000 -0400 @@ -146,7 +146,6 @@ int gDK8 = FALSE; /* Temp flag for DevKit8000 support */ /* This will go away soon */ -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_PKTFILTER) typedef struct wl_filter_tag { uint32 filterid; @@ -168,7 +167,6 @@ wl_filter_tag_t filters[MAX_PKT_FILTERS]; #endif /* CONFIG_BRCM_LGE_WL_PKTFILTER */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ extern int dhdcdc_set_ioctl(dhd_pub_t *dhd, int ifidx, uint cmd, void *buf, uint len); /* Private data for SDIO bus interaction */ @@ -456,13 +454,11 @@ #endif #if defined(CONFIG_HAS_EARLYSUSPEND) -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) #include extern int dhd_suspend_context; extern struct wake_lock wlan_host_wakelock; #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ extern void *dhd_es_get_dhd_bus(void); extern void dhd_es_set_dhd_bus(void *); extern bool dhd_early_suspend_state(void); @@ -3933,20 +3929,14 @@ /* On frame indication, read available frames */ if (PKT_AVAILABLE()) { -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) //Is this location appropriate??.. Need to test more. /*Hold a wake lock to avoid suspend-resume to often if there is continuous data * transfer. */ if(dhd_suspend_context == FALSE) { -/* LGE_CHANGE_S, [hyuksang], due to power consumption, the below line is discarded to reduce 2s delay */ - - // wake_lock_timeout(&wlan_host_wakelock, 2*HZ); -/* LGE_CHANGE_E, [hyuksang], due to power consumption, the below line is discarded to reduce 2s delay */ } #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ framecnt = dhdsdio_readframes(bus, rxlimit, &rxdone); if (rxdone || bus->rxskip) intstatus &= ~I_HMB_FRAME_IND; @@ -4047,11 +4037,9 @@ bus->intdis = TRUE; #if defined(SDIO_ISR_THREAD) -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) bus->dpc_sched = TRUE; #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ DHD_TRACE(("Calling dhdsdio_dpc() from %s\n", __FUNCTION__)); dhdsdio_dpc(bus); #else @@ -5439,7 +5427,6 @@ return bcmerror; } -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) || defined(CONFIG_BRCM_LGE_WL_PKTFILTER) int dhdsdio_setiovar(struct dhd_bus *bus, char *cmd, void *data, int size) { @@ -5483,9 +5470,7 @@ } #endif /* defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) || defined(CONFIG_BRCM_LGE_WL_PKTFILTER) */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) int dhd_config_arp_offload(dhd_bus_t *bus, bool flag) @@ -5578,9 +5563,7 @@ return 0; } #endif /* defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-1-13, */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_PKTFILTER) int dhdsdio_enable_filters(struct dhd_bus *bus) { @@ -5781,4 +5764,3 @@ } #endif /* defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_PKTFILTER) */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-1-13, */ diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/shared/linux_osl.c vm670/kernel/drivers/net/wireless/bcm4325/src/shared/linux_osl.c --- vd/kernel/drivers/net/wireless/bcm4325/src/shared/linux_osl.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/shared/linux_osl.c 2011-04-12 06:00:31.000000000 -0400 @@ -53,10 +53,7 @@ static bcm_static_buf_t *bcm_static_buf = 0; -/* BEGIN: 0005337 mingi.sung@lge.com 2010-03-23 */ -/* MOD 0005337: [WLAN] Use static SKB when initializing */ #define USE_STATIC_SKB /* Use DHD_USE_STATIC_BUF at SKB */ -/* END: 0005337 mingi.sung@lge.com 2010-03-23 */ #ifdef USE_STATIC_SKB #define MAX_STATIC_PKT_NUM 8 @@ -157,14 +154,10 @@ { osl_t *osh; -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248394, 248395 */ if(!(osh = kmalloc(sizeof(osl_t), GFP_ATOMIC))){ ASSERT(osh); return NULL; } -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ bzero(osh, sizeof(osl_t)); @@ -198,9 +191,6 @@ #ifdef DHD_USE_STATIC_BUF -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248396, 248397 */ if (!bcm_static_buf) { if (!(bcm_static_buf = (bcm_static_buf_t *)dhd_os_prealloc(3, STATIC_BUF_SIZE+ STATIC_BUF_TOTAL_LEN))) { @@ -212,7 +202,6 @@ bcm_static_buf->buf_ptr = (unsigned char *)bcm_static_buf + STATIC_BUF_SIZE; } } -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ #ifdef USE_STATIC_SKB if (!bcm_static_skb) @@ -548,13 +537,10 @@ ASSERT(osh->magic == OS_HANDLE_MAGIC); osh->malloced -= size; } -/* BEGIN: 0005566 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005566: [WLAN] Initializing after kfree in linux_osl.c */ if(addr != NULL){ kfree(addr); addr = NULL; } -/* END: 0005566 mingi.sung@lge.com 2010-03-27 */ } uint diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.c vm670/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.c --- vd/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.c 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.c 2011-04-12 06:00:31.000000000 -0400 @@ -100,13 +100,11 @@ extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status, uint32 reason, char* stringBuf, uint buflen); #include -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-12-08, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) extern void dhd_customer_gpio_wlan_ctrl(int onoff, int irq_detect_ctrl); #else /* CONFIG_LGE_BCM432X_PATCH */ extern void dhd_customer_gpio_wlan_ctrl(int onoff); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-12-08, support start/stop */ extern uint dhd_dev_reset(struct net_device *dev, uint8 flag); extern void dhd_dev_init_ioctl(struct net_device *dev); #endif @@ -159,13 +157,9 @@ //#define CONFIG_BRCM_USE_GPIO_RESET #endif /* !defined(CONFIG_BRCM_USE_DEEPSLEEP) */ -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-27, */ extern bool PM_control; -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-27, */ -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ extern bool roam_off_control; -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ static wlc_ssid_t g_ssid; @@ -317,7 +311,6 @@ struct ifreq ifr; wl_ioctl_t ioc; mm_segment_t fs; -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-04, */ #if !defined(CONFIG_LGE_BCM432X_PATCH) int ret; #else @@ -328,7 +321,6 @@ return ret; } #endif /* !defined(CONFIG_LGE_BCM432X_PATCH) */ -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-04, */ WL_TRACE(("\n%s, PID:%x: send Local IOCTL -> dhd: cmd:0x%x, buf:%p, len:%d ,\n", __FUNCTION__, current->pid, cmd, arg, len)); @@ -356,7 +348,6 @@ } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-28, */ #if !defined(CONFIG_LGE_BCM432X_PATCH) static int dev_wlc_intvar_get_reg( @@ -380,7 +371,6 @@ return (error); } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-28, */ @@ -528,11 +518,9 @@ #endif error = dev_wlc_ioctl(dev, WLC_SET_PASSIVE_SCAN, &as, sizeof(as)); #if defined(WL_IW_USE_ISCAN) -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-15, fixed passive/active scan */ #if !defined(CONFIG_LGE_BCM432X_PATCH) else #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-15, fixed passive/active scan */ g_iscan->scan_flag = as; #endif p += snprintf(p, MAX_WX_STRING, "OK"); @@ -563,11 +551,9 @@ } #if defined(WL_IW_USE_ISCAN) } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-15, fixed passive/active scan */ #if !defined(CONFIG_LGE_BCM432X_PATCH) else #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-15, fixed passive/active scan */ g_iscan->scan_flag = ps; #endif @@ -700,7 +686,6 @@ return error; } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-28, */ #if !defined(CONFIG_LGE_BCM432X_PATCH) static int wl_iw_set_btcoex_dhcp( @@ -793,7 +778,6 @@ return error; } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-28, */ int wl_format_ssid(char* ssid_buf, uint8* ssid, int ssid_len) @@ -837,13 +821,11 @@ link_speed *= 500000; } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-04-07, showing the 5.5 Mbps */ #if defined(CONFIG_LGE_BCM432X_PATCH) if (link_speed == 5500000) p += snprintf(p, MAX_WX_STRING, "LinkSpeed 5.5"); else #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-04-07, showing the 5.5 Mbps */ p += snprintf(p, MAX_WX_STRING, "LinkSpeed %d", link_speed/1000000); wrqu->data.length = p - extra + 1; @@ -854,10 +836,7 @@ #ifndef SSID_FMT_BUF_LEN #define SSID_FMT_BUF_LEN ((4 * 32) + 1) #endif -/* BEGIN: 0005568 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005568: [WLAN] Wi-Fi will be disconnected if the RSSI value is lower than -92 */ int less_than_rssi = 0; -/* END: 0005568 mingi.sung@lge.com 2010-03-27 */ static int wl_iw_get_rssi( struct net_device *dev, @@ -870,22 +849,12 @@ static wlc_ssid_t ssid = {0}; int error = 0; char *p = extra; -/* LGE_CHANGE_S, [yoohoo@lge.com], 2009-05-13, - * */ #if !defined(CONFIG_LGE_BCM432X_PATCH) static char ssidbuf[SSID_FMT_BUF_LEN]; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2009-05-13, - * */ scb_val_t scb_val; -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248459 */ memset(&ssid ,0 ,sizeof(wlc_ssid_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ bzero(&scb_val, sizeof(scb_val_t)); if (g_onoff == G_WLAN_SET_ON) { @@ -898,21 +867,13 @@ } -/* LGE_CHANGE_S, [yoohoo@lge.com], 2009-05-13, - * */ #if defined(CONFIG_LGE_BCM432X_PATCH) p += snprintf(p, MAX_WX_STRING, "ssid rssi %d", rssi); #else /* CONFIG_LGE_BCM432X_PATCH */ wl_format_ssid(ssidbuf, ssid.SSID, dtoh32(ssid.SSID_len)); p += snprintf(p, MAX_WX_STRING, "%s rssi %d ", ssidbuf, rssi); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2009-05-13, - * */ -/* BEGIN: 0005568 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005568: [WLAN] Wi-Fi will be disconnected if the RSSI value is lower than -92 */ #if defined(CONFIG_LGE_BCM432X_PATCH) if( rssi < -92 ){ less_than_rssi ++; @@ -928,7 +889,6 @@ less_than_rssi =0 ; } #endif /* defined(CONFIG_LGE_BCM432X_PATCH) */ -/* END: 0005568 mingi.sung@lge.com 2010-03-27 */ wrqu->data.length = p - extra + 1; @@ -961,19 +921,15 @@ return 0; } -/* LGE_CHANGE_S, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_BRCM_USE_DEEPSLEEP) extern int dhd_deep_sleep(struct net_device *dev, int flag); #endif /* CONFIG_LGE_BCM432X_PATCH && CONFIG_BRCM_USE_DEEPSLEEP */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ #if !defined(CONFIG_LGE_BCM432X_PATCH) || defined(CONFIG_BRCM_USE_GPIO_RESET) || defined(CONFIG_BRCM_USE_DEEPSLEEP) -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ #if defined(CONFIG_LGE_BCM432X_PATCH) int wl_off_flags=0; struct semaphore wl_off_sem; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ static int _wl_control_sysioc_thread_wl_off(void *data) @@ -1003,7 +959,6 @@ g_iscan->iscan_state = ISCAN_STATE_IDLE; #endif -/* LGE_CHANGE_S, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ #if defined(CONFIG_BRCM_USE_DEEPSLEEP) /* Use Deep Sleep instead of WL Reset*/ dhd_deep_sleep(wl_ctl->dev, TRUE); @@ -1032,19 +987,16 @@ dhd_customer_gpio_wlan_ctrl(WLAN_RESET_OFF); #endif /* CONFIG_LGE_BCM432X_PATCH */ #endif /* CONFIG_BRCM_USE_DEEPSLEEP */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ wl_iw_send_priv_event(wl_ctl->dev, "STOP"); break; } -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ #if defined(CONFIG_LGE_BCM432X_PATCH) up(&wl_off_sem); wl_off_flags = 0; down(&wl_off_sem); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ WL_TRACE(("%s Exited\n", __FUNCTION__)); #if defined(BCMDONGLEHOST) @@ -1082,7 +1034,6 @@ WL_TRACE(("Enter %s\n", __FUNCTION__)); -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ #if defined(CONFIG_LGE_BCM432X_PATCH) up(&wl_off_sem); if( wl_off_flags == 1){ @@ -1092,7 +1043,6 @@ wl_off_flags = 1; down(&wl_off_sem); #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ ctl.timer = &timer; ctl.dev = dev; @@ -1135,12 +1085,9 @@ return ret; } -/* BEGIN: 0004683 mingi.sung@lge.com 2010-03-05 */ -/* MOD 0004683: [WLAN] change sdio irq policy */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_BRCM_USE_GPIO_RESET) #include #endif /* defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_BRCM_USE_GPIO_RESET) */ -/* END: 0004683 mingi.sung@lge.com 2010-03-05 */ static int wl_iw_control_wl_on( struct net_device *dev, @@ -1152,7 +1099,6 @@ WL_TRACE(("Enter %s \n", __FUNCTION__)); if (g_onoff == G_WLAN_SET_OFF) { -/* LGE_CHANGE_S, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ #if defined(CONFIG_BRCM_USE_DEEPSLEEP) /* Use Deep Sleep instead of WL RESET */ dhd_deep_sleep(dev, FALSE); @@ -1175,8 +1121,6 @@ sdioh_start(NULL, 1); #endif #else -/* BEGIN: 0004683 mingi.sung@lge.com 2010-03-05 */ -/* MOD 0004683: [WLAN] change sdio irq policy */ #if defined(BCMLXSDMMC) sdioh_start(NULL, 1); #endif @@ -1184,7 +1128,6 @@ dhd_dev_reset(dev, 0); schedule_timeout((100*HZ)/1000); -/* END: 0004683 mingi.sung@lge.com 2010-03-05 */ #endif /* !defined(CONFIG_LGE_BCM432X_PATCH) */ dhd_dev_init_ioctl(dev); @@ -1194,31 +1137,23 @@ printk("Exited %s \n", __FUNCTION__); #endif /* defined(CONFIG_BRCM_USE_GPIO_RESET) */ /* Do not use GPIO Reset at On/Off. Use mpc. */ #endif /* CONFIG_BRCM_USE_DEEPSLEEP */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2009-11-19, Use deepsleep instead of dhd_dev_reset when driver start or stop */ g_onoff = G_WLAN_SET_ON; } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-08-12, Do not send START here */ #if defined(CONFIG_LGE_BCM432X_PATCH) else #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-08-12, Do not send START here */ wl_iw_send_priv_event(dev, "START"); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-08-12, Hidden SSID */ #if defined(CONFIG_LGE_BCM432X_PATCH) /* If do broadscan here, specific scan fail */ //wl_iw_iscan_set_scan_broadcast_prep(dev, 0); g_first_broadcast_scan = BROADCAST_SCAN_FIRST_RESULT_CONSUMED; #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-08-12, Hidden SSID */ -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-08, Hidden SSID */ -/* Because of bcm_mdelay(1000), touch could not process event for a while */ #if defined(CONFIG_LGE_BCM432X_PATCH) // bcm_mdelay(1000); #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-08, Hidden SSID */ WL_TRACE(("Exited %s \n", __FUNCTION__)); @@ -1759,11 +1694,7 @@ WL_TRACE(("%s: SIOCSIWCOMMIT\n", dev->name)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248460 */ memset(&ssid ,0 ,sizeof(wlc_ssid_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ if ((error = dev_wlc_ioctl(dev, WLC_GET_SSID, &ssid, sizeof(ssid)))) return error; @@ -1861,11 +1792,7 @@ WL_TRACE(("%s: SIOCGIWFREQ\n", dev->name)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248461 */ memset(&ci ,0 ,sizeof(channel_info_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ if ((error = dev_wlc_ioctl(dev, WLC_GET_CHANNEL, &ci, sizeof(ci)))) return error; @@ -1963,11 +1890,7 @@ dwrq->length = sizeof(struct iw_range); memset(range, 0, sizeof(range)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248462, 248463 */ memset(&rateset, 0, sizeof(wl_rateset_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ range->min_nwid = range->max_nwid = 0; @@ -2188,7 +2111,6 @@ return 0; } -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-04, */ #if defined(CONFIG_LGE_BCM432X_PATCH) { scb_val_t scbval; @@ -2197,7 +2119,6 @@ } bcm_mdelay(10); #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-04, */ memset(&join_params, 0, sizeof(join_params)); @@ -2374,11 +2295,7 @@ WL_TRACE(("%s: SIOCGIWAPLIST\n", dev->name)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248464 */ memset(qual, 0, (sizeof(struct iw_quality)*IW_MAX_AP)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ if (!extra) return -EINVAL; @@ -3000,9 +2917,7 @@ if ((error = dev_wlc_ioctl(dev, WLC_SCAN, &g_specific_ssid, sizeof(g_specific_ssid)))) { WL_TRACE(("#### Set SCAN for %s failed with %d\n", g_specific_ssid.SSID, error)); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-15, */ g_scan_specified_ssid = 0; -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-15, */ return -EBUSY; } @@ -3359,11 +3274,7 @@ WL_TRACE(("%s: buflen_from_user %d: \n", dev->name, buflen_from_user)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248477 */ memset(&ci, 0, sizeof(channel_info_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ if (!extra) { WL_TRACE(("%s: wl_iw_get_scan return -EINVAL\n", dev->name)); @@ -3412,7 +3323,6 @@ if ((error = dev_wlc_ioctl(dev, WLC_SCAN_RESULTS, list, len))) { WL_TRACE(("%s: %s : Scan_results ERROR %d\n", dev->name, __FUNCTION__, len)); dwrq->length = len; -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-08-16, fix the getting ISCAN/SCAN results */ #if defined(CONFIG_LGE_BCM432X_PATCH) if (g_scan_specified_ssid) { list->count = 0; @@ -3424,9 +3334,7 @@ kfree(list); return 0; #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-08-16, fix the getting ISCAN/SCAN results */ } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-08-16, fix the getting ISCAN/SCAN results */ #if defined(CONFIG_LGE_BCM432X_PATCH) else { #endif /* CONFIG_LGE_BCM432X_PATCH */ @@ -3733,11 +3641,7 @@ WL_TRACE(("%s: SIOCGIWESSID\n", dev->name)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248466, 248467 */ memset(&ssid ,0 ,sizeof(wlc_ssid_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ if (!extra) return -EINVAL; @@ -3817,11 +3721,7 @@ WL_TRACE(("%s: SIOCSIWRATE\n", dev->name)); -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248468, 248469 */ memset(&rateset, 0, sizeof(wl_rateset_t)); -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ if ((error = dev_wlc_ioctl(dev, WLC_GET_CURR_RATESET, &rateset, sizeof(rateset)))) return error; @@ -3877,11 +3777,7 @@ char *extra ) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248470 */ int error = 0, rate = 0; -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ WL_TRACE(("%s: SIOCGIWRATE\n", dev->name)); @@ -4036,11 +3932,7 @@ char *extra ) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248471 */ int error = 0, disable = 0, txpwrdbm = 0; -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ uint8 result; WL_TRACE(("%s: SIOCGIWTXPOW\n", dev->name)); @@ -4103,11 +3995,7 @@ char *extra ) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248472, 248473 */ int error = 0, lrl = 0, srl = 0; -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ WL_TRACE(("%s: SIOCGIWRETRY\n", dev->name)); @@ -4245,11 +4133,7 @@ { wl_wsec_key_t key; -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248474, 248475 */ int error = 0, val = 0, wsec = 0, auth = 0; -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ WL_TRACE(("%s: SIOCGIWENCODE\n", dev->name)); @@ -4332,11 +4216,7 @@ char *extra ) { -/* BEGIN: 0005533 mingi.sung@lge.com 2010-03-27 */ -/* MOD 0005533: [WLAN] Fixing WBT issues on Wi-Fi driver */ -/* WBT Fix TD# 248476 */ int error = 0, pm = 0; -/* END: 0005533 mingi.sung@lge.com 2010-03-27 */ WL_TRACE(("%s: SIOCGIWPOWER\n", dev->name)); @@ -4806,9 +4686,7 @@ } #endif -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-05-14, support private command */ #if defined(CONFIG_LGE_BCM432X_PATCH) -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-28, */ #if 1 /* "POWERMODE"applied from Raptor2 RC60 */ static int wl_iw_set_powermode( @@ -4836,7 +4714,6 @@ return error; } #endif /* "POWERMODE"applied from Raptor2 RC60 */ -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-28, */ static int wl_iw_set_scan_channels( @@ -4909,7 +4786,6 @@ return error; } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-05-14, support private command */ #ifdef SOFTAP @@ -5940,7 +5816,6 @@ int ret = 0; char * extra; #if defined(CONFIG_LGE_BCM432X_PATCH) -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-04, */ wl_iw_t *iw; if (!dev) { @@ -5948,7 +5823,6 @@ return -EFAULT; } iw = *(wl_iw_t **)netdev_priv(dev); -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-04, */ #else #if defined(BCMDONGLEHOST) wl_iw_t *iw = *(wl_iw_t **)netdev_priv(dev); @@ -5974,8 +5848,6 @@ WAKE_LOCK(iw->pub, WAKE_LOCK_PRIV); #endif -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-07-09, send wl_iw_send_priv_event */ -/* only if receiving regular START command */ #if defined(CONFIG_LGE_BCM432X_PATCH) if (g_onoff == G_WLAN_SET_OFF) { if (strnicmp(extra, "START", strlen("START")) != 0) { @@ -5986,11 +5858,6 @@ return -EFAULT; } else { ret = wl_iw_control_wl_on(dev, info); -/* LGE_CHANGE_S [jisung.yang@lge.com] 2010-04-24, START event will be sent in wl_iw_control_wl_on() */ -/* If MPC mode is not used during suspend, this part should be enabled */ -// if(ret == 0 ) -// wl_iw_send_priv_event(dev, "START"); -/* LGE_CHANGE_E [jisung.yang@lge.com] 2010-04-24, START event will be sent in wl_iw_control_wl_on() */ WL_TRACE(("%s, Received regular START command\n", __FUNCTION__)); } } else if(strnicmp(extra, "START", strlen("START")) == 0) { @@ -6016,7 +5883,6 @@ } } #endif /* CONFIG_LGE_BCM432X_PATCH */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-07-09, send wl_iw_send_priv_event only if receiving regular START command */ if (strnicmp(extra, "SCAN-ACTIVE", strlen("SCAN-ACTIVE")) == 0) { #ifdef ENABLE_ACTIVE_PASSIVE_SCAN_SUPPRESS @@ -6045,13 +5911,10 @@ #endif /* defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) && defined(CONFIG_BRCM_LGE_WL_ARPOFFLOAD) */ else if (strnicmp(extra, "STOP", strlen("STOP")) == 0) ret = wl_iw_control_wl_off(dev, info); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-28, */ #if !defined(CONFIG_LGE_BCM432X_PATCH) else if (strnicmp(extra, "POWERMODE", strlen("POWERMODE")) == 0) ret = wl_iw_set_btcoex_dhcp(dev, info, (union iwreq_data *)dwrq, extra); #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-28, */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-05-14, support private command */ #ifdef SOFTAP else if (strnicmp(extra, "ASCII_CMD", strlen("ASCII_CMD")) == 0) { @@ -6063,48 +5926,34 @@ } #endif #if defined(CONFIG_LGE_BCM432X_PATCH) -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-04-28, */ #if 1 /* "POWERMODE"applied from Raptor2 RC60 */ else if (strnicmp(extra, "POWERMODE", 9) == 0){ -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-27, */ if ( PM_control == TRUE ) -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-27, */ ret = wl_iw_set_powermode(dev, info, (union iwreq_data *)dwrq, extra); } #endif /* "POWERMODE"applied from Raptor2 RC60 */ -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-04-28, */ else if (strnicmp(extra, "SCAN-CHANNELS", 13) == 0) ret = wl_iw_set_scan_channels(dev, info, (union iwreq_data *)dwrq, extra); else if (strnicmp(extra, "ROAM-OFF", 8) == 0) ret = wl_iw_set_roam_off(dev, info, (union iwreq_data *)dwrq, extra); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-19, */ else if (strnicmp(extra, "BTCOEXSCAN-START", 16) == 0){ -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ if ( roam_off_control == TRUE ) { -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ sprintf(extra, "ROAM-OFF %d", 1); dwrq->length = strlen(extra) + 1; ret = wl_iw_set_roam_off(dev, info, (union iwreq_data *)dwrq, extra); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ } -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ } else if (strnicmp(extra, "BTCOEXSCAN-STOP", 15) == 0){ -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ if ( roam_off_control == TRUE ) { -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ sprintf(extra, "ROAM-OFF %d", 0); dwrq->length = strlen(extra) + 1; ret = wl_iw_set_roam_off(dev, info, (union iwreq_data *)dwrq, extra); -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-05-30, */ } -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-30, */ } -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-05-19, */ else if (strnicmp(extra, "DEV-STATS", 9) == 0) { /* 2009-09-29 get TX/RX bytes */ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) struct net_device_stats *stats = dev->get_stats(dev); @@ -6146,7 +5995,6 @@ else if (strnicmp(extra, "WAKEUP-RESUME", 13) == 0) wl_iw_hostwakeup_resume(dev, info, (union iwreq_data *)dwrq, extra); #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP_IOCTL */ -/* LGE_CHANGE_E [yoohoo@lge.com] 2009-05-14, support private command */ else { printk("Unkown PRIVATE command , ignored (%s)\n", extra); /* yoohoo */ snprintf(extra, MAX_WX_STRING, "OK"); @@ -7202,13 +7050,11 @@ g_iscan = iscan; iscan->dev = dev; iscan->iscan_state = ISCAN_STATE_IDLE; -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-08, Hidden SSID */ #if !defined(CONFIG_LGE_BCM432X_PATCH) g_first_broadcast_scan = BROADCAST_SCAN_FIRST_IDLE; #else g_first_broadcast_scan = BROADCAST_SCAN_FIRST_RESULT_CONSUMED; #endif -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-08, Hidden SSID */ g_iscan->scan_flag = 0; @@ -7225,11 +7071,9 @@ return -ENOMEM; #endif -/* LGE_CHANGE_S, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ #if defined(CONFIG_LGE_BCM432X_PATCH) && ( defined(CONFIG_BRCM_USE_GPIO_RESET) || defined(CONFIG_BRCM_USE_DEEPSLEEP)) sema_init(&wl_off_sem , 0); #endif /* defined(CONFIG_LGE_BCM432X_PATCH) && ( defined(CONFIG_BRCM_USE_GPIO_RESET) || defined(CONFIG_BRCM_USE_DEEPSLEEP)) */ -/* LGE_CHANGE_E, [yoohoo@lge.com], 2010-01-27, successive power key press lock up */ #if defined(BCMDONGLEHOST) iw = *(wl_iw_t **)netdev_priv(dev); iw->pub = (dhd_pub_t *)dhdp; @@ -7299,7 +7143,6 @@ #endif } -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ #if defined(CONFIG_BRCM_LGE_WL_HOSTWAKEUP) int del_wl_timers(void) { @@ -7320,4 +7163,3 @@ return 0; } #endif /* CONFIG_BRCM_LGE_WL_HOSTWAKEUP */ -/* LGE_CHANGE_S [yoohoo@lge.com] 2009-11-19, Support Host Wakeup */ diff -urP vd/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.h vm670/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.h --- vd/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.h 2011-02-04 19:01:16.000000000 -0500 +++ vm670/kernel/drivers/net/wireless/bcm4325/src/wl/sys/wl_iw.h 2011-04-12 06:00:31.000000000 -0400 @@ -109,13 +109,11 @@ struct completion sysioc_exited; }; -/* LGE_CHANGE_S, [jisung.yang@lge.com], 2010-06-28, < MAC write > */ #if defined(CONFIG_LGE_BCM432X_PATCH) #define WLC_IW_SS_CACHE_MAXLEN 1024 #else #define WLC_IW_SS_CACHE_MAXLEN 512 #endif /* defined(CONFIG_LGE_BCM432X_PATCH) */ -/* LGE_CHANGE_E, [jisung.yang@lge.com], 2010-06-28, < MAC write > */ #define WLC_IW_SS_CACHE_CTRL_FIELD_MAXLEN 32 #define WLC_IW_BSS_INFO_MAXLEN \ diff -urP vd/kernel/drivers/power/msm_battery.c vm670/kernel/drivers/power/msm_battery.c --- vd/kernel/drivers/power/msm_battery.c 2011-02-04 19:01:18.000000000 -0500 +++ vm670/kernel/drivers/power/msm_battery.c 2011-04-12 06:00:31.000000000 -0400 @@ -644,10 +644,6 @@ charger_status == CHARGER_STATUS_WEAK) { if (msm_batt_info.current_chg_source) { #ifdef CONFIG_LGE_FUEL_GAUGE - /* LGE_CHANGE - * add for Full charging - * 2010-05-04 baborobo@lge.com - */ if(battery_level == BATTERY_LEVEL_FULL) { DBG_LIMIT("BATT: FULL.\n"); msm_batt_info.batt_status = @@ -671,10 +667,6 @@ supp = &msm_psy_usb; } #ifdef CONFIG_LGE_FUEL_GAUGE - /* LGE_CHANGE - * add for unpluged status of battery - * 2010-04-28 baborobo@lge.com - */ if (battery_status == BATTERY_STATUS_INVALID && battery_level == BATTERY_LEVEL_INVALID) { DBG_LIMIT("BATT: No Battery.\n"); @@ -690,10 +682,6 @@ } } else { #ifdef CONFIG_LGE_FUEL_GAUGE - /* LGE_CHANGE - * add for unpluged status of battery - * 2010-04-07 baborobo@lge.com - */ if (battery_status == BATTERY_STATUS_INVALID && battery_level == BATTERY_LEVEL_INVALID) { DBG_LIMIT("BATT: No Battery\n"); @@ -705,10 +693,6 @@ if (charger_type != CHARGER_TYPE_INVALID && charger_status == CHARGER_STATUS_GOOD) { #ifdef CONFIG_LGE_FUEL_GAUGE - /* LGE_CHANGE - * add for Full charging - * 2010-05-04 baborobo@lge.com - */ if(battery_level == BATTERY_LEVEL_FULL) { DBG_LIMIT("BATT: FULL\n"); msm_batt_info.batt_status = @@ -1009,10 +993,6 @@ } #ifdef CONFIG_LGE_FUEL_GAUGE - /* LGE_CHANGE - * add for Battery Status Update when out of sleep - * 2010-04-21 baborobo@lge.com - */ msm_batt_update_psy_status(); #endif diff -urP vd/kernel/drivers/power/msm_battery_thunderc.c vm670/kernel/drivers/power/msm_battery_thunderc.c --- vd/kernel/drivers/power/msm_battery_thunderc.c 2011-02-04 19:01:18.000000000 -0500 +++ vm670/kernel/drivers/power/msm_battery_thunderc.c 2011-04-12 06:00:31.000000000 -0400 @@ -74,11 +74,9 @@ #include -/* LGE_CHANGE_S [woonghee.park@lge.com] 2010-03-18, ALARM */ #if defined (CONFIG_MACH_MSM7X27_THUNDERC) #include #endif -/* LGE_CHANGE_E [woonghee.park@lge.com] 2010-03-18, ALARM */ #define BATTERY_RPC_PROG 0x30000089 #define BATTERY_RPC_VERS 0x00010001 @@ -138,7 +136,6 @@ #define DBG(x...) do {} while (0) #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, add pif #if defined(CONFIG_LGE_DETECT_PIF_PATCH) extern int msm_chg_LG_cable_type(void); @@ -146,11 +143,9 @@ #define LG_FACTORY_CABLE_130K_TYPE 10 #endif -/* LGE_CHANGE_S [woonghee.park@lge.com] 2010-03-18, ALARM */ #if defined (CONFIG_MACH_MSM7X27_THUNDERC) struct wake_lock battery_wake_lock; #endif -/* LGE_CHANGE_E [woonghee.park@lge.com] 2010-03-18, ALARM */ enum { BATTERY_REGISTRATION_SUCCESSFUL = 0, @@ -176,9 +171,6 @@ BATTERY_VOLTAGE_UNKNOWN, }; -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, - * add CHG_UI_EVENT_CHARGING_TIMER_EXPIRED (from VS740) - */ enum { CHG_UI_EVENT_IDLE, /* Starting point, no charger. */ CHG_UI_EVENT_NO_POWER, /* No/Weak Battery + Weak Charger. */ @@ -240,26 +232,14 @@ u32 charger_valid; u32 batt_valid; u32 batt_capacity; - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_INFO_TEMP - */ u32 battery_temp; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ u32 valid_battery_id; u32 battery_therm; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670] - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) u32 chg_current; u32 batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ u32(*calculate_capacity) (u32 voltage); @@ -300,12 +280,8 @@ .mode = 0, }; -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 static int block_charging_state = 1; //1 : charging , 0: block charging -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-09, -// no stop charging even if hot or cold battery #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) static int no_stop_charging = 0; #endif @@ -318,12 +294,10 @@ "battery", }; -/* LGE_CHANGES_S [woonghee.park@lge.com] 2010-05_18, [VS740], LG_FW_CHARGING_TIMER*/ extern void set_charging_timer(int); extern void get_charging_timer(int *); int charging_timer_enable = -1; -/* LGE_CHANGES_E [woonghee.park@lge.com] 2010-05_18, [VS740]*/ static int msm_power_get_property(struct power_supply *psy, enum power_supply_property psp, @@ -384,31 +358,17 @@ POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN, POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_CAPACITY, - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_INFO_TEMP - */ POWER_SUPPLY_PROP_TEMP, - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ POWER_SUPPLY_PROP_BATTERY_ID_CHECK, POWER_SUPPLY_PROP_BATTERY_TEMP_ADC, POWER_SUPPLY_PROP_PSEUDO_BATT, POWER_SUPPLY_PROP_CHARGING_TIMER, - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info (from LS680) - */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ POWER_SUPPLY_PROP_BLOCK_CHARGING, #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) POWER_SUPPLY_PROP_CURRENT_NOW, POWER_SUPPLY_PROP_BATTERY_THRM_STATE, - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ POWER_SUPPLY_PROP_THERM_NO_STOP_CHARGING #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ }; static void msm_batt_update_psy_status(void); @@ -434,9 +394,6 @@ val->intval = msm_batt_info.batt_health; break; case POWER_SUPPLY_PROP_PRESENT: - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ if (pseudo_batt_info.mode == 1) { if (pseudo_batt_info.id == 1 || pseudo_batt_info.therm != 0) @@ -452,7 +409,6 @@ } /* LGE_COMMENT_OUT val->intval = msm_batt_info.batt_valid; */ - /* LGE_CHANGES_E [woonghee.park@lge.com] */ break; case POWER_SUPPLY_PROP_TECHNOLOGY: val->intval = msm_batt_info.batt_technology; @@ -476,19 +432,12 @@ val->intval = msm_batt_info.batt_capacity; break; - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_INFO_TEMP - */ case POWER_SUPPLY_PROP_TEMP: if (pseudo_batt_info.mode == 1) val->intval = pseudo_batt_info.temp; else val->intval = msm_batt_info.battery_temp; break; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ case POWER_SUPPLY_PROP_BATTERY_ID_CHECK: if (pseudo_batt_info.mode == 1) val->intval = pseudo_batt_info.id; @@ -501,20 +450,15 @@ else val->intval = msm_batt_info.battery_therm; break; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ case POWER_SUPPLY_PROP_PSEUDO_BATT: val->intval = pseudo_batt_info.mode; break; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ case POWER_SUPPLY_PROP_BLOCK_CHARGING: val->intval = block_charging_state; break; - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670] - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) case POWER_SUPPLY_PROP_CURRENT_NOW: val->intval = msm_batt_info.chg_current; @@ -524,18 +468,13 @@ val->intval = msm_batt_info.batt_thrm_state; break; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) case POWER_SUPPLY_PROP_THERM_NO_STOP_CHARGING: val->intval = no_stop_charging; break; #endif /* CONFIG_LGE_THERM_NO_STOP_CHARGING */ #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, - * add CHG_UI_EVENT_CHARGING_TIMER_EXPIRED (from VS740) - */ case POWER_SUPPLY_PROP_CHARGING_TIMER: { u32 intval; @@ -572,9 +511,6 @@ int charger_hw_type; -/* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ extern void battery_info_get(struct batt_info *rsp); extern void pseudo_batt_info_set(struct pseudo_batt_info_type *); @@ -594,9 +530,6 @@ } EXPORT_SYMBOL(pseudo_batt_set); -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, - * add CHG_UI_EVENT_CHARGING_TIMER_EXPIRED (from VS740) - */ int charging_timer_set(int intVal) { set_charging_timer(intVal); @@ -605,7 +538,6 @@ } EXPORT_SYMBOL(charging_timer_set); -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-09 */ extern void block_charging_set(int); void batt_block_charging_set(int block) { @@ -613,10 +545,7 @@ block_charging_set(block); } EXPORT_SYMBOL(batt_block_charging_set); -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-09 */ -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-09, -// no stop charging even if hot or cold battery #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) extern void set_charging_therm_no_stop_charging(int info); void msm_batt_therm_no_stop_charging(int no_stop) @@ -628,7 +557,6 @@ #endif struct batt_info batt_info_buf; -/* LGE_CHANGES_E [woonghee.park@lge.com]*/ struct rpc_reply_batt_chg { struct rpc_reply_hdr hdr; @@ -643,14 +571,10 @@ u32 battery_charging; u32 charger_valid; u32 chg_batt_event; - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) u32 chg_current; u32 batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ }; static struct rpc_reply_batt_chg rep_batt_chg; @@ -713,16 +637,12 @@ rep_batt_chg.chg_batt_event = be32_to_cpu(rep_batt_chg.chg_batt_event); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) rep_batt_chg.chg_current = be32_to_cpu(rep_batt_chg.chg_current); rep_batt_chg.batt_thrm_state = be32_to_cpu(rep_batt_chg.batt_thrm_state); #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ msm_batt_info.batt_capacity = rep_batt_chg.battery_level; msm_batt_info.voltage_now = rep_batt_chg.battery_voltage; @@ -733,14 +653,10 @@ *batt_charging = rep_batt_chg.battery_charging; *charger_valid = rep_batt_chg.charger_valid; *chg_batt_event = rep_batt_chg.chg_batt_event; - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info (from LS680) - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) msm_batt_info.chg_current = rep_batt_chg.chg_current; msm_batt_info.batt_thrm_state = rep_batt_chg.batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } else { printk(KERN_INFO "%s():No more data in batt_chg rpc reply\n", __func__); @@ -844,13 +760,9 @@ } *chg_batt_event = be32_to_cpu(rep_chg.chg_batt_data); - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ battery_info_get((struct batt_info *)&batt_info_buf); //printk(KERN_ERR "battery_info_get : auth_id=%d batt_therm_adc=%d batt_temp=%d\n", // batt_info_buf.valid_batt_id, batt_info_buf.batt_therm, batt_info_buf.batt_temp); - /* LGE_CHANGES_E [woonghee.park@lge.com] */ charger_hw_type = msm_hsusb_get_charger_type(); @@ -862,7 +774,6 @@ u32 batt_charging = 0; u32 chg_batt_event = CHG_UI_EVENT_INVALID; u32 charger_valid = 0; - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-02, booting via pif without battery #if defined(CONFIG_LGE_DETECT_PIF_PATCH) static int pif_value = -1; @@ -882,21 +793,14 @@ batt_info_buf.valid_batt_id = rep_batt_chg.battery_id; batt_info_buf.batt_therm = rep_batt_chg.battery_therm; batt_info_buf.batt_temp = rep_batt_chg.battery_temp; - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) batt_info_buf.chg_current = rep_batt_chg.chg_current; batt_info_buf.batt_thrm_state = rep_batt_chg.batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } else msm_batt_get_batt_chg_status(&batt_charging, &charger_valid, &chg_batt_event); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) DBG(KERN_DEBUG "batt_charging = %u batt_valid = %u batt_volt = %u\n" "batt_level = %u charger_valid = %u chg_batt_event = %u\n" @@ -916,7 +820,6 @@ batt_info_buf.valid_batt_id, batt_info_buf.batt_therm, batt_info_buf.batt_temp); #endif - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, info low-battery if (msm_batt_info.batt_capacity < 2) printk(KERN_INFO "batt_level = %u\n", msm_batt_info.batt_capacity); @@ -924,19 +827,13 @@ // " current charger valid status = %u\n", // msm_batt_info.charger_valid, charger_valid); - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ msm_batt_info.valid_battery_id = batt_info_buf.valid_batt_id; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ //NEED_TO_CHECK if (msm_batt_info.charger_valid != charger_valid) { - /* LGE_CHANGE_S [woonghee.park@lge.com] 2010-03-18, ALARM */ #if defined (CONFIG_MACH_MSM7X27_THUNDERC) wake_lock_timeout(&battery_wake_lock, 5 * HZ); #endif - /* LGE_CHANGE_E [woonghee.park@lge.com] 2010-03-18, ALARM */ msm_batt_info.charger_valid = charger_valid; if (msm_batt_info.charger_valid && charger_hw_type == CHG_HOST_PC) { @@ -953,8 +850,6 @@ } } - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-02, - // fake info for normal booting #if defined(CONFIG_LGE_DETECT_PIF_PATCH) if (1 == pif_value && 0 == msm_batt_info.valid_battery_id) { msm_batt_info.batt_valid = 1; @@ -966,24 +861,13 @@ msm_batt_info.batt_status = POWER_SUPPLY_STATUS_DISCHARGING; - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ msm_batt_info.battery_temp = 29 * 10; msm_batt_info.battery_therm = 88; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ msm_batt_info.chg_current = batt_info_buf.chg_current; msm_batt_info.batt_thrm_state = batt_info_buf.batt_thrm_state; - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } #endif - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, [LS670] - * display the charging info if battery id is valid - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) else if (msm_batt_info.batt_valid || msm_batt_info.valid_battery_id) { @@ -1005,9 +889,6 @@ if (batt_charging && msm_batt_info.charger_valid) { msm_batt_info.batt_status = POWER_SUPPLY_STATUS_CHARGING; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-10-06, - * process is died abnomally when capacity is zero - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) if (msm_batt_info.batt_capacity == 0) msm_batt_info.batt_capacity++; @@ -1022,49 +903,27 @@ msm_batt_info.batt_capacity = 100; } - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ msm_batt_info.battery_temp = batt_info_buf.batt_temp * 10; msm_batt_info.battery_therm = batt_info_buf.batt_therm; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) msm_batt_info.chg_current = batt_info_buf.chg_current; msm_batt_info.batt_thrm_state = batt_info_buf.batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } else { msm_batt_info.batt_health = POWER_SUPPLY_HEALTH_UNKNOWN; msm_batt_info.batt_status = POWER_SUPPLY_STATUS_UNKNOWN; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-03, [LS670] - * display the capacity in unknown - */ if (chg_batt_event == CHG_UI_EVENT_DONE) { msm_batt_info.batt_capacity = 100; } - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740], - * LG_FW_BATT_ID_CHECK, LG_FW_BATT_THM - */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-03, [LS670] - * display the all info in unkown - */ msm_batt_info.battery_temp = batt_info_buf.batt_temp * 10; msm_batt_info.battery_therm = batt_info_buf.batt_therm; - /* LGE_CHANGES_E [woonghee.park@lge.com] */ - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) msm_batt_info.chg_current = batt_info_buf.chg_current; msm_batt_info.batt_thrm_state = batt_info_buf.batt_thrm_state; #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ } power_supply_changed(&msm_psy_batt); @@ -1262,7 +1121,6 @@ return rc; } -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, add pif #if defined(CONFIG_LGE_DETECT_PIF_PATCH) static ssize_t msm_batt_pif_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -1285,7 +1143,6 @@ static DEVICE_ATTR(pif, S_IRUGO, msm_batt_pif_show, NULL); #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-14, modem lpm #include /* boolean */ extern void set_operation_mode(boolean info); static ssize_t msm_batt_modem_lpm_store(struct device *dev, struct device_attribute *attr, @@ -1307,7 +1164,6 @@ static DEVICE_ATTR(modem_lpm, 0220, NULL, msm_batt_modem_lpm_store); -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-23, power on status #if defined(CONFIG_LGE_GET_POWER_ON_STATUS) extern unsigned lge_get_power_on_status(void); static ssize_t msm_batt_power_on_status_show(struct device *dev, @@ -1323,7 +1179,6 @@ static DEVICE_ATTR(power_on_status, 0444, msm_batt_power_on_status_show, NULL); #endif //CONFIG_LGE_GET_POWER_ON_STATUS -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-01 extern void remote_set_charging_stat_realtime_update(int info); extern void remote_get_charging_stat_realtime_update(int *info); static ssize_t msm_batt_stat_realtime_update_store( @@ -1361,13 +1216,10 @@ #if defined(CONFIG_LGE_DETECT_PIF_PATCH) &dev_attr_pif.attr, #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-14, modem lpm &dev_attr_modem_lpm.attr, -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-23, power on status #if defined(CONFIG_LGE_GET_POWER_ON_STATUS) &dev_attr_power_on_status.attr, #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-01 &dev_attr_stat_realtime_update.attr, NULL }; @@ -1456,13 +1308,10 @@ msm_batt_start_cb_thread(); - /* LGE_CHANGE_S [woonghee.park@lge.com] 2010-03-18, ALARM */ #if defined (CONFIG_MACH_MSM7X27_THUNDERC) wake_lock_init(&battery_wake_lock, WAKE_LOCK_SUSPEND, "msm_battery"); #endif - /* LGE_CHANGE_E [woonghee.park@lge.com] 2010-03-18, ALARM */ - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-06 rc = sysfs_create_group(&pdev->dev.kobj, &dev_attr_grp); if(rc < 0) { dev_err(&pdev->dev, "%s: pif sysfs create failed rc=%d\n", __func__, rc); @@ -1671,7 +1520,6 @@ { int rc; - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-06, sysfs sysfs_remove_group(&pdev->dev.kobj, &dev_attr_grp); rc = msm_batt_cleanup(); diff -urP vd/kernel/drivers/power/power_supply_sysfs.c vm670/kernel/drivers/power/power_supply_sysfs.c --- vd/kernel/drivers/power/power_supply_sysfs.c 2011-02-04 19:01:18.000000000 -0500 +++ vm670/kernel/drivers/power/power_supply_sysfs.c 2011-04-12 06:00:31.000000000 -0400 @@ -28,11 +28,6 @@ * (as a macro let's say). */ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ -/* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ #include #include #endif @@ -49,11 +44,6 @@ * (as a macro let's say). */ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ -/* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ #define PSEUDO_BATT_ATTR(_name) \ { \ .attr = { .name = #_name, .mode = 0666 }, \ @@ -68,7 +58,6 @@ .store = charging_timer_store_property, \ } -/* LGE_CHANGE [dojipl@kim@lge.com] 2010-08-09 */ #define BLOCK_CHARGING_ATTR(_name) \ { \ .attr = { .name = #_name, .mode = 0666 }, \ @@ -76,7 +65,6 @@ .store = block_charging_store_property, \ } -/* LGE_CHANGE [dojipl@kim@lge.com] 2010-08-09 */ #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) #define THERM_NO_STOP_CHARGING_ATTR(_name) \ { \ @@ -141,11 +129,6 @@ else if (off == POWER_SUPPLY_PROP_CAPACITY_LEVEL) return sprintf(buf, "%s\n", capacity_level_text[value.intval]); #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740] */ else if (off >= POWER_SUPPLY_PROP_MODEL_NAME && off <= POWER_SUPPLY_PROP_SERIAL_NUMBER) #else else if (off >= POWER_SUPPLY_PROP_MODEL_NAME) @@ -155,12 +138,7 @@ return sprintf(buf, "%d\n", value.intval); } #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ -/* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ static ssize_t pseudo_batt_show_property(struct device *dev, struct device_attribute *attr, char *buf) @@ -255,7 +233,6 @@ return ret; } -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-09 */ extern void batt_block_charging_set(int); static ssize_t block_charging_store_property(struct device *dev, struct device_attribute *attr, @@ -300,9 +277,7 @@ return 0; } -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-09 */ -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-09 */ #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) static ssize_t therm_no_stop_charging_show_property(struct device *dev, struct device_attribute *attr, @@ -363,11 +338,6 @@ POWER_SUPPLY_ATTR(voltage_min_design), #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || \ defined (CONFIG_MACH_MSM7X27_GISELE) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - /* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ POWER_SUPPLY_ATTR(batt_vol), #else /* origin */ POWER_SUPPLY_ATTR(voltage_now), @@ -394,12 +364,6 @@ POWER_SUPPLY_ATTR(capacity_level), #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || \ defined (CONFIG_MACH_MSM7X27_GISELE) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - /* LGE_CHANGES_S [woonghee@lge.com] 2009-09-25, battery charging */ - /* need to match sysfs name, see BATTERY_TEMPERATURE_PATH */ POWER_SUPPLY_ATTR(batt_temp), #else POWER_SUPPLY_ATTR(temp), @@ -414,29 +378,17 @@ POWER_SUPPLY_ATTR(manufacturer), POWER_SUPPLY_ATTR(serial_number), #if defined (CONFIG_MACH_MSM7X27_ALOHAV) || defined (CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHNAGE - * ADD THUNDERC feature to use VS740 BATT DRIVER IN THUNDERC - * 2010-05-13, taehung.kim@lge.com - */ - /* LGE_CHANGES_S [woonghee.park@lge.com] 2010-02-09, [VS740] */ POWER_SUPPLY_ATTR(valid_batt_id), POWER_SUPPLY_ATTR(batt_therm), PSEUDO_BATT_ATTR(pseudo_batt), - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, add chargint timer */ CHARGING_TIMER_ATTR(charging_timer), - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-17, [LS670], - * add extra batt info - */ - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ BLOCK_CHARGING_ATTR(block_charging), #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) POWER_SUPPLY_ATTR(batt_therm_state), - /* LGE_CHANGE [dojip.kim@lge.com] 2010-08-09 */ #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) THERM_NO_STOP_CHARGING_ATTR(therm_no_stop_charging), #endif /* #if defined(CONFIG_LGE_THERM_NO_STOP_CHARGING) */ #endif - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-17 */ #endif }; diff -urP vd/kernel/drivers/rtc/alarm.c vm670/kernel/drivers/rtc/alarm.c --- vd/kernel/drivers/rtc/alarm.c 2011-02-04 19:01:18.000000000 -0500 +++ vm670/kernel/drivers/rtc/alarm.c 2011-04-12 06:00:30.000000000 -0400 @@ -23,7 +23,6 @@ #include #include #include -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-14, debugging #include #define ANDROID_ALARM_PRINT_ERROR (1U << 0) @@ -33,11 +32,8 @@ #define ANDROID_ALARM_PRINT_SUSPEND (1U << 4) #define ANDROID_ALARM_PRINT_INT (1U << 5) #define ANDROID_ALARM_PRINT_FLOW (1U << 6) -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-15, alarm add debugging #define ANDROID_ALARM_PRINT_ADD (1U << 7) -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-15, alarm add debugging -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-20, disable the alarm add debugging static int debug_mask = ANDROID_ALARM_PRINT_ERROR | \ ANDROID_ALARM_PRINT_ADD | \ ANDROID_ALARM_PRINT_INIT_STATUS; @@ -75,7 +71,6 @@ struct alarm_queue alarms[ANDROID_ALARM_TYPE_COUNT]; static bool suspended; -/* LGE_CHANGE [dojip.kim@lge.com] 2010-06-30, [LS670] fix the elapsedtime */ #ifdef CONFIG_LGE_RTC_INTF_ALARM_SYNC static bool alarm_need_to_update = true; /* need to update alarm before first sleep */ static bool force_to_update = true; @@ -138,30 +133,24 @@ struct rb_node *parent = NULL; struct alarm *entry; int leftmost = 1; - // LGE_CHANGE_S [dojip.kim@lge.com] 2010-07-15, alarm add debugging s64 stime; ktime_t now; - // LGE_CHANGE_E [dojip.kim@lge.com] 2010-07-15 pr_alarm(FLOW, "added alarm, type %d, func %pF at %lld\n", alarm->type, alarm->function, ktime_to_ns(alarm->expires)); - // LGE_CHANGE_S [dojip.kim@lge.com] 2010-07-15, alarm add debugging now = alarm_get_elapsed_realtime(); stime = ktime_to_ns(alarm->expires) - ktime_to_ns(now); do_div(stime, NSEC_PER_SEC); pr_alarm(ADD, "added alarm, wakeup at %lld (after %lld sec): (now %lld)\n", ktime_to_ns(alarm->expires), stime, ktime_to_ns(now)); - // LGE_CHANGE_E [dojip.kim@lge.com] 2010-07-15 - // LGE_CHANGE_S [dojip.kim@lge.com] 2010-07-14, debugging { char comm[sizeof(current->comm)]; pr_alarm(FLOW, "called alarm by pid %d (%s)\n", task_pid_nr(current), get_task_comm(comm, current)); } - // LGE_CHANGE_E [dojip.kim@lge.com] 2010-07-14 if (base->first == &alarm->node) base->first = rb_next(&alarm->node); @@ -380,7 +369,6 @@ pr_alarm(INT, "alarm_timer_triggered type %d at %lld\n", base - alarms, ktime_to_ns(now)); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-15, alarm add debugging pr_alarm(ADD, "triggerd alarm, wakeup at %lld\n", ktime_to_ns(now)); @@ -487,7 +475,6 @@ spin_unlock_irqrestore(&alarm_slock, flags); } } - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-30, [LS670] fixed the elapsedtime */ #ifdef CONFIG_LGE_RTC_INTF_ALARM_SYNC if (suspended) { if (force_to_update) diff -urP vd/kernel/drivers/rtc/hctosys.c vm670/kernel/drivers/rtc/hctosys.c --- vd/kernel/drivers/rtc/hctosys.c 2011-02-04 19:01:18.000000000 -0500 +++ vm670/kernel/drivers/rtc/hctosys.c 2011-04-12 06:00:30.000000000 -0400 @@ -22,9 +22,6 @@ * the best guess is to add 0.5s. */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, [LS670] - * use alarm intf to fix the wrong elapsedtime - */ #ifdef CONFIG_LGE_RTC_INTF_ALARM_SYNC extern int alarm_set_rtc(struct timespec new_time); extern bool alarm_need_to_set(void); @@ -52,9 +49,6 @@ rtc_tm_to_time(&tm, &tv.tv_sec); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-04, [LS670] - * use alarm intf to fix the wrong elapsedtime - */ #ifdef CONFIG_LGE_RTC_INTF_ALARM_SYNC if (alarm_need_to_set()) { //printk("%s: called alarm_set_rtc(tv)\n", __func__); @@ -67,15 +61,6 @@ do_settimeofday(&tv); #endif - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-04, too noisy - /* - dev_info(rtc->dev.parent, - "setting system clock to " - "%d-%02d-%02d %02d:%02d:%02d UTC (%u)\n", - tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec, - (unsigned int) tv.tv_sec); - */ } else dev_err(rtc->dev.parent, diff -urP vd/kernel/drivers/staging/android/ram_console.c vm670/kernel/drivers/staging/android/ram_console.c --- vd/kernel/drivers/staging/android/ram_console.c 2011-02-04 19:01:23.000000000 -0500 +++ vm670/kernel/drivers/staging/android/ram_console.c 2011-04-12 06:00:31.000000000 -0400 @@ -46,7 +46,6 @@ static size_t ram_console_buffer_size; #if defined(CONFIG_LGE_SUPPORT_ERS) || defined(CONFIG_LGE_HANDLE_PANIC) -/* LGE_CHANGES_S [j.y.han@lge.com] 20090904, helper function */ inline struct ram_console_buffer *get_ram_console_buffer(void) { return ram_console_buffer; @@ -152,7 +151,6 @@ .name = "ram", .write = ram_console_write, #if defined (CONFIG_MACH_LGE) - /* LGE_CHANGES_S [lsy@lge.com] 2009-10-29, Do not reprint buffer */ .flags = CON_ENABLED, #else /* origin */ .flags = CON_PRINTBUFFER | CON_ENABLED, @@ -371,7 +369,6 @@ } #endif -// LGE_CHANGE_S [dojip.kim@lge.com] 2010-08-04, clean the ram console when normal shutdown #if defined(CONFIG_LGE_RAM_CONSOLE_CLEAN) void ram_console_clean_buffer(void) { @@ -381,7 +378,6 @@ } EXPORT_SYMBOL(ram_console_clean_buffer); #endif -// LGE_CHANGE_E [dojip.kim@lge.com] 2010-08-04 static ssize_t ram_console_read_old(struct file *file, char __user *buf, size_t len, loff_t *offset) diff -urP vd/kernel/drivers/usb/function/diag.c vm670/kernel/drivers/usb/function/diag.c --- vd/kernel/drivers/usb/function/diag.c 2011-02-04 19:01:31.000000000 -0500 +++ vm670/kernel/drivers/usb/function/diag.c 2011-04-12 06:00:30.000000000 -0400 @@ -234,20 +234,17 @@ struct diag_req_entry *write_entry; struct diag_req_entry *read_entry; int i = 0; - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, shoud use the lock in using list unsigned long flags; for (i = 0; i < num_req; i++) { write_entry = diag_alloc_req_entry(ctxt->epin, 0, GFP_KERNEL); if (write_entry) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, // shoud use the lock in using list spin_lock_irqsave(&ctxt->dev_lock, flags); write_entry->usb_req->complete = diag_write_complete; write_entry->usb_req->device = (void *)ctxt; list_add(&write_entry->re_entry, &ctxt->dev_write_req_list); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, // shoud use the lock in using list spin_unlock_irqrestore(&ctxt->dev_lock, flags); } else @@ -257,15 +254,11 @@ for (i = 0; i < num_req ; i++) { read_entry = diag_alloc_req_entry(ctxt->epout, 0 , GFP_KERNEL); if (read_entry) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_lock_irqsave(&ctxt->dev_lock, flags); read_entry->usb_req->complete = diag_read_complete; read_entry->usb_req->device = (void *)ctxt; list_add(&read_entry->re_entry , &ctxt->dev_read_req_list); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_unlock_irqrestore(&ctxt->dev_lock, flags); } else goto read_error; @@ -275,28 +268,20 @@ read_error: printk(KERN_ERR "%s:read requests allocation failure\n", __func__); while (!list_empty(&ctxt->dev_read_req_list)) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_lock_irqsave(&ctxt->dev_lock, flags); read_entry = list_entry(ctxt->dev_read_req_list.next, struct diag_req_entry, re_entry); list_del(&read_entry->re_entry); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_unlock_irqrestore(&ctxt->dev_lock, flags); diag_free_req_entry(ctxt->epout, read_entry); } write_error: printk(KERN_ERR "%s: write requests allocation failure\n", __func__); while (!list_empty(&ctxt->dev_write_req_list)) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_lock_irqsave(&ctxt->dev_lock, flags); write_entry = list_entry(ctxt->dev_write_req_list.next, struct diag_req_entry, re_entry); list_del(&write_entry->re_entry); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_unlock_irqrestore(&ctxt->dev_lock, flags); diag_free_req_entry(ctxt->epin, write_entry); } @@ -309,34 +294,25 @@ { struct diag_context *ctxt = &_context; struct diag_req_entry *req_entry; - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, shoud use the lock in using list unsigned long flags; /* free write requests */ while (!list_empty(&ctxt->dev_write_req_list)) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_lock_irqsave(&ctxt->dev_lock, flags); req_entry = list_entry(ctxt->dev_write_req_list.next, struct diag_req_entry, re_entry); list_del(&req_entry->re_entry); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_unlock_irqrestore(&ctxt->dev_lock, flags); diag_free_req_entry(ctxt->epin, req_entry); } /* free read requests */ while (!list_empty(&ctxt->dev_read_req_list)) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_lock_irqsave(&ctxt->dev_lock, flags); req_entry = list_entry(ctxt->dev_read_req_list.next, struct diag_req_entry, re_entry); list_del(&req_entry->re_entry); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-25, - // shoud use the lock in using list spin_unlock_irqrestore(&ctxt->dev_lock, flags); diag_free_req_entry(ctxt->epout, req_entry); } diff -urP vd/kernel/drivers/usb/function/mass_storage.c vm670/kernel/drivers/usb/function/mass_storage.c --- vd/kernel/drivers/usb/function/mass_storage.c 2011-02-04 19:01:31.000000000 -0500 +++ vm670/kernel/drivers/usb/function/mass_storage.c 2011-04-12 06:00:30.000000000 -0400 @@ -2751,7 +2751,6 @@ if( nCount++ > 20) break; } - /*LGE_CHANGE_E[kyuhyung.lee@lge.com - #endif*/ #endif dev_attr_file.attr.mode = 0644; diff -urP vd/kernel/drivers/usb/function/msm_hsusb.c vm670/kernel/drivers/usb/function/msm_hsusb.c --- vd/kernel/drivers/usb/function/msm_hsusb.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/usb/function/msm_hsusb.c 2011-04-12 06:00:30.000000000 -0400 @@ -133,8 +133,6 @@ #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) || \ defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_MEID) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04 */ -/* to supports FS USB in the Factory ( LT cable will be connected) */ extern int msm_chg_LG_cable_type(void); #endif @@ -156,8 +154,6 @@ #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) || \ defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_MEID) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb switch */ -/* to supports FS USB in the Factory ( LT cable will be connected) */ #define LG_FACTORY_CABLE_TYPE 3 #define LT_ADB_CABLE 0xff #define LG_FACTORY_USB_PID 0x6000 @@ -358,7 +354,6 @@ int ret = 0; #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb charging */ int cable_type; cable_type = msm_chg_LG_cable_type(); @@ -377,7 +372,6 @@ } #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb charging */ if( cable_type == LG_FACTORY_CABLE_TYPE) { ui->chg_type = temp = USB_CHG_TYPE__WALLCHARGER; goto chg_legacy_det_out; @@ -1981,8 +1975,6 @@ writel(ui->dma, USB_ENDPOINTLISTADDR); #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb switch */ -/* to supports FS USB in the Factory ( LT cable will be connected) */ if( msm_chg_LG_cable_type() == LG_FACTORY_CABLE_TYPE) { unsigned tmp = 0; @@ -1999,7 +1991,6 @@ } #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGE_S [kyuhyung.lee@lge.com] - 2010.02.04 */ static void lgfw_change_PID(struct usb_info *ui, int pid) { int i; @@ -2472,10 +2463,6 @@ return; } #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 10.02.04 */ - /* LG_FW khlee 2010.01.21 - In the LG driver state, - * we do not want to be change the state by ADB menu. - * PID will not be changed when LT cable is connected.*/ if (nCableType == 3) { if (pid == 0x6001) pid = 0x6000; @@ -2633,7 +2620,6 @@ msm_pm_app_enable_usb_ldo(0); ui->state = USB_STATE_OFFLINE; #if defined(CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [khlee@lge.com] 2009-09-25 [VS740] to fix the DUN bug */ switch_set_state(&ui->sdev, ui->online); enable_irq(ui->irq); #else /* origin */ @@ -3125,9 +3111,6 @@ if (!strcmp(df_serialno,"00000000000000")) ui->pdata->serial_number = NULL; - /* In CTS test in korea, they will not use MEID but need to use serial - * khlee@lge.com 2010-02-23, [VS740] usb switch - */ if (msm_chg_LG_cable_type() == LT_ADB_CABLE) { sprintf(df_serialno,"%s","LGE_ANDROID_DE"); ui->pdata->serial_number = df_serialno; @@ -3135,7 +3118,6 @@ #endif #if(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyuhyung.lee] 2010.02.04 */ if (ui->composition->product_id == LG_FACTORY_USB_PID) { desc_device.idProduct = ui->composition->product_id; ui->pdata->serial_number = NULL; @@ -3205,7 +3187,6 @@ if (ui->composition) i = scnprintf(buf, PAGE_SIZE, #if defined(CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [khlee@lge.com] 2009-09-25 [VS740] to fix the DUN bug */ "%x\n", #else /* origin */ "composition product id = %x\n", @@ -3317,9 +3298,6 @@ \ static DEVICE_ATTR(function, S_IRUGO, show_##function, NULL); -/* LGE_CHANGES_S [fred.cho@lge.com] 2010-02-18 */ -/* Host Request func driver in this order. */ -/* It should be matched with function Map in Board.c */ #if defined (CONFIG_USB_SUPPORT_LGDRIVER) msm_hsusb_func_attr(modem, 0); msm_hsusb_func_attr(diag, 1); @@ -3357,7 +3335,6 @@ NULL, }; #endif -/* LGE_CHANGES_E [fred.cho@lge.com] 2010-02-18 */ static struct attribute_group msm_hsusb_func_attr_grp = { .name = "functions", @@ -3417,7 +3394,6 @@ ui->pdata = pdev->dev.platform_data; #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.04 */ if( msm_chg_LG_cable_type() == 3 ) //detect LT cable pid = LG_FACTORY_USB_PID; #endif diff -urP vd/kernel/drivers/usb/function/msm_hsusb_cdma.c vm670/kernel/drivers/usb/function/msm_hsusb_cdma.c --- vd/kernel/drivers/usb/function/msm_hsusb_cdma.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/usb/function/msm_hsusb_cdma.c 2011-04-12 06:00:30.000000000 -0400 @@ -77,20 +77,17 @@ #define is_phy_external() (PHY_TYPE(ui->phy_info) == USB_PHY_EXTERNAL) #if defined(CONFIG_USB_SUPPORT_LGDRIVER) -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-05, Massstorage only static int pid = 0x618E; /* Diag + Modem + NMEA + Mass storage + ADB*/ -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-16, LS670 UMS PID: 0x61CC -static int ums_pid = 0x61CC; /* Mass storage */ +static int ums_pid = 0x61CE; /* Mass storage */ #else /* origin */ static int pid = 0x9018; #endif -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-21 */ static int usb_chg_type = 0; static int usb_maxpower = 0; -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-21 */ #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) static int ADB_state = 0; +static int MODEM_state = 1; // enabled as default #endif @@ -145,8 +142,6 @@ #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) || \ defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_MEID) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04 */ -/* to supports FS USB in the Factory ( LT cable will be connected) */ extern int msm_chg_LG_cable_type(void); extern void msm_get_MEID_type(char *); #endif @@ -169,8 +164,6 @@ #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) || \ defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_MEID) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb switch */ -/* to supports FS USB in the Factory ( LT cable will be connected) */ #define LG_FACTORY_CABLE_TYPE 3 #define LG_FACTORY_CABLE_130K_TYPE 10 #define LT_ADB_CABLE 0xff @@ -291,7 +284,6 @@ static void ep0_setup_ack(struct usb_info *ui); #endif -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the charger rpc error static DEFINE_MUTEX(chg_usb_lock); struct usb_device_descriptor desc_device = { @@ -336,7 +328,6 @@ return sprintf(buf, "%s\n", (ui->online ? "online" : "offline")); } -// LGE_CHANGE [dojip.kim@lge.com] 2010-09-02, Wall chg current 1800 -> 2000 #define USB_WALLCHARGER_CHG_CURRENT 2000 static int usb_get_max_power(struct usb_info *ui) { @@ -354,7 +345,6 @@ if (temp == USB_CHG_TYPE__INVALID) return -ENODEV; - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-02, for Sprint if (temp == USB_CHG_TYPE__WALLCHARGER) #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) return LS670_TA_CHG_CURRENT; @@ -363,10 +353,6 @@ #endif if (suspended || !configured) -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-17, merged from VS740 -// LGE_CHANGE wppnghee.park : to charge phone -// when usb cable is connected but not configured. -// charging current will be changed to 400mA at ARM9 side. #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) return 10; #else @@ -385,7 +371,6 @@ int ret = 0; #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb charging */ int cable_type; cable_type = msm_chg_LG_cable_type(); @@ -404,7 +389,6 @@ } #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb charging */ if( cable_type == LG_FACTORY_CABLE_TYPE || cable_type == LG_FACTORY_CABLE_130K_TYPE) { ui->chg_type = temp = USB_CHG_TYPE__WALLCHARGER; @@ -414,10 +398,8 @@ ui->chg_type = temp = USB_CHG_TYPE__SDP; chg_legacy_det_out: - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, debugging */ pr_info("%s: CHARGER TYPE %d\n", __func__, ui->chg_type); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, debugfs */ usb_chg_type = ui->chg_type; spin_unlock_irqrestore(&ui->lock, flags); @@ -425,21 +407,16 @@ if (ret) return; - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the rpc error mutex_lock(&chg_usb_lock); msm_chg_usb_charger_connected(temp); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the rpc error mutex_unlock(&chg_usb_lock); maxpower = usb_get_max_power(ui); - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-21, debugfs */ usb_maxpower = maxpower; if (maxpower > 0) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the rpc error mutex_lock(&chg_usb_lock); msm_chg_usb_i_is_available(maxpower); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the rpc error mutex_unlock(&chg_usb_lock); } @@ -2028,8 +2005,6 @@ writel(ui->dma, USB_ENDPOINTLISTADDR); #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGES_S [khlee@lge.com] 2010-01-04, [VS740] usb switch */ -/* to supports FS USB in the Factory ( LT cable will be connected) */ if( msm_chg_LG_cable_type() == LG_FACTORY_CABLE_TYPE) { unsigned tmp = 0; @@ -2046,7 +2021,6 @@ } #if defined (CONFIG_USB_SUPPORT_LGE_FACTORY_USB) -/* LGE_CHANGE_S [kyuhyung.lee@lge.com] - 2010.02.04 */ static void lgfw_change_PID(struct usb_info *ui, int pid) { int i; @@ -2103,10 +2077,18 @@ nCableType == LG_FACTORY_CABLE_130K_TYPE) // LT tempPID = LG_FACTORY_USB_PID; else { - if(ADB_state) - tempPID = 0x618E; // ADB enable - else - tempPID = ums_pid; // ADB disable + if(ADB_state) { + if (0 == MODEM_state) + tempPID = 0x61A6; // ADB enable + else + tempPID = 0x618E; // ADB enable + } + else { + if (1 == MODEM_state) + tempPID = 0x618E; // ADB enable + else + tempPID = ums_pid; // ADB disable + } } if( tempPID != ui->composition->product_id) @@ -2492,9 +2474,10 @@ #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyukyung.lee@lge.com] 2010.04.03*/ - /* we'd like to change the ADB setting value without composite switching*/ - ADB_state = enable; + if (strncmp(function, "adb", 3) == 0) + ADB_state = enable; + else if (strncmp(function, "modem", 5) == 0) + MODEM_state = enable; #endif pr_info("%s: name = %s, enable = %d\n", __func__, function, enable); @@ -2527,20 +2510,25 @@ return; } #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 10.02.04 */ - /* LG_FW khlee 2010.01.21 - In the LG driver state, - * we do not want to be change the state by ADB menu. - * PID will not be changed when LT cable is connected.*/ if (pid == 0x6001) { pid = 0x6000; // LG_FW khlee : during the cablibration, // ADB enable signal can make the failure. return; } - else if (pid == 0x6002) { + else if (1 == MODEM_state) { + pid = 0x618E; + + } + else if (pid == 0x6006) { pid = 0x618E; } - else if (pid == 0x6003) { + else if (pid == 0x6004 || pid == 0x6002) { + pid = 0x61A6; + } + + else if (pid == 0x6003) { + //else { pid = ums_pid; } #endif @@ -2575,11 +2563,7 @@ { unsigned tmp; - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-21, usb improve (from MS690) #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGES_S [jaeho.cho@lge.com] 2010-06-15, [VS760] - * Vbus drop during RF cal and USB multi connection - */ int cable_type; #if defined(CONFIG_USB_SUPPORT_LG_SMEM_CABLE_TYPE) cable_type = lgwfw_smem_cable_type(); @@ -2704,13 +2688,9 @@ */ msm_hsusb_suspend_locks_acquire(ui, 1); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, - // fix the rpc error mutex_lock(&chg_usb_lock); msm_chg_usb_i_is_not_available(); msm_chg_usb_charger_disconnected(); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, - // fix the rpc error mutex_unlock(&chg_usb_lock); } @@ -2726,7 +2706,6 @@ msm_pm_app_enable_usb_ldo(0); ui->state = USB_STATE_OFFLINE; #if defined(CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [khlee@lge.com] 2009-09-25 [VS740] to fix the DUN bug */ switch_set_state(&ui->sdev, ui->online); enable_irq(ui->irq); #else /* origin */ @@ -2747,12 +2726,8 @@ int maxpower = usb_get_max_power(ui); if (maxpower > 0) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, - // fix the rpc error mutex_lock(&chg_usb_lock); msm_chg_usb_i_is_available(maxpower); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, - // fix the rpc error mutex_unlock(&chg_usb_lock); } @@ -2960,10 +2935,8 @@ spin_unlock_irqrestore(&ui->lock, flags); if (temp == USB_CHG_TYPE__SDP) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the rpc error mutex_lock(&chg_usb_lock); msm_chg_usb_i_is_not_available(); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, fix the rpc error mutex_unlock(&chg_usb_lock); } } @@ -3184,10 +3157,8 @@ static struct dentry *debugfs_status; static struct dentry *debugfs_reset; static struct dentry *debugfs_cycle; -/* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-21 */ static struct dentry *debugfs_chg_type; static struct dentry *debugfs_maxpower; -/* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-21 */ static void usb_debugfs_init(struct usb_info *ui) { debugfs_dent = debugfs_create_dir("usb", 0); @@ -3200,12 +3171,10 @@ debugfs_dent, ui, &debug_reset_ops); debugfs_cycle = debugfs_create_file("cycle", 0222, debugfs_dent, ui, &debug_cycle_ops); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-21 */ debugfs_chg_type = debugfs_create_u32("chg_type", 0444, debugfs_dent, &usb_chg_type); debugfs_chg_type = debugfs_create_u32("maxpower", 0444, debugfs_dent, &usb_maxpower); - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-21 */ } static void usb_debugfs_uninit(void) @@ -3214,10 +3183,8 @@ debugfs_remove(debugfs_reset); debugfs_remove(debugfs_cycle); debugfs_remove(debugfs_dent); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-05-21 */ debugfs_remove(debugfs_chg_type); debugfs_remove(debugfs_maxpower); - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-05-21 */ } #else @@ -3228,9 +3195,6 @@ static void usb_configure_device_descriptor(struct usb_info *ui) { #if defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_MEID) - /* LGE_CHANGE [dojip.kim@lge.com] 2010-06-11, [LS670] - * ARM9 uses string copy function - */ char meid[15]; /* MEID is constitued of 14 characters */ char df_serialno[15] ; @@ -3242,14 +3206,10 @@ #if defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_MEID) memset(df_serialno,0,15); - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-06-11, [LS670] - * ARM9 uses string copy function - */ memset(meid, 0, 15); //msm_get_MEID_type(df_serialno); msm_get_MEID_type(meid); strncpy(df_serialno, meid, 15); - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-06-11 */ ui->pdata->serial_number = df_serialno; @@ -3257,9 +3217,6 @@ if (!strcmp(df_serialno,"00000000000000")) ui->pdata->serial_number = NULL; - /* In CTS test in korea, they will not use MEID but need to use serial - * khlee@lge.com 2010-02-23, [VS740] usb switch - */ if (msm_chg_LG_cable_type() == LT_ADB_CABLE) { sprintf(df_serialno,"%s","LGE_ANDROID_DE"); ui->pdata->serial_number = df_serialno; @@ -3267,7 +3224,6 @@ #endif #if(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyuhyung.lee] 2010.02.04 */ if (ui->composition->product_id == LG_FACTORY_USB_PID) { desc_device.idProduct = ui->composition->product_id; ui->pdata->serial_number = NULL; @@ -3292,6 +3248,11 @@ desc_device.bDeviceClass = 0x00; desc_device.bDeviceSubClass = 0x00; } + else if (desc_device.idProduct == 0x61A6) { + desc_device.bDeviceClass = 0xEF; + desc_device.bDeviceSubClass = 0x02; + desc_device.bDeviceProtocol = 1; + } else { // debug enable & facotory driver desc_device.bDeviceClass = 0x02; desc_device.bDeviceSubClass = 0x02; @@ -3348,7 +3309,6 @@ if (ui->composition) i = scnprintf(buf, PAGE_SIZE, #if defined(CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [khlee@lge.com] 2009-09-25 [VS740] to fix the DUN bug */ "%x\n", #else /* origin */ "composition product id = %x\n", @@ -3424,9 +3384,9 @@ return i; } -static DEVICE_ATTR(composition, 0664, +static DEVICE_ATTR(composition, 0666, msm_hsusb_show_compswitch, msm_hsusb_store_compswitch); -static DEVICE_ATTR(func_enable, S_IWUSR, +static DEVICE_ATTR(func_enable, 0666, NULL, msm_hsusb_store_func_enable); static DEVICE_ATTR(autoresume, 0222, NULL, msm_hsusb_store_autoresume); @@ -3460,9 +3420,6 @@ \ static DEVICE_ATTR(function, S_IRUGO, show_##function, NULL); -/* LGE_CHANGES_S [fred.cho@lge.com] 2010-02-18 */ -/* Host Request func driver in this order. */ -/* It should be matched with function Map in Board.c */ #if defined (CONFIG_USB_SUPPORT_LGDRIVER) msm_hsusb_func_attr(modem, 0); msm_hsusb_func_attr(diag, 1); @@ -3500,7 +3457,6 @@ NULL, }; #endif -/* LGE_CHANGES_E [fred.cho@lge.com] 2010-02-18 */ static struct attribute_group msm_hsusb_func_attr_grp = { .name = "functions", @@ -3563,7 +3519,6 @@ ui->pdata = pdev->dev.platform_data; #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB) - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.04 */ nCableType = msm_chg_LG_cable_type(); if( nCableType == LG_FACTORY_CABLE_TYPE || nCableType == LG_FACTORY_CABLE_130K_TYPE) //detect LT cable @@ -3738,7 +3693,6 @@ ui->functions_map = ui->pdata->function_map; ui->selfpowered = 0; ui->remote_wakeup = 0; - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-02, for Sprint #if defined(CONFIG_MACH_MSM7X27_THUNDERC_SPRINT) ui->maxpower = LS670_USB_CHG_CURRENT / 2; #else /* qualcomm or google */ diff -urP vd/kernel/drivers/usb/function/msm_hsusb_gsm.c vm670/kernel/drivers/usb/function/msm_hsusb_gsm.c --- vd/kernel/drivers/usb/function/msm_hsusb_gsm.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/usb/function/msm_hsusb_gsm.c 2011-04-12 06:00:30.000000000 -0400 @@ -51,20 +51,10 @@ #include #endif /* CONFIG_MACH_LGE */ -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2009-04-08, Defines for LGE */ -/* For HSUSB debugging */ #define LGE_HSUSB_DEBUG_PRINT /* #undef HSUSB_DEBUG_PRINT */ #if defined(CONFIG_USB_SUPPORT_LGDRIVER) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, Macro for debugging */ -/* Debug mask value - * usage : echo [mask_value] > /sys/module/msm_hsusb/parameters/debug_mask - * All : 127 - * No msg : 0 - * PM : 4 - * Init : 8 - */ enum { HSUSB_DEBUG_NORMAL = 1U << 0, /* Normal debug */ HSUSB_DEBUG_ISR_WQ = 1U << 1, /* Isr, wq */ @@ -96,7 +86,6 @@ #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB_GSM) && \ defined(CONFIG_LGE_DETECT_PIF_PATCH) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, For manufacturing mode */ #define LG_PIF_DETECT 2 #endif @@ -123,7 +112,6 @@ #if defined(CONFIG_USB_SUPPORT_LGDRIVER_GSM) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, Default PID settings */ #define LG_DEFAULT_PID 0x618F /* ADB off */ #define LG_ADB_ON_PID 0x618E /* ADB on */ @@ -297,7 +285,6 @@ int vbus_sn_notif; struct switch_dev sdev; #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB_GSM) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, For manufactoring mode */ int pif_detect; #endif }; @@ -353,7 +340,6 @@ struct usb_info *ui = the_usb_info; #if defined(CONFIG_USB_SUPPORT_LGDRIVER_GSM) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, Add switch drver ops */ if (ui->usb_state == USB_STATE_POWERED) return sprintf(buf, "%s\n", "powered"); #endif @@ -1550,13 +1536,10 @@ req->busy = 0; req->live = 0; -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-07, */ -/* WBT Fix TD# 5131 */ if (req->dead){ do_free_req(ui, req); continue; } -/* LGE_CHANGE_E [hyunhui.park@lge.com] 2010-04-07 */ if (req->req.complete) { spin_unlock_irqrestore(&ui->lock, flags); req->req.complete(ept, &req->req); @@ -2445,7 +2428,6 @@ } #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB_GSM) && \ defined(CONFIG_LGE_DETECT_PIF_PATCH) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2009-04-08, Disable ADB function */ if (ui->pif_detect == LG_PIF_DETECT) { if (!strcmp(function, "adb")) { pr_info("HSUSB(%s): In manufacturing mode, can't use ADB interface\n", __func__); @@ -2669,7 +2651,6 @@ &ui->chg_legacy_det, USB_CHG_DET_DELAY); #if defined(CONFIG_USB_SUPPORT_LGDRIVER_GSM) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, Change USB state(for TA wakeup) */ switch_set_state(&ui->sdev, 2); #endif pr_info("hsusb: OFFLINE -> ONLINE\n"); @@ -3097,7 +3078,6 @@ { #if defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_IMEI) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, Get IMEI using RPC */ unsigned char nv_imei_ptr[19]; int ret = -1; #endif @@ -3107,13 +3087,11 @@ desc_device.bcdDevice = ui->pdata->version; #if defined(CONFIG_USB_SUPPORT_LGDRIVER_GSM) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-01, Settle PID setting */ if (desc_device.idProduct == LG_DEFAULT_PID) desc_device.idProduct = LG_ADB_ON_PID; #endif #if defined(CONFIG_USB_SUPPORT_LGE_SERIAL_FROM_ARM9_IMEI) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, Get IMEI using RPC */ ret = msm_nv_imei_get(nv_imei_ptr); if (ret < 0) { nv_imei_ptr[0] = '\0'; @@ -3322,9 +3300,6 @@ \ static DEVICE_ATTR(function, S_IRUGO, show_##function, NULL); -/* LGE_CHANGES_S [fred.cho@lge.com] 2010-02-18 */ -/* Host Request func driver in this order. */ -/* It should be matched with function Map in Board.c */ #if defined (CONFIG_USB_SUPPORT_LGDRIVER) msm_hsusb_func_attr(modem, 0); msm_hsusb_func_attr(diag, 1); @@ -3360,7 +3335,6 @@ NULL, }; #endif -/* LGE_CHANGES_E [fred.cho@lge.com] 2010-02-18 */ static struct attribute_group msm_hsusb_func_attr_grp = { .name = "functions", @@ -3421,7 +3395,6 @@ #if defined(CONFIG_USB_SUPPORT_LGE_FACTORY_USB_GSM) && \ defined(CONFIG_LGE_DETECT_PIF_PATCH) -/* LGE_CHANGE_S [hyunhui.park@lge.com] 2010-04-08, For manufacturing mode */ ui->pif_detect = -1; /* Using common lge api in arch/arm/mach-msm/lge/lge_proc_comm.c */ diff -urP vd/kernel/drivers/usb/function/serial.c vm670/kernel/drivers/usb/function/serial.c --- vd/kernel/drivers/usb/function/serial.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/usb/function/serial.c 2011-04-12 06:00:30.000000000 -0400 @@ -206,13 +206,11 @@ /*interface, endpoint descriptors*/ #if defined (CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ struct usb_interface_descriptor gs_com_ifc_desc; struct usb_interface_descriptor gs_data_ifc_desc; #else /* origin */ struct usb_interface_descriptor gs_ifc_desc; #endif - /* LGE_CHANGES_E [jyoo@lge.com] 2009-09-25 [VS740] */ struct usb_endpoint_descriptor gs_hs_bulkin_desc, gs_fs_bulkin_desc; struct usb_endpoint_descriptor gs_hs_bulkout_desc, gs_fs_bulkout_desc; struct usb_endpoint_descriptor gs_hs_notifyin_desc, gs_fs_notifyin_desc; @@ -361,7 +359,6 @@ }; #if defined (CONFIG_USB_SUPPORT_LGDRIVER) -/* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ struct usb_interface_assoc_descriptor acm_interface_assoc_desc = { .bLength = 8, //USB_DT_INTERFACE_ASSOCIATION_SIZE, .bDescriptorType = 0xb, USB_DT_INTERFACE_ASSOCIATION, @@ -373,7 +370,6 @@ #endif #if defined (CONFIG_USB_SUPPORT_LGDRIVER) -/* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ static struct usb_cdc_call_mgmt_descriptor gs_call_mgmt_descriptor = { .bLength = sizeof(gs_call_mgmt_descriptor), .bDescriptorType = USB_DT_CS_INTERFACE, @@ -398,7 +394,6 @@ }; #if defined (CONFIG_USB_SUPPORT_LGDRIVER) -/* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ static struct usb_cdc_union_desc gs_union_desc = { .bLength = sizeof(gs_union_desc), .bDescriptorType = USB_DT_CS_INTERFACE, @@ -416,7 +411,6 @@ #endif #if defined (CONFIG_USB_SUPPORT_LGDRIVER) -/* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ static void gs_init_com_ifc_desc(struct usb_interface_descriptor *ifc_desc) { ifc_desc->bLength = USB_DT_INTERFACE_SIZE; @@ -443,7 +437,6 @@ ifc_desc->iInterface = 0; } /* LG_FW 2009.11.23 add NMEA(single interface) */ -/* LGE_CHANGE_S [kyuhyung.lee@lge.com] -2010.02.04 - #ifdef LG_FW_USB_SUPPORT_NMEA*/ static void gs_init_ifc_desc(struct usb_interface_descriptor *ifc_desc) { ifc_desc->bLength = USB_DT_INTERFACE_SIZE; @@ -488,8 +481,6 @@ ep_desc->bmAttributes = USB_ENDPOINT_XFER_INT; #if defined (CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-30, increase the maxpacket size ep_desc->wMaxPacketSize = 16; // 10 if (speed == HIGHSPEED) ep_desc->bInterval = 5+4; @@ -503,14 +494,12 @@ } #if defined (CONFIG_USB_SUPPORT_LGDRIVER) -/* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ static void gs_init_header_desc(struct gs_dev *dev) { /* Highspeed descriptor */ int index_desc = 0 ; index_desc = 0; - /*LGE_CHANGE_S [kyuhyung.lee] 2010.02.04 -#ifdef LG_FW_USB_SUPPORT_NMEA*/ if(!strcmp(dev->func->name,"modem")){ dev->gs_highspeed_header[index_desc++] = (struct usb_descriptor_header *)&dev->gs_com_ifc_desc; @@ -545,7 +534,6 @@ } index_desc = 0; - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.04 -#ifdef LG_FW_USB_SUPPORT_NMEA*/ if(!strcmp(dev->func->name,"modem")){ dev->gs_fullspeed_header[index_desc++] = (struct usb_descriptor_header *)&dev->gs_com_ifc_desc; @@ -669,7 +657,6 @@ func = &usb_function_serial[i]; #if defined (CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.04 -#ifdef LG_FW_USB_SUPPORT_NMEA*/ func->name = a[i]; #endif gs_devices[i] = kzalloc(sizeof(struct gs_dev), GFP_KERNEL); @@ -681,8 +668,6 @@ /*1 - Interface, 3 Endpoints-> Total 4 + 1 for NULL*/ #if defined (CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [khlee@lge.com] 2009-09-25 [VS740] to support LG USB driver */ - /* LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.04 -#ifdef LG_FW_USB_SUPPORT_NMEA*/ if( i == 0 ) { // modem gs_devices[i]->gs_fullspeed_header = kmalloc(sizeof(struct usb_descriptor_header *) * 11, GFP_KERNEL); @@ -1637,8 +1622,6 @@ } #if defined (CONFIG_USB_SUPPORT_LGDRIVER) - /* LGE_CHANGES_S [jyoo@lge.com] 2009-09-25 [VS740] to support LG USB driver */ - /*LGE_CHANGE_S [kyuhyung.lee@lge.com] 2010.02.04 - #ifdef LG_FW_USB_SUPPORT_NMEA*/ if( !strcmp(func->name,"modem")){ ret = usb_msm_get_next_ifc_number(func); dev->gs_com_ifc_desc.bInterfaceNumber = ret; diff -urP vd/kernel/drivers/usb/gadget/msm72k_udc.c vm670/kernel/drivers/usb/gadget/msm72k_udc.c --- vd/kernel/drivers/usb/gadget/msm72k_udc.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/usb/gadget/msm72k_udc.c 2011-04-12 06:00:30.000000000 -0400 @@ -46,6 +46,10 @@ #include #include +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_GADGET +#include "u_lgeusb.h" +#endif + static const char driver_name[] = "msm72k_udc"; /* #define DEBUG */ @@ -56,11 +60,51 @@ #define DRIVER_DESC "MSM 72K USB Peripheral Controller" #define DRIVER_NAME "MSM72K_UDC" +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN +#define DRIVER_NAME_FOR_AUTORUN "MSM72K_UDC_AUTORUN" +#endif + #define EPT_FLAG_IN 0x0001 #define SETUP_BUF_SIZE 4096 +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_GADGET + +enum { + USB_DEBUG_NORMAL = 1U << 0, /* Normal debug */ + USB_DEBUG_ISR_WQ = 1U << 1, /* Isr, wq */ + USB_DEBUG_PM = 1U << 2, /* Power management */ + USB_DEBUG_INIT = 1U << 3, /* module_init(), Probe()*/ + USB_DEBUG_COMPO = 1U << 4, /* Function composition */ + USB_DEBUG_EP = 1U << 5, /* Endpoint control */ + USB_DEBUG_FUNCTION = 1U << 6, /* Function APIs */ +}; + +static int lge_usb_debug_mask; + +module_param_named(debug_mask, lge_usb_debug_mask, int, + S_IRUGO | S_IWUSR | S_IWGRP); + +#define USB_TRACE(mask, fmt, args...) \ + do { \ + if ((mask) & lge_usb_debug_mask) \ + printk(KERN_INFO "MSM72K_UDC-DBG[%-18s:%5d] " \ + fmt, __func__, __LINE__, ## args); \ + } while (0) +#else +#define USB_TRACE(mask, fmt, args...) do {} while (0) +#endif + +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_GADGET + +#define LGE_FACTORY_CABLE 1 +#define LGE_FACTORY_USB_PID_STRING "0x6000" + +static int cable_type = -1; + +#endif + static const char *const ep_name[] = { "ep0out", "ep1out", "ep2out", "ep3out", "ep4out", "ep5out", "ep6out", "ep7out", @@ -126,6 +170,7 @@ static void usb_do_work(struct work_struct *w); static void usb_do_remote_wakeup(struct work_struct *w); +extern int msm_chg_LG_cable_type(void); #define USB_STATE_IDLE 0 #define USB_STATE_ONLINE 1 @@ -192,6 +237,9 @@ struct usb_gadget gadget; struct usb_gadget_driver *driver; struct switch_dev sdev; +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN + struct switch_dev sdev_autorun; +#endif #define ep0out ept[0] #define ep0in ept[16] @@ -240,6 +288,15 @@ return state; } +#ifdef CONFIG_USB_GADGET_LG_MTP_DRIVER +int mtp_get_usb_state(void) +{ + int state; + state = (int)msm_hsusb_get_state(); + return state; +} +#endif + static ssize_t print_switch_name(struct switch_dev *sdev, char *buf) { return sprintf(buf, "%s\n", DRIVER_NAME); @@ -250,11 +307,46 @@ struct usb_info *ui = the_usb_info; return sprintf(buf, "%s\n", + (sdev->state ? "online" : "offline")); +} + +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN +static ssize_t print_switch_name_for_autorun(struct switch_dev *sdev, char *buf) +{ + return sprintf(buf, "%s\n", DRIVER_NAME_FOR_AUTORUN); +} + +static ssize_t print_switch_state_for_autorun(struct switch_dev *sdev, char *buf) +{ + struct usb_info *ui = the_usb_info; + + char *state[] = {"USB_STATE_NOTATTACHED", "USB_STATE_ATTACHED", + "USB_STATE_POWERED", "USB_STATE_UNAUTHENTICATED", + "USB_STATE_RECONNECTING", "USB_STATE_DEFAULT", + "USB_STATE_ADDRESS", "USB_STATE_CONFIGURED", + "USB_STATE_SUSPENDED" + }; + + pr_info("%s [AUTORUN]: %s -- [%s] -- [%d]\n", __func__, (atomic_read(&ui->configured) ? "online" : "offline"), state[msm_hsusb_get_state()], sdev->state); + + return sprintf(buf, "%s\n", (atomic_read(&ui->configured) ? "online" : "offline")); } +#endif static inline enum chg_type usb_get_chg_type(struct usb_info *ui) { + +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_GADGET + /* If cable is factory cable, it's value is 1 */ + cable_type = lge_detect_factory_cable(); +#endif + +#ifdef CONFIG_USB_SUPPORT_LGE_FACTORY_USB + if (cable_type == LGE_FACTORY_CABLE) + return USB_CHG_TYPE__WALLCHARGER; +#endif + if ((readl(USB_PORTSC) & PORTSC_LS) == PORTSC_LS) return USB_CHG_TYPE__WALLCHARGER; else @@ -289,6 +381,10 @@ return bmaxpow; } +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_CDMA +static enum chg_type pre_chg_type = USB_CHG_TYPE__INVALID; +#endif + static void usb_chg_stop(struct work_struct *w) { struct usb_info *ui = container_of(w, struct usb_info, chg_stop.work); @@ -317,14 +413,63 @@ return; } +#ifdef CONFIG_USB_SUPPORT_LGE_FACTORY_USB + spin_unlock_irqrestore(&ui->lock, flags); + if (usb_get_chg_type(ui) == USB_CHG_TYPE__WALLCHARGER) { + spin_lock_irqsave(&ui->lock, flags); + temp = ui->chg_type = USB_CHG_TYPE__WALLCHARGER; + spin_unlock_irqrestore(&ui->lock, flags); + } else { + spin_lock_irqsave(&ui->lock, flags); + temp = ui->chg_type = USB_CHG_TYPE__SDP; + spin_unlock_irqrestore(&ui->lock, flags); + } +#else temp = ui->chg_type = usb_get_chg_type(ui); spin_unlock_irqrestore(&ui->lock, flags); +#endif + + +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_CDMA + + if (pre_chg_type == temp) + { + pr_debug("%s: skip re-usb_chg_detect pre: %d cur: %d\r\n", __func__, pre_chg_type, temp); + goto skip; + } + else + { + pre_chg_type= temp; + } + +#endif + + +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_GSM +/* FIXME : Because of side effect about TA, we comment out for the meanwhile */ + if (msm_hsusb_detect_chg_type() == USB_CHG_TYPE__WALLCHARGER) { + spin_lock_irqsave(&ui->lock, flags); + temp = ui->chg_type = USB_CHG_TYPE__WALLCHARGER; + spin_unlock_irqrestore(&ui->lock, flags); + } +#endif hsusb_chg_connected(temp); atomic_set(&otg->chg_type, temp); maxpower = usb_get_max_power(ui); + +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_CDMA + if (maxpower >= 0) +#else if (maxpower > 0) +#endif hsusb_chg_vbus_draw(maxpower); + + +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_GADGET + if(cable_type == LGE_FACTORY_CABLE) + goto skip; +#endif /* USB driver prevents idle and suspend power collapse(pc) * while USB cable is connected. But when dedicated charger is @@ -343,6 +488,23 @@ msm72k_pm_qos_update(0); wake_unlock(&ui->wlock); } + +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_GADGET + +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_CDMA + + if (temp == USB_CHG_TYPE__SDP) + { + pr_info("%s: try to re-usb_chg_detect after 5 seconds \r\n", __func__); + schedule_delayed_work(&ui->chg_det, 5 * USB_CHG_DET_DELAY); + } +#endif + +skip : + + return; +#endif + } static int usb_ep_get_stall(struct msm_endpoint *ept) @@ -357,6 +519,25 @@ return (CTRL_RXS & n) ? 1 : 0; } +static unsigned ulpi_read(struct usb_info *ui, unsigned reg) +{ + unsigned timeout = 100000; + + /* initiate read operation */ + writel(ULPI_RUN | ULPI_READ | ULPI_ADDR(reg), + USB_ULPI_VIEWPORT); + + /* wait for completion */ + while ((readl(USB_ULPI_VIEWPORT) & ULPI_RUN) && (--timeout)) + ; + + if (timeout == 0) { + ERROR("ulpi_read: timeout %08x\n", readl(USB_ULPI_VIEWPORT)); + return 0xffffffff; + } + return ULPI_DATA_READ(readl(USB_ULPI_VIEWPORT)); +} + static void ulpi_write(struct usb_info *ui, unsigned val, unsigned reg) { unsigned timeout = 10000; @@ -374,6 +555,21 @@ ERROR("ulpi_write: timeout\n"); } +static void ulpi_init(struct usb_info *ui) +{ + int *seq = ui->phy_init_seq; + + if (!seq) + return; + + while (seq[0] >= 0) { + dev_dbg(&ui->pdev->dev, "ulpi: write 0x%02x to 0x%02x\n", + seq[0], seq[1]); + ulpi_write(ui, seq[0], seq[1]); + seq += 2; + } +} + static void init_endpoints(struct usb_info *ui) { unsigned n; @@ -1053,7 +1249,8 @@ ui->flags = USB_FLAG_CONFIGURED; spin_unlock_irqrestore(&ui->lock, flags); - ui->driver->resume(&ui->gadget); + if (ui->driver && ui->driver->resume && &ui->gadget) + ui->driver->resume(&ui->gadget); schedule_work(&ui->work); } else msm_hsusb_set_state(USB_STATE_DEFAULT); @@ -1101,7 +1298,9 @@ ui->flags = USB_FLAG_SUSPEND; spin_unlock_irqrestore(&ui->lock, flags); - ui->driver->suspend(&ui->gadget); + if (ui->driver && ui->driver->suspend && &ui->gadget) + ui->driver->suspend(&ui->gadget); +/* DKL TEMPORARY 2010-08-14 */ schedule_work(&ui->work); } @@ -1168,6 +1367,26 @@ writel(ui->dma, USB_ENDPOINTLISTADDR); +#ifdef CONFIG_USB_SUPPORT_LGE_FACTORY_USB + + + if( LG_FACTORY_CABLE_TYPE == msm_chg_LG_cable_type()) + { + unsigned tmp = 0; + + tmp = ulpi_read(ui, 0x04); + tmp |= 0x4; + ulpi_write(ui, tmp, 0x04); + + writel(readl(USB_PORTSC) | (1<<24), USB_PORTSC); + + // For factory mode switching + extern int android_set_pid(const char *val, struct kernel_param *kp); + android_set_pid(LGE_FACTORY_USB_PID_STRING, NULL); + } + +#endif + configure_endpoints(ui); /* marking us offline will cause ept queue attempts to fail */ @@ -1185,6 +1404,13 @@ writel(STS_URI | STS_SLI | STS_UI | STS_PCI, USB_USBINTR); atomic_set(&ui->running, 1); + +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_CDMA + + pre_chg_type = USB_CHG_TYPE__INVALID; + +#endif + } static void usb_start(struct usb_info *ui) @@ -1369,6 +1595,10 @@ } switch_set_state(&ui->sdev, 0); +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN + pr_info("%s: switch_set_state() FLAG_VBUS_OFFLINE\n", __func__); + switch_set_state(&ui->sdev_autorun, 0); +#endif /* power down phy, clock down usb */ otg->reset(ui->xceiv); otg_set_suspend(ui->xceiv, 1); @@ -1405,6 +1635,11 @@ */ switch_set_state(&ui->sdev, atomic_read(&ui->configured)); +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN + pr_info("%s: switch_set_state() USB_FLAG_CONFIGURED\n", __func__); + switch_set_state(&ui->sdev_autorun, + atomic_read(&ui->configured)); +#endif if (maxpower < 0) break; @@ -1456,6 +1691,11 @@ enable_irq_wake(otg->irq); msm72k_pullup_internal(&ui->gadget, 1); +#ifdef CONFIG_USB_SUPPORT_LGE_GADGET_CDMA + cancel_delayed_work(&ui->chg_det); +#endif + + schedule_delayed_work( &ui->chg_det, USB_CHG_DET_DELAY); @@ -2090,7 +2330,30 @@ return count; } +#ifdef CONFIG_USB_GADGET_LG_MTP_DRIVER +static ssize_t show_mtp_usb_state(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct usb_info *ui = the_usb_info; + size_t i; + char *state[] = {"USB_STATE_NOTATTACHED", "USB_STATE_ATTACHED", + "USB_STATE_POWERED", "USB_STATE_UNAUTHENTICATED", + "USB_STATE_RECONNECTING", "USB_STATE_DEFAULT", + "USB_STATE_ADDRESS", "USB_STATE_CONFIGURED", + "USB_STATE_SUSPENDED" + }; + + i = scnprintf(buf, PAGE_SIZE, "%s\n", state[ui->usb_state]); + return i; +} + +static DEVICE_ATTR(mtp_usb_state, S_IRUGO, show_mtp_usb_state, 0); +#endif +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN +static DEVICE_ATTR(usb_state, S_IRUGO, show_usb_state, 0); +#else static DEVICE_ATTR(usb_state, S_IRUSR, show_usb_state, 0); +#endif static DEVICE_ATTR(usb_speed, S_IRUSR, show_usb_speed, 0); static DEVICE_ATTR(chg_type, S_IRUSR, show_usb_chg_type, 0); static DEVICE_ATTR(chg_current, S_IWUSR | S_IRUSR, @@ -2104,6 +2367,8 @@ int retval; dev_dbg(&pdev->dev, "msm72k_probe\n"); + pr_info("%s\n", __func__); + ui = kzalloc(sizeof(struct usb_info), GFP_KERNEL); if (!ui) return -ENOMEM; @@ -2149,6 +2414,18 @@ if (retval) return usb_free(ui, retval); +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN + ui->sdev_autorun.name = DRIVER_NAME_FOR_AUTORUN; + ui->sdev_autorun.print_name = print_switch_name_for_autorun; + ui->sdev_autorun.print_state = print_switch_state_for_autorun; + + retval = switch_dev_register(&ui->sdev_autorun); + if (retval) { + switch_dev_unregister(&ui->sdev); + return usb_free(ui, retval); + } +#endif + the_usb_info = ui; wake_lock_init(&ui->wlock, @@ -2168,6 +2445,9 @@ "%s: Cannot bind the transceiver, retval:(%d)\n", __func__, retval); switch_dev_unregister(&ui->sdev); +#ifdef CONFIG_USB_SUPPORT_LGE_ANDROID_AUTORUN + switch_dev_unregister(&ui->sdev_autorun); +#endif wake_lock_destroy(&ui->wlock); return usb_free(ui, retval); } @@ -2223,6 +2503,13 @@ goto fail; } +#ifdef CONFIG_USB_GADGET_LG_MTP_DRIVER + retval = device_create_file(&ui->gadget.dev, &dev_attr_mtp_usb_state); + if (retval != 0) + INFO("failed to create sysfs entry: (mtp_usb_state) error: (%d)\n", + retval); +#endif + retval = device_create_file(&ui->gadget.dev, &dev_attr_usb_state); if (retval != 0) dev_info(&ui->pdev->dev, "failed to create sysfs entry:" @@ -2267,14 +2554,22 @@ return -EINVAL; msm72k_pullup_internal(&dev->gadget, 0); - if (dev->irq) { - free_irq(dev->irq, dev); - dev->irq = 0; - } + if (dev->irq) { + printk("freeing IRQ\n"); + free_irq(dev->irq, dev); + dev->irq = 0; + } dev->state = USB_STATE_IDLE; atomic_set(&dev->configured, 0); switch_set_state(&dev->sdev, 0); + + if (atomic_read(&dev->running)) + msleep(300); + +#ifdef CONFIG_USB_GADGET_LG_MTP_DRIVER + device_remove_file(&dev->gadget.dev, &dev_attr_mtp_usb_state); +#endif device_remove_file(&dev->gadget.dev, &dev_attr_usb_state); device_remove_file(&dev->gadget.dev, &dev_attr_usb_speed); device_remove_file(&dev->gadget.dev, &dev_attr_chg_type); @@ -2286,7 +2581,7 @@ device_del(&dev->gadget.dev); - dev_dbg(&dev->pdev->dev, + dev_info(&dev->pdev->dev, "unregistered gadget driver '%s'\n", driver->driver.name); return 0; } diff -urP vd/kernel/drivers/video/backlight/aat2870_bl.c vm670/kernel/drivers/video/backlight/aat2870_bl.c --- vd/kernel/drivers/video/backlight/aat2870_bl.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/video/backlight/aat2870_bl.c 2011-04-12 06:00:31.000000000 -0400 @@ -37,46 +37,14 @@ #include #endif -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-15, THUNDER SPRINT - * ALC is not supported - */ #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT #define THUNDER_SPRINT_NO_ALC #endif -/* LGE_CHANGE [james.jang@lge.com] 2010-12-27, prove LCD */ -#if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) -extern void lge_probe_lcd(void); -extern int g_mddi_lcd_probe; -#endif - /******************************************** * Definition ********************************************/ -/* LED current (0~31, unit = mA) */ -/* 0.45, 0.90, 1.80, 2.70, 3.60, 4.50, 5.40, 6.30, 7.20, 8.10, */ -/* 9.00, 9.90, 10.8, 11.7, 12.6, 13.5, 14.4, 15.3, 16.2, 17.1, */ -/* 18.0, 18.9, 19.8, 20.7, 21.6, 22.5, 23.4, 24.3, 25.2, 26.1, */ -/* 27.0, 27.9 */ - -/* LGE_CHANGE - * AAT2862 has two parts of LEDs(Main and Sub) - * Added some definitions and modified I2C write command to control both Main and Sub LEDs. - * Added 'AAT2862BL_REG_BLS', changed members of structure 'aat28xx_reg_addrs' - * and modified 'aat28xx_write' to control two registers(AAT2862BL_REG_BLM and AAT2862BL_REG_BLS) - * 2010-04-22, minjong.gong@lge.com - */ - -/* LGE_CHANGE - * If MEQS bit in AAT2862BL_REG_BLM is set, we don't need to write command to AAT2862BL_REG_BLS. - * So modify command array for AAT2862 and related functions. - * And change default brightness and maximum brightness. - * 2010-05-18, minjong.gong@lge.com - */ - -/* LGE_CHANGE [james.jang@lge.com] 2010-07-18, adjusted the brightness for LS670 */ -//#define LCD_LED_MAX 21 /* 20.32mA */ #define LCD_LED_MAX 17 /* 16.45mA */ #define LCD_LED_MIN 0 /* 0.48mA */ #define DEFAULT_BRIGHTNESS 13 @@ -170,7 +138,6 @@ static unsigned int debug = 0; module_param(debug, uint, 0644); -/* LGE_CHANGE [james.jang@lge.com] 2010-06-09, the interpolation of B/L value */ static int bl_value[256] = { 0, @@ -427,8 +394,6 @@ if ((adap=dev_get_drvdata(dev)) && (client=i2c_get_adapdata(adap))) { drvdata = i2c_get_clientdata(client); if (enable) { - // LGE_CHAGNE [dojip.kim@lge.com] 2010-07-12, - // should update the ref count only if success if (drvdata->ldo_ref[num-1] == 0) { dprintk("ref count = 0, call aat28xx_set_ldos\n"); err = aat28xx_set_ldos(client, num, enable); @@ -440,8 +405,6 @@ if (--drvdata->ldo_ref[num-1] == 0) { dprintk("ref count = 0, call aat28xx_set_ldos\n"); err = aat28xx_set_ldos(client, num, enable); - // LGE_CHAGNE [dojip.kim@lge.com] 2010-07-12, - // should restore the ref count if failure if (err) drvdata->ldo_ref[num-1]++; } @@ -526,13 +489,6 @@ drvdata->state = NORMAL_STATE; break; case ALC_MODE: - /* LGE_CHANGE - * Remove ALC mode - * 2010-07-26. minjong.gong@lge.com - */ - //aat28xx_set_table(drvdata, drvdata->cmds.alc); - //drvdata->state = NORMAL_STATE; - //break; default: eprintk("Invalid Mode\n"); break; @@ -609,29 +565,14 @@ break; case ALC_MODE: - /* LGE_CHANGE - * Remove ALC mode - * 2010-07-26. minjong.gong@lge.com - */ - //drvdata->state = SLEEP_STATE; - //aat28xx_set_table(drvdata, drvdata->cmds.sleep); - //udelay(500); - //break; default: eprintk("Invalid Mode\n"); break; } -/* LGE_CHANGE - * Shut down the AAT28xx according to the status of Camera for VS660 - * 2010-07-26, minjong.gong@lge.com - */ #if defined(CONFIG_MACH_MSM7X27_THUNDERC) cam_status = camera_status(); if (cam_status == CAMERA_POWER_OFF){ - //printk("Camera status is %d. 0:On, 1: Off\n",CAMERA_POWER_OFF); - /* LGE_CHANGE [james.jang@lge.com] 2010-07-29, block it, for BEAG issue: LCD blank out */ - //aat28xx_poweroff(drvdata); } #endif @@ -651,10 +592,6 @@ aat28xx_go_opmode(drvdata); if (drvdata->mode == NORMAL_MODE) { if(drvdata->version == 2862) { - /* LGE_CHANGE - * Using 'Fade in' function supported by AAT2862 when wakeup. - * 2010-08-21, minjong.gong@lge.com - */ aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x00); /* Floor current : 0.48mA */ aat28xx_intensity = (~(drvdata->intensity)& 0x1F); /* Invert BL control bits and Clear upper 3bits */ aat28xx_intensity |= 0xA0; /* MEQS(7)=1, Disable Fade(6)=0, LCD_ON(5)=1*/ @@ -669,10 +606,6 @@ } else if (drvdata->state == SLEEP_STATE) { if (drvdata->mode == NORMAL_MODE) { if(drvdata->version == 2862) { - /* LGE_CHANGE - * Using 'Fade in' function supported by AAT2862 when wakeup. - * 2010-08-21, minjong.gong@lge.com - */ aat28xx_write(drvdata->client, drvdata->reg_addrs.fade, 0x00); /* Floor current : 0.48mA */ aat28xx_intensity = (~(drvdata->intensity)& 0x1F); /* Invert BL control bits and Clear upper 3bits */ aat28xx_intensity |= 0xA0; /* MEQS(7)=1, Disable Fade(6)=0, LCD_ON(5)=1*/ @@ -684,12 +617,6 @@ } drvdata->state = NORMAL_STATE; } else if (drvdata->mode == ALC_MODE) { - /* LGE_CHANGE - * Remove ALC mode - * 2010-07-26. minjong.gong@lge.com - */ - //aat28xx_set_table(drvdata, drvdata->cmds.alc); - //drvdata->state = NORMAL_STATE; } } } @@ -707,10 +634,6 @@ if (drvdata->state == NORMAL_STATE && drvdata->intensity != next) { - /* LGE_CHANGE - * [To support two BL driver ICs(AAT2870 and AAT2862)] - * 2010-04-20, minjong.gong@lge.com - */ if(drvdata->version == 2862) { if(next != 0) @@ -763,7 +686,6 @@ early_suspend); dprintk("start\n"); - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: wait for refreshing the FB msleep(30); aat28xx_wakeup(drvdata); @@ -798,11 +720,6 @@ return; if (next_mode == ALC_MODE) { - /* LGE_CHANGE - * Remove ALC mode - * 2010-07-26. minjong.gong@lge.com - */ - //aat28xx_set_table(drvdata, drvdata->cmds.alc); } else if (next_mode == NORMAL_MODE) { aat28xx_set_table(drvdata, drvdata->cmds.alc); @@ -840,9 +757,6 @@ int alc; int next_mode; - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-15, THUNDER SPRINT - * ALC is not supported - */ #ifdef THUNDER_SPRINT_NO_ALC return -EINVAL; #endif @@ -897,7 +811,6 @@ return len; } -/* LGE_CHANGE_S [james.jang@lge.com] 2010-06-22, backlight on/off */ ssize_t aat28xx_lcd_backlight_onoff(struct device *dev, struct device_attribute *attr, const char * buf, size_t count) { int onoff; @@ -917,12 +830,10 @@ return count; } -/* LGE_CHANGE_E [james.jang@lge.com] 2010-06-22 */ DEVICE_ATTR(alc, 0664, aat28xx_show_alc, aat28xx_store_alc); DEVICE_ATTR(reg, 0444, aat28xx_show_reg, NULL); DEVICE_ATTR(drvstat, 0444, aat28xx_show_drvstat, NULL); -/* LGE_CHANGE [james.jang@lge.com] 2010-06-22, backlight on/off */ DEVICE_ATTR(bl_onoff, 0666, NULL, aat28xx_lcd_backlight_onoff); static int aat28xx_set_brightness(struct backlight_device *bd) @@ -957,7 +868,6 @@ brightness = aat28xx_get_intensity(drvdata); - /* LGE_CHANGE [james.jang@lge.com] 2010-06-09, the interpolation of B/L value */ next = bl_value[value * drvdata->max_intensity / LED_FULL]; dprintk("input brightness value=%d]\n", next); @@ -997,21 +907,7 @@ drvdata->client = i2c_dev; drvdata->gpio = pdata->gpio; - -/* LGE_CHANGE [james.jang@lge.com] 2010-12-27, prove LCD */ -#if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) - lge_probe_lcd(); - - if (g_mddi_lcd_probe == 0) { /* Hitachi LCD */ - drvdata->max_intensity = 19; // 21; - } - else { /* Novatek LCD */ - drvdata->max_intensity = 17; - } -#else drvdata->max_intensity = LCD_LED_MAX; -#endif - if (pdata->max_current > 0) drvdata->max_intensity = pdata->max_current; drvdata->intensity = LCD_LED_MIN; @@ -1030,8 +926,6 @@ return -ENODEV; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-12, - // set the en as the high if (drvdata->gpio) gpio_direction_output(drvdata->gpio, 1); @@ -1055,7 +949,6 @@ err = device_create_file(drvdata->led->dev, &dev_attr_alc); err = device_create_file(drvdata->led->dev, &dev_attr_reg); err = device_create_file(drvdata->led->dev, &dev_attr_drvstat); - /* LGE_CHANGE [james.jang@lge.com] 2010-06-22, backlight on/off */ err = device_create_file(drvdata->led->dev, &dev_attr_bl_onoff); } #endif @@ -1128,5 +1021,5 @@ module_exit(aat28xx_exit); MODULE_DESCRIPTION("Backlight driver for ANALOGIC TECH AAT28XX"); -MODULE_AUTHOR("Bongkyu Kim "); +MODULE_AUTHOR("Bongkyu Kim"); MODULE_LICENSE("GPL"); diff -urP vd/kernel/drivers/video/console/fbcon.c vm670/kernel/drivers/video/console/fbcon.c --- vd/kernel/drivers/video/console/fbcon.c 2011-02-04 19:01:32.000000000 -0500 +++ vm670/kernel/drivers/video/console/fbcon.c 2011-04-12 06:00:31.000000000 -0400 @@ -278,11 +278,9 @@ return (ops) ? ops->rotate : 0; } -/* LGE_CHANGE_S, [munyoung@lge.com] booting logo */ #ifdef CONFIG_FB_MSM_LOGO extern int msm_fb_get_console_inactive(void); #endif -/* LGE_CHANGE_S, [munyoung@lge.com] booting logo */ static inline int fbcon_is_inactive(struct vc_data *vc, struct fb_info *info) { @@ -290,7 +288,6 @@ return (info->state != FBINFO_STATE_RUNNING || vc->vc_mode != KD_TEXT || ops->graphics - /* LGE_CHANGE, [munyoung@lge] booting logo */ #ifdef CONFIG_FB_MSM_LOGO || msm_fb_get_console_inactive() #endif diff -urP vd/kernel/drivers/video/msm/mddi_hitachi_hvga.c vm670/kernel/drivers/video/msm/mddi_hitachi_hvga.c --- vd/kernel/drivers/video/msm/mddi_hitachi_hvga.c 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/mddi_hitachi_hvga.c 2011-04-12 06:00:31.000000000 -0400 @@ -26,8 +26,6 @@ #include #include -//#define DRV_AUO_PANEL - #define PANEL_DEBUG 0 #define LCD_CONTROL_BLOCK_BASE 0x110000 @@ -59,9 +57,7 @@ #endif #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || defined(CONFIG_MACH_MSM7X27_THUNDERC) || defined(CONFIG_MACH_MSM7X27_THUNDERA) -/* Define new structure named 'msm_panel_hitachi_pdata' to use LCD initialization Flag (initialized) - * 2010-04-21, minjong.gong@lge.com - */ + static struct msm_panel_hitachi_pdata *mddi_hitachi_pdata; #else static struct msm_panel_common_pdata *mddi_hitachi_pdata; @@ -122,15 +118,6 @@ {REGFLAG_END_OF_TABLE, 0x00, {}} }; -/* LGE_CHANGE_S [james.jang@lge.com] 2010-11-09, AUO LCD Pannel */ -static struct display_table mddi_hitachi_display_on_auo[] = { - // Display on sequence - {0x11, 4, {0x00, 0x00, 0x00, 0x00}}, - {REGFLAG_DELAY, 120, {}}, - {0x29, 4, {0x00, 0x00, 0x00, 0x00}}, - {REGFLAG_END_OF_TABLE, 0x00, {}} -}; -/* LGE_CHANGE_E [james.jang@lge.com] 2010-11-09 */ #if 0 static struct display_table2 mddi_hitachi_img[] = { {0x2c, 16384, {}}, @@ -151,10 +138,8 @@ static struct display_table mddi_hitachi_sleep_mode_on_data[] = { // Display off sequence {0x28, 4, {0x00, 0x00, 0x00, 0x00}}, - // [App 4th Table] Change from 40ms to 20ms. 2010-08-03. minjong.gong@lge.com {REGFLAG_DELAY, 20, {}}, {0x10, 4, {0x00, 0x00, 0x00, 0x00}}, - // [Apply 4th Table] Change from 100ms to 40ms. 2010-08-03. minjong.gong@lge.com {REGFLAG_DELAY, 40, {}}, {REGFLAG_END_OF_TABLE, 0x00, {}} }; @@ -194,14 +179,12 @@ // PGAMMACTL //{0xfa, 16, {0x11, 0x13, 0x08, 0x14, 0x28, 0x2c, 0x2b, 0x0d, // 0x19, 0x14, 0x1e, 0x1e, 0x0f, 0x00, 0x00, 0x00}}, - // Apply 3rd Cut gamma table. 2010-08-10. minjong.gong@lge.com {0xfa, 16, {0x03, 0x03, 0x08, 0x28, 0x2b, 0x2f, 0x32, 0x12, 0x1d, 0x1f, 0x1c, 0x1c, 0x0f, 0x00, 0x00, 0x00}}, // NGAMMACTL //{0xfb, 16, {0x11, 0x13, 0x08, 0x14, 0x28, 0x2c, 0x2b, 0x2d, // 0x19, 0x14, 0x1e, 0x1e, 0x0f, 0x00, 0x00, 0x00}}, - // Apply 3rd Cut gamma table. 2010-08-10. minjong.gong@lge.com {0xfb, 16, {0x03, 0x03, 0x08, 0x28, 0x2b, 0x2f, 0x32, 0x12, 0x1d, 0x1f, 0x1c, 0x1c, 0x0f, 0x00, 0x00, 0x00}}, @@ -235,19 +218,16 @@ 0x3f, 0x66, 0x02, 0x3f, 0x66, 0x02, 0x00, 0x00}}, // VCMCTL - // [Apply 4th Table] Change 6th parameter. From 0x00 to 0x04. 2010-08-03. minjong.gong@lge.com {0xf5, 12, {0x00, 0x59, 0x45, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x59, 0x45}}, {REGFLAG_DELAY, 10, {}}, // MANPWRSEQ - // [Apply 4th Table] Change 1st parameter. From 0x01 to 0x03. 2010-08-03. minjong.gong@lge.com {0xf3, 8, {0x03, 0x6e, 0x15, 0x07, 0x03, 0x00, 0x00, 0x00}}, // DISCTL // Change 2nd and 15th parameters. From 0x4d to 0x54. // When useing 0x4D (65Hz), it causes decreasing the touch sensitivity. - // 2010-08-21. minjong.gong@lge.com {0xf2, 20, {0x3b, 0x54, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x04, 0x00, 0x00, 0x54, 0x08, 0x08, 0x08, 0x08, 0x00}}, @@ -289,19 +269,16 @@ 0x04, 0x66, 0x02, 0x04, 0x66, 0x02, 0x00, 0x00}}, // VCMCTL - // [Apply 4th Table] Change 6th parameter. From 0x00 to 0x04. 2010-08-03. minjong.gong@lge.com {0xf5, 12, {0x00, 0x59, 0x45, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x59, 0x45}}, {REGFLAG_DELAY, 10, {}}, // MANPWRSEQ - // [Apply 4th Table] Change 1st parameter. From 0x01 to 0x03. 2010-08-03. minjong.gong@lge.com {0xf3, 8, {0x03, 0x6e, 0x15, 0x07, 0x03, 0x00, 0x00, 0x00}}, // DISCTL // Change 2nd and 15th parameters. From 0x4d to 0x54. // When useing 0x4D (65Hz), it causes decreasing the touch sensitivity. - // 2010-08-21. minjong.gong@lge.com {0xf2, 20, {0x3b, 0x54, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x04, 0x00, 0x00, 0x54, 0x08, 0x08, 0x08, 0x08, 0x00}}, @@ -332,112 +309,6 @@ {REGFLAG_END_OF_TABLE, 0x00, {}} }; - -/* LGE_CHANGE_S [james.jang@lge.com] 2010-11-09, AUO LCD Pannel */ -static struct display_table mddi_hitachi_initialize_auo[] = { - - // Power ON Sequence - {0xf0, 4, {0x5a, 0x5a, 0x00, 0x00}}, - {0xf1, 4, {0x5a, 0x5a, 0x00, 0x00}}, - - // DISCTL - 67.2HZ(0x4b) 70Hz(0x48) 72.4Hz(0x46) 75Hz(0x43) 80Hz(0x3f) 90Hz(0x38), Frame Inversion - {0xf2, 20, {0x3b, 0x48, 0x03, 0x08, - 0x08, 0x08, 0x08, 0x00, - 0x08, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x54, 0x08, - 0x08, 0x08, 0x08, 0x00}}, - - // PWRCTL - {0xf4, 16, {0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x3f, 0x79, 0x03, 0x3f, - 0x79, 0x03, 0x00, 0x00}}, - - // VCMCTL - VCIR 0x03 -> 0x00 - {0xf5, 12, {0x00, 0x5d, 0x75, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x5d, 0x75}}, - - // {REGFLAG_DELAY, 10, {0}}, - - // SRCCTL - {0xf6, 8, {0x04, 0x00, 0x08, 0x03, - 0x01, 0x00, 0x01, 0x00}}, - - // IFCTL - {0xf7, 8, {0x48, 0x80, 0x10, 0x02, - 0x00, 0x00, 0x00, 0x00}}, - - // PANELCTL - {0xf8, 4, {0x11, 0x00, 0x00, 0x00}}, - - -#if 0 // backlight auto-control - // WRDISBV - {0x51, 4, {0xff, 0x00, 0x00, 0x00}}, - - - // WRCTRLD - {0x53, 4, {0x2c, 0x00, 0x00, 0x00}}, - - - // WRCABC - {0x55, 4, {0x03, 0x00, 0x00, 0x00}}, - - // WRCABCMB - {0x5e, 4, {0x00, 0x00, 0x00, 0x00}}, - - // MIECTL1 - {0xc0, 4, {0x80, 0x80, 0x3f, 0x00}}, - - // BCMODE - {0xc1, 4, {0x13, 0x00, 0x00, 0x00}}, -#endif - - // GAMMASEL - Red - {0xf9, 4, {0x24, 0x00, 0x00, 0x00}}, - // PGAMMACTL - {0xfa, 16, {0x0b, 0x0b, 0x0c, 0x1f, - 0x1f, 0x27, 0x2f, 0x14, - 0x21, 0x26, 0x32, 0x31, - 0x24, 0x00, 0x00, 0x01}}, - - // GAMMASEL - Green - {0xf9, 4, {0x22, 0x00, 0x00, 0x00}}, - // PGAMMACTL - {0xfa, 16, {0x0b, 0x0b, 0x0e, 0x27, - 0x29, 0x30, 0x33, 0x12, - 0x1f, 0x25, 0x31, 0x30, - 0x24, 0x00, 0x00, 0x01}}, - - // GAMMASEL - Blue - {0xf9, 4, {0x21, 0x00, 0x00, 0x00}}, - // PGAMMACTL - {0xfa, 16, {0x0b, 0x0b, 0x1a, 0x3a, - 0x3f, 0x3f, 0x3f, 0x08, - 0x19, 0x21, 0x2c, 0x2a, - 0x1a, 0x00, 0x00, 0x01}}, - - // COLMOD - {0x3a, 4, {0x55, 0x00, 0x00, 0x00}}, - - // MADCTL - {0x36, 4, {0x00, 0x00, 0x00, 0x00}}, - - // TEON - {0x35, 4, {0x00, 0x00, 0x00, 0x00}}, - - - // CASET - {0x2a, 4, {0x00, 0x00, 0x01, 0x3f}}, - - // PASET - {0x2b, 4, {0x00, 0x00, 0x01, 0xdf}}, - - {REGFLAG_END_OF_TABLE, 0x00, {0}} -}; -/* LGE_CHANGE_E [james.jang@lge.com] 2010-11-09 */ - void hitachi_display_table(struct display_table *table, unsigned int count) { unsigned int i; @@ -498,7 +369,6 @@ boolean error = FALSE; unsigned long flags; - /* LGE_CHANGE [neo.kang@lge.com] 2009-11-26, change debugging api */ printk("%s : handler = %x\n", __func__, (unsigned int)handler); @@ -538,11 +408,6 @@ uint32 elapsed_us; uint32 num_vsyncs; -/* LGE_CHANGE - * Close below code to fix screen shaking problem - * 2010-04-22, minjong.gong@lge.com - */ -// mddi_queue_register_write_int(0x2C, 0); #if 0 /* Block temporaly till vsync implement */ if ((detected) || (mddi_hitachi_vsync_attempts > 5)) { @@ -617,7 +482,6 @@ #endif } -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: early wakeup touch for performance #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT extern int ts_set_vreg(unsigned char onoff); #endif @@ -650,19 +514,12 @@ hitachi_display_table(mddi_hitachi_display_on_1st, sizeof(mddi_hitachi_display_on_1st) / sizeof(struct display_table)); #else -#ifdef DRV_AUO_PANEL - EPRINTK("ThunderC ==> lge_bd_rev = %d : AUO LCD initial\n", lge_bd_rev); - hitachi_display_table(mddi_hitachi_initialize_auo, sizeof(mddi_hitachi_initialize_auo)/sizeof(struct display_table)); - hitachi_display_table(mddi_hitachi_display_on_auo, sizeof(mddi_hitachi_display_on_auo) / sizeof(struct display_table)); -#else EPRINTK("ThunderC ==> lge_bd_rev = %d : 3rd LCD initial\n", lge_bd_rev); hitachi_display_table(mddi_hitachi_initialize_3rd_vs660, sizeof(mddi_hitachi_initialize_3rd_vs660)/sizeof(struct display_table)); hitachi_display_table(mddi_hitachi_display_on_3rd, sizeof(mddi_hitachi_display_on_3rd) / sizeof(struct display_table)); -#endif #endif is_lcd_on = TRUE; - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: early wakeup touch for performance #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT ts_set_vreg(1); #endif @@ -699,15 +556,9 @@ hitachi_display_table(mddi_hitachi_display_on_1st, sizeof(mddi_hitachi_display_on_1st) / sizeof(struct display_table)); #else -#ifdef DRV_AUO_PANEL - hitachi_display_table(mddi_hitachi_initialize_auo, sizeof(mddi_hitachi_initialize_auo)/sizeof(struct display_table)); - mdelay(200); - hitachi_display_table(mddi_hitachi_display_on_auo, sizeof(mddi_hitachi_display_on_auo) / sizeof(struct display_table)); -#else hitachi_display_table(mddi_hitachi_initialize_3rd_vs660, sizeof(mddi_hitachi_initialize_3rd_vs660)/sizeof(struct display_table)); mdelay(200); hitachi_display_table(mddi_hitachi_display_on_3rd, sizeof(mddi_hitachi_display_on_3rd) / sizeof(struct display_table)); -#endif #endif is_lcd_on = TRUE; return 0; @@ -756,7 +607,6 @@ } EXPORT_SYMBOL(mddi_hitachi_position); -/* LGE_CHANGE [james.jang@lge.com] 2010-08-28, probe LCD */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) DEVICE_ATTR(hitachi_lcd_onoff, 0666, mddi_hitachi_lcd_show_onoff, mddi_hitachi_lcd_store_onoff); #else @@ -790,7 +640,6 @@ msm_fb_add_device(pdev); -/* LGE_CHANGE [james.jang@lge.com] 2010-08-28, probe LCD */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) ret = device_create_file(&pdev->dev, &dev_attr_hitachi_lcd_onoff); #else @@ -820,7 +669,6 @@ #endif -/* LGE_CHANGE [james.jang@lge.com] 2010-08-28, probe LCD */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) gpio_tlmm_config(GPIO_CFG(101, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), GPIO_ENABLE); gpio_configure(101, GPIOF_INPUT); @@ -846,11 +694,6 @@ pinfo->lcd.refx100 = (mddi_hitachi_rows_per_second * 100) / mddi_hitachi_rows_per_refresh; -/* LGE_CHANGE. - * Change proch values to resolve LCD Tearing. Before BP:14, FP:6. After BP=FP=6. - * The set values on LCD are both 8, but we use 6 for MDDI in order to secure timing margin. - * 2010-08-21, minjong.gong@lge.com - */ pinfo->lcd.v_back_porch = 6; pinfo->lcd.v_front_porch = 6; pinfo->lcd.v_pulse_width = 4; @@ -929,11 +772,6 @@ } } -/* LGE_CHANGE - * Add new function to reduce current comsumption in sleep mode. - * In sleep mode disable LCD by assertion low on reset pin. - * 2010-06-07, minjong.gong@lge.com - */ static void mddi_hitachi_lcd_panel_poweroff(void) { struct msm_panel_hitachi_pdata *pdata = mddi_hitachi_pdata; diff -urP vd/kernel/drivers/video/msm/mddihost.h vm670/kernel/drivers/video/msm/mddihost.h --- vd/kernel/drivers/video/msm/mddihost.h 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/mddihost.h 2011-04-12 06:00:31.000000000 -0400 @@ -78,16 +78,11 @@ MDDI_LCD_TOSHIBA, MDDI_LCD_PRISM, MDDI_LCD_TP2, -/* LGE_CHANGES_S [minjong.gong] 2010-03-23 Google Mass 3G Hitahci MDDI I/F LCD driver */ MDDI_LCD_HITACHI_TX08D39VM, -/* LGE_CHANGES_E [minjong.gong] 2010-03-23 Google Mass 3G Hitahci MDDI I/F LCD driver */ -/* LGE_CHANGES [dojip.kim@lge.com] 2010-04-23, [LS670] Novatek MDDI I/F LCD driver */ MDDI_LCD_NOVATEK_NT35451, -/* LGE_CHANGES_S [infopc@lge.com], 2009-08-18 [LS680] lcd device driver */ #if defined (CONFIG_FB_MSM_MDDI_LGIT_HVGA) MDDI_LCD_INNOTEK_IM300WBN1A, #endif -/* LGE_CHANGES_E [infopc@lge.com], 2009-08-18 [LS680] */ MDDI_NUM_LCD_TYPES, MDDI_LCD_DEFAULT = MDDI_LCD_TOSHIBA } mddi_lcd_type; diff -urP vd/kernel/drivers/video/msm/mddi_novatek_hvga.c vm670/kernel/drivers/video/msm/mddi_novatek_hvga.c --- vd/kernel/drivers/video/msm/mddi_novatek_hvga.c 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/mddi_novatek_hvga.c 2011-04-12 06:00:31.000000000 -0400 @@ -19,7 +19,6 @@ * along with this program; if not, you can find it at http://www.fsf.org */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-13, V 4.0 */ #include "msm_fb.h" #include "mddihost.h" @@ -27,12 +26,6 @@ #include #include -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, from mddi_hitachi_hvga.c */ -/* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' - * to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ #include @@ -47,11 +40,6 @@ #define GAMMA_2_DOT_2 -/* LGE_CHANGE [dojip.kim@lge.com] 2010-04-26, - * tentative command for 4/20,21 shipping sample - */ -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-13, not any more needed */ -//#define USE_TENTATIVE_COMMAND 1 #define LCD_CONTROL_BLOCK_BASE 0x110000 #define INTFLG LCD_CONTROL_BLOCK_BASE|(0x18) @@ -77,13 +65,6 @@ extern int g_mddi_lcd_probe; #endif -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, from mddi_hitachi_hvga.c */ -/* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' - * to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ -//static struct msm_panel_common_pdata *mddi_novatek_pdata; static struct msm_panel_novatek_pdata *mddi_novatek_pdata; static int mddi_novatek_lcd_on(struct platform_device *pdev); @@ -212,15 +193,11 @@ {0x1B80, 1, {0x0050}}, // Set VCOMMH=3.5V {0x1C80, 1, {0x0080}}, // VCOM Control {0x9480, 1, {0x0017}}, // Set LTPS timing : 23 clks - /* LGE_CHANGE [james.jang@lge.com] 2010-07-15, 33 -> 31 CLKS */ - //{0x9580, 1, {0x0021}}, // Set LTPS timing : 33 clks {0x9580, 1, {0x0017}}, // Set LTPS timing : 33 clks {0x9680, 1, {0x0005}}, // Set LTPS timing : 5 clks {0x9780, 1, {0x000C}}, // Set LTPS timing : 12 clks {0x9880, 1, {0x0072}}, // Set LTPS timing : 114 clks {0x9980, 1, {0x0012}}, // Set LTPS timing : 18 clks - /* LGE_CHANGE [james.jang@lge.com] 2010-07-15 */ - //{0x9A80, 1, {0x0088}}, // Set LTPS timing : 136 clks {0x9A80, 1, {0x0084}}, // Set LTPS timing : 132 clks {0x9B80, 1, {0x0001}}, // Set LTPS timing : 1 clks {0x9C80, 1, {0x0005}}, // Set LTPS timing : 5 clks @@ -231,7 +208,7 @@ {0xA480, 1, {0x003F}}, // Set LTPS timing {0xA680, 1, {0x0008}}, // Set LTPS timing //{0x3600, 1, {0x0008}}, // Set RGB - #if defined(GAMMA_CURRENT) /* LGE_CHANGE [james.jang@lge.com] 2010-07-15, Gamma setting */ + #if defined(GAMMA_CURRENT) {0x2880, 1, {0x0009}}, // Set Gamma R {0x2980, 1, {0x001E}}, // Set Gamma R {0x2A80, 1, {0x0045}}, // Set Gamma R @@ -896,13 +873,9 @@ //{0x1100, 1, {0x0000}}, // sleep out //{REGFLAG_DELAY, 100, {}}, #endif - /* LGE_CHANGE [james.jang@lge.com] 2010-06-18, off LEDPWM(7Fh -> 00h) */ - //{0x5100, 1, {0x007F}}, // Output LEDPWM=50% Duty {0x5100, 1, {0x0000}}, // Output LEDPWM=0% Duty {0x5300, 1, {0x002C}}, // Output LEDPWM=50% Duty - /* LGE_CHANGE_S [dojip.kim@lge.com] 2010-09-11, set the address */ - // set horizontal address {0x2a00, 1, {0x0000}}, // XSA {0x2a01, 1, {0x0000}}, // XSA {0x2a02, 1, {0x0000}}, // XEA @@ -912,7 +885,6 @@ {0x2b01, 1, {0x0000}}, // YSA {0x2b02, 1, {0x0000}}, // YEA {0x2b03, 1, {0x01df}}, // YEA, 480-1 - /* LGE_CHANGE_E [dojip.kim@lge.com] 2010-09-11 */ {0x3600, 1, {0x0008}}, // Set RGB {0x3A00, 1, {0x0055}}, // Set RGB565 @@ -955,7 +927,6 @@ boolean error = FALSE; unsigned long flags; - /* LGE_CHANGE [neo.kang@lge.com] 2009-11-26, change debugging api */ printk("%s : handler = %x\n", __func__, (unsigned int)handler); @@ -989,7 +960,6 @@ mddi_vsync_detect_enabled = TRUE;; } -// LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: early wakeup touch for performance #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT extern int ts_set_vreg(unsigned char onoff); #endif @@ -998,24 +968,14 @@ { EPRINTK("%s: started.\n", __func__); - /* LGE_CHANGE_S, [munyoung@lge.com] workaround blink issue when first call of lcd_on */ if(is_lcd_on == -1) { is_lcd_on = TRUE; return 0; } - /* LGE_CHANGE_E */ - - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, from mddi_hitachi_hvga.c */ - /* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' - * to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ if (system_state == SYSTEM_BOOTING && mddi_novatek_pdata->initialized) { is_lcd_on = TRUE; } - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-26, HACK: early wakeup touch for performance #ifdef CONFIG_MACH_MSM7X27_THUNDERC_SPRINT ts_set_vreg(1); #endif @@ -1124,7 +1084,6 @@ /* TODO: Check client id */ #endif -/* LGE_CHANGE [james.jang@lge.com] 2010-08-28, probe LCD */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) gpio_tlmm_config(GPIO_CFG(101, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), GPIO_ENABLE); @@ -1161,7 +1120,6 @@ pinfo->bl_max = 4; pinfo->bl_min = 1; - /* LGE_CHANGE [james.jang@lge.com] 2010-06-07, set the MDDI host clock rate */ pinfo->clk_rate = 122880000; pinfo->clk_min = 120000000; pinfo->clk_max = 130000000; @@ -1186,13 +1144,6 @@ static void mddi_novatek_lcd_panel_poweron(void) { - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-11, from mddi_hitachi_hvga.c */ - /* LGE_CHANGE - * Define new structure named 'msm_panel_hitachi_pdata' - * to use LCD initialization Flag (.initialized). - * 2010-04-21, minjong.gong@lge.com - */ - //struct msm_panel_common_pdata *pdata = mddi_novatek_pdata; struct msm_panel_novatek_pdata *pdata = mddi_novatek_pdata; EPRINTK("%s: started.\n", __func__); @@ -1204,18 +1155,12 @@ gpio_set_value(pdata->gpio, 1); mdelay(10); gpio_set_value(pdata->gpio, 0); - /* LGE_CHANGE [james.jang@lge.com] 2010-09-11, up 50% for stability */ mdelay(15); /* wait for more than 10ms */ gpio_set_value(pdata->gpio, 1); mdelay(30); /* wait for more than 20ms */ } } -/* LGE_CHANGE - * Add new function to reduce current comsumption in sleep mode. - * In sleep mode disable LCD by assertion low on reset pin. - * 2010-06-07, minjong.gong@lge.com - */ static void mddi_novatek_lcd_panel_poweroff(void) { struct msm_panel_novatek_pdata *pdata = mddi_novatek_pdata; diff -urP vd/kernel/drivers/video/msm/mdp_dma.c vm670/kernel/drivers/video/msm/mdp_dma.c --- vd/kernel/drivers/video/msm/mdp_dma.c 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/mdp_dma.c 2011-04-12 06:00:31.000000000 -0400 @@ -60,10 +60,6 @@ int vsync_start_y_adjust = 4; -/* LGE_CHANGE - * Change to apply workaround code according to the board revision info. - * 2010-06-10, minjong.gong@lge.com - */ #if defined(CONFIG_FB_MSM_MDDI_HITACHI_HVGA) || \ defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) @@ -91,9 +87,6 @@ extern void hitachi_display_table(struct hitachi_display_table *table, unsigned int count); #endif -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-20, - * add code to prevent LCD shift - */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HVGA) || \ defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) #define REGFLAG_END_OF_TABLE 0xFFFF // END OF REGISTERS MARKER @@ -233,9 +226,6 @@ } #elif defined(CONFIG_FB_MSM_MDDI_HITACHI_HVGA) #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || defined(CONFIG_MACH_MSM7X27_THUNDERC) - /* Add code to prevent LCD shift. - * 2010-05-18, minjong.gong@lge.com - */ hitachi_display_table(mddi_hitachi_position_table, sizeof(mddi_hitachi_position_table) / sizeof(struct hitachi_display_table)); @@ -244,9 +234,6 @@ sizeof(mddi_hitachi_2c) / sizeof(struct hitachi_display_table)); #endif - /* LGE_CHANGE [dojip.kim@lge.com] 2010-05-20, - * add code to prevent LCD shift - */ #elif CONFIG_FB_MSM_MDDI_NOVATEK_HVGA display_table(mddi_novatek_position_table, sizeof(mddi_novatek_position_table) / @@ -287,7 +274,6 @@ (iBuf->dma_y << 16) | iBuf->dma_x); MDP_OUTP(MDP_CMD_DEBUG_ACCESS_BASE + 0x01a0, mddi_ld_param); - /* LGE_CHANGE [james.jang@lge.com] 2010-08-29 */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) if (g_mddi_lcd_probe == 0) { /* Hitachi LCD */ MDP_OUTP(MDP_CMD_DEBUG_ACCESS_BASE + 0x01a4, @@ -298,9 +284,6 @@ (mddi_pkt_desc << 16) | mddi_vdo_packet_reg); } #elif defined (CONFIG_FB_MSM_MDDI_HITACHI_HVGA) - /* Don't apply 6013 patch only when using Hitachi HVGA module. - * 2010-07-28. minjong.gong@lge.com - */ MDP_OUTP(MDP_CMD_DEBUG_ACCESS_BASE + 0x01a4, (MDDI_VDO_PACKET_DESC << 16) | mddi_vdo_packet_reg); #else @@ -311,7 +294,6 @@ MDP_OUTP(MDP_BASE + 0x90010, (iBuf->dma_y << 16) | iBuf->dma_x); MDP_OUTP(MDP_BASE + 0x00090, mddi_ld_param); - /* LGE_CHANGE [james.jang@lge.com] 2010-08-29 */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) if (g_mddi_lcd_probe == 1) { MDP_OUTP(MDP_BASE + 0x00094, @@ -323,12 +305,9 @@ (MDDI_VDO_PACKET_DESC << 16) | mddi_vdo_packet_reg); } #elif defined(CONFIG_FB_MSM_MDDI_NOVATEK_HVGA) -/* LGE_CHANGE [dojip.kim@lge.com] 2010-04-23, [LS670] fixed the pixel format */ MDP_OUTP(MDP_BASE + 0x00094, (0x5565 /*MDDI_VDO_PACKET_DESC*/ << 16) | mddi_vdo_packet_reg); #elif defined (CONFIG_FB_MSM_MDDI_HITACHI_HVGA) - /* Don't apply 6013 patch only when using Hitachi HVGA module. - * 2010-07-28. minjong.gong@lge.com */ MDP_OUTP(MDP_BASE + 0x00094, (MDDI_VDO_PACKET_DESC << 16) | mddi_vdo_packet_reg); #else diff -urP vd/kernel/drivers/video/msm/mdp_hw.h vm670/kernel/drivers/video/msm/mdp_hw.h --- vd/kernel/drivers/video/msm/mdp_hw.h 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/mdp_hw.h 2011-04-12 06:00:31.000000000 -0400 @@ -767,7 +767,6 @@ #define MDDI_VDO_PACKET_SECD 0xC0 #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE_S. Change code to apply new LUT for display quality. 2010-08-13. minjong.gong@lge.com */ extern mdp_load_thunder_lut(int lut_type); #endif diff -urP vd/kernel/drivers/video/msm/mdp_hw_init.c vm670/kernel/drivers/video/msm/mdp_hw_init.c --- vd/kernel/drivers/video/msm/mdp_hw_init.c 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/mdp_hw_init.c 2011-04-12 06:00:31.000000000 -0400 @@ -594,10 +594,6 @@ } #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || defined(CONFIG_MACH_MSM7X27_THUNDERC) -/* LGE_CHANGE_S - * Change code to apply new LUT for display quality. 2010-08-03. minjong.gong@lge.com - * Below LUT Table was received from taeyun.kim@lge.com. - */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) || defined(CONFIG_FB_MSM_MDDI_HITACHI_HVGA) static u32 thunder_lut_normal[256] = { 0x00000000, 0x00010101, 0x00010101, 0x00020202, 0x00030302, 0x00030303, 0x00040404, 0x00040504, @@ -747,13 +743,6 @@ void mdp_load_thunder_lut(int lut_type) { int i=0; - -/* LGE_CHANGE [james.jang@lge.com] 2010-11-27 - FIXME */ -#if 0 - if (g_mddi_lcd_probe == 0) /* Hitachi LCD */ - return; -#endif if(lut_type != 0) { @@ -767,7 +756,6 @@ if(lut_type == 1) { -/* LGE_CHANGE [james.jang@lge.com] 2010-09-06 */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) if (g_mddi_lcd_probe == 0) { /* Hitachi LCD */ for(i=0;i<256;i++) { @@ -790,7 +778,6 @@ #endif /* CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA */ } else if(lut_type ==2) { -/* LGE_CHANGE [james.jang@lge.com] 2010-09-06 */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) if (g_mddi_lcd_probe == 0) { /* Hitachi LCD */ for(i=0;i<256;i++) { @@ -822,32 +809,21 @@ mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE); } } -/* LGE_CHANGE_E */ #endif #define IRQ_EN_1__MDP_IRQ___M 0x00000800 +void mdp_hw_init(void) +{ + int i; -/* LGE_CHANGE [james.jang@lge.com] 2010-12-27, prove LCD */ #if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) -void lge_probe_lcd(void) -{ gpio_tlmm_config(GPIO_CFG(101, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), GPIO_ENABLE); gpio_configure(101, GPIOF_INPUT); if (gpio_get_value(101) == 0) - g_mddi_lcd_probe = 0; /* Hitachi LCD */ + g_mddi_lcd_probe = 0; else - g_mddi_lcd_probe = 1; /* Novatek LCD */ -} -#endif - -void mdp_hw_init(void) -{ - int i; - -/* LGE_CHANGE [james.jang@lge.com] 2010-08-28, probe LCD */ -#if defined(CONFIG_FB_MSM_MDDI_NOVATEK_HITACHI_HVGA) - lge_probe_lcd(); + g_mddi_lcd_probe = 1; #endif /* MDP cmd block enable */ @@ -902,10 +878,6 @@ #endif #if defined(CONFIG_MACH_MSM7X27_THUNDERG) || defined(CONFIG_MACH_MSM7X27_THUNDERC) - /* LGE_CHANGE_S - * Change code to apply new LUT for display quality. - * 2010-08-03. minjong.gong@lge.com - */ mdp_load_thunder_lut(1); /* type = 1 : Normal LUT */ #endif diff -urP vd/kernel/drivers/video/msm/msm_fb.c vm670/kernel/drivers/video/msm/msm_fb.c --- vd/kernel/drivers/video/msm/msm_fb.c 2011-02-04 19:01:35.000000000 -0500 +++ vm670/kernel/drivers/video/msm/msm_fb.c 2011-04-12 06:00:31.000000000 -0400 @@ -110,7 +110,6 @@ static void msmfb_late_resume_late(struct early_suspend *h); #endif -/* LGE_CHANGE_S, [munyoung@lge.com] booting logo */ #ifdef CONFIG_FB_MSM_LOGO static int is_console_inactive = 0; @@ -127,7 +126,6 @@ } EXPORT_SYMBOL(msm_fb_get_console_inactive); #endif -/* LGE_CHANGE_E, [munyoung@lge.com] booting logo */ #ifdef MSM_FB_ENABLE_DBGFS @@ -979,7 +977,6 @@ mfd->panel_power_on = FALSE; #ifdef CONFIG_FB_MSM_LOGO - /* LGE_CHANGE,[munyoung@lge.com] booting logo */ msm_fb_set_console_inactive(1); #endif @@ -1184,12 +1181,10 @@ } } -/* LGE_CHANGE_S, [munyoung@lge.com] booting logo */ #ifdef CONFIG_FB_MSM_LOGO if(mfd->ref_cnt > 1 && msm_fb_get_console_inactive()) msm_fb_set_console_inactive(0); #endif -/* LGE_CHANGE_E, [munyoung@lge.com] booting logo */ mfd->ref_cnt++; return 0; diff -urP vd/kernel/fs/fat/dir.c vm670/kernel/fs/fat/dir.c --- vd/kernel/fs/fat/dir.c 2011-02-04 19:01:37.000000000 -0500 +++ vm670/kernel/fs/fat/dir.c 2011-04-12 06:00:30.000000000 -0400 @@ -97,8 +97,6 @@ *bh = sb_bread(sb, phys); if (*bh == NULL) { - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-29, - // suppressed the message #if defined(CONFIG_MACH_LGE) // nothing #else diff -urP vd/kernel/fs/yaffs2/yaffs_fs.c vm670/kernel/fs/yaffs2/yaffs_fs.c --- vd/kernel/fs/yaffs2/yaffs_fs.c 2011-02-04 19:01:38.000000000 -0500 +++ vm670/kernel/fs/yaffs2/yaffs_fs.c 2011-04-12 06:00:30.000000000 -0400 @@ -488,9 +488,6 @@ ylist_for_each(i, search_contexts) { if (i) { sc = ylist_entry(i, struct yaffs_SearchContext,others); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-27, - // sometimes null point exception - //if(sc->nextReturn == obj) if(sc && sc->nextReturn == obj) yaffs_SearchAdvance(sc); } diff -urP vd/kernel/include/linux/akm8973.h vm670/kernel/include/linux/akm8973.h --- vd/kernel/include/linux/akm8973.h 2011-02-04 19:01:39.000000000 -0500 +++ vm670/kernel/include/linux/akm8973.h 2011-04-12 06:00:35.000000000 -0400 @@ -2,7 +2,7 @@ * Definitions for akm8973 compass chip. * this file must same with akm8973.h in AKMD daemon */ -#ifndef AKM8973_H /* LGE_CHANGE [hyesung.shin@lge.com] on 2010-1-23, for */ +#ifndef AKM8973_H #define AKM8973_H #include diff -urP vd/kernel/include/linux/input.h vm670/kernel/include/linux/input.h --- vd/kernel/include/linux/input.h 2011-02-04 19:01:39.000000000 -0500 +++ vm670/kernel/include/linux/input.h 2011-04-12 06:00:35.000000000 -0400 @@ -377,7 +377,6 @@ #define KEY_WIMAX 246 -/* LGE_CHANGE [dojip.kim@lge.com] 2010-05-20, add KEY_FOCUS */ #define KEY_FOCUS 247 /* Range 248 - 255 is reserved for special needs of AT keyboard driver */ diff -urP vd/kernel/include/linux/lge_alohag_at.h vm670/kernel/include/linux/lge_alohag_at.h --- vd/kernel/include/linux/lge_alohag_at.h 2011-02-04 19:01:39.000000000 -0500 +++ vm670/kernel/include/linux/lge_alohag_at.h 2011-04-12 06:00:35.000000000 -0400 @@ -1,4 +1,3 @@ -/* LGE_CHANGE_S [kimeh@lge.com] 2009-04-15, for debugging */ struct atcmd_dev { // const char *name; char *name; @@ -21,10 +20,8 @@ extern void update_atcmd_state(struct atcmd_dev *sdev, char *cmd, int state); extern struct atcmd_dev *atcmd_get_dev(void); -/* LGE_CHANGE_E [kimeh@lge.com] 2009-04-15, for debugging */ -/* LGE_CHANGE_S [jihoon.lee@lge.com] 2010-02-03, LG_FW_ATS_ETA_MTC_KEY_LOGGING */ struct ats_mtc_key_log_type{ unsigned char log_id; unsigned short log_len; @@ -39,4 +36,3 @@ ATS_MTC_KEY_LOG_ID_MAX, }; -/* LGE_CHANGE_E [jihoon.lee@lge.com] 2010-02-03, LG_FW_ATS_ETA_MTC_KEY_LOGGING */ diff -urP vd/kernel/include/linux/msm_audio.h vm670/kernel/include/linux/msm_audio.h --- vd/kernel/include/linux/msm_audio.h 2011-02-04 19:01:39.000000000 -0500 +++ vm670/kernel/include/linux/msm_audio.h 2011-04-12 06:00:35.000000000 -0400 @@ -328,7 +328,6 @@ #if defined (CONFIG_MACH_MSM7X27_ALOHAV) //#if defined(CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-08, [VS740] for testmode and so on */ struct msm_snd_set_loopback_mode_param { int32_t mode; int get_param; @@ -340,7 +339,6 @@ int32_t mode; int get_param; }; -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-19, For audio cal tool.*/ typedef enum { VOC_CODEC_SPEAKER_MEDIA = 0, /* BT Intercom */ @@ -661,15 +659,11 @@ #define SND_SET_FM_RADIO_VOLUME _IOWR(SND_IOCTL_MAGIC, 17, int *) #define SND_SET_VOICE_CLARITY _IOWR(SND_IOCTL_MAGIC, 18, struct msm_snd_set_voice_clarity_param *) #define SND_SET_POWER_OFF _IOWR(SND_IOCTL_MAGIC, 19, int *) -/* LGE_CHANGE_E, [junyoub.an] , 2010-02-19, For audio cal tool.*/ -/* LGE_CHANGE_S, [junyoub.an] , 2010-02-28, for hook key*/ #define SND_SET_HOOK_MODE _IOWR(SND_IOCTL_MAGIC, 20, struct msm_snd_set_hook_mode_param *) -/* LGE_CHANGE_E, [junyoub.an] , 2010-02-28, for hook key*/ #endif #if defined (CONFIG_LGE_AUDIO_HIDDEN_MENU_TEST_PATCH) -/* LGE_CHANGES_S [kiwone@lge.com] 2010-01-10, [VS740] for testmode call acoustic rec/play */ struct msm_snd_set_call_acoustic_path_onoff_param { int32_t on_off; int get_param; diff -urP vd/kernel/include/media/msm_camera.h vm670/kernel/include/media/msm_camera.h --- vd/kernel/include/media/msm_camera.h 2011-02-04 19:01:41.000000000 -0500 +++ vm670/kernel/include/media/msm_camera.h 2011-04-12 06:00:34.000000000 -0400 @@ -114,7 +114,6 @@ #define MSM_CAM_IOCTL_AF_CTRL_DONE \ _IOW(MSM_CAM_IOCTL_MAGIC, 26, struct msm_ctrl_cmt_t *) -/* LGE_CHANGE [youngki.an@lge.com] 2010-05-18 LG_CAMERA_HIDDEN_MENU */ #if 1//def LG_CAMERA_HIDDEN_MENU #define MSM_CAM_IOCTL_SENSOR_ALWAYS_ON_TEST _IOW(MSM_CAM_IOCTL_MAGIC, 27, uint32_t *) #endif @@ -405,10 +404,6 @@ #define CFG_SEND_WB_INFO 28 #define CFG_MAX 29 -/* LGE_CHANGE_S [junyeong.han@lge.com] Add CFG values for auto focus */ -/* 2010-05-02: Add auto-focus values */ -/* 2010-05-05: Add setting iso values */ -/* 2010-05-14: Add setting scene values */ #if defined (CONFIG_ISX005) #define CFG_START_AF_FOCUS 101 #define CFG_CHECK_AF_DONE 102 @@ -419,7 +414,6 @@ #define CFG_SET_ISO 201 #define CFG_SET_SCENE 202 #endif -/* LGE_CHANGE_E [junyeong.han@lge.com] */ #define MOVE_NEAR 0 #define MOVE_FAR 1 @@ -442,8 +436,6 @@ #define CAMERA_EFFECT_BLACKBOARD 7 #define CAMERA_EFFECT_AQUA 8 -/* LGE_CHANGE_S [junyeong.han@lge.com] Add CAMERA_EFFECT values */ -/* 2010-05-13: Add CAMERA_EFFECT values */ #if defined (CONFIG_ISX005) #define CAMERA_EFFECT_NEGATIVE_SEPIA 9 #define CAMERA_EFFECT_BLUE 10 @@ -452,7 +444,6 @@ #else /* 5330 origin */ #define CAMERA_EFFECT_MAX 9 #endif -/* LGE_CHANGE_E [junyeong.han@lge.com] */ struct sensor_pict_fps { uint16_t prevfps; diff -urP vd/kernel/kernel/power/earlysuspend.c vm670/kernel/kernel/power/earlysuspend.c --- vd/kernel/kernel/power/earlysuspend.c 2011-02-04 19:01:42.000000000 -0500 +++ vm670/kernel/kernel/power/earlysuspend.c 2011-04-12 06:00:30.000000000 -0400 @@ -97,7 +97,6 @@ if (pos->suspend != NULL) { pos->suspend(pos); #ifdef CONFIG_MACH_LGE - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-06 printk(KERN_INFO"%s: early suspend funtion [%p]\n",__func__, pos->suspend); #endif @@ -141,7 +140,6 @@ if (pos->resume != NULL) { pos->resume(pos); #ifdef CONFIG_MACH_LGE - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-06 printk(KERN_INFO"%s: late resume funtion [%p]\n",__func__, pos->resume); #endif @@ -154,7 +152,6 @@ mutex_unlock(&early_suspend_lock); } -// LGE_CHANGE [dojip.kim@lge.com] 2010-08-24, notify power state to ARM9 #ifdef CONFIG_LGE_PROC_COMM extern int lge_set_sleep_status(int status); #endif @@ -177,7 +174,6 @@ ktime_to_ns(ktime_get()), tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, ts.tv_nsec); - // LGE_CHANGE [dojip.kim@lge.com] 2010-08-24, notify power state to ARM9 #ifdef CONFIG_LGE_PROC_COMM lge_set_sleep_status(new_state); #endif diff -urP vd/kernel/kernel/power/wakelock.c vm670/kernel/kernel/power/wakelock.c --- vd/kernel/kernel/power/wakelock.c 2011-02-04 19:01:42.000000000 -0500 +++ vm670/kernel/kernel/power/wakelock.c 2011-04-12 06:00:30.000000000 -0400 @@ -222,9 +222,6 @@ pr_info("wake lock %s, expired\n", lock->name); } else { pr_info("active wake lock %s\n", lock->name); - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-14, - // fix the parentheses around operand - //if (!debug_mask & DEBUG_EXPIRE) if (!(debug_mask & DEBUG_EXPIRE)) print_expired = false; } diff -urP vd/kernel/kernel/time/timecompare.c vm670/kernel/kernel/time/timecompare.c --- vd/kernel/kernel/time/timecompare.c 2011-02-04 19:01:42.000000000 -0500 +++ vm670/kernel/kernel/time/timecompare.c 2011-04-12 06:00:30.000000000 -0400 @@ -88,14 +88,6 @@ * average target time corresponds to measured * source time */ - // LGE_CHANGE [dojip.kim@lge.com] 2010-07-22, - // linux-2.6.git: f065f41f48569122b5bcddbd1ba2354f7cc29fdc - // fix half-Y2K38 problem in timecompare_update while calculating offset - /* - sample.offset = - ktime_to_ns(ktime_add(end, start)) / 2 - - ts; - */ sample.offset = (ktime_to_ns(end) + ktime_to_ns(start)) / 2 - ts; diff -urP vd/kernel/lib/kobject_uevent.c vm670/kernel/lib/kobject_uevent.c --- vd/kernel/lib/kobject_uevent.c 2011-02-04 19:01:43.000000000 -0500 +++ vm670/kernel/lib/kobject_uevent.c 2011-04-12 06:00:34.000000000 -0400 @@ -242,7 +242,6 @@ } #endif - // LGE_CHANGE [dojip.kim@lge.com] 2010-09-05, avoid the rooting via hotplug #ifdef CONFIG_LGE_BLOCK_HOTPLUG // nothing #else diff -urP vd/kernel/net/ipv4/tcp_output.c vm670/kernel/net/ipv4/tcp_output.c --- vd/kernel/net/ipv4/tcp_output.c 2011-02-04 19:01:44.000000000 -0500 +++ vm670/kernel/net/ipv4/tcp_output.c 2011-04-12 06:00:30.000000000 -0400 @@ -2323,7 +2323,6 @@ #endif /* If user gave his TCP_MAXSEG, record it to clamp */ -// LGE_CHANGE_DATA 2010.07.20 [ih.jang@lge.com] adjust_sprint_mtu(mss)_size #ifdef CONFIG_LGE_TCP_MTU_1472 tp->rx_opt.user_mss = 1432; //adjust_mss=1432[MTU=1472] #endif diff -urP vd/kernel/net/wireless/wext.c vm670/kernel/net/wireless/wext.c --- vd/kernel/net/wireless/wext.c 2011-02-04 19:01:46.000000000 -0500 +++ vm670/kernel/net/wireless/wext.c 2011-04-12 06:00:30.000000000 -0400 @@ -1379,7 +1379,6 @@ * and no data is included in the event, this codifies that * practice. */ -/* LGE_CHANGES_S [taekeun1.kim@lge.com] 2010-06-06, for wifi */ #if !defined (CONFIG_MACH_LGE) if (WARN_ON(cmd == SIOCGIWSCAN && extra)) extra = NULL;