diff options
| -rw-r--r-- | drivers/media/video/omap3isp/ispccdc.c | 51 | ||||
| -rw-r--r-- | drivers/media/video/omap3isp/ispccdc.h | 18 |
2 files changed, 2 insertions, 67 deletions
diff --git a/drivers/media/video/omap3isp/ispccdc.c b/drivers/media/video/omap3isp/ispccdc.c index 4678e2f44973..8dbb55a92fcf 100644 --- a/drivers/media/video/omap3isp/ispccdc.c +++ b/drivers/media/video/omap3isp/ispccdc.c | |||
| @@ -967,17 +967,8 @@ static void ccdc_config_sync_if(struct isp_ccdc_device *ccdc, | |||
| 967 | struct ispccdc_syncif *syncif) | 967 | struct ispccdc_syncif *syncif) |
| 968 | { | 968 | { |
| 969 | struct isp_device *isp = to_isp_device(ccdc); | 969 | struct isp_device *isp = to_isp_device(ccdc); |
| 970 | u32 syn_mode = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, | 970 | u32 syn_mode = ISPCCDC_SYN_MODE_VDHDEN; |
| 971 | ISPCCDC_SYN_MODE); | ||
| 972 | 971 | ||
| 973 | syn_mode |= ISPCCDC_SYN_MODE_VDHDEN; | ||
| 974 | |||
| 975 | if (syncif->fldstat) | ||
| 976 | syn_mode |= ISPCCDC_SYN_MODE_FLDSTAT; | ||
| 977 | else | ||
| 978 | syn_mode &= ~ISPCCDC_SYN_MODE_FLDSTAT; | ||
| 979 | |||
| 980 | syn_mode &= ~ISPCCDC_SYN_MODE_DATSIZ_MASK; | ||
| 981 | switch (syncif->datsz) { | 972 | switch (syncif->datsz) { |
| 982 | case 8: | 973 | case 8: |
| 983 | syn_mode |= ISPCCDC_SYN_MODE_DATSIZ_8; | 974 | syn_mode |= ISPCCDC_SYN_MODE_DATSIZ_8; |
| @@ -993,47 +984,14 @@ static void ccdc_config_sync_if(struct isp_ccdc_device *ccdc, | |||
| 993 | break; | 984 | break; |
| 994 | } | 985 | } |
| 995 | 986 | ||
| 996 | if (syncif->fldmode) | ||
| 997 | syn_mode |= ISPCCDC_SYN_MODE_FLDMODE; | ||
| 998 | else | ||
| 999 | syn_mode &= ~ISPCCDC_SYN_MODE_FLDMODE; | ||
| 1000 | |||
| 1001 | if (syncif->datapol) | 987 | if (syncif->datapol) |
| 1002 | syn_mode |= ISPCCDC_SYN_MODE_DATAPOL; | 988 | syn_mode |= ISPCCDC_SYN_MODE_DATAPOL; |
| 1003 | else | ||
| 1004 | syn_mode &= ~ISPCCDC_SYN_MODE_DATAPOL; | ||
| 1005 | |||
| 1006 | if (syncif->fldpol) | ||
| 1007 | syn_mode |= ISPCCDC_SYN_MODE_FLDPOL; | ||
| 1008 | else | ||
| 1009 | syn_mode &= ~ISPCCDC_SYN_MODE_FLDPOL; | ||
| 1010 | 989 | ||
| 1011 | if (syncif->hdpol) | 990 | if (syncif->hdpol) |
| 1012 | syn_mode |= ISPCCDC_SYN_MODE_HDPOL; | 991 | syn_mode |= ISPCCDC_SYN_MODE_HDPOL; |
| 1013 | else | ||
| 1014 | syn_mode &= ~ISPCCDC_SYN_MODE_HDPOL; | ||
| 1015 | 992 | ||
| 1016 | if (syncif->vdpol) | 993 | if (syncif->vdpol) |
| 1017 | syn_mode |= ISPCCDC_SYN_MODE_VDPOL; | 994 | syn_mode |= ISPCCDC_SYN_MODE_VDPOL; |
| 1018 | else | ||
| 1019 | syn_mode &= ~ISPCCDC_SYN_MODE_VDPOL; | ||
| 1020 | |||
| 1021 | if (syncif->ccdc_mastermode) { | ||
| 1022 | syn_mode |= ISPCCDC_SYN_MODE_FLDOUT | ISPCCDC_SYN_MODE_VDHDOUT; | ||
| 1023 | isp_reg_writel(isp, | ||
| 1024 | syncif->hs_width << ISPCCDC_HD_VD_WID_HDW_SHIFT | ||
| 1025 | | syncif->vs_width << ISPCCDC_HD_VD_WID_VDW_SHIFT, | ||
| 1026 | OMAP3_ISP_IOMEM_CCDC, | ||
| 1027 | ISPCCDC_HD_VD_WID); | ||
| 1028 | |||
| 1029 | isp_reg_writel(isp, | ||
| 1030 | syncif->ppln << ISPCCDC_PIX_LINES_PPLN_SHIFT | ||
| 1031 | | syncif->hlprf << ISPCCDC_PIX_LINES_HLPRF_SHIFT, | ||
| 1032 | OMAP3_ISP_IOMEM_CCDC, | ||
| 1033 | ISPCCDC_PIX_LINES); | ||
| 1034 | } else | ||
| 1035 | syn_mode &= ~(ISPCCDC_SYN_MODE_FLDOUT | | ||
| 1036 | ISPCCDC_SYN_MODE_VDHDOUT); | ||
| 1037 | 995 | ||
| 1038 | isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE); | 996 | isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE); |
| 1039 | 997 | ||
| @@ -1154,6 +1112,7 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc) | |||
| 1154 | omap3isp_configure_bridge(isp, ccdc->input, pdata, shift); | 1112 | omap3isp_configure_bridge(isp, ccdc->input, pdata, shift); |
| 1155 | 1113 | ||
| 1156 | ccdc->syncif.datsz = depth_out; | 1114 | ccdc->syncif.datsz = depth_out; |
| 1115 | ccdc->syncif.datapol = 0; | ||
| 1157 | ccdc->syncif.hdpol = pdata ? pdata->hs_pol : 0; | 1116 | ccdc->syncif.hdpol = pdata ? pdata->hs_pol : 0; |
| 1158 | ccdc->syncif.vdpol = pdata ? pdata->vs_pol : 0; | 1117 | ccdc->syncif.vdpol = pdata ? pdata->vs_pol : 0; |
| 1159 | ccdc_config_sync_if(ccdc, &ccdc->syncif); | 1118 | ccdc_config_sync_if(ccdc, &ccdc->syncif); |
| @@ -2487,13 +2446,7 @@ int omap3isp_ccdc_init(struct isp_device *isp) | |||
| 2487 | INIT_LIST_HEAD(&ccdc->lsc.free_queue); | 2446 | INIT_LIST_HEAD(&ccdc->lsc.free_queue); |
| 2488 | spin_lock_init(&ccdc->lsc.req_lock); | 2447 | spin_lock_init(&ccdc->lsc.req_lock); |
| 2489 | 2448 | ||
| 2490 | ccdc->syncif.ccdc_mastermode = 0; | ||
| 2491 | ccdc->syncif.datapol = 0; | ||
| 2492 | ccdc->syncif.datsz = 0; | 2449 | ccdc->syncif.datsz = 0; |
| 2493 | ccdc->syncif.fldmode = 0; | ||
| 2494 | ccdc->syncif.fldout = 0; | ||
| 2495 | ccdc->syncif.fldpol = 0; | ||
| 2496 | ccdc->syncif.fldstat = 0; | ||
| 2497 | 2450 | ||
| 2498 | ccdc->clamp.oblen = 0; | 2451 | ccdc->clamp.oblen = 0; |
| 2499 | ccdc->clamp.dcsubval = 0; | 2452 | ccdc->clamp.dcsubval = 0; |
diff --git a/drivers/media/video/omap3isp/ispccdc.h b/drivers/media/video/omap3isp/ispccdc.h index 890f6b3a68fd..57007d7b2d56 100644 --- a/drivers/media/video/omap3isp/ispccdc.h +++ b/drivers/media/video/omap3isp/ispccdc.h | |||
| @@ -48,35 +48,17 @@ enum ccdc_input_entity { | |||
| 48 | 48 | ||
| 49 | /* | 49 | /* |
| 50 | * struct ispccdc_syncif - Structure for Sync Interface between sensor and CCDC | 50 | * struct ispccdc_syncif - Structure for Sync Interface between sensor and CCDC |
| 51 | * @ccdc_mastermode: Master mode. 1 - Master, 0 - Slave. | ||
| 52 | * @fldstat: Field state. 0 - Odd Field, 1 - Even Field. | ||
| 53 | * @datsz: Data size. | 51 | * @datsz: Data size. |
| 54 | * @fldmode: 0 - Progressive, 1 - Interlaced. | ||
| 55 | * @datapol: 0 - Positive, 1 - Negative. | 52 | * @datapol: 0 - Positive, 1 - Negative. |
| 56 | * @fldpol: 0 - Positive, 1 - Negative. | ||
| 57 | * @hdpol: 0 - Positive, 1 - Negative. | 53 | * @hdpol: 0 - Positive, 1 - Negative. |
| 58 | * @vdpol: 0 - Positive, 1 - Negative. | 54 | * @vdpol: 0 - Positive, 1 - Negative. |
| 59 | * @fldout: 0 - Input, 1 - Output. | ||
| 60 | * @hs_width: Width of the Horizontal Sync pulse, used for HS/VS Output. | ||
| 61 | * @vs_width: Width of the Vertical Sync pulse, used for HS/VS Output. | ||
| 62 | * @ppln: Number of pixels per line, used for HS/VS Output. | ||
| 63 | * @hlprf: Number of half lines per frame, used for HS/VS Output. | ||
| 64 | * @bt_r656_en: 1 - Enable ITU-R BT656 mode, 0 - Sync mode. | 55 | * @bt_r656_en: 1 - Enable ITU-R BT656 mode, 0 - Sync mode. |
| 65 | */ | 56 | */ |
| 66 | struct ispccdc_syncif { | 57 | struct ispccdc_syncif { |
| 67 | u8 ccdc_mastermode; | ||
| 68 | u8 fldstat; | ||
| 69 | u8 datsz; | 58 | u8 datsz; |
| 70 | u8 fldmode; | ||
| 71 | u8 datapol; | 59 | u8 datapol; |
| 72 | u8 fldpol; | ||
| 73 | u8 hdpol; | 60 | u8 hdpol; |
| 74 | u8 vdpol; | 61 | u8 vdpol; |
| 75 | u8 fldout; | ||
| 76 | u8 hs_width; | ||
| 77 | u8 vs_width; | ||
| 78 | u8 ppln; | ||
| 79 | u8 hlprf; | ||
| 80 | u8 bt_r656_en; | 62 | u8 bt_r656_en; |
| 81 | }; | 63 | }; |
| 82 | 64 | ||
