From: Tomas Szepe <szepe@pinerecords.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.1-rc1
Date: Wed, 31 Dec 2003 11:05:48 +0100 [thread overview]
Message-ID: <20031231100548.GA16860@louise.pinerecords.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0312310033110.30995@home.osdl.org>
On Dec-31 2003, Wed, 00:36 -0800
Linus Torvalds <torvalds@osdl.org> wrote:
> Most of the updates is for stuff that has been in -mm for a long while and
> is stable, along with driver updates (SCSI, network, i2c and USB).
Linus, would you please consider applying the following patch (taken
from -mm) that puts radeonfb back in shape?
--
Tomas Szepe <szepe@pinerecords.com>
radeon-line-length-fix.patch
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
drivers/video/radeonfb.c | 30 +++++++++++++++++-------------
1 files changed, 17 insertions(+), 13 deletions(-)
diff -puN drivers/video/radeonfb.c~radeon-line-length-fix drivers/video/radeonfb.c
--- 25/drivers/video/radeonfb.c~radeon-line-length-fix 2003-11-13 19:48:31.000000000 -0800
+++ 25-akpm/drivers/video/radeonfb.c 2003-11-13 19:48:31.000000000 -0800
@@ -679,7 +679,7 @@ static __inline__ int _max(int val1, int
*/
static char *mode_option __initdata;
-static char noaccel = 1;
+static char noaccel = 0;
static char mirror = 0;
static int panel_yres __initdata = 0;
static char force_dfp __initdata = 0;
@@ -1241,9 +1241,6 @@ static void radeon_engine_init (struct r
radeon_fifo_wait (1);
OUTREG(RB2D_DSTCACHE_MODE, 0);
- /* XXX */
- rinfo->pitch = ((rinfo->xres_virtual * (rinfo->bpp / 8) + 0x3f)) >> 6;
-
radeon_fifo_wait (1);
temp = INREG(DEFAULT_PITCH_OFFSET);
OUTREG(DEFAULT_PITCH_OFFSET, ((temp & 0xc0000000) |
@@ -1782,6 +1779,7 @@ static int radeonfb_set_par (struct fb_i
int hsync_start, hsync_fudge, bytpp, hsync_wid, vsync_wid;
int primary_mon = PRIMARY_MONITOR(rinfo);
int depth = var_to_depth(mode);
+ int accel = (mode->accel_flags & FB_ACCELF_TEXT) != 0;
rinfo->xres = mode->xres;
rinfo->yres = mode->yres;
@@ -1878,7 +1876,15 @@ static int radeonfb_set_par (struct fb_i
newmode.crtc_v_sync_strt_wid = (((vSyncStart - 1) & 0xfff) |
(vsync_wid << 16) | (v_sync_pol << 23));
- newmode.crtc_pitch = (mode->xres_virtual >> 3);
+ if (accel) {
+ /* We first calculate the engine pitch */
+ rinfo->pitch = ((mode->xres_virtual * ((mode->bits_per_pixel + 1) / 8) + 0x3f)
+ & ~(0x3f)) >> 6;
+
+ /* Then, re-multiply it to get the CRTC pitch */
+ newmode.crtc_pitch = (rinfo->pitch << 3) / ((mode->bits_per_pixel + 1) / 8);
+ } else
+ newmode.crtc_pitch = (mode->xres_virtual >> 3);
newmode.crtc_pitch |= (newmode.crtc_pitch << 16);
#if defined(__BIG_ENDIAN)
@@ -2085,18 +2091,21 @@ static int radeonfb_set_par (struct fb_i
if (!rinfo->asleep) {
radeon_write_mode (rinfo, &newmode);
/* (re)initialize the engine */
- if (!noaccel)
+ if (noaccel)
radeon_engine_init (rinfo);
}
/* Update fix */
- info->fix.line_length = rinfo->pitch*64;
+ if (accel)
+ info->fix.line_length = rinfo->pitch*64;
+ else
+ info->fix.line_length = mode->xres_virtual * ((mode->bits_per_pixel + 1) / 8);
info->fix.visual = rinfo->depth == 8 ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_DIRECTCOLOR;
#ifdef CONFIG_BOOTX_TEXT
/* Update debug text engine */
btext_update_display(rinfo->fb_base_phys, mode->xres, mode->yres,
- rinfo->depth, rinfo->pitch*64);
+ rinfo->depth, info->fix.line_length);
#endif
return 0;
@@ -3022,11 +3031,6 @@ static int radeonfb_pci_register (struct
*/
radeon_save_state (rinfo, &rinfo->init_state);
- if (!noaccel) {
- /* initialize the engine */
- radeon_engine_init (rinfo);
- }
-
/* set all the vital stuff */
radeon_set_fbinfo (rinfo);
next prev parent reply other threads:[~2003-12-31 10:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-31 8:36 2.6.1-rc1 Linus Torvalds
2003-12-31 8:47 ` 2.6.1-rc1 Mike Fedyk
2003-12-31 10:05 ` Tomas Szepe [this message]
2003-12-31 12:12 ` 2.6.1-rc1 Jeff Garzik
2003-12-31 15:00 ` 2.6.1-rc1 [resend] Paolo Ornati
2003-12-31 15:06 ` William Lee Irwin III
2003-12-31 15:19 ` Paolo Ornati
2003-12-31 15:20 ` William Lee Irwin III
2003-12-31 15:45 ` Paolo Ornati
2003-12-31 16:31 ` Ed Sweetman
2003-12-31 18:03 ` Paolo Ornati
2004-01-01 9:12 ` 2.6.1-rc1 Andreas Unterkircher
2004-01-01 18:12 ` 2.6.1-rc1 Paolo Ornati
2004-01-02 4:51 ` 2.6.1-rc1 with JP106 keyboard Go Taniguchi
2004-01-02 5:46 ` Go Taniguchi
2004-01-02 13:20 ` Vojtech Pavlik
2004-01-02 13:17 ` Vojtech Pavlik
2004-01-02 19:01 ` Go Taniguchi
2004-01-02 20:10 ` Vojtech Pavlik
2004-01-03 5:54 ` Go Taniguchi
2004-01-06 18:33 ` 2.6.1-rc1: SCSI: `TIMEOUT' redefined Adrian Bunk
2004-01-06 22:40 ` [PATCH] " Patrick Mansfield
2004-01-06 22:40 ` Andrew Morton
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=20031231100548.GA16860@louise.pinerecords.com \
--to=szepe@pinerecords.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox