+ int brightness, contrast, sat_con, hue, ret, open, sin_hue, cos_hue;
+ if (!strncmp(buf, "open", 4)) {
+ ret = dev_drv->ops->open_bcsh(dev_drv, 1);
+ } else if (!strncmp(buf, "close", 5)) {
+ ret = dev_drv->ops->open_bcsh(dev_drv, 0);
+ } else if (!strncmp(buf, "brightness", 10)) {
+ sscanf(buf, "brightness %d", &brightness);
+ if (unlikely(brightness > 255)) {
+ dev_err(fbi->dev,"brightness should be [0:255],now=%d\n\n",brightness);
+ brightness = 255;
+ }
+ ret = dev_drv->ops->set_dsp_bcsh_bcs(dev_drv, BRIGHTNESS,brightness);
+ } else if (!strncmp(buf, "contrast", 8)) {
+ sscanf(buf, "contrast %d", &contrast);
+ if (unlikely(contrast > 510)) {
+ dev_err(fbi->dev,"contrast should be [0:510],now=%d\n",contrast);
+ contrast = 510;
+ }
+ ret = dev_drv->ops->set_dsp_bcsh_bcs(dev_drv, CONTRAST,contrast);
+ } else if (!strncmp(buf, "sat_con", 7)) {
+ sscanf(buf, "sat_con %d", &sat_con);
+ if (unlikely(sat_con > 1015)) {
+ dev_err(fbi->dev,"sat_con should be [0:1015],now=%d\n",sat_con);
+ sat_con = 1015;
+ }
+ ret = dev_drv->ops->set_dsp_bcsh_bcs(dev_drv, SAT_CON,sat_con);
+ } else if (!strncmp(buf, "hue", 3)) {
+ sscanf(buf, "hue %d %d", &sin_hue,&cos_hue);
+ if (unlikely(sin_hue > 511 || cos_hue > 511)) {
+ dev_err(fbi->dev,"sin_hue=%d,cos_hue=%d\n",sin_hue,cos_hue);
+ }
+ ret = dev_drv->ops->set_dsp_bcsh_hue(dev_drv,sin_hue,cos_hue);
+ } else {
+ printk("format error\n");
+ }