diff options
Diffstat (limited to 'drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c')
| -rw-r--r-- | drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c | 19 | 
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c index ef28122a5ed4..9a6e8b332e12 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c @@ -97,25 +97,31 @@ void mxc_jpeg_sw_reset(void __iomem *reg)  	writel(GLB_CTRL_SFT_RST, reg + GLB_CTRL);  } -void mxc_jpeg_enc_mode_conf(struct device *dev, void __iomem *reg) +void mxc_jpeg_enc_mode_conf(struct device *dev, void __iomem *reg, u8 extseq)  {  	dev_dbg(dev, "CAST Encoder CONFIG...\n");  	/*  	 * "Config_Mode" enabled, "Config_Mode auto clear enabled",  	 */ -	writel(0xa0, reg + CAST_MODE); +	if (extseq) +		writel(0xb0, reg + CAST_MODE); +	else +		writel(0xa0, reg + CAST_MODE);  	/* all markers and segments */  	writel(0x3ff, reg + CAST_CFG_MODE);  } -void mxc_jpeg_enc_mode_go(struct device *dev, void __iomem *reg) +void mxc_jpeg_enc_mode_go(struct device *dev, void __iomem *reg, u8 extseq)  {  	dev_dbg(dev, "CAST Encoder GO...\n");  	/*  	 * "GO" enabled, "GO bit auto clear" enabled  	 */ -	writel(0x140, reg + CAST_MODE); +	if (extseq) +		writel(0x150, reg + CAST_MODE); +	else +		writel(0x140, reg + CAST_MODE);  }  void mxc_jpeg_enc_set_quality(struct device *dev, void __iomem *reg, u8 quality) @@ -178,3 +184,8 @@ void mxc_jpeg_set_desc(u32 desc, void __iomem *reg, int slot)  	writel(desc | MXC_NXT_DESCPT_EN,  	       reg + MXC_SLOT_OFFSET(slot, SLOT_NXT_DESCPT_PTR));  } + +void mxc_jpeg_clr_desc(void __iomem *reg, int slot) +{ +	writel(0, reg + MXC_SLOT_OFFSET(slot, SLOT_NXT_DESCPT_PTR)); +}  |