int flashlight_control(int mode) { #ifdef CONFIG_FLASHLIGHT_TPS61310 /* HTC_START Turn off backlight when flash on */ int rc; static int brightness = 255; static int backlight_off = 0; pr_info("[CAM] %s, linear led, mode %d backlight_off %d", __func__, mode, backlight_off); if (mode != FL_MODE_PRE_FLASH && mode != FL_MODE_OFF) { if (!backlight_off) { /* restore backlight brightness value first */ brightness = led_brightness_value_get("lcd-backlight"); if (brightness >= 0 && brightness <= 255) { pr_info("[CAM] %s, Turn off backlight before flashlight, brightness %d", __func__, brightness); led_brightness_value_set("lcd-backlight", 0); backlight_off = 1; } else pr_err("[CAM] %s, Invalid brightness value!! brightness %d", __func__, brightness); } } rc = tps61310_flashlight_control(mode); if (mode == FL_MODE_PRE_FLASH || mode == FL_MODE_OFF) { if(backlight_off) { pr_info("[CAM] %s, Turn on backlight after flashlight, brightness %d", __func__, brightness); led_brightness_value_set("lcd-backlight", brightness); backlight_off = 0; } } return rc; /* HTC_END */ #else return 0; #endif }
static void shooter_u_3Dpanel_off(void) { int rc; pwm_gpio_config.output_value = 0; rc = pm8xxx_gpio_config(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_3DLCM_PD), &pwm_gpio_config); if (rc < 0) pr_err("%s pmic gpio config gpio %d failed\n", __func__, SHOOTER_U_3DLCM_PD); mdp4_dsi_color_enhancement(mdp_sharp_barrier_off, ARRAY_SIZE(mdp_sharp_barrier_off)); pwm_disable(pwm_3d); rc = pm8xxx_gpio_config(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_3DCLK), &clk_gpio_config_off); if (rc < 0) pr_err("%s pmic gpio config gpio %d failed\n", __func__, SHOOTER_U_3DCLK); gpio_set_value(SHOOTER_U_CTL_3D_1, 0); gpio_set_value(SHOOTER_U_CTL_3D_2, 0); gpio_set_value(SHOOTER_U_CTL_3D_3, 0); gpio_set_value(SHOOTER_U_CTL_3D_4, 0); led_brightness_value_set("lcd-backlight", last_br_2d); }
static void shooter_u_3Dpanel_on(bool bLandscape) { struct pm8058_pwm_period pwm_conf; int rc; led_brightness_value_set("lcd-backlight", 255); pwm_gpio_config.output_value = 1; rc = pm8xxx_gpio_config(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_3DLCM_PD), &pwm_gpio_config); if (rc < 0) pr_err("%s pmic gpio config gpio %d failed\n", __func__, PM8058_GPIO_PM_TO_SYS(SHOOTER_U_3DLCM_PD)); rc = pm8xxx_gpio_config(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_3DCLK), &clk_gpio_config_on); if (rc < 0) pr_err("%s pmic gpio config gpio %d failed\n", __func__, SHOOTER_U_3DCLK); pwm_disable(pwm_3d); pwm_conf.pwm_size = 9; pwm_conf.clk = PM_PWM_CLK_19P2MHZ; pwm_conf.pre_div = PM_PWM_PREDIVIDE_3; pwm_conf.pre_div_exp = 6; rc = pwm_configure(pwm_3d, &pwm_conf, 1, 255); if (rc < 0) pr_err("%s pmic configure %d\n", __func__, rc); pwm_enable(pwm_3d); if(bLandscape) { mdp4_dsi_color_enhancement(mdp_sharp_barrier_on, ARRAY_SIZE(mdp_sharp_barrier_on)); gpio_set_value(SHOOTER_U_CTL_3D_1, 1); gpio_set_value(SHOOTER_U_CTL_3D_2, 1); gpio_set_value(SHOOTER_U_CTL_3D_3, 1); gpio_set_value(SHOOTER_U_CTL_3D_4, 0); } else { mdp4_dsi_color_enhancement(mdp_sharp_barrier_on, ARRAY_SIZE(mdp_sharp_barrier_on)); gpio_set_value(SHOOTER_U_CTL_3D_1, 1); gpio_set_value(SHOOTER_U_CTL_3D_2, 1); gpio_set_value(SHOOTER_U_CTL_3D_3, 0); gpio_set_value(SHOOTER_U_CTL_3D_4, 1); } }