lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190708073226.GA5492@jamwan02-TSP300>
Date:   Mon, 8 Jul 2019 07:32:33 +0000
From:   "james qian wang (Arm Technology China)" <james.qian.wang@....com>
To:     Liviu Dudau <Liviu.Dudau@....com>,
        "airlied@...ux.ie" <airlied@...ux.ie>,
        Brian Starkey <Brian.Starkey@....com>,
        "maarten.lankhorst@...ux.intel.com" 
        <maarten.lankhorst@...ux.intel.com>,
        "sean@...rly.run" <sean@...rly.run>, nd <nd@....com>,
        Ayan Halder <Ayan.Halder@....com>,
        "Oscar Zhang (Arm Technology China)" <Oscar.Zhang@....com>,
        "Tiannan Zhu (Arm Technology China)" <Tiannan.Zhu@....com>,
        "Jonathan Chai (Arm Technology China)" <Jonathan.Chai@....com>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
        "Julien Yin (Arm Technology China)" <Julien.Yin@....com>,
        "Channing Chen (Arm Technology China)" <Channing.Chen@....com>,
        "Yiqi Kang (Arm Technology China)" <Yiqi.Kang@....com>,
        "thomas Sun (Arm Technology China)" <thomas.Sun@....com>,
        "Lowry Li (Arm Technology China)" <Lowry.Li@....com>,
        Ben Davis <Ben.Davis@....com>
Subject: Re: [PATCH 2/2] drm/komeda: Computing layer_split and image_enhancer
 internally

On Fri, Jul 05, 2019 at 02:25:46PM +0200, Daniel Vetter wrote:
> On Fri, Jul 05, 2019 at 11:44:45AM +0000, james qian wang (Arm Technology China) wrote:
> > For layer_split:
> > Enable it if the scaling exceed the accept range of scaler.
> >
> > For image_enhancer:
> > Enable it if the scaling is a 2x+ scaling
>
> Imo should be two patches. Aside from that (and with 0 knowledge about the
> hw, just looking at this from a kms/atomic uapi pov):
>
> Acked-by: Daniel Vetter <daniel.vetter@...ll.ch>

Hi Daniel:
I split this change to two patches, please ignore this one, and please
help to review the below sparated ones:
- https://patchwork.freedesktop.org/series/63340/ for layer_split
- https://patchwork.freedesktop.org/series/63341/ for image enhancer

