Re: [Linux-fbdev-devel] [PATCH 1/9] viafb: VIA Frame Buffer DeviceDriver

From: Randy Dunlap
Date: Wed May 07 2008 - 11:21:40 EST


On Wed, 7 May 2008 18:55:30 +0800 JosephChan@xxxxxxxxxx wrote:

> Signed-off-by: Joseph Chan <josephchan@xxxxxxxxxx>
>
> diff -Nur a/Documentation/fb/viafb.txt b/Documentation/fb/viafb.txt
> --- a/Documentation/fb/viafb.txt 1969-12-31 19:00:00.000000000
> -0500
> +++ b/Documentation/fb/viafb.txt 2008-05-06 06:46:26.000000000
> -0400
> @@ -0,0 +1,197 @@
> +
> + VIA Integration Graphic Chip Console Framebuffer Driver
> +
> +[Platform]
> +-----------------------
> + The console framebuffer driver is for Graphics chips of

graphics

> + VIA UniChrome (Pro) Family:
> + CLE266, PM800 / CN400,P4M800CE / P4M800Pro / CN700 / VN800,
> + CX700 / VX700, P4M890
> + VIA Chrome9 Family:
> + K8M890, CN896 / P4M900, VX800)

^ drop ")" ?

> +
> +[Driver features]
> +------------------------
> + Device:CRT, LCD, DVI

Device: CRT, LCD, DVI

> +
> + Support Mode:
> + CRT:
> + 640 x480(60, 75, 85, 100, 120 Hz), 720 x480(60 Hz),

Usually NNNxMMM or NNN x MMM (use space consistently).
(multiple times)

> + 720 x576(60 Hz), 800 x600(60, 75, 85, 100, 120 Hz),
> + 848 x480(60 Hz), 856 x480(60 Hz), 1024 x512(60 Hz),
> + 1024 x768(60, 75, 85, 100 Hz), 1152 x864(75 Hz),
> + 1280 x768(60 Hz), 1280 x960(60 Hz), 1280 x1024(60, 75, 85
> Hz),
> + 1440 x1050(60 Hz), 1600 x1200(60, 75 Hz), 1280 x720(60 Hz),
> + 1920 x1080(60 Hz), 1400 x1050(60 Hz), 800 x480(60 Hz)
> +
> + color depth:8 bpp, 16 bpp, 32 bpp

color depth: 8 bpp, ...

> +
> + Support 2 D hardware accelerator for kernel 2.6.xx

2D or 2-D

> +
> +[Using the viafb module]
> +-- -- --------------------
> + Start viafb with default settings,

settings:

> + #modprobe viafb
> +
> + Start viafb with with user options,

options:

> + #modprobe viafb mode=800x600 via_fb_bpp=16 refresh=60
> + active_dev=CRT+DVI dvi_port = DVP1 mode1 = 1024 x768
> + via_fb_bpp1 = 16 refresh1 = 60 SAMM_ON = 1

