All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
To: Jonathan Corbet <corbet@lwn.net>
Cc: linux-kernel@vger.kernel.org, Harald Welte <laforge@gnumonks.org>,
	JosephChan@via.com.tw, ScottFang@viatech.com.cn,
	Deepak Saxena <dsaxena@laptop.org>,
	linux-fbdev-devel@lists.sourceforge.net
Subject: Re: [PATCH 04/16] viafb: Retain GEMODE reserved bits
Date: Fri, 09 Apr 2010 05:07:34 +0200	[thread overview]
Message-ID: <4BBE99F6.9060300@gmx.de> (raw)
In-Reply-To: <1270746946-12467-5-git-send-email-corbet@lwn.net>

Hi Jon,

Jonathan Corbet schrieb:
> Commit c3e25673843153ea75fda79a47cf12f10a25ca37 (viafb: 2D engine rewrite)
> changed the setting of the GEMODE register so that the reserved bits are no
> longer preserved.  Fix that; at the same time, move this code to its own
> function and restore the use of symbolic constants.

in your later patch "[PATCH 06/16] viafb: complete support for 
VX800/VX855 accelerated framebuffer" you reintroduce initializing those 
bits to 0. That's fine but I can't see a reason for preserving this bits 
here as it adds useless overhead unless the hardware itself changed some 
of those bits and behaves differently according to those bits. 
Additionally the first 2 bits are not reserved but provide a rotation 
where 00 is what we want (no rotation).
And if you rip code off hw_bitblt_2 it would be better to do the same 
with hw_bitblt_1. A quick look reveals that the same function can be 
used there (the error message would need to be adjusted but that's minor).
So nack@preserving (unless it would cause problems otherwise) but 
ack@ripping code off and sharing between hw_bitblt_1 & hw_bitblt_2.


Thanks,

Florian Tobias Schandinat

> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
> ---
>  drivers/video/via/accel.c |   48 ++++++++++++++++++++++++++++++---------------
>  1 files changed, 32 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/video/via/accel.c b/drivers/video/via/accel.c
> index d5077df..78c0a2b 100644
> --- a/drivers/video/via/accel.c
> +++ b/drivers/video/via/accel.c
> @@ -165,12 +165,41 @@ static int hw_bitblt_1(void __iomem *engine, u8 op, u32 width, u32 height,
>  	return 0;
>  }
>  
> +/*
> + * Figure out an appropriate bytes-per-pixel setting.
> + */
> +static int viafb_set_bpp(void __iomem *engine, u8 bpp)
> +{
> +	u32 gemode;
> +
> +	/* Preserve the reserved bits */
> +	gemode = readl(engine + VIA_REG_GEMODE) & 0xfffffcff;
> +	switch (bpp) {
> +	case 8:
> +		gemode |= VIA_GEM_8bpp;
> +		break;
> +	case 16:
> +		gemode |= VIA_GEM_16bpp;
> +		break;
> +	case 32:
> +		gemode |= VIA_GEM_32bpp;
> +		break;
> +	default:
> +		printk(KERN_WARNING "hw_bitblt_2: Unsupported bpp %d\n", bpp);
> +		return -EINVAL;
> +	}
> +	writel(gemode, engine + VIA_REG_GEMODE);
> +	return 0;
> +}
> +
> +
>  static int hw_bitblt_2(void __iomem *engine, u8 op, u32 width, u32 height,
>  	u8 dst_bpp, u32 dst_addr, u32 dst_pitch, u32 dst_x, u32 dst_y,
>  	u32 *src_mem, u32 src_addr, u32 src_pitch, u32 src_x, u32 src_y,
>  	u32 fg_color, u32 bg_color, u8 fill_rop)
>  {
>  	u32 ge_cmd = 0, tmp, i;
> +	int ret;
>  
>  	if (!op || op > 3) {
>  		printk(KERN_WARNING "hw_bitblt_2: Invalid operation: %d\n", op);
> @@ -204,22 +233,9 @@ static int hw_bitblt_2(void __iomem *engine, u8 op, u32 width, u32 height,
>  		}
>  	}
>  
> -	switch (dst_bpp) {
> -	case 8:
> -		tmp = 0x00000000;
> -		break;
> -	case 16:
> -		tmp = 0x00000100;
> -		break;
> -	case 32:
> -		tmp = 0x00000300;
> -		break;
> -	default:
> -		printk(KERN_WARNING "hw_bitblt_2: Unsupported bpp %d\n",
> -			dst_bpp);
> -		return -EINVAL;
> -	}
> -	writel(tmp, engine + 0x04);
> +	ret = viafb_set_bpp(engine, dst_bpp);
> +	if (ret)
> +		return ret;
>  
>  	if (op == VIA_BITBLT_FILL)
>  		tmp = 0;

  reply	other threads:[~2010-04-09  3:07 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-08 17:15 [RFC] Initial OLPC Viafb merge Jonathan Corbet
2010-04-08 17:15 ` [PATCH 01/16] [FB] viafb: Fix various resource leaks during module_init() Jonathan Corbet
2010-04-08 18:22   ` Florian Tobias Schandinat
2010-04-09 19:31     ` Jonathan Corbet
2010-04-08 17:15 ` [PATCH 02/16] viafb: use proper pci config API Jonathan Corbet
2010-04-08 18:42   ` Florian Tobias Schandinat
2010-04-09 19:46     ` Jonathan Corbet
2010-04-10  6:41       ` Harald Welte
2010-04-08 17:15 ` [PATCH 03/16] viafb: Unmap the frame buffer on initialization error Jonathan Corbet
2010-04-08 18:55   ` Florian Tobias Schandinat
2010-04-08 17:15 ` [PATCH 04/16] viafb: Retain GEMODE reserved bits Jonathan Corbet
2010-04-09  3:07   ` Florian Tobias Schandinat [this message]
2010-04-09 19:59     ` Jonathan Corbet
2010-04-09 20:23       ` Florian Tobias Schandinat
2010-04-09 20:30         ` Jonathan Corbet
2010-04-08 17:15 ` [PATCH 05/16] viafb: Determine type of 2D engine and store it in chip_info Jonathan Corbet
2010-04-09  3:20   ` Florian Tobias Schandinat
2010-04-09 20:11     ` Jonathan Corbet
2010-04-09 20:34       ` Florian Tobias Schandinat
2010-04-18 17:34         ` Jonathan Corbet
2010-04-18 18:00           ` Harald Welte
2010-04-18 18:05           ` Florian Tobias Schandinat
2010-04-08 17:15 ` [PATCH 06/16] viafb: complete support for VX800/VX855 accelerated framebuffer Jonathan Corbet
2010-04-09  4:21   ` Florian Tobias Schandinat
2010-04-09 20:18     ` Jonathan Corbet
2010-04-08 17:15 ` [PATCH 07/16] viafb: Add 1200x900 DCON/LCD panel modes for OLPC XO-1.5 Jonathan Corbet
2010-04-09 21:27   ` Florian Tobias Schandinat
2010-04-18 17:39     ` Jonathan Corbet
2010-04-18 18:24       ` Florian Tobias Schandinat
2010-04-08 17:15 ` [PATCH 08/16] viafb: Do not probe for LVDS/TMDS on " Jonathan Corbet
2010-04-09 21:40   ` Florian Tobias Schandinat
2010-04-10  0:19     ` Jonathan Corbet
2010-04-10  0:42       ` Florian Tobias Schandinat
2010-04-10  0:55         ` Jonathan Corbet
2010-04-10  6:34     ` Harald Welte
2010-04-08 17:15 ` [PATCH 09/16] viafb: rework the I2C support in the VIA framebuffer driver Jonathan Corbet
2010-04-09 22:07   ` Florian Tobias Schandinat
2010-04-08 17:15 ` [PATCH 10/16] suppress verbose debug messages: change printk() to DEBUG_MSG() Jonathan Corbet
2010-04-09 22:09   ` Florian Tobias Schandinat
2010-04-08 17:15 ` [PATCH 11/16] Minimal support for viafb suspend/resume Jonathan Corbet
2010-04-08 17:15 ` [PATCH 12/16] fix register save count, so it matches the restore count Jonathan Corbet
2010-04-08 17:15 ` [PATCH 13/16] VIAFB: Update suspend/resume to selectively restore registers Jonathan Corbet
2010-04-08 17:15 ` [PATCH 14/16] Remove cursor restore hack in viafb Jonathan Corbet
2010-04-08 17:15 ` [PATCH 15/16] viafb: rework suspend/resume Jonathan Corbet
2010-04-08 17:15 ` [PATCH 16/16] viafb: Only suspend/resume on VX855 Jonathan Corbet
2010-04-09  5:43 ` [RFC] Initial OLPC Viafb merge Florian Tobias Schandinat
2010-04-09 18:46   ` Jonathan Corbet
2010-04-09 23:32     ` Florian Tobias Schandinat
2010-04-10  0:27       ` Jonathan Corbet
2010-04-10  1:02         ` Florian Tobias Schandinat
2010-04-10  8:52           ` Bruno Prémont
2010-04-13  3:03             ` Florian Tobias Schandinat
2010-04-21 20:37               ` Jonathan Corbet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BBE99F6.9060300@gmx.de \
    --to=florianschandinat@gmx.de \
    --cc=JosephChan@via.com.tw \
    --cc=ScottFang@viatech.com.cn \
    --cc=corbet@lwn.net \
    --cc=dsaxena@laptop.org \
    --cc=laforge@gnumonks.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.