Thanks
James
> >
> > Signed-off-by: james qian wang (Arm Technology China) <james.qian.wang@....com>
> > ---
> >  .../gpu/drm/arm/display/komeda/komeda_pipeline.h  |  3 ++-
> >  .../arm/display/komeda/komeda_pipeline_state.c    | 15 ++++++++++++++-
> >  drivers/gpu/drm/arm/display/komeda/komeda_plane.c |  8 +-------
> >  .../drm/arm/display/komeda/komeda_wb_connector.c  | 10 +---------
> >  4 files changed, 18 insertions(+), 18 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h
> > index fc1b8613385e..a90bcbb3cb23 100644
> > --- a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h
> > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h
> > @@ -537,7 +537,8 @@ void komeda_pipeline_disable(struct komeda_pipeline *pipe,
> >  void komeda_pipeline_update(struct komeda_pipeline *pipe,
> >      struct drm_atomic_state *old_state);
> >
> > -void komeda_complete_data_flow_cfg(struct komeda_data_flow_cfg *dflow,
> > +void komeda_complete_data_flow_cfg(struct komeda_layer *layer,
> > +   struct komeda_data_flow_cfg *dflow,
> >     struct drm_framebuffer *fb);
> >
> >  #endif /* _KOMEDA_PIPELINE_H_*/
> > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
> > index 2b415ef2b7d3..709870bdaa4f 100644
> > --- a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
> > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
> > @@ -784,9 +784,11 @@ komeda_timing_ctrlr_validate(struct komeda_timing_ctrlr *ctrlr,
> >  return 0;
> >  }
> >
> > -void komeda_complete_data_flow_cfg(struct komeda_data_flow_cfg *dflow,
> > +void komeda_complete_data_flow_cfg(struct komeda_layer *layer,
> > +   struct komeda_data_flow_cfg *dflow,
> >     struct drm_framebuffer *fb)
> >  {
> > +struct komeda_scaler *scaler = layer->base.pipeline->scalers[0];
> >  u32 w = dflow->in_w;
> >  u32 h = dflow->in_h;
> >
> > @@ -803,6 +805,17 @@ void komeda_complete_data_flow_cfg(struct komeda_data_flow_cfg *dflow,
> >
> >  dflow->en_scaling = (w != dflow->out_w) || (h != dflow->out_h);
> >  dflow->is_yuv = fb->format->is_yuv;
> > +
> > +/* try to enable image enhancer if it is a 2x+ upscaling */
> > +dflow->en_img_enhancement = dflow->out_w >= 2 * w ||
> > +    dflow->out_h >= 2 * h;
> > +
> > +/* try to enable split if scaling exceed the scaler's acceptable
> > + * input/output range.
> > + */
> > +if (dflow->en_scaling && scaler)
> > +dflow->en_split = !in_range(&scaler->hsize, dflow->in_w) ||
> > +  !in_range(&scaler->hsize, dflow->out_w);
> >  }
> >
> >  static bool merger_is_available(struct komeda_pipeline *pipe,
> > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
> > index 5bb8553cc117..c095af154216 100644
> > --- a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
> > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
> > @@ -18,7 +18,6 @@ komeda_plane_init_data_flow(struct drm_plane_state *st,
> >      struct komeda_data_flow_cfg *dflow)
> >  {
> >  struct komeda_plane *kplane = to_kplane(st->plane);
> > -struct komeda_plane_state *kplane_st = to_kplane_st(st);
> >  struct drm_framebuffer *fb = st->fb;
> >  const struct komeda_format_caps *caps = to_kfb(fb)->format_caps;
> >  struct komeda_pipeline *pipe = kplane->layer->base.pipeline;
> > @@ -57,10 +56,7 @@ komeda_plane_init_data_flow(struct drm_plane_state *st,
> >  return -EINVAL;
> >  }
> >
> > -dflow->en_img_enhancement = !!kplane_st->img_enhancement;
> > -dflow->en_split = !!kplane_st->layer_split;
> > -
> > -komeda_complete_data_flow_cfg(dflow, fb);
> > +komeda_complete_data_flow_cfg(kplane->layer, dflow, fb);
> >
> >  return 0;
> >  }
> > @@ -175,8 +171,6 @@ komeda_plane_atomic_duplicate_state(struct drm_plane *plane)
> >
> >  old = to_kplane_st(plane->state);
> >
> > -new->img_enhancement = old->img_enhancement;
> > -
> >  return &new->base;
> >  }
> >
> > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
> > index bb8a61f6e9a4..617e1f7b8472 100644
> > --- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
> > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
> > @@ -13,7 +13,6 @@ komeda_wb_init_data_flow(struct komeda_layer *wb_layer,
> >   struct komeda_crtc_state *kcrtc_st,
> >   struct komeda_data_flow_cfg *dflow)
> >  {
> > -struct komeda_scaler *scaler = wb_layer->base.pipeline->scalers[0];
> >  struct drm_framebuffer *fb = conn_st->writeback_job->fb;
> >
> >  memset(dflow, 0, sizeof(*dflow));
> > @@ -28,14 +27,7 @@ komeda_wb_init_data_flow(struct komeda_layer *wb_layer,
> >  dflow->pixel_blend_mode = DRM_MODE_BLEND_PIXEL_NONE;
> >  dflow->rot = DRM_MODE_ROTATE_0;
> >
> > -komeda_complete_data_flow_cfg(dflow, fb);
> > -
> > -/* if scaling exceed the acceptable scaler input/output range, try to
> > - * enable split.
> > - */
> > -if (dflow->en_scaling && scaler)
> > -dflow->en_split = !in_range(&scaler->hsize, dflow->in_w) ||
> > -  !in_range(&scaler->hsize, dflow->out_w);
> > +komeda_complete_data_flow_cfg(wb_layer, dflow, fb);
> >
> >  return 0;
> >  }
> > --
> > 2.20.1
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@...ts.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