I'm pretty sure that you don't want (can't have) spaces around the
"=" signs above.. or does it not matter? Anyone?

> +
> + mode:
> + 640 x480(default)

...480 (default) [space before (default)]

> + 720 x480
> + 800 x600
> + 1024 x768
> + ......
> +
> + via_fb_bpp:
> + 8, 16, 32(default:32)

add space before "(default:32)"

> +
> + refresh:
> + 60, 75, 85, 100, 120(default:60)

add space before...

> +
> + lcd_dsp_method:
> + 0 : expandsion(default)
> + 1 : centering
> +
> + lcd_mode:
> + 0 : OPEN LDI(default)
> + 1 : SPWG
> +
> + lcd_panel_id:
> + 0 : Resolution: 640 x480, Channel: single, Dithering: Enable
> + 1 : Resolution: 800 x600, Channel: single, Dithering: Enable
> + 2 : Resolution: 1024 x768, Channel: single, Dithering:Enable
> (default)
> + 3 : Resolution: 1280 x768, Channel: single, Dithering: Enable
> + 4 : Resolution: 1280 x1024, Channel: dual, Dithering: Enable
> + 5 : Resolution: 1400 x1050, Channel: dual, Dithering: Enable
> + 6 : Resolution: 1600 x1200, Channel: dual, Dithering: Enable
> +
> + 8 : Resolution: 800 x480, Channel: single, Dithering: Enable
> + 9 : Resolution: 1024 x768, Channel: dual, Dithering: Enable
> + 10: Resolution: 1024 x768, Channel: single, Dithering: Disable
> + 11: Resolution: 1024 x768, Channel: dual, Dithering: Disable
> + 12: Resolution: 1280 x768, Channel: single, Dithering: Disable
> + 13: Resolution: 1280 x1024, Channel: dual, Dithering: Disable
> + 14: Resolution: 1400 x1050, Channel: dual, Dithering: Disable
> + 15: Resolution: 1600 x1200, Channel: dual, Dithering: Disable
> + 16: Resolution: 1366 x768, Channel: single, Dithering: Disable
> + 17: Resolution: 1024 x600, Channel: single, Dithering: Enable
> + 18: Resolution: 1280 x768, Channel: dual, Dithering: Enable
> + 19: Resolution: 1280 x800, Channel: single, Dithering: Enable
> +
> + via_fb_accel:
> + 0 : No 2 D Hardware Acceleration(default)
> + 1 : 2 D Hardware Acceleration

2D or 2-D

> +
> + SAMM_ON:
> + 0 : SAMM_ON disable(default)
> + 1 : SAMM_ON enable

Is SAMM_ON explained somewhere?

> + mode1:(secondary display device)

Add space: mode1: (secondary ...

> + 640 x480(default)

Add space before (default)

> + 720 x480
> + 800 x600
> + 1024 x768
> + ... ...
> +
> + via_fb_bpp1:(secondary display device)
> + 8, 16, 32(default:32)

Add space above & below here.

> + refresh1:(secondary display device)
> + 60, 75, 85, 100, 120(default:60)
> +
> + active_dev:
> + This option is used to specify active devices.(CRT, DVI, LCD,
> CRT + LCD, CRT + DVI,...)
> + DVI stand for DVI or HDMI, Ex.If you want to enable HDMI, set
> active_dev = DVI

stands for DVI or HDMI. E.g., if you want ...

> + In SAMM case, the previous of active_dev is primary device, and
> the following is secondary device.
> +
> + For example:
> + To enable one device, such as DVI only, we should use:
> + modprobe viafb active_dev = DVI...To enable two devices, such
> as CRT + DVI:

active_dev=DVI
To enable two device, such as CRT + DVI:

> + For DuoView case, we can use:
> + modprobe viafb active_dev = CRT + DVI...OR modprobe viafb
> active_dev = DVI + CRT...

active_dev=CRT+DVI...
OR
modprobe viafb active_dev=DVI=CRT...

> + For SAMM case:
> + If CRT is primary and DVI is secondary, we should use:
> + modprobe viafb active_dev = CRT + DVI SAMM_ON = 1...

No spaces in module parameter strings.

> + If DVI is primary and CRT is secondary, we should use:
> + modprobe viafb active_dev = DVI + CRT SAMM_ON = 1...

Ditto.

> + display_hardware_layout:
> + This option is uesed to specify display hardware layout
> for CX700 chip.

used

> + 1 : LCD only
> + 2 : DVI only
> + 3 : LCD + DVI(default)
> + 4 : LCD1 + LCD2(internal + internal)
> + 16: LCD1 + ExternalLCD2(internal + external)

Add space before each "(" above.

> +
> + second_size:
> + This option is used to set second device memory size(MB) in
> SAMM case.
> + The minimal size is 16.
> +
> + EPIA_DVI:
> + This option is used to enable DVI on EPIA - M
> + 0 : No DVI on EPIA - M(default)
> + 1 : DVI on EPIA - M
> +
> + BusWidth:
> + When using 24 - Bit Bus Width Digital Interface, this option
> should be set.
> + 12: 12-Bit LVDS or 12-Bit TMDS(default)
> + 24: 24-Bit LVDS or 24-Bit TMDS
> +
> + LCDDualEdge:
> + When using Dual Edge Panel, this option should be set.
> + 0 : No Dual Edge Panel(default)
> + 1 : Dual Edge Panel
> +
> + video_dev:
> + This option is used to specify video output devices(CRT, DVI,
> LCD) for duoview case.
> + For example:
> + To output video on DVI, we should use:
> + modprobe viafb video_dev = DVI...

No spaces in module parameters...

> + lcd_port:
> + This option is used to specify lcd output port,

LCD output port;

> + available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH"
> + "DFP_LOW", for external LCD + external DVI on
> CX700(External LCD is on DVP0),
> + we should use:
> + modprobe viafb lcd_port = DVP0...

No spaces in module parameters.

> +
> +Note:
> + 1. CRT may not display properly for DuoView CRT & DVI display at
> + the "640x480" PAL mode with DVI overscan enabled.
> + 2. When SAMM is enable, mode and mode1, via_fb_bpp and via_fb_bpp1,
> + refresh and refresh1 can be different.
> + 3. When console is depend on viafbinfo1, dynamically change
> resolution and bpp,
> + need call VIAFB specified ioctl interface VIAFB_SET_DEVICE.

I didn't understand that sentence.

> + Call common ioctl function FBIOPUT_VSCREENINFO will cause sreen
> crush.

screen

> +
> +[Configure viafb with "fbset" tool]
> +-----------------------------------
> + "fbset" is an inbox utility of Linux.
> + 1. Inquire current viafb information, type,
> + # fbset -i
> +
> + 2. Set various resolutions and refresh rates,
> + # fbset <resolution-vertical_sync>
> +
> + example,
> + # fbset "1024x768-75"
> + or
> + # fbset -g 1024 768 1024 768 32
> + Check the file "/etc/fb.modes" to find display modes available.
> +
> + 3. Set the color depth,
> + # fbset -depth <value>
> +
> + example,
> + # fbset -depth 16
> +
> +[Bootup with viafb]:
> +--------------------
> + Add the following line to your lilo.conf:
> + append = "video=viafb:mode:1024x768,via_fb_bpp:32,refresh:85"


---
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/