}
dcss_dtrc_set_format_mod(dcss_plane->dcss, dcss_plane->ch_num,
- pix_format, fb->modifier);
+ fb->modifier);
dcss_dtrc_addr_set(dcss_plane->dcss, dcss_plane->ch_num,
p1_ba, p2_ba, dcss_plane->dtrc_table_ofs_val);
break;
if (plane->type == DRM_PLANE_TYPE_OVERLAY)
dcss_dtrc_set_res(dcss_plane->dcss, dcss_plane->ch_num,
- &src, &old_src);
+ &src, &old_src, pixel_format);
/* DTRC has probably aligned the sizes. */
adj_w = src.x2 - src.x1;
ch = &dtrc->ch[ch_num];
-
dcss_dtrc_write(dtrc, ch_num, p1_ba, DCSS_DTRC_DYDSADDR);
dcss_dtrc_write(dtrc, ch_num, p2_ba, DCSS_DTRC_DCDSADDR);
EXPORT_SYMBOL(dcss_dtrc_addr_set);
void dcss_dtrc_set_res(struct dcss_soc *dcss, int ch_num, struct drm_rect *src,
- struct drm_rect *old_src)
+ struct drm_rect *old_src, u32 pixel_format)
{
struct dcss_dtrc_priv *dtrc = dcss->dtrc_priv;
struct dcss_dtrc_ch *ch;
bank = dcss_readl(ch->base_reg + DCSS_DTRC_DTCTRL) >> 31;
+ ch->pix_format = pixel_format;
+
pix_depth = ch->pix_format == DRM_FORMAT_P010 ? 10 : 8;
old_xres = old_src->x2 - old_src->x1;
old_yres = old_src->y2 - old_src->y1;
return ch->running;
}
-void dcss_dtrc_set_format_mod(struct dcss_soc *dcss, int ch_num,
- u32 pix_format, u64 modifier)
+void dcss_dtrc_set_format_mod(struct dcss_soc *dcss, int ch_num, u64 modifier)
{
struct dcss_dtrc_priv *dtrc = dcss->dtrc_priv;
struct dcss_dtrc_ch *ch;
ch = &dtrc->ch[ch_num];
- ch->pix_format = pix_format;
ch->format_modifier = modifier;
}
EXPORT_SYMBOL(dcss_dtrc_set_format_mod);
/* DTRC */
void dcss_dtrc_bypass(struct dcss_soc *dcss, int ch_num);
void dcss_dtrc_set_res(struct dcss_soc *dcss, int ch_num, struct drm_rect *src,
- struct drm_rect *old_src);
+ struct drm_rect *old_src, u32 pixel_format);
void dcss_dtrc_addr_set(struct dcss_soc *dcss, int ch_num, u32 p1_ba, u32 p2_ba,
uint64_t dec_table_ofs);
void dcss_dtrc_enable(struct dcss_soc *dcss, int ch_num, bool enable);
-void dcss_dtrc_set_format_mod(struct dcss_soc *dcss, int ch_num,
- u32 pix_format, u64 modifier);
+void dcss_dtrc_set_format_mod(struct dcss_soc *dcss, int ch_num, u64 modifier);
enum dcss_color_space {
DCSS_COLORSPACE_RGB,