diff options
Diffstat (limited to 'include/video/dpu.h')
-rw-r--r-- | include/video/dpu.h | 392 |
1 files changed, 125 insertions, 267 deletions
diff --git a/include/video/dpu.h b/include/video/dpu.h index bfbd51621376..fd429b8aa05d 100644 --- a/include/video/dpu.h +++ b/include/video/dpu.h @@ -18,6 +18,7 @@ #include <drm/drm_crtc.h> #include <drm/drm_modes.h> +#include <video/imx8-prefetch.h> #include <video/videomode.h> struct dpu_soc; @@ -418,6 +419,70 @@ typedef enum { CLKEN__FULL = 0x3, } pixengcfg_clken_t; +/* fetch unit types */ +enum { + FU_T_NA, + FU_T_FD, + FU_T_FE, + FU_T_FL, + FU_T_FW, +}; + +struct dpu_fetchunit; + +struct dpu_fetchunit_ops { + void (*set_burstlength)(struct dpu_fetchunit *fu, + dma_addr_t baddr, bool use_prefetch); + + void (*set_baseaddress)(struct dpu_fetchunit *fu, dma_addr_t paddr); + + void (*set_src_bpp)(struct dpu_fetchunit *fu, int bpp); + + void (*set_src_stride)(struct dpu_fetchunit *fu, + unsigned int width, int bpp, unsigned int stride, + dma_addr_t baddr, bool use_prefetch); + + void (*set_src_buf_dimensions)(struct dpu_fetchunit *fu, + unsigned int w, unsigned int h, u32 fmt, + bool deinterlace); + + void (*set_fmt)(struct dpu_fetchunit *fu, u32 fmt, bool deinterlace); + + void (*enable_src_buf)(struct dpu_fetchunit *fu); + void (*disable_src_buf)(struct dpu_fetchunit *fu); + bool (*is_enabled)(struct dpu_fetchunit *fu); + + void (*set_framedimensions)(struct dpu_fetchunit *fu, + unsigned int w, unsigned int h, + bool deinterlace); + + void (*set_controltrigger)(struct dpu_fetchunit *fu); + + unsigned int (*get_stream_id)(struct dpu_fetchunit *fu); + void (*set_stream_id)(struct dpu_fetchunit *fu, unsigned int id); + + void (*pin_off)(struct dpu_fetchunit *fu); + void (*unpin_off)(struct dpu_fetchunit *fu); + bool (*is_pinned_off)(struct dpu_fetchunit *fu); +}; + +struct dpu_fetchunit { + void __iomem *pec_base; + void __iomem *base; + char *name; + struct mutex mutex; + int id; + int sub_id; /* for fractional fetch units */ + int type; + bool inuse; + struct dpu_soc *dpu; + /* see DPU_PLANE_SRC_xxx */ + unsigned int stream_id; + bool pin_off; + struct dprc *dprc; + const struct dpu_fetchunit_ops *ops; +}; + int dpu_map_inner_irq(struct dpu_soc *dpu, int irq); /* Constant Frame Unit */ @@ -467,239 +532,54 @@ struct dpu_extdst *dpu_ed_get(struct dpu_soc *dpu, int id); void dpu_ed_put(struct dpu_extdst *ed); /* Fetch Decode Unit */ -struct dpu_fetchdecode; -int fetchdecode_pixengcfg_dynamic_src_sel(struct dpu_fetchdecode *fd, +int fetchdecode_pixengcfg_dynamic_src_sel(struct dpu_fetchunit *fu, fd_dynamic_src_sel_t src); -void fetchdecode_shden(struct dpu_fetchdecode *fd, bool enable); -void fetchdecode_baddr_autoupdate(struct dpu_fetchdecode *fd, u8 layer_mask); -void fetchdecode_set_burstlength(struct dpu_fetchdecode *fd, dma_addr_t baddr, - bool use_prefetch); -void fetchdecode_baseaddress(struct dpu_fetchdecode *fd, dma_addr_t paddr); -void fetchdecode_source_bpp(struct dpu_fetchdecode *fd, int bpp); -void fetchdecode_source_stride(struct dpu_fetchdecode *fd, unsigned int width, - int bpp, unsigned int stride, - dma_addr_t baddr, bool use_prefetch); -void fetchdecode_src_buf_dimensions(struct dpu_fetchdecode *fd, unsigned int w, - unsigned int h, bool deinterlace); -void fetchdecode_set_fmt(struct dpu_fetchdecode *fd, u32 fmt, bool deinterlace); -void fetchdecode_layeroffset(struct dpu_fetchdecode *fd, unsigned int x, +void fetchdecode_layeroffset(struct dpu_fetchunit *fd, unsigned int x, unsigned int y); -void fetchdecode_clipoffset(struct dpu_fetchdecode *fd, unsigned int x, +void fetchdecode_clipoffset(struct dpu_fetchunit *fd, unsigned int x, unsigned int y); -void fetchdecode_clipdimensions(struct dpu_fetchdecode *fd, unsigned int w, +void fetchdecode_clipdimensions(struct dpu_fetchunit *fd, unsigned int w, unsigned int h); -void fetchdecode_source_buffer_enable(struct dpu_fetchdecode *fd); -void fetchdecode_source_buffer_disable(struct dpu_fetchdecode *fd); -bool fetchdecode_is_enabled(struct dpu_fetchdecode *fd); -void fetchdecode_framedimensions(struct dpu_fetchdecode *fd, unsigned int w, - unsigned int h, bool deinterlace); -void fetchdecode_rgb_constantcolor(struct dpu_fetchdecode *fd, +void fetchdecode_rgb_constantcolor(struct dpu_fetchunit *fd, u8 r, u8 g, u8 b, u8 a); -void fetchdecode_yuv_constantcolor(struct dpu_fetchdecode *fd, +void fetchdecode_yuv_constantcolor(struct dpu_fetchunit *fd, u8 y, u8 u, u8 v); -void fetchdecode_controltrigger(struct dpu_fetchdecode *fd, bool trigger); -int fetchdecode_fetchtype(struct dpu_fetchdecode *fd, fetchtype_t *type); -shadow_load_req_t fetchdecode_to_shdldreq_t(struct dpu_fetchdecode *fd); -u32 fetchdecode_get_vproc_mask(struct dpu_fetchdecode *fd); -bool fetchdecode_need_fetcheco(struct dpu_fetchdecode *fd, u32 fmt); -unsigned int fetchdecode_get_stream_id(struct dpu_fetchdecode *fd); -void fetchdecode_set_stream_id(struct dpu_fetchdecode *fd, unsigned int id); -void -fetchdecode_configure_prefetch(struct dpu_fetchdecode *fd, - unsigned int stream_id, - unsigned int width, unsigned int height, - unsigned int x_offset, unsigned int y_offset, - unsigned int stride, u32 format, u64 modifier, - unsigned long baddr, unsigned long uv_baddr, - bool start, bool aux_start, - bool fb_is_interlaced); -void fetchdecode_enable_prefetch(struct dpu_fetchdecode *fd); -void fetchdecode_disable_prefetch(struct dpu_fetchdecode *fd); -void fetchdecode_reg_update_prefetch(struct dpu_fetchdecode *fd); -void fetchdecode_prefetch_first_frame_handle(struct dpu_fetchdecode *fd); -void fetchdecode_prefetch_irq_handle(struct dpu_fetchdecode *fd); -void fetchdecode_prefetch_enable_first_frame_irq(struct dpu_fetchdecode *fd); -bool fetchdecode_has_prefetch(struct dpu_fetchdecode *fd); -bool fetchdecode_prefetch_format_supported(struct dpu_fetchdecode *fd, - u32 format, u64 modifier); -bool fetchdecode_prefetch_stride_supported(struct dpu_fetchdecode *fd, - unsigned int stride, - unsigned int uv_stride, - unsigned int width, - u32 format); -bool fetchdecode_prefetch_stride_double_check(struct dpu_fetchdecode *fd, - unsigned int stride, - unsigned int uv_stride, - unsigned int width, - u32 format, - dma_addr_t baseaddr, - dma_addr_t uv_baseaddr); -void fetchdecode_pin_off(struct dpu_fetchdecode *fd); -void fetchdecode_unpin_off(struct dpu_fetchdecode *fd); -bool fetchdecode_is_pinned_off(struct dpu_fetchdecode *fd); -struct dpu_fetchdecode *dpu_fd_get(struct dpu_soc *dpu, int id); -void dpu_fd_put(struct dpu_fetchdecode *fd); +int fetchdecode_fetchtype(struct dpu_fetchunit *fd, fetchtype_t *type); +shadow_load_req_t fetchdecode_to_shdldreq_t(struct dpu_fetchunit *fd); +u32 fetchdecode_get_vproc_mask(struct dpu_fetchunit *fd); +bool fetchdecode_need_fetcheco(struct dpu_fetchunit *fd, u32 fmt); +struct dpu_fetchunit *dpu_fd_get(struct dpu_soc *dpu, int id); +void dpu_fd_put(struct dpu_fetchunit *fu); /* Fetch ECO Unit */ -struct dpu_fetcheco; -void fetcheco_shden(struct dpu_fetcheco *fe, bool enable); -void fetcheco_set_burstlength(struct dpu_fetcheco *fe, dma_addr_t baddr, - bool use_prefetch); -void fetcheco_baseaddress(struct dpu_fetcheco *fe, dma_addr_t paddr); -void fetcheco_source_bpp(struct dpu_fetcheco *fe, int bpp); -void fetcheco_source_stride(struct dpu_fetcheco *fe, unsigned int width, - int bpp, unsigned int stride, - dma_addr_t baddr, bool use_prefetch); -void fetcheco_src_buf_dimensions(struct dpu_fetcheco *fe, unsigned int w, - unsigned int h, u32 fmt, bool deinterlace); -void fetcheco_set_fmt(struct dpu_fetcheco *fe, u32 fmt); -void fetcheco_layeroffset(struct dpu_fetcheco *fe, unsigned int x, +void fetcheco_layeroffset(struct dpu_fetchunit *fu, unsigned int x, unsigned int y); -void fetcheco_clipoffset(struct dpu_fetcheco *fe, unsigned int x, +void fetcheco_clipoffset(struct dpu_fetchunit *fu, unsigned int x, unsigned int y); -void fetcheco_clipdimensions(struct dpu_fetcheco *fe, unsigned int w, +void fetcheco_clipdimensions(struct dpu_fetchunit *fu, unsigned int w, unsigned int h); -void fetcheco_source_buffer_enable(struct dpu_fetcheco *fe); -void fetcheco_source_buffer_disable(struct dpu_fetcheco *fe); -bool fetcheco_is_enabled(struct dpu_fetcheco *fe); -void fetcheco_framedimensions(struct dpu_fetcheco *fe, unsigned int w, - unsigned int h, bool deinterlace); -void fetcheco_frameresampling(struct dpu_fetcheco *fe, unsigned int x, +void fetcheco_frameresampling(struct dpu_fetchunit *fu, unsigned int x, unsigned int y); -void fetcheco_controltrigger(struct dpu_fetcheco *fe, bool trigger); -int fetcheco_fetchtype(struct dpu_fetcheco *fe, fetchtype_t *type); -dpu_block_id_t fetcheco_get_block_id(struct dpu_fetcheco *fe); -unsigned int fetcheco_get_stream_id(struct dpu_fetcheco *fe); -void fetcheco_set_stream_id(struct dpu_fetcheco *fe, unsigned int id); -void fetcheco_pin_off(struct dpu_fetcheco *fe); -void fetcheco_unpin_off(struct dpu_fetcheco *fe); -bool fetcheco_is_pinned_off(struct dpu_fetcheco *fe); -struct dpu_fetcheco *dpu_fe_get(struct dpu_soc *dpu, int id); -void dpu_fe_put(struct dpu_fetcheco *fe); +int fetcheco_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type); +dpu_block_id_t fetcheco_get_block_id(struct dpu_fetchunit *fu); +struct dpu_fetchunit *dpu_fe_get(struct dpu_soc *dpu, int id); +void dpu_fe_put(struct dpu_fetchunit *fu); /* Fetch Layer Unit */ -struct dpu_fetchlayer; -void fetchlayer_shden(struct dpu_fetchlayer *fl, bool enable); -void fetchlayer_baddr_autoupdate(struct dpu_fetchlayer *fl, u8 layer_mask); -void fetchlayer_shdldreq_sticky(struct dpu_fetchlayer *fl, u8 layer_mask); -void fetchlayer_set_burstlength(struct dpu_fetchlayer *fl, dma_addr_t baddr, - bool use_prefetch); -void fetchlayer_baseaddress(struct dpu_fetchlayer *fl, unsigned int index, - dma_addr_t paddr); -void fetchlayer_source_bpp(struct dpu_fetchlayer *fl, unsigned int index, - int bpp); -void fetchlayer_source_stride(struct dpu_fetchlayer *fl, unsigned int index, - unsigned int width, int bpp, unsigned int stride, - dma_addr_t baddr, bool use_prefetch); -void fetchlayer_src_buf_dimensions(struct dpu_fetchlayer *fl, - unsigned int index, unsigned int w, - unsigned int h); -void fetchlayer_set_fmt(struct dpu_fetchlayer *fl, unsigned int index, u32 fmt); -void fetchlayer_source_buffer_enable(struct dpu_fetchlayer *fl, - unsigned int index); -void fetchlayer_source_buffer_disable(struct dpu_fetchlayer *fl, - unsigned int index); -bool fetchlayer_is_enabled(struct dpu_fetchlayer *fl, unsigned int index); -void fetchlayer_framedimensions(struct dpu_fetchlayer *fl, unsigned int w, - unsigned int h); -void fetchlayer_rgb_constantcolor(struct dpu_fetchlayer *fl, +void fetchlayer_rgb_constantcolor(struct dpu_fetchunit *fu, u8 r, u8 g, u8 b, u8 a); -void fetchlayer_yuv_constantcolor(struct dpu_fetchlayer *fl, u8 y, u8 u, u8 v); -void fetchlayer_controltrigger(struct dpu_fetchlayer *fl, bool trigger); -int fetchlayer_fetchtype(struct dpu_fetchlayer *fl, fetchtype_t *type); -unsigned int fetchlayer_get_stream_id(struct dpu_fetchlayer *fl); -void fetchlayer_set_stream_id(struct dpu_fetchlayer *fl, unsigned int id); -void -fetchlayer_configure_prefetch(struct dpu_fetchlayer *fl, unsigned int stream_id, - unsigned int width, unsigned int height, - unsigned int x_offset, unsigned int y_offset, - unsigned int stride, u32 format, u64 modifier, - unsigned long baddr, bool start); -void fetchlayer_enable_prefetch(struct dpu_fetchlayer *fl); -void fetchlayer_disable_prefetch(struct dpu_fetchlayer *fl); -void fetchlayer_reg_update_prefetch(struct dpu_fetchlayer *fl); -void fetchlayer_prefetch_first_frame_handle(struct dpu_fetchlayer *fl); -void fetchlayer_prefetch_irq_handle(struct dpu_fetchlayer *fl); -void fetchlayer_prefetch_enable_first_frame_irq(struct dpu_fetchlayer *fl); -bool fetchlayer_has_prefetch(struct dpu_fetchlayer *fl); -bool fetchlayer_prefetch_format_supported(struct dpu_fetchlayer *fl, - u32 format, u64 modifier); -bool fetchlayer_prefetch_stride_supported(struct dpu_fetchlayer *fl, - unsigned int stride, - unsigned int width, - u32 format); -bool fetchlayer_prefetch_stride_double_check(struct dpu_fetchlayer *fl, - unsigned int stride, - unsigned int width, - u32 format, - dma_addr_t baseaddr); -void fetchlayer_pin_off(struct dpu_fetchlayer *fl); -void fetchlayer_unpin_off(struct dpu_fetchlayer *fl); -bool fetchlayer_is_pinned_off(struct dpu_fetchlayer *fl); -struct dpu_fetchlayer *dpu_fl_get(struct dpu_soc *dpu, int id); -void dpu_fl_put(struct dpu_fetchlayer *fl); +void fetchlayer_yuv_constantcolor(struct dpu_fetchunit *fu, u8 y, u8 u, u8 v); +int fetchlayer_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type); +struct dpu_fetchunit *dpu_fl_get(struct dpu_soc *dpu, int id); +void dpu_fl_put(struct dpu_fetchunit *fu); /* Fetch Warp Unit */ -struct dpu_fetchwarp; -void fetchwarp_shden(struct dpu_fetchwarp *fw, bool enable); -void fetchwarp_baddr_autoupdate(struct dpu_fetchwarp *fw, u8 layer_mask); -void fetchwarp_shdldreq_sticky(struct dpu_fetchwarp *fw, u8 layer_mask); -void fetchwarp_set_burstlength(struct dpu_fetchwarp *fw, dma_addr_t baddr, - bool use_prefetch); -void fetchwarp_baseaddress(struct dpu_fetchwarp *fw, unsigned int index, - dma_addr_t paddr); -void fetchwarp_source_bpp(struct dpu_fetchwarp *fw, unsigned int index, - int bpp); -void fetchwarp_source_stride(struct dpu_fetchwarp *fw, unsigned int index, - unsigned int width, int bpp, unsigned int stride, - dma_addr_t baddr, bool use_prefetch); -void fetchwarp_src_buf_dimensions(struct dpu_fetchwarp *fw, - unsigned int index, unsigned int w, - unsigned int h); -void fetchwarp_set_fmt(struct dpu_fetchwarp *fw, unsigned int index, u32 fmt); -void fetchwarp_source_buffer_enable(struct dpu_fetchwarp *fw, - unsigned int index); -void fetchwarp_source_buffer_disable(struct dpu_fetchwarp *fw, - unsigned int index); -bool fetchwarp_is_enabled(struct dpu_fetchwarp *fw, unsigned int index); -void fetchwarp_framedimensions(struct dpu_fetchwarp *fw, unsigned int w, - unsigned int h); -void fetchwarp_rgb_constantcolor(struct dpu_fetchwarp *fw, +void fetchwarp_rgb_constantcolor(struct dpu_fetchunit *fu, u8 r, u8 g, u8 b, u8 a); -void fetchwarp_yuv_constantcolor(struct dpu_fetchwarp *fw, u8 y, u8 u, u8 v); -void fetchwarp_controltrigger(struct dpu_fetchwarp *fw, bool trigger); -int fetchwarp_fetchtype(struct dpu_fetchwarp *fw, fetchtype_t *type); -unsigned int fetchwarp_get_stream_id(struct dpu_fetchwarp *fw); -void fetchwarp_set_stream_id(struct dpu_fetchwarp *fw, unsigned int id); -void -fetchwarp_configure_prefetch(struct dpu_fetchwarp *fw, unsigned int stream_id, - unsigned int width, unsigned int height, - unsigned int x_offset, unsigned int y_offset, - unsigned int stride, u32 format, u64 modifier, - unsigned long baddr, bool start); -void fetchwarp_enable_prefetch(struct dpu_fetchwarp *fw); -void fetchwarp_disable_prefetch(struct dpu_fetchwarp *fw); -void fetchwarp_reg_update_prefetch(struct dpu_fetchwarp *fw); -void fetchwarp_prefetch_first_frame_handle(struct dpu_fetchwarp *fw); -void fetchwarp_prefetch_irq_handle(struct dpu_fetchwarp *fw); -void fetchwarp_prefetch_enable_first_frame_irq(struct dpu_fetchwarp *fw); -bool fetchwarp_has_prefetch(struct dpu_fetchwarp *fw); -bool fetchwarp_prefetch_format_supported(struct dpu_fetchwarp *fw, - u32 format, u64 modifier); -bool fetchwarp_prefetch_stride_supported(struct dpu_fetchwarp *fw, - unsigned int stride, - unsigned int width, - u32 format); -bool fetchwarp_prefetch_stride_double_check(struct dpu_fetchwarp *fw, - unsigned int stride, - unsigned int width, - u32 format, - dma_addr_t baseaddr); -void fetchwarp_pin_off(struct dpu_fetchwarp *fw); -void fetchwarp_unpin_off(struct dpu_fetchwarp *fw); -bool fetchwarp_is_pinned_off(struct dpu_fetchwarp *fw); -struct dpu_fetchwarp *dpu_fw_get(struct dpu_soc *dpu, int id); -void dpu_fw_put(struct dpu_fetchwarp *fw); +void fetchwarp_yuv_constantcolor(struct dpu_fetchunit *fu, u8 y, u8 u, u8 v); +int fetchwarp_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type); +struct dpu_fetchunit *dpu_fw_get(struct dpu_soc *dpu, int id); +void dpu_fw_put(struct dpu_fetchunit *fu); /* Frame Generator Unit */ struct dpu_framegen; @@ -790,9 +670,9 @@ void vscaler_set_stream_id(struct dpu_vscaler *vs, unsigned int id); struct dpu_vscaler *dpu_vs_get(struct dpu_soc *dpu, int id); void dpu_vs_put(struct dpu_vscaler *vs); -struct dpu_fetcheco *fetchdecode_get_fetcheco(struct dpu_fetchdecode *fd); -struct dpu_hscaler *fetchdecode_get_hscaler(struct dpu_fetchdecode *fd); -struct dpu_vscaler *fetchdecode_get_vscaler(struct dpu_fetchdecode *fd); +struct dpu_fetchunit *fetchdecode_get_fetcheco(struct dpu_fetchunit *fu); +struct dpu_hscaler *fetchdecode_get_hscaler(struct dpu_fetchunit *fu); +struct dpu_vscaler *fetchdecode_get_vscaler(struct dpu_fetchunit *fu); bool dpu_has_prefetch_fixup(struct dpu_soc *dpu); @@ -804,51 +684,29 @@ u32 dpu_vproc_get_fetcheco_cap(u32 cap_mask); u32 dpu_vproc_get_hscale_cap(u32 cap_mask); u32 dpu_vproc_get_vscale_cap(u32 cap_mask); -bool fetchunit_has_prefetch(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw); -bool fetchunit_prefetch_format_supported(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw, - u32 format, u64 modifier); -bool fetchunit_prefetch_stride_supported(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw, - unsigned int stride, - unsigned int uv_stride, - unsigned int width, - u32 format); -bool fetchunit_prefetch_stride_double_check(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw, - unsigned int stride, - unsigned int uv_stride, - unsigned int width, - u32 format, - dma_addr_t baseaddr, - dma_addr_t uv_baseaddr); -void fetchunit_configure_prefetch(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw, - unsigned int stream_id, - unsigned int width, unsigned int height, - unsigned int x_offset, unsigned int y_offset, - unsigned int stride, u32 format, u64 modifier, - unsigned long baddr, unsigned long uv_baddr, - bool start, bool aux_start, - bool fb_is_interlaced); -void fetchunit_enable_prefetch(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw); -void fetchunit_reg_update_prefetch(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw); -void fetchunit_prefetch_first_frame_handle(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw); -void fetchunit_disable_prefetch(struct dpu_fetchdecode *fd, - struct dpu_fetchlayer *fl, - struct dpu_fetchwarp *fw); +void fetchunit_get_dprc(struct dpu_fetchunit *fu, void *data); +void fetchunit_shden(struct dpu_fetchunit *fu, bool enable); +void fetchunit_baddr_autoupdate(struct dpu_fetchunit *fu, u8 layer_mask); +void fetchunit_shdldreq_sticky(struct dpu_fetchunit *fu, u8 layer_mask); +void fetchunit_set_burstlength(struct dpu_fetchunit *fu, dma_addr_t baddr, + bool use_prefetch); +void fetchunit_set_baseaddress(struct dpu_fetchunit *fu, dma_addr_t paddr); +void fetchunit_set_src_bpp(struct dpu_fetchunit *fu, int bpp); +void fetchunit_set_src_stride(struct dpu_fetchunit *fu, + unsigned int width, int bpp, unsigned int stride, + dma_addr_t baddr, bool use_prefetch); +void fetchunit_enable_src_buf(struct dpu_fetchunit *fu); +void fetchunit_disable_src_buf(struct dpu_fetchunit *fu); +bool fetchunit_is_enabled(struct dpu_fetchunit *fu); +unsigned int fetchunit_get_stream_id(struct dpu_fetchunit *fu); +void fetchunit_set_stream_id(struct dpu_fetchunit *fu, unsigned int id); +void fetchunit_pin_off(struct dpu_fetchunit *fu); +void fetchunit_unpin_off(struct dpu_fetchunit *fu); +bool fetchunit_is_pinned_off(struct dpu_fetchunit *fu); +bool fetchunit_is_fetchdecode(struct dpu_fetchunit *fu); +bool fetchunit_is_fetcheco(struct dpu_fetchunit *fu); +bool fetchunit_is_fetchlayer(struct dpu_fetchunit *fu); +bool fetchunit_is_fetchwarp(struct dpu_fetchunit *fu); /* dpu blit engine */ struct dpu_bliteng; @@ -887,10 +745,10 @@ void dpu_be_configure_prefetch(struct dpu_bliteng *dpu_be, struct dpu_plane_res { struct dpu_constframe *cf[2]; struct dpu_extdst *ed[2]; - struct dpu_fetchdecode *fd[MAX_FD_NUM]; - struct dpu_fetcheco *fe[2]; - struct dpu_fetchlayer *fl[MAX_FL_NUM]; - struct dpu_fetchwarp *fw[MAX_FW_NUM]; + struct dpu_fetchunit *fd[MAX_FD_NUM]; + struct dpu_fetchunit *fe[2]; + struct dpu_fetchunit *fl[MAX_FL_NUM]; + struct dpu_fetchunit *fw[MAX_FW_NUM]; struct dpu_framegen *fg[2]; struct dpu_hscaler *hs[2]; struct dpu_layerblend *lb[MAX_LB_NUM]; |