Re: [loongson-PATCH-v1 16/27] Add Siliconmotion 712 framebuffer driver

Simon Braunschmidt
2009-05-29T13:29:45Z

Hi Wu Zhangjin

I applied your patch cleanly and run it on a i486SX (little endian)
embedded computing board.

This provides a huge performance benefit compared to vesa framebuffer,
so thanks a lot for the contribution.

I tested it in both the library-accelerated (cfb...) and hardware
accelerated codepaths, with no problems. Tested with qt-embedded 4.5.1.

As i have seen lots of functionality are guarded by
#ifdef __BIG_ENDIAN

Is there a way to setup a different mode than 1024x600 on
kernel-commandline or from userspace, e.g. with fbset?

What I currently do is
picking appropriate values form the table VGAMode in smtcfb.h and
hardcoding them.

I tried 800x600x16bit@60hz, which worked also, but 1024x768x24bit@60hz
left me with a corrupted display output (distored colors, missing
regions), i did not check further wheter it also crashed.

I dont know wheter i am subscribed and this will make it through to lkml
and linux-mips, feel free to cite me if you want.

Also if you want you may add my

Tested-by: Simon Braunschmidt <sbraun@emlix.com>

see also attached a patch for the debug messages

From addec9a5a27512621c538a2f799e31e07720cb9c Mon Sep 17 00:00:00 2001
From: Simon Braunschmidt <sbraun@emlix.com>
Date: Fri, 29 May 2009 15:03:51 +0200
Subject: [PATCH] [video] fix debug messages in smtcfb

when defining #DEBUG
---
drivers/video/smi/smtcfb.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/video/smi/smtcfb.c b/drivers/video/smi/smtcfb.c
index 33ce878..ebc6371 100644
--- a/drivers/video/smi/smtcfb.c
+++ b/drivers/video/smi/smtcfb.c
@@ -44,6 +44,8 @@
#include "smtcfb.h"
#include "smtc2d.h"

+#define DEBUG
+
#ifdef DEBUG
#define smdbg(format, arg...) printk(KERN_DEBUG format , ## arg)
#else
@@ -1087,7 +1089,7 @@ static int __init sm712be_setup(char *options)
sm712be_flag = 0;
if (!options || !*options) {
retval = 1;
- smdbg("\n No sm712be parameter\n", __LINE__);
+ smdbg("\n No sm712be parameter\n");
}
if (!retval && strstr(options, "enable"))
sm712be_flag = 1;
@@ -1113,7 +1115,7 @@ static int __init sm712vga_setup(char *options)

if (!options || !*options) {
retval = 1;
- smdbg("\n No vga parameter\n", __LINE__);
+ smdbg("\n No vga parameter\n");
}

screen_info.lfb_width = 0;
--
1.6.3.rc0.1.gf800