Re: [PATCH v2 2/3] drm/ast: Map fbdev framebuffer while it's being displayed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 04, 2019 at 01:56:43PM +0200, Thomas Zimmermann wrote:
> The generic fbdev emulation will map and unmap the framebuffer's memory
> if required. As consoles are most often updated while being on screen,
> we map the fbdev buffer while it's being displayed. This avoids frequent
> map/unmap operations in the fbdev code. The original fbdev code in ast
> used the same trick to improve performance.
> 
> v2:
> 	* fix typo in comment
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
> Cc: Noralf Trønnes <noralf@xxxxxxxxxxx>
> Cc: Dave Airlie <airlied@xxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx>
> Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
> Cc: CK Hu <ck.hu@xxxxxxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Cc: Alex Deucher <alexander.deucher@xxxxxxx>
> Cc: "Christian König" <christian.koenig@xxxxxxx>
> Cc: YueHaibing <yuehaibing@xxxxxxxxxx>
> Cc: Sam Bobroff <sbobroff@xxxxxxxxxxxxx>
> Cc: Huang Rui <ray.huang@xxxxxxx>
> Cc: "Y.C. Chen" <yc_chen@xxxxxxxxxxxxxx>
> Cc: Rong Chen <rong.a.chen@xxxxxxxxx>
> Cc: Feng Tang <feng.tang@xxxxxxxxx>
> Cc: Huang Ying <ying.huang@xxxxxxxxx>
> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/ast/ast_mode.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
> index d349c721501c..c10fff652228 100644
> --- a/drivers/gpu/drm/ast/ast_mode.c
> +++ b/drivers/gpu/drm/ast/ast_mode.c
> @@ -529,13 +529,20 @@ static int ast_crtc_do_set_base(struct drm_crtc *crtc,
>  				struct drm_framebuffer *fb,
>  				int x, int y, int atomic)
>  {
> +	struct drm_fb_helper *fb_helper = crtc->dev->fb_helper;

struct drm_framebuffer *fbcon = crtc->dev->fb_helper->buffer->fb ?

makes clear what is going on without excessive commenting ;)

>  	struct drm_gem_vram_object *gbo;
>  	int ret;
>  	s64 gpu_addr;
> +	void *base;
>  
>  	if (!atomic && fb) {
>  		gbo = drm_gem_vram_of_gem(fb->obj[0]);
>  		drm_gem_vram_unpin(gbo);
> +
> +		// Unmap fbdev FB if it's not being displayed
> +		// any longer.

I'd drop the comment.  It says *what* the comment is doing.  You should
be able to figure by just reading the code.  Comments should explain
*why* the code does something ...

> +		if (fb == fb_helper->buffer->fb)
> +			drm_gem_vram_kunmap(gbo);
>  	}
>  
>  	gbo = drm_gem_vram_of_gem(crtc->primary->fb->obj[0]);
> @@ -552,6 +559,14 @@ static int ast_crtc_do_set_base(struct drm_crtc *crtc,
>  	ast_set_offset_reg(crtc);
>  	ast_set_start_address_crt1(crtc, (u32)gpu_addr);
>  
> +	// Map fbdev FB while it's being displayed. This avoids frequent
> +	// mapping and unmapping within the fbdev code.

... like this one (avoid frequent map/unmap).

Comments should use /* */ style, especially multi line comments.
See also the comment section in
	Documentation/process/coding-style.rst

cheers,
  Gerd

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux