On 8/25/23 15:54, Manikandan Muralidharan wrote: > update the LCDC_HEOCFG30 and LCDC_HEOCFG31 registers of XLCDC IP which s/update/Update > supports vertical and horizontal scaling with Bilinear and Bicubic > co-efficients taps for Chroma and Luma componenets of the Pixel. > > Signed-off-by: Manikandan Muralidharan <manikandan.m@xxxxxxxxxxxxx> > --- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 ++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 4 ++++ > .../gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 20 +++++++++++++++++++ > 3 files changed, 26 insertions(+) > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > index d30aec174aa2..ae3e1a813482 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > @@ -536,6 +536,8 @@ static const struct atmel_hlcdc_layer_desc atmel_xlcdc_sam9x75_layers[] = { > .general_config = 12, > .csc = 16, > .scaler_config = 23, > + .vxs_config = 30, > + .hxs_config = 31, > }, > .clut_offset = 0x1300, > }, > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h > index 8b05a54b5fd0..27074a4c5aec 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h > @@ -198,6 +198,8 @@ > * @disc_pos: discard area position register > * @disc_size: discard area size register > * @csc: color space conversion register > + * @vxs_config: vertical scalar filter taps control register > + * @hxs_config: horizontal scalar filter taps control register > */ > struct atmel_hlcdc_layer_cfg_layout { > int xstride[ATMEL_HLCDC_LAYER_MAX_PLANES]; > @@ -217,6 +219,8 @@ struct atmel_hlcdc_layer_cfg_layout { > int disc_pos; > int disc_size; > int csc; > + int vxs_config; > + int hxs_config; > }; > > /** > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > index 26caf4cddfa4..a06ae2dc5909 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > @@ -972,6 +972,26 @@ static void xlcdc_csc_init(struct atmel_hlcdc_plane *plane, > atmel_hlcdc_layer_write_cfg(&plane->layer, > desc->layout.csc + i, > xlcdc_csc_coeffs[i]); > + > + if (desc->layout.vxs_config && desc->layout.hxs_config) { > + /* > + * Updating vxs.config and hxs.config fixes the > + * Green Color Issue in SAM9X7 EGT Video Player App > + */ > + atmel_hlcdc_layer_write_cfg(&plane->layer, > + desc->layout.vxs_config, > + ATMEL_XLCDC_LAYER_VXSYCFG_ONE | > + ATMEL_XLCDC_LAYER_VXSYTAP2_ENABLE | > + ATMEL_XLCDC_LAYER_VXSCCFG_ONE | > + ATMEL_XLCDC_LAYER_VXSCTAP2_ENABLE); > + > + atmel_hlcdc_layer_write_cfg(&plane->layer, > + desc->layout.hxs_config, > + ATMEL_XLCDC_LAYER_HXSYCFG_ONE | > + ATMEL_XLCDC_LAYER_HXSYTAP2_ENABLE | > + ATMEL_XLCDC_LAYER_HXSCCFG_ONE | > + ATMEL_XLCDC_LAYER_HXSCTAP2_ENABLE); > + } > } > > static int atmel_hlcdc_plane_init_properties(struct atmel_hlcdc_plane *plane)