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;
next prev parent 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.