static ssize_t tuner_store(struct device * dev, struct device_attribute * attr, const char * buf, size_t size) { int new_r, new_g, new_b; sscanf(buf, "%d %d %d", &new_r, &new_g, &new_b); if (new_r > 120 || new_r < 0 || new_g > 120 || new_g < 0 || new_b > 120 || new_b < 0) { new_r = new_g = new_b = 60; pr_err("Master tuner out of bounds, reset!\n"); } if (new_r != tuner[0]) { tuner[0] = new_r; v255_val[0] = calc_r_shift(0); v1_val[0] = calc_r_shift(1); v171_val[0] = calc_r_shift(2); v87_val[0] = calc_r_shift(3); #if !defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT) v59_val[0] = calc_r_shift(4); v35_val[0] = calc_r_shift(5); v15_val[0] = calc_r_shift(6); #else v43_val[0] = calc_r_shift(4); v19_val[0] = calc_r_shift(5); #endif if (new_g == tuner[1] && new_b == tuner[2]) goto load_colors; if (new_g == tuner[1]) goto blue; } if (new_g != tuner[1]) { tuner[1] = new_g; v255_val[1] = calc_g_shift(0); v1_val[1] = calc_g_shift(1); v171_val[1] = calc_g_shift(2); v87_val[1] = calc_g_shift(3); #if !defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT) v59_val[1] = calc_g_shift(4); v35_val[1] = calc_g_shift(5); v15_val[1] = calc_g_shift(6); #else v43_val[1] = calc_g_shift(4); v19_val[1] = calc_g_shift(5); #endif if (new_b == tuner[2]) goto load_colors; } blue: if (new_b != tuner[2]) { tuner[2] = new_b; v255_val[2] = calc_b_shift(0); v1_val[2] = calc_b_shift(1); v171_val[2] = calc_b_shift(2); v87_val[2] = calc_b_shift(3); #if !defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT) v59_val[2] = calc_b_shift(4); v35_val[2] = calc_b_shift(5); v15_val[2] = calc_b_shift(6); #else v43_val[2] = calc_b_shift(4); v19_val[2] = calc_b_shift(5); #endif load_colors: pr_debug("New master tuner: %d %d %d\n", new_r, new_g, new_b); panel_load_colors(); } return size; }
static ssize_t tuner_store(struct device * dev, struct device_attribute * attr, const char * buf, size_t size) { int new_r, new_g, new_b; sscanf(buf, "%d %d %d", &new_r, &new_g, &new_b); if (new_r > 120 || new_r < 0 || new_g > 120 || new_g < 0 || new_b > 120 || new_b < 0) { new_r = new_g = new_b = 60; pr_err("Master tuner out of bounds, reset!\n"); } if (new_r != tuner[0]) { tuner[0] = new_r; v255_val[0] = calc_r_shift(0); vt_val[0] = calc_r_shift(1); v203_val[0] = calc_r_shift(2); v151_val[0] = calc_r_shift(3); v87_val[0] = calc_r_shift(4); v51_val[0] = calc_r_shift(5); v35_val[0] = calc_r_shift(6); v23_val[0] = calc_r_shift(7); v11_val[0] = calc_r_shift(8); v3_val[0] = calc_r_shift(9); if (new_g == tuner[1] && new_b == tuner[2]) goto load_colors; if (new_g == tuner[1]) goto blue; } if (new_g != tuner[1]) { tuner[1] = new_g; v255_val[1] = calc_g_shift(0); vt_val[1] = calc_g_shift(1); v203_val[1] = calc_g_shift(2); v151_val[1] = calc_g_shift(3); v87_val[1] = calc_g_shift(4); v51_val[1] = calc_g_shift(5); v35_val[1] = calc_g_shift(6); v23_val[1] = calc_g_shift(7); v11_val[1] = calc_g_shift(8); v3_val[1] = calc_g_shift(9); if (new_b == tuner[2]) goto load_colors; } blue: if (new_b != tuner[2]) { tuner[2] = new_b; v255_val[2] = calc_b_shift(0); vt_val[2] = calc_b_shift(1); v203_val[2] = calc_b_shift(2); v151_val[2] = calc_b_shift(3); v87_val[2] = calc_b_shift(4); v51_val[2] = calc_b_shift(5); v35_val[2] = calc_b_shift(6); v23_val[2] = calc_b_shift(7); v11_val[2] = calc_b_shift(8); v3_val[2] = calc_b_shift(9); load_colors: pr_debug("New master tuner: %d %d %d\n", new_r, new_g, new_b); panel_load_colors(); } return size; }