/* * iTVC15 Framebuffer driver * * This module presents the iTVC15 OSD (onscreen display) framebuffer memory * as a standard Linux /dev/fb style framebuffer device. The framebuffer has * a 32 bpp packed pixel format with full alpha channel support. Depending * on the TV standard configured in the ivtv module at load time, resolution * is fixed at either 720x480 (NTSC) or 720x576 (PAL). * * Copyright (c) 2003 Matt T. Yourst * * Derived from drivers/video/vesafb.c * Portions (c) 1998 Gerd Knorr * * This file is licensed under the GNU General Public License, version 2. * */ /* # # Instructions for making ivtv-fb work with XFree86: # Add the following sections and parts thereof to /etc/X11/XF86Config: # # # NOTE: The monitor section is obtainable by running: # fbset -fb /dev/fb1 -x # (or /dev/fbX for whatever framebuffer ivtv-fb is on) # Section "Monitor" Identifier "NTSC Monitor" HorizSync 30-68 VertRefresh 50-120 Mode "720x480" # D: 34.563 MHz, H: 37.244 kHz, V: 73.897 Hz DotClock 34.564 HTimings 720 752 840 928 VTimings 480 484 488 504 Flags "-HSync" "-VSync" EndMode EndSection Section "Device" Identifier "Hauppauge PVR 350 iTVC15 Framebuffer" Driver "fbdev" Option "fbdev" "/dev/fb1" # <-- modify if using another device BusID "0:10:0" EndSection Section "Screen" Identifier "TV Screen" Device "Hauppauge PVR 350 iTVC15 Framebuffer" Monitor "NTSC Monitor" DefaultDepth 24 DefaultFbbpp 32 Subsection "Display" Depth 24 FbBpp 32 Modes "720x480" EndSubsection EndSection Section "ServerLayout" ... Screen 0 "Screen 1" # << (your computer monitor) # (add the following line) Screen 1 "TV Screen" RightOf "Screen 1" # << (TV screen) ... EndSection # # Then start X as usual; both your normal (computer) monitor and the # NTSC or PAL TV monitor should display the default X background. # # Note the "RightOf" clause above: if you move the mouse off the right # side of the computer screen, the pointer should appear on your TV # screen. Keyboard events will go to windows in either screen. # # To start a program (e.g., xterm) on the TV only: # # export DISPLAY=:0.1 (i.e., X server #0, screen #1 = TV) # xterm& # # There is also a way to join both the computer monitor and TV into # one giant virtual screen using the Xinerama extension, but I haven't # tried it. Doing so may not be such a good idea anyway, as you obviously # wouldn't want random X windows getting moved over the TV picture. A note on unloading the fb driver: If you want to be able to unload the framebuffer driver (and you aren't already using fbcon), add this to your lilo config: video=vc:x-y where x is the first fb device to allocate and y is the second. If you already have a fb driver loaded, fiddle with the numbers so all the consoles are already allocated. For me, i just set it to 0-0, ie: in lilo.conf: image=/vmlinuz label=linux read-only append="root=/dev/hda1 video=vc:0-0" --OR-- on bootup, do this LILO: linux video=vc:0-0 according to how i read /usr/src/linux/drivers/video/fbmem.c and /usr/src/linux/drivers/char/console.c, that should disable the console hijacks, and allow you to unload the driver. -tmk # # # # # # # */ #include #include #include #include #include #include #include #include #include #include #include #ifdef CONFIG_MTRR #include #endif #include