|
@@ -111,6 +111,12 @@ struct vpss_hw_ops {
|
|
|
void (*select_ccdc_source)(enum vpss_ccdc_source_sel src_sel);
|
|
|
/* clear wbl overflow bit */
|
|
|
int (*clear_wbl_overflow)(enum vpss_wbl_sel wbl_sel);
|
|
|
+ /* set sync polarity */
|
|
|
+ void (*set_sync_pol)(struct vpss_sync_pol);
|
|
|
+ /* set the PG_FRAME_SIZE register*/
|
|
|
+ void (*set_pg_frame_size)(struct vpss_pg_frame_size);
|
|
|
+ /* check and clear interrupt if occured */
|
|
|
+ int (*dma_complete_interrupt)(void);
|
|
|
};
|
|
|
|
|
|
/* vpss configuration */
|
|
@@ -175,6 +181,14 @@ static void dm355_select_ccdc_source(enum vpss_ccdc_source_sel src_sel)
|
|
|
bl_regw(src_sel << VPSS_HSSISEL_SHIFT, DM355_VPSSBL_CCDCMUX);
|
|
|
}
|
|
|
|
|
|
+int vpss_dma_complete_interrupt(void)
|
|
|
+{
|
|
|
+ if (!oper_cfg.hw_ops.dma_complete_interrupt)
|
|
|
+ return 2;
|
|
|
+ return oper_cfg.hw_ops.dma_complete_interrupt();
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(vpss_dma_complete_interrupt);
|
|
|
+
|
|
|
int vpss_select_ccdc_source(enum vpss_ccdc_source_sel src_sel)
|
|
|
{
|
|
|
if (!oper_cfg.hw_ops.select_ccdc_source)
|
|
@@ -200,6 +214,15 @@ static int dm644x_clear_wbl_overflow(enum vpss_wbl_sel wbl_sel)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+void vpss_set_sync_pol(struct vpss_sync_pol sync)
|
|
|
+{
|
|
|
+ if (!oper_cfg.hw_ops.set_sync_pol)
|
|
|
+ return;
|
|
|
+
|
|
|
+ oper_cfg.hw_ops.set_sync_pol(sync);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(vpss_set_sync_pol);
|
|
|
+
|
|
|
int vpss_clear_wbl_overflow(enum vpss_wbl_sel wbl_sel)
|
|
|
{
|
|
|
if (!oper_cfg.hw_ops.clear_wbl_overflow)
|
|
@@ -365,6 +388,15 @@ void dm365_vpss_set_sync_pol(struct vpss_sync_pol sync)
|
|
|
}
|
|
|
EXPORT_SYMBOL(dm365_vpss_set_sync_pol);
|
|
|
|
|
|
+void vpss_set_pg_frame_size(struct vpss_pg_frame_size frame_size)
|
|
|
+{
|
|
|
+ if (!oper_cfg.hw_ops.set_pg_frame_size)
|
|
|
+ return;
|
|
|
+
|
|
|
+ oper_cfg.hw_ops.set_pg_frame_size(frame_size);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(vpss_set_pg_frame_size);
|
|
|
+
|
|
|
void dm365_vpss_set_pg_frame_size(struct vpss_pg_frame_size frame_size)
|
|
|
{
|
|
|
int current_reg = ((frame_size.hlpfr >> 1) - 1) << 16;
|