gpu: ipu-v3: Add support for double read/write reduction
Allow to skip writing odd chroma rows by setting the RDRW bit for 4:2:0 chroma subsampled formats for any IDMAC write channel. This also allows to skip reading odd rows for the VDIC read channel. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
parent
16e9ab820a
commit
e1e9733cd3
|
@ -224,6 +224,12 @@ void ipu_cpmem_set_resolution(struct ipuv3_channel *ch, int xres, int yres)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ipu_cpmem_set_resolution);
|
EXPORT_SYMBOL_GPL(ipu_cpmem_set_resolution);
|
||||||
|
|
||||||
|
void ipu_cpmem_skip_odd_chroma_rows(struct ipuv3_channel *ch)
|
||||||
|
{
|
||||||
|
ipu_ch_param_write_field(ch, IPU_FIELD_RDRW, 1);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(ipu_cpmem_skip_odd_chroma_rows);
|
||||||
|
|
||||||
void ipu_cpmem_set_stride(struct ipuv3_channel *ch, int stride)
|
void ipu_cpmem_set_stride(struct ipuv3_channel *ch, int stride)
|
||||||
{
|
{
|
||||||
ipu_ch_param_write_field(ch, IPU_FIELD_SLY, stride - 1);
|
ipu_ch_param_write_field(ch, IPU_FIELD_SLY, stride - 1);
|
||||||
|
|
|
@ -250,6 +250,7 @@ struct ipu_image {
|
||||||
|
|
||||||
void ipu_cpmem_zero(struct ipuv3_channel *ch);
|
void ipu_cpmem_zero(struct ipuv3_channel *ch);
|
||||||
void ipu_cpmem_set_resolution(struct ipuv3_channel *ch, int xres, int yres);
|
void ipu_cpmem_set_resolution(struct ipuv3_channel *ch, int xres, int yres);
|
||||||
|
void ipu_cpmem_skip_odd_chroma_rows(struct ipuv3_channel *ch);
|
||||||
void ipu_cpmem_set_stride(struct ipuv3_channel *ch, int stride);
|
void ipu_cpmem_set_stride(struct ipuv3_channel *ch, int stride);
|
||||||
void ipu_cpmem_set_high_priority(struct ipuv3_channel *ch);
|
void ipu_cpmem_set_high_priority(struct ipuv3_channel *ch);
|
||||||
void ipu_cpmem_set_buffer(struct ipuv3_channel *ch, int bufnum, dma_addr_t buf);
|
void ipu_cpmem_set_buffer(struct ipuv3_channel *ch, int bufnum, dma_addr_t buf);
|
||||||
|
|
Loading…
Reference in New Issue