From affbf73f42890638fc78d48d7c73567b59887224 Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Sat, 28 Nov 2015 16:15:39 +0100 Subject: [PATCH] facetimehd: add functions to set saturation and hue --- fthd_isp.c | 28 ++++++++++++++++++++++++++++ fthd_isp.h | 12 ++++++++++++ 2 files changed, 40 insertions(+) diff --git a/fthd_isp.c b/fthd_isp.c index cf67698..6b0ff32 100644 --- a/fthd_isp.c +++ b/fthd_isp.c @@ -1001,6 +1001,34 @@ int fthd_isp_cmd_channel_contrast_set(struct fthd_private *dev_priv, int channel return fthd_isp_cmd(dev_priv, CISP_CMD_CH_SCALER_CONTRAST_SET, &cmd, sizeof(cmd), &len); } +int fthd_isp_cmd_channel_saturation_set(struct fthd_private *dev_priv, int channel, int saturation) +{ + struct isp_cmd_channel_saturation_set cmd; + int len; + + pr_debug("set saturation %d\n", saturation); + + memset(&cmd, 0, sizeof(cmd)); + cmd.channel = channel; + cmd.contrast = saturation; + len = sizeof(cmd); + return fthd_isp_cmd(dev_priv, CISP_CMD_CH_SCALER_SATURATION_SET, &cmd, sizeof(cmd), &len); +} + +int fthd_isp_cmd_channel_hue_set(struct fthd_private *dev_priv, int channel, int hue) +{ + struct isp_cmd_channel_hue_set cmd; + int len; + + pr_debug("set hue %d\n", hue); + + memset(&cmd, 0, sizeof(cmd)); + cmd.channel = channel; + cmd.contrast = hue; + len = sizeof(cmd); + return fthd_isp_cmd(dev_priv, CISP_CMD_CH_SCALER_HUE_SET, &cmd, sizeof(cmd), &len); +} + int fthd_start_channel(struct fthd_private *dev_priv, int channel) { int ret, x1 = 0, x2 = 0, pixelformat; diff --git a/fthd_isp.h b/fthd_isp.h index 837a06b..5be97bf 100644 --- a/fthd_isp.h +++ b/fthd_isp.h @@ -661,6 +661,16 @@ struct isp_cmd_channel_contrast_set { u32 contrast; }; +struct isp_cmd_channel_saturation_set { + u32 channel; + u32 contrast; +}; + +struct isp_cmd_channel_hue_set { + u32 channel; + u32 contrast; +}; + struct isp_cmd_channel_buffer_return { u32 channel; }; @@ -714,6 +724,8 @@ extern int fthd_isp_cmd_channel_motion_history_stop(struct fthd_private *dev_pri extern int fthd_isp_cmd_channel_ae_metering_mode_set(struct fthd_private *dev_priv, int channel, int mode); extern int fthd_isp_cmd_channel_brightness_set(struct fthd_private *dev_priv, int channel, int brightness); extern int fthd_isp_cmd_channel_contrast_set(struct fthd_private *dev_priv, int channel, int contrast); +extern int fthd_isp_cmd_channel_saturation_set(struct fthd_private *dev_priv, int channel, int saturation); +extern int fthd_isp_cmd_channel_hue_set(struct fthd_private *dev_priv, int channel, int hue); extern int fthd_isp_cmd_channel_buffer_return(struct fthd_private *dev_priv, int channel); extern int fthd_start_channel(struct fthd_private *dev_priv, int channel); extern int fthd_stop_channel(struct fthd_private *dev_priv, int channel);