Skip to content

Commit

Permalink
[media] omap3isp: ccdc: Remove ispccdc_syncif structure
Browse files Browse the repository at this point in the history
The structure is only used to store configuration data and pass it to
CCDC configuration functions. Access the data directly from the
locations that need it.

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>
  • Loading branch information
Laurent Pinchart authored and Mauro Carvalho Chehab committed Aug 11, 2012
1 parent cf7a3d9 commit 73ea57e
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 40 deletions.
38 changes: 17 additions & 21 deletions drivers/media/video/omap3isp/ispccdc.c
Original file line number Diff line number Diff line change
Expand Up @@ -627,9 +627,12 @@ static void ccdc_configure_lpf(struct isp_ccdc_device *ccdc)
static void ccdc_configure_alaw(struct isp_ccdc_device *ccdc)
{
struct isp_device *isp = to_isp_device(ccdc);
const struct isp_format_info *info;
u32 alaw = 0;

switch (ccdc->syncif.datsz) {
info = omap3isp_video_format_info(ccdc->formats[CCDC_PAD_SINK].code);

switch (info->width) {
case 8:
return;

Expand Down Expand Up @@ -813,6 +816,7 @@ static void ccdc_config_vp(struct isp_ccdc_device *ccdc)
{
struct isp_pipeline *pipe = to_isp_pipeline(&ccdc->subdev.entity);
struct isp_device *isp = to_isp_device(ccdc);
const struct isp_format_info *info;
unsigned long l3_ick = pipe->l3_ick;
unsigned int max_div = isp->revision == ISP_REVISION_15_0 ? 64 : 8;
unsigned int div = 0;
Expand All @@ -821,7 +825,9 @@ static void ccdc_config_vp(struct isp_ccdc_device *ccdc)
fmtcfg_vp = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FMTCFG)
& ~(ISPCCDC_FMTCFG_VPIN_MASK | ISPCCDC_FMTCFG_VPIF_FRQ_MASK);

switch (ccdc->syncif.datsz) {
info = omap3isp_video_format_info(ccdc->formats[CCDC_PAD_SINK].code);

switch (info->width) {
case 8:
case 10:
fmtcfg_vp |= ISPCCDC_FMTCFG_VPIN_9_0;
Expand Down Expand Up @@ -959,17 +965,17 @@ void omap3isp_ccdc_max_rate(struct isp_ccdc_device *ccdc,
/*
* ccdc_config_sync_if - Set CCDC sync interface configuration
* @ccdc: Pointer to ISP CCDC device.
* @syncif: Structure containing the sync parameters like field state, CCDC in
* master/slave mode, raw/yuv data, polarity of data, field, hs, vs
* signals.
* @pdata: Parallel interface platform data (may be NULL)
* @data_size: Data size
*/
static void ccdc_config_sync_if(struct isp_ccdc_device *ccdc,
struct ispccdc_syncif *syncif)
struct isp_parallel_platform_data *pdata,
unsigned int data_size)
{
struct isp_device *isp = to_isp_device(ccdc);
u32 syn_mode = ISPCCDC_SYN_MODE_VDHDEN;

switch (syncif->datsz) {
switch (data_size) {
case 8:
syn_mode |= ISPCCDC_SYN_MODE_DATSIZ_8;
break;
Expand All @@ -984,20 +990,16 @@ static void ccdc_config_sync_if(struct isp_ccdc_device *ccdc,
break;
}

if (syncif->datapol)
if (pdata && pdata->data_pol)
syn_mode |= ISPCCDC_SYN_MODE_DATAPOL;

if (syncif->hdpol)
if (pdata && pdata->hs_pol)
syn_mode |= ISPCCDC_SYN_MODE_HDPOL;

if (syncif->vdpol)
if (pdata && pdata->vs_pol)
syn_mode |= ISPCCDC_SYN_MODE_VDPOL;

isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE);

if (!syncif->bt_r656_en)
isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_REC656IF,
ISPCCDC_REC656IF_R656ON);
}

/* CCDC formats descriptions */
Expand Down Expand Up @@ -1111,11 +1113,7 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc)
shift = depth_in - depth_out;
omap3isp_configure_bridge(isp, ccdc->input, pdata, shift);

ccdc->syncif.datsz = depth_out;
ccdc->syncif.datapol = 0;
ccdc->syncif.hdpol = pdata ? pdata->hs_pol : 0;
ccdc->syncif.vdpol = pdata ? pdata->vs_pol : 0;
ccdc_config_sync_if(ccdc, &ccdc->syncif);
ccdc_config_sync_if(ccdc, pdata, depth_out);

/* CCDC_PAD_SINK */
format = &ccdc->formats[CCDC_PAD_SINK];
Expand Down Expand Up @@ -2446,8 +2444,6 @@ int omap3isp_ccdc_init(struct isp_device *isp)
INIT_LIST_HEAD(&ccdc->lsc.free_queue);
spin_lock_init(&ccdc->lsc.req_lock);

ccdc->syncif.datsz = 0;

ccdc->clamp.oblen = 0;
ccdc->clamp.dcsubval = 0;

Expand Down
19 changes: 0 additions & 19 deletions drivers/media/video/omap3isp/ispccdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,22 +46,6 @@ enum ccdc_input_entity {

#define OMAP3ISP_CCDC_NEVENTS 16

/*
* struct ispccdc_syncif - Structure for Sync Interface between sensor and CCDC
* @datsz: Data size.
* @datapol: 0 - Positive, 1 - Negative.
* @hdpol: 0 - Positive, 1 - Negative.
* @vdpol: 0 - Positive, 1 - Negative.
* @bt_r656_en: 1 - Enable ITU-R BT656 mode, 0 - Sync mode.
*/
struct ispccdc_syncif {
u8 datsz;
u8 datapol;
u8 hdpol;
u8 vdpol;
u8 bt_r656_en;
};

enum ispccdc_lsc_state {
LSC_STATE_STOPPED = 0,
LSC_STATE_STOPPING = 1,
Expand Down Expand Up @@ -135,7 +119,6 @@ struct ispccdc_lsc {
* @lsc: Lens shading compensation configuration
* @update: Bitmask of controls to update during the next interrupt
* @shadow_update: Controls update in progress by userspace
* @syncif: Interface synchronization configuration
* @underrun: A buffer underrun occurred and a new buffer has been queued
* @state: Streaming state
* @lock: Serializes shadow_update with interrupt handler
Expand Down Expand Up @@ -164,8 +147,6 @@ struct isp_ccdc_device {
unsigned int update;
unsigned int shadow_update;

struct ispccdc_syncif syncif;

unsigned int underrun:1;
enum isp_pipeline_stream_state state;
spinlock_t lock;
Expand Down
3 changes: 3 additions & 0 deletions include/media/omap3isp.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ enum {
* 0 - Active high, 1 - Active low
* @vs_pol: Vertical synchronization polarity
* 0 - Active high, 1 - Active low
* @data_pol: Data polarity
* 0 - Normal, 1 - One's complement
* @bridge: CCDC Bridge input control
* ISP_BRIDGE_DISABLE - Disable
* ISP_BRIDGE_LITTLE_ENDIAN - Little endian
Expand All @@ -77,6 +79,7 @@ struct isp_parallel_platform_data {
unsigned int clk_pol:1;
unsigned int hs_pol:1;
unsigned int vs_pol:1;
unsigned int data_pol:1;
unsigned int bridge:2;
};

Expand Down

0 comments on commit 73ea57e

Please sign in to comment.