[media] omap3isp: preview: Merge gamma correction and gamma bypass
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 6 Jul 2012 12:12:44 +0000 (09:12 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 11 Aug 2012 18:58:58 +0000 (15:58 -0300)
Enabling gamma bypass disables gamma correction and vice versa. Merge
the two parameters.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/omap3isp/isppreview.c
include/linux/omap3isp.h

index 9a8628417b509b0209ee589523dca937fff68068..72d261835ad2f2e2252b0c65a509ff7cfed9b7b9 100644 (file)
@@ -480,25 +480,6 @@ static void preview_enable_dcor(struct isp_prev_device *prev, bool enable)
                            ISPPRV_PCR_DCOREN);
 }
 
-/*
- * preview_enable_gammabypass - Enable/disable Gamma Bypass
- *
- * When gamma bypass is enabled, the output of the gamma correction is the 8 MSB
- * of the 10-bit input .
- */
-static void
-preview_enable_gammabypass(struct isp_prev_device *prev, bool enable)
-{
-       struct isp_device *isp = to_isp_device(prev);
-
-       if (enable)
-               isp_reg_set(isp, OMAP3_ISP_IOMEM_PREV, ISPPRV_PCR,
-                           ISPPRV_PCR_GAMMA_BYPASS);
-       else
-               isp_reg_clr(isp, OMAP3_ISP_IOMEM_PREV, ISPPRV_PCR,
-                           ISPPRV_PCR_GAMMA_BYPASS);
-}
-
 /*
  * preview_enable_drkframe_capture - Enable/disable Dark Frame Capture
  */
@@ -596,6 +577,25 @@ preview_config_gammacorrn(struct isp_prev_device *prev,
                               ISPPRV_SET_TBL_DATA);
 }
 
+/*
+ * preview_enable_gammacorrn - Enable/disable Gamma Correction
+ *
+ * When gamma correction is disabled, the module is bypassed and its output is
+ * the 8 MSB of the 10-bit input .
+ */
+static void
+preview_enable_gammacorrn(struct isp_prev_device *prev, bool enable)
+{
+       struct isp_device *isp = to_isp_device(prev);
+
+       if (enable)
+               isp_reg_clr(isp, OMAP3_ISP_IOMEM_PREV, ISPPRV_PCR,
+                           ISPPRV_PCR_GAMMA_BYPASS);
+       else
+               isp_reg_set(isp, OMAP3_ISP_IOMEM_PREV, ISPPRV_PCR,
+                           ISPPRV_PCR_GAMMA_BYPASS);
+}
+
 /*
  * preview_config_contrast - Configure the Contrast
  *
@@ -815,9 +815,9 @@ static const struct preview_update update_attrs[] = {
                offsetof(struct prev_params, dcor),
                FIELD_SIZEOF(struct prev_params, dcor),
                offsetof(struct omap3isp_prev_update_config, dcor),
-       }, /* OMAP3ISP_PREV_GAMMABYPASS */ {
+       }, /* Previously OMAP3ISP_PREV_GAMMABYPASS, not used anymore */ {
+               NULL,
                NULL,
-               preview_enable_gammabypass,
        }, /* OMAP3ISP_PREV_DRK_FRM_CAPTURE */ {
                NULL,
                preview_enable_drkframe_capture,
@@ -835,7 +835,7 @@ static const struct preview_update update_attrs[] = {
                offsetof(struct omap3isp_prev_update_config, nf),
        }, /* OMAP3ISP_PREV_GAMMA */ {
                preview_config_gammacorrn,
-               NULL,
+               preview_enable_gammacorrn,
                offsetof(struct prev_params, gamma),
                FIELD_SIZEOF(struct prev_params, gamma),
                offsetof(struct omap3isp_prev_update_config, gamma),
index e7a79db3c1f7cbf7d7998d77013cda9dc72cfffb..0cddaa9d08bbf23c5702389c890e8fb1f76ae4cb 100644 (file)
@@ -428,7 +428,7 @@ struct omap3isp_ccdc_update_config {
 #define OMAP3ISP_PREV_COLOR_CONV       (1 << 8)
 #define OMAP3ISP_PREV_YC_LIMIT         (1 << 9)
 #define OMAP3ISP_PREV_DEFECT_COR       (1 << 10)
-#define OMAP3ISP_PREV_GAMMABYPASS      (1 << 11)
+/* Bit 11 was OMAP3ISP_PREV_GAMMABYPASS, now merged with OMAP3ISP_PREV_GAMMA */
 #define OMAP3ISP_PREV_DRK_FRM_CAPTURE  (1 << 12)
 #define OMAP3ISP_PREV_DRK_FRM_SUBTRACT (1 << 13)
 #define OMAP3ISP_PREV_LENS_SHADING     (1 << 14)