Skip to contentSkip to conversation

radeonfb doesn't work with an ati X800 pcie card

PATCH Jimmy Jazz 4 participants 14 messages Mar 27, 2007 – Apr 14, 2007

Subsystems (2)
lore
Share & tools
lore

Jimmy Jazz

author
#0 lore raw

Hello,

i'm trying to get my X800 XL pcie card working without more success (that "genuine" ati card gives me quite a lot of headache ). It just hard locks up with a black screen of the death after loading radeonfb.

Thank to Solomon Peachy <[email protected]>, Luca Tettamanti <[email protected]> and Benjamin Herrenschmidt <[email protected]>, i was able to patch the 2.6.20 kernel radeonfb module and make it more tolerant. (See attachements) The driver compiles well and doesn't oops, but the screen still stays black and goes in standby mode as soon as the radeonfb was loaded.

Fortunately, at boot time when loading in that order the vga16fb module framebuffer as /dev/fb0 and afterward the readeonfb as /dev/fb1, i'm able to see some messages returned from the driver. The pc doesn't lock up. That will for sure help to diagnose the issue. Moreover, X11 with GPL radeon driver works well.

Certainly not related to the current issue, radeonfb and x11 disagree how many memories the video card really has. radeonfb found half the content and detects the dvi connector where the flat screen is attached to quite well but identifies a CRT monitor instead of a TMDS.

I'm not sure the patches i applied were the most recent available. Any informations are welcome.

The options i used (i will try more or less of them and see if there are any improvements) options radeonfb mode_option=1680x1050-32@60
#options radeonfb mirror=1
options radeonfb radeonfb_debug=1
options radeonfb monitor_layout=TMDS,NONE

# scripts/ver_linux

Linux seal 2.6.20-vs2.3.0.11-gentoo #27 PREEMPT Mon Mar 26 19:06:31 CEST 2007 x86_64 AMD Athlon(tm) 64 Processor 3200+ AuthenticAMD GNU/Linux

Gnu C                  4.1.2
Gnu make               3.81
binutils               2.17.50.0.12
util-linux             2.12r
mount                  2.12r
module-init-tools      3.2.2
e2fsprogs              1.39
reiserfsprogs          3.6.19
Linux C Library        > libc.2.5
Dynamic linker (ldd)   2.5
Procps                 3.2.7
Net-tools              1.60
Kbd                    1.12
Sh-utils               6.7
udev                   107
Modules Loaded         powernow_k8 freq_table processor nfsd exportfs lockd nfs_acl sunrpc eeprom it87 hwmon_vid i2c_isa snd_seq_midi snd_pcm_oss snd_mixer_oss snd_seq_oss snd_usb_audio snd_usb_lib snd_hwdep dm_mod snd_seq_virmidi snd_seq_midi_event snd_seq pktcdvd lp snd_rtctimer hangcheck_timer nvram softdog uinput eth1394 snd_mpu401 snd_mpu401_uart snd_rawmidi snd_seq_device ohci1394 ieee1394 parport_pc parport analog gameport floppy rtc sr_mod cdrom radeonfb k8temp hwmon pcspkr usbhid hid sg raid1 md_mod snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd soundcore snd_page_alloc ac97_bus marvell libphy forcedeth usb_storage libusual ohci_hcd ehci_hcd usbcore evdev ext3 jbd ext2 mbcache sata_nv pata_amd ata_generic libata sd_mod scsi_mod vga16fb vgastate fb_ddc cfbfillrect cfbimgblt cfbcopyarea i2c_nforce2 i2c_algo_bit i2c_dev i2c_core fbcon bitblit fbcon_rotate fbcon_cw fbcon_ud fbcon_ccw softcursor fb font crc32

I've added some debug output from dmesg, radeonfb and xorg, as well.

# cat /var/log/kern.log
Mar 27 11:06:11 seal radeonfb_pci_register BEGIN
Mar 27 11:06:11 seal ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
Mar 27 11:06:11 seal ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18
Mar 27 11:06:11 seal radeonfb (0000:01:00.0): Found 131072k of DDR 256 bits wide videoram
Mar 27 11:06:11 seal radeonfb (0000:01:00.0): mapped 16384k videoram
Mar 27 11:06:11 seal radeonfb: Found Intel x86 BIOS ROM Image
Mar 27 11:06:11 seal Retrieved PLL infos from ATOM BIOS
Mar 27 11:06:11 seal radeonfb: Reference=27.00 MHz (RefDiv=2) Memory=500.00 Mhz, System=500.00 MHz
Mar 27 11:06:11 seal PLL min 20000 max 50000
Mar 27 11:06:11 seal TMDS PLL from BIOS: 16500 b011c
Mar 27 11:06:11 seal index 0 port 1 conn 1 dac 0 ddc 1 tmds -1
Mar 27 11:06:11 seal index 2 port 0 conn 5 dac 1 ddc 2 tmds -1
Mar 27 11:06:11 seal index 3 port 2 conn 2 dac -1 ddc 0 tmds 0
Mar 27 11:06:11 seal index 4 port 2 conn 2 dac 1 ddc 0 tmds -1
Mar 27 11:06:11 seal Using specified monitor layout: TMDS,NONE
Mar 27 11:06:11 seal radeonfb: I2C (port 0) ... found CRT display
Mar 27 11:06:11 seal * Connector 1 is DVI-I. Head 0, Monitor: CRT (EDID probed)
Mar 27 11:06:11 seal ddc port: 0, dac: 1, tmds: 0
Mar 27 11:06:11 seal * Connector 3 is S-Video. Head -1, Monitor: Not Probed Yet
Mar 27 11:06:11 seal ddc port: 2, dac: 1, tmds: -1
Mar 27 11:06:11 seal modedb fb_find_mode: Trying specified video mode 1680x1050
Mar 27 11:06:11 seal modedb fb_try_mode: Trying mode noname 1680x1050-32@59
Mar 27 11:06:11 seal modedb fb_try_mode: Trying mode noname 1680x1050-32@59
Mar 27 11:06:11 seal radeonfb (0000:01:00.0): ATI Radeon ]W
Mar 27 11:06:11 seal radeonfb_pci_register END
# lspci

01:00.0 VGA compatible controller: ATI Technologies Inc R423 5F57 [Radeon X800XT (PCIE)]

# cat /var/log/Xorg.0.log

(II) RADEON(0): Primary V_BIOS segment is: 0xc000
(--) RADEON(0): Chipset: "ATI Radeon X800XT (R423) 5D57 (PCIE)" (ChipID = 0x5d57) (--) RADEON(0): Linear framebuffer at 0xc0000000
(--) RADEON(0): BIOS at 0xd0000000
(II) RADEON(0): PCIE card detected
(**) RADEON(0): Forced into PCI Express mode
(II) RADEON(0): Generation 2 PCI interface, using max accessible memory (II) RADEON(0): Detected total video RAM=262144K, accessible=262144K (PCI BAR=262144K) (--) RADEON(0): Mapped VideoRAM: 262144 kByte (256 bit DDR SDRAM)

[...]

(II) RADEON(0): I2C bus "DDC" initialized.
(II) RADEON(0): ATOM BIOS detected
(II) RADEON(0): Port0: DDCType-2, DACType-0, TMDSType--1, ConnectorType-1 (II) RADEON(0): Port1: DDCType-1, DACType-1, TMDSType-0, ConnectorType-2 (**) RADEON(0): MonitorLayout Option:
Monitor1--Type TMDS, Monitor2--Type CRT

(II) RADEON(0): I2C device "DDC:ddc2" registered at address 0xA0. (II) RADEON(0): I2C device "DDC:ddc2" removed.
(II) RADEON(0): DDC Type: 1, Detected Type: 3
(II) RADEON(0): I2C device "DDC:ddc2" registered at address 0xA0. (II) RADEON(0): I2C device "DDC:ddc2" removed.
(II) RADEON(0): I2C device "DDC:ddc2" registered at address 0xA0. (II) RADEON(0): I2C device "DDC:ddc2" removed.
(II) RADEON(0): I2C device "DDC:ddc2" registered at address 0xA0. (II) RADEON(0): I2C device "DDC:ddc2" removed.
(II) RADEON(0): DDC Type: 2, Detected Type: 0
(II) RADEON(0): EDID data from the display on port 1 ---------------------- (II) RADEON(0): Manufacturer: ACR Model: ad74 Serial#: 1694504369 (II) RADEON(0): Year: 2006 Week: 50
(II) RADEON(0): EDID Version: 1.3
(II) RADEON(0): Digital Display Input

[...]

(II) RADEON(0): Supported additional Video Mode:
(II) RADEON(0): clock: 146.2 MHz Image Size: 473 x 296 mm

(II) RADEON(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) RADEON(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0

(II) RADEON(0): Ranges: V min: 56 V max: 76 Hz, H min: 30 H max: 82 kHz, PixClock max 160 MHz (II) RADEON(0): Monitor name: Acer AL2216W
(II) RADEON(0): Serial No: L74090466420
(II) RADEON(0): EDID (in hex):

(II) RADEON(0):         00ffffffffffff00047274adb1150065
(II) RADEON(0):         32100103e82f1e782ec585a459499a24
(II) RADEON(0):         125054bfef0081808140714f9500950f
(II) RADEON(0):         b30081c08bc021399030621a274068b0
(II) RADEON(0):         3600d9281100001c000000fd00384c1e
(II) RADEON(0):         5210000a202020202020000000fc0041
(II) RADEON(0):         63657220414c32323136570a000000ff
(II) RADEON(0):         004c373430393034363634323020003e

(II) RADEON(0):
(II) RADEON(0): Primary:
Monitor -- TMDS
Connector -- DVI-I
DAC Type -- TVDAC/ExtDAC
TMDS Type -- Internal
DDC Type -- MONID
(II) RADEON(0): Secondary:
Monitor -- CRT
Connector -- VGA
DAC Type -- Primary
TMDS Type -- NONE
DDC Type -- DVI_DDC
(II) RADEON(0): ref_freq: 2700, min_pll: 20000, max_pll: 50000, xclk: 40000, sclk: 500.000000, mclk: 500.000000 (II) RADEON(0): PLL parameters: rf=2700 rd=2 min=20000 max=47742856512336; xclk=40000
(WW) RADEON(0): Failed to detect secondary monitor DDC, default HSync and VRefresh used
(II) RADEON(0): MergedFB mode forced off.
(**) RADEON(0): Using gamma correction (0.5, 0.5, 0.5)
(II) RADEON(0): Validating modes on Primary head ---------
(II) RADEON(0): TMDS PLL from BIOS: 16500 b011c
(II) RADEON(0): Panel infos found from DDC detailed: 1680x1050
(II) RADEON(0): Valid Mode from Detailed timing table: 1680x1050
(II) RADEON(0): Total of 1 mode(s) found.
(II) RADEON(0): Total number of valid DDC mode(s) found: 1
(II) RADEON(0): Valid mode using on-chip RMX: 1680x1050
(II) RADEON(0): Valid mode using on-chip RMX: 1440x900
(II) RADEON(0): Valid mode using on-chip RMX: 1280x960
(II) RADEON(0): Valid mode using on-chip RMX: 1024x640
(II) RADEON(0): Valid mode using on-chip RMX: 800x500
(II) RADEON(0): Total number of valid FP mode(s) found: 5

[...]

(II) RADEON(0): MM_TABLE: 8a-fa-80-e7-8c-52-80-e2-11-d0-e2-0a-fa-5a (II) RADEON(0): This card has MM_TABLE we do not recognize.

[3.] Keywords (i.e., modules, networking, kernel):
modules, radeonfb, framebuffer, console, kernel
[4.] Kernel information
[4.1.] Kernel version (from /proc/version):
Linux version 2.6.20-vs2.3.0.11-gentoo (root@seal) (version gcc 4.1.2 (Gentoo 4.1.2)) #27 PREEMPT Mon Mar 26 19:06:31 CEST 2007

[4.2.] Kernel .config file:
CONFIG_X86_64=y
CONFIG_64BIT=y
CONFIG_X86=y
CONFIG_ZONE_DMA32=y
CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_MMU=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_CMPXCHG=y
CONFIG_EARLY_PRINTK=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_DMI=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_IPC_NS=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_UTS_NS=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
CONFIG_RELAY=y
CONFIG_INITRAMFS_SOURCE="/usr/src/initramfs.lst"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_TASK_XACCT=y
CONFIG_SYSCTL=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0

CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y

CONFIG_BLOCK=y

CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=m
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=m
CONFIG_DEFAULT_DEADLINE=y
CONFIG_DEFAULT_IOSCHED="deadline"

CONFIG_X86_PC=y
CONFIG_MK8=y
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_MTRR=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y

CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HPET_TIMER=y
CONFIG_IOMMU=y
CONFIG_SWIOTLB=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_AMD=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_PHYSICAL_START=0x1000000
CONFIG_SECCOMP=y
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_REORDER=y
CONFIG_K8_NB=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_ISA_DMA_API=y

CONFIG_PM=y
CONFIG_PM_LEGACY=y
CONFIG_SOFTWARE_SUSPEND=y
CONFIG_PM_STD_PARTITION=""

CONFIG_ACPI=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y

CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
CONFIG_X86_ACPI_CPUFREQ=m

CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCI_MSI=y
CONFIG_HT_IRQ=y

CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_IA32_EMULATION=y
CONFIG_IA32_AOUT=m
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y

CONFIG_NET=y

CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_NET_IPIP=m
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_DEFAULT_BIC=y
CONFIG_DEFAULT_TCP_CONG="bic"

CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_SCH_CLK_JIFFIES=y

CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m

CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_CLS_IND=y
CONFIG_NET_ESTIMATOR=y

CONFIG_IRDA=m

CONFIG_IRLAN=m
CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y

CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y

CONFIG_IRTTY_SIR=m

CONFIG_IRPORT_SIR=m

CONFIG_USB_IRDA=m
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIVHCI=m
CONFIG_IEEE80211=m
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_SOFTMAC=m
CONFIG_WIRELESS_EXT=y
CONFIG_FIB_RULES=y

CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m

CONFIG_CONNECTOR=m

CONFIG_MTD=m

CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m

CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_OTP=y
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
CONFIG_MTD_ROM=m
CONFIG_MTD_ABSENT=m

CONFIG_MTD_CK804XROM=m

CONFIG_MTD_PHRAM=m

CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
CONFIG_PARPORT_1284=y

CONFIG_PNP=y

CONFIG_PNPACPI=y

CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_VROOT=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8

CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m

CONFIG_IDE=m
CONFIG_BLK_DEV_IDE=m

CONFIG_BLK_DEV_IDEDISK=m
CONFIG_BLK_DEV_IDECD=m
CONFIG_IDE_TASK_IOCTL=y

CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_AMD74XX=m
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_AUTO=y

CONFIG_SCSI=m

CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m

CONFIG_SCSI_MULTI_LUN=y

CONFIG_ATA=m
CONFIG_SATA_NV=m
CONFIG_PATA_AMD=m
CONFIG_ATA_GENERIC=m

CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_RAID5_RESHAPE=y
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
CONFIG_DM_DEBUG=y
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_BLK_DEV_DM_BBR=m

CONFIG_IEEE1394=m

CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
CONFIG_IEEE1394_CONFIG_ROM_IP1394=y

CONFIG_IEEE1394_OHCI1394=m

CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m

CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_TUN=m

CONFIG_PHYLIB=m

CONFIG_MARVELL_PHY=m

CONFIG_NET_ETHERNET=y
CONFIG_MII=m

CONFIG_NET_PCI=y
CONFIG_FORCEDETH=m

CONFIG_SKGE=m

CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=y

CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1024
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m

CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
CONFIG_INPUT_UINPUT=m

CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_LIBPS2=y
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m

CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y

CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1

CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_PRINTER=m

CONFIG_WATCHDOG=y

CONFIG_SOFT_WATCHDOG=m

CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_NVRAM=m
CONFIG_RTC=m
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_DRM=m
CONFIG_DRM_RADEON=m
CONFIG_HPET=y
CONFIG_HPET_RTC_IRQ=y
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=m

CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m

CONFIG_I2C_ALGOBIT=m

CONFIG_I2C_ISA=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_STUB=m

CONFIG_SENSORS_EEPROM=m

CONFIG_HWMON=m
CONFIG_HWMON_VID=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_IT87=m

CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2=y

CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_CX25840=m
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CAFE_CCIC=m

CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_PVRUSB2_29XXX=y
CONFIG_VIDEO_PVRUSB2_24XXX=y
CONFIG_VIDEO_PVRUSB2_SYSFS=y
CONFIG_VIDEO_USBVISION=m

CONFIG_DVB=y
CONFIG_DVB_CORE=m
CONFIG_DVB_CORE_ATTACH=y

CONFIG_DVB_USB=m
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_DIBUSB_MB=m
CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
CONFIG_DVB_USB_DIBUSB_MC=m
CONFIG_DVB_USB_DIB0700=m
CONFIG_DVB_USB_UMT_010=m
CONFIG_DVB_USB_CXUSB=m
CONFIG_DVB_USB_DIGITV=m
CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_USB_VP702X=m
CONFIG_DVB_USB_GP8PSK=m
CONFIG_DVB_USB_NOVA_T_USB2=m
CONFIG_DVB_USB_TTUSB2=m
CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_DVB_CINERGYT2=m
CONFIG_DVB_CINERGYT2_TUNING=y
CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=50

CONFIG_DVB_PLUTO2=m

CONFIG_DVB_FE_CUSTOMISE=y

CONFIG_DVB_STV0299=m
CONFIG_DVB_CX24110=m
CONFIG_DVB_CX24123=m
CONFIG_DVB_TDA8083=m
CONFIG_DVB_MT312=m
CONFIG_DVB_VES1X93=m
CONFIG_DVB_S5H1420=m
CONFIG_DVB_TDA10086=m

CONFIG_DVB_SP8870=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_L64781=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_MT352=m
CONFIG_DVB_ZL10353=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m
CONFIG_DVB_DIB7000M=m
CONFIG_DVB_DIB7000P=m

CONFIG_DVB_VES1820=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_STV0297=m

CONFIG_DVB_NXT200X=m
CONFIG_DVB_OR51211=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m

CONFIG_DVB_PLL=m
CONFIG_DVB_TDA826X=m
CONFIG_DVB_TUNER_MT2060=m
CONFIG_DVB_TUNER_LGH06XF=m

CONFIG_DVB_LNBP21=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_TUA6100=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_VIDEOBUF=m
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m

CONFIG_FIRMWARE_EDID=y
CONFIG_FB=m
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=m
CONFIG_FB_CFB_COPYAREA=m
CONFIG_FB_CFB_IMAGEBLIT=m
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VGA16=m
CONFIG_VIDEO_SELECT=y
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_DEBUG=y

CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=m
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y

CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_DEVICE=y

CONFIG_SPEAKUP=m
CONFIG_SPEAKUP_SFTSYN=m

CONFIG_SPEAKUP_DEFAULT="sftsyn"

CONFIG_SOUND=m

CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
CONFIG_SND_VERBOSE_PROCFS=y

CONFIG_SND_MPU401_UART=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MPU401=m

CONFIG_SND_INTEL8X0=m
CONFIG_SND_AC97_POWER_SAVE=y

CONFIG_SND_USB_AUDIO=m

CONFIG_AC97_BUS=m

CONFIG_HID=m

CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=m

CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
CONFIG_USB_SUSPEND=y

CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_LITTLE_ENDIAN=y

CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m

CONFIG_USB_STORAGE=m
CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_LIBUSUAL=y

CONFIG_USB_HID=m
CONFIG_HID_FF=y
CONFIG_LOGITECH_FF=y
CONFIG_USB_HIDDEV=y

CONFIG_USB_AIPTEK=m
CONFIG_USB_WACOM=m

CONFIG_USB_MON=y

CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y

CONFIG_USB_LD=m

CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m

CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m

CONFIG_EDAC=m

CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_POLL=y

CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m

CONFIG_RTC_INTF_SYSFS=m
CONFIG_RTC_INTF_PROC=m
CONFIG_RTC_INTF_DEV=m
CONFIG_RTC_INTF_DEV_UIE_EMUL=y

CONFIG_DMA_ENGINE=y

CONFIG_NET_DMA=y

CONFIG_KVM=m
CONFIG_KVM_AMD=m

CONFIG_EDD=m

CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_FS_XIP=y
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4DEV_FS=m
CONFIG_EXT4DEV_FS_XATTR=y
CONFIG_EXT4DEV_FS_POSIX_ACL=y
CONFIG_EXT4DEV_FS_SECURITY=y
CONFIG_JBD=m
CONFIG_JBD_DEBUG=y
CONFIG_JBD2=m
CONFIG_JBD2_DEBUG=y
CONFIG_FS_MBCACHE=m
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_FS_POSIX_ACL=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y

CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=m
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

CONFIG_FAT_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
CONFIG_NTFS_RW=y

CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
CONFIG_CONFIGFS_FS=m

CONFIG_ECRYPT_FS=m
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_JFFS2_FS_SECURITY=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
CONFIG_JFFS2_RUBIN=y
CONFIG_JFFS2_CMODE_PRIORITY=y
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3

CONFIG_NFS_FS=m
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_EXPERIMENTAL=y
CONFIG_CODA_FS=m

CONFIG_PARTITION_ADVANCED=y
CONFIG_MSDOS_PARTITION=y

CONFIG_NLS=m
CONFIG_NLS_DEFAULT="iso8859-15"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=m

CONFIG_DLM=m
CONFIG_DLM_TCP=y

CONFIG_PROFILING=y
CONFIG_OPROFILE=m
CONFIG_KPROBES=y

CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=16
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_DEBUG_PREEMPT=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
CONFIG_RT_MUTEX_TESTER=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_RWSEMS=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
CONFIG_STACKTRACE=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_FRAME_POINTER=y
CONFIG_RCU_TORTURE_TEST=m
CONFIG_LKDTM=m
CONFIG_DEBUG_RODATA=y
CONFIG_DEBUG_STACKOVERFLOW=y

CONFIG_VSERVER_AUTO_LBACK=y
CONFIG_VSERVER_COWBL=y
CONFIG_VSERVER_PROC_SECURE=y
CONFIG_TAGGING_ID24=y
CONFIG_VSERVER_PRIVACY=y
CONFIG_VSERVER_DEBUG=y
CONFIG_VSERVER_HISTORY=y
CONFIG_VSERVER_HISTORY_SIZE=64
CONFIG_VSERVER_MONITOR=y
CONFIG_VSERVER_MONITOR_SIZE=1024
CONFIG_VSERVER_MONITOR_SYNC=256
CONFIG_VSERVER=y
CONFIG_VSERVER_SECURITY=y

CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_CAPABILITIES=y

CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_X86_64=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_TEST=m

CONFIG_BITREVERSE=m
CONFIG_CRC_CCITT=m
CONFIG_CRC32=m
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_IOMAP_COPY=y

[8.2.] Processor information (from /proc/cpuinfo):
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 47
model name : AMD Athlon(tm) 64 Processor 3200+
stepping : 2
cpu MHz : 2000.000
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm
bogomips : 4031.49
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

[8.3.] Module information (from /proc/modules):

# cat /proc/modules
powernow_k8 11416 0 - Live 0xffffffff883d5000
freq_table 5320 1 powernow_k8, Live 0xffffffff883d2000
processor 27260 1 powernow_k8, Live 0xffffffff883ca000
nfsd 259784 5 - Live 0xffffffff88389000
exportfs 6656 1 nfsd, Live 0xffffffff88386000
lockd 70192 1 nfsd, Live 0xffffffff88373000
nfs_acl 4160 1 nfsd, Live 0xffffffff88370000
sunrpc 178376 7 nfsd,lockd,nfs_acl, Live 0xffffffff88343000
eeprom 8792 0 - Live 0xffffffff8833f000
it87 22944 0 - Live 0xffffffff88338000
hwmon_vid 3328 1 it87, Live 0xffffffff881f7000
i2c_isa 7560 1 it87, Live 0xffffffff88335000
snd_seq_midi 9920 0 - Live 0xffffffff88331000
snd_pcm_oss 46144 0 - Live 0xffffffff88324000
snd_mixer_oss 18248 1 snd_pcm_oss, Live 0xffffffff8831e000
snd_seq_oss 34064 0 - Live 0xffffffff88314000
snd_usb_audio 90320 0 - Live 0xffffffff882fc000
snd_usb_lib 18520 1 snd_usb_audio, Live 0xffffffff882f6000
snd_hwdep 11536 1 snd_usb_audio, Live 0xffffffff882f2000
dm_mod 65008 37 - Live 0xffffffff882e1000
snd_seq_virmidi 8968 0 - Live 0xffffffff882dd000
snd_seq_midi_event 8776 3 snd_seq_midi,snd_seq_oss,snd_seq_virmidi, Live 0xffffffff882d9000
snd_seq 56360 6 snd_seq_midi,snd_seq_oss,snd_seq_virmidi,snd_seq_midi_event, Live 0xffffffff882ca000
pktcdvd 37560 0 - Live 0xffffffff882bf000
lp 15048 0 - Live 0xffffffff882ba000
snd_rtctimer 4448 0 - Live 0xffffffff882b7000
hangcheck_timer 4824 0 - Live 0xffffffff882b4000
nvram 10184 0 - Live 0xffffffff882b0000
softdog 7452 0 - Live 0xffffffff882ad000
uinput 10768 0 - Live 0xffffffff882a9000
eth1394 21344 0 - Live 0xffffffff882a2000
snd_mpu401 10088 0 - Live 0xffffffff8829e000
snd_mpu401_uart 9944 1 snd_mpu401, Live 0xffffffff8829a000
snd_rawmidi 28032 4 snd_seq_midi,snd_usb_lib,snd_seq_virmidi,snd_mpu401_uart, Live 0xffffffff88292000
snd_seq_device 9308 4 snd_seq_midi,snd_seq_oss,snd_seq,snd_rawmidi, Live 0xffffffff8828e000
ohci1394 36520 0 - Live 0xffffffff88284000
ieee1394 109160 2 eth1394,ohci1394, Live 0xffffffff88268000
parport_pc 42856 1 - Live 0xffffffff8825c000
parport 44588 2 lp,parport_pc, Live 0xffffffff88250000
analog 12128 0 - Live 0xffffffff8824c000
gameport 19552 1 analog, Live 0xffffffff88246000
floppy 67176 0 - Live 0xffffffff88234000
rtc 10592 1 snd_rtctimer, Live 0xffffffff88230000
sr_mod 17252 0 - Live 0xffffffff8822a000
cdrom 36840 2 pktcdvd,sr_mod, Live 0xffffffff88220000
radeonfb 116832 0 - Live 0xffffffff88202000
k8temp 7048 0 - Live 0xffffffff881ff000
hwmon 4232 2 it87,k8temp, Live 0xffffffff881fc000
pcspkr 4160 0 - Live 0xffffffff881f9000
usbhid 28992 0 - Live 0xffffffff881ee000
hid 23296 1 usbhid, Live 0xffffffff881e7000
sg 27496 0 - Live 0xffffffff881df000
raid1 25360 1 - Live 0xffffffff881d7000
md_mod 81780 6 raid1, Live 0xffffffff881c2000
snd_intel8x0 37360 1 - Live 0xffffffff881b7000
snd_ac97_codec 111384 1 snd_intel8x0, Live 0xffffffff8819a000
snd_pcm 87728 4 snd_pcm_oss,snd_usb_audio,snd_intel8x0,snd_ac97_codec, Live 0xffffffff88183000
snd_timer 26272 3 snd_seq,snd_rtctimer,snd_pcm, Live 0xffffffff8817b000
snd 66024 17 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_usb_audio,snd_hwdep,snd_seq_virmidi,snd_seq,snd_mpu401,snd_mpu401_uart,snd_rawmidi,snd_seq_device,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer, Live 0xffffffff88169000
soundcore 10080 1 snd, Live 0xffffffff88165000
snd_page_alloc 10896 2 snd_intel8x0,snd_pcm, Live 0xffffffff88161000
ac97_bus 3776 1 snd_ac97_codec, Live 0xffffffff8815f000
marvell 3456 0 - Live 0xffffffff8815d000
libphy 23248 1 marvell, Live 0xffffffff88156000
forcedeth 46476 0 - Live 0xffffffff88149000
usb_storage 45284 0 - Live 0xffffffff8813c000
libusual 18856 1 usb_storage, Live 0xffffffff88136000
ohci_hcd 22220 0 - Live 0xffffffff8812f000
ehci_hcd 34580 0 - Live 0xffffffff88125000
usbcore 150232 8 snd_usb_audio,snd_usb_lib,usbhid,usb_storage,libusual,ohci_hcd,ehci_hcd, Live 0xffffffff880ff000
evdev 11392 1 - Live 0xffffffff880fb000
ext3 145592 18 - Live 0xffffffff880d6000
jbd 77432 1 ext3, Live 0xffffffff880c2000
ext2 75568 2 - Live 0xffffffff880ae000
mbcache 10376 2 ext3,ext2, Live 0xffffffff880aa000
sata_nv 21764 3 - Live 0xffffffff880a3000
pata_amd 15840 0 - Live 0xffffffff8809e000
ata_generic 9732 0 - Live 0xffffffff8809a000
libata 115368 3 sata_nv,pata_amd,ata_generic, Live 0xffffffff8807c000
sd_mod 21952 2 - Live 0xffffffff88075000
scsi_mod 110664 5 sr_mod,sg,usb_storage,libata,sd_mod, Live 0xffffffff88058000
vga16fb 12824 1 - Live 0xffffffff88053000
vgastate 8640 1 vga16fb, Live 0xffffffff8804f000
fb_ddc 3200 1 radeonfb, Live 0xffffffff8804d000
cfbfillrect 4480 2 radeonfb,vga16fb, Live 0xffffffff8804a000
cfbimgblt 3200 2 radeonfb,vga16fb, Live 0xffffffff88048000
cfbcopyarea 3968 2 radeonfb,vga16fb, Live 0xffffffff88046000
i2c_nforce2 6976 0 - Live 0xffffffff88043000
i2c_algo_bit 8328 1 radeonfb, Live 0xffffffff8803f000
i2c_dev 8968 0 - Live 0xffffffff8803b000
i2c_core 26768 8 eeprom,it87,i2c_isa,radeonfb,fb_ddc,i2c_nforce2,i2c_algo_bit,i2c_dev, Live 0xffffffff88033000
fbcon 43008 77 - Live 0xffffffff88027000
bitblit 6336 1 fbcon, Live 0xffffffff88024000
fbcon_rotate 3456 1 bitblit, Live 0xffffffff88022000
fbcon_cw 6464 1 fbcon_rotate, Live 0xffffffff8801f000
fbcon_ud 6720 1 fbcon_rotate, Live 0xffffffff8801c000
fbcon_ccw 6656 1 fbcon_rotate, Live 0xffffffff88019000
softcursor 2752 4 bitblit,fbcon_cw,fbcon_ud,fbcon_ccw, Live 0xffffffff88017000
fb 51408 8 radeonfb,vga16fb,fbcon,bitblit,fbcon_cw,fbcon_ud,fbcon_ccw,softcursor, Live 0xffffffff88009000
font 8960 1 fbcon, Live 0xffffffff88005000
crc32 4608 1 fbcon, Live 0xffffffff88002000

[8.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)

# cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : 0000:00:06.0
 0170-0177 : libata
01f0-01f7 : 0000:00:06.0
 01f0-01f7 : libata
0290-0297 : it87-isa
0330-0331 : MPU401 UART
0376-0376 : 0000:00:06.0
 0376-0376 : libata
0378-037a : parport0
037b-037f : parport0
03c0-03df : vga+
03f2-03f5 : floppy
03f6-03f6 : 0000:00:06.0
 03f6-03f6 : libata
03f7-03f7 : floppy DIR
03f8-03ff : serial
0960-0967 : 0000:00:08.0
 0960-0967 : sata_nv
0970-0977 : 0000:00:07.0
 0970-0977 : sata_nv
09e0-09e7 : 0000:00:08.0
 09e0-09e7 : sata_nv
09f0-09f7 : 0000:00:07.0
 09f0-09f7 : sata_nv
0b60-0b63 : 0000:00:08.0
 0b60-0b63 : sata_nv
0b70-0b73 : 0000:00:07.0
 0b70-0b73 : sata_nv
0be0-0be3 : 0000:00:08.0
 0be0-0be3 : sata_nv
0bf0-0bf3 : 0000:00:07.0
 0bf0-0bf3 : sata_nv
0cf8-0cff : PCI conf1
4000-407f : motherboard
 4000-4003 : ACPI PM1a_EVT_BLK
 4004-4005 : ACPI PM1a_CNT_BLK
 4008-400b : ACPI PM_TMR
 401c-401c : ACPI PM2_CNT_BLK
 4020-4027 : ACPI GPE0_BLK
4080-40ff : motherboard
 4080-40ff : pnp 00:01
4400-447f : motherboard
 4400-447f : pnp 00:01
4480-44ff : motherboard
 44a0-44af : ACPI GPE1_BLK
4800-487f : motherboard
 4800-487f : pnp 00:01
4880-48ff : motherboard
 4880-48ff : pnp 00:01
4c00-4c3f : 0000:00:01.1
 4c00-4c3f : nForce2_smbus
4c40-4c7f : 0000:00:01.1
 4c40-4c7f : nForce2_smbus
a000-afff : PCI Bus #01
 a000-a0ff : 0000:01:00.0
b000-b007 : 0000:00:0a.0
 b000-b007 : forcedeth
c400-c40f : 0000:00:08.0
 c400-c40f : sata_nv
d800-d80f : 0000:00:07.0
 d800-d80f : sata_nv
dc00-dcff : 0000:00:04.0
 dc00-dcff : NVidia CK804
e000-e0ff : 0000:00:04.0
 e000-e0ff : NVidia CK804
e400-e41f : 0000:00:01.1
f000-f00f : 0000:00:06.0
 f000-f00f : libata

[8.5.] PCI information ('lspci -vvv' as root)

# lspci -vvv
00:00.0 Memory controller: nVidia Corporation CK804 Memory Controller (rev a3)
       Subsystem: ASUSTeK Computer Inc. Unknown device 815a
       Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
ParErr- Stepping- SERR- FastB2B-
       Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- 
<TAbort- <MAbort- >SERR- <PERR-
       Latency: 0
       Capabilities: [44] HyperTransport: Slave or Primary Interface
               Command: BaseUnitID=0 UnitCnt=15 MastHost- DefDir- DUL-
               Link Control 0: CFlE+ CST- CFE- <LkFail- Init+ EOC- TXO- 
<CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
               Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- 
LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
               Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ 
<CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
               Link Config 1: MLWI=8bit DwFcIn- MLWO=8bit DwFcOut- 
LWI=8bit DwFcInEn- LWO=8bit DwFcOutEn-
               Revision ID: 1.03
               Link Frequency 0: 1.0GHz
               Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
               Link Frequency Capability 0: 200MHz+ 300MHz+ 400MHz+ 
500MHz+ 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz- 1.4GHz- 1.6GHz- Vend-
               Feature Capability: IsocFC+ LDTSTOP+ CRCTM- ECTLT- 64bA- 
UIDRD-
               Link Frequency 1: 200MHz
               Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
               Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 
500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
               Error Handling: PFlE+ OFlE+ PFE- OFE- EOCFE- RFE- CRCFE- 
SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
               Prefetchable memory behind bridge Upper: 00-00
               Bus Number: 00
       Capabilities: [e0] HyperTransport: MSI Mapping

00:01.0 ISA bridge: nVidia Corporation CK804 ISA Bridge (rev a3)
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:01.1 SMBus: nVidia Corporation CK804 SMBus (rev a2)
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 255
Region 0: I/O ports at e400 [size=32]
Region 4: I/O ports at 4c00 [size=64]
Region 5: I/O ports at 4c40 [size=64]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.0 USB Controller: nVidia Corporation CK804 USB Controller (rev a2) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin A routed to IRQ 20
Region 0: Memory at d2104000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.1 USB Controller: nVidia Corporation CK804 USB Controller (rev a3) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin B routed to IRQ 21
Region 0: Memory at feb00000 (32-bit, non-prefetchable) [size=256]
Capabilities: [44] Debug port
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME+

00:04.0 Multimedia audio controller: nVidia Corporation CK804 AC'97 Audio Controller (rev a2)
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0 (500ns min, 1250ns max)
       Interrupt: pin A routed to IRQ 22
       Region 0: I/O ports at dc00 [size=256]
       Region 1: I/O ports at e000 [size=256]
       Region 2: Memory at d2103000 (32-bit, non-prefetchable) [size=4K]
       Capabilities: [44] Power Management version 2
               Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA 

PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:06.0 IDE interface: nVidia Corporation CK804 IDE (rev f2) (prog-if 8a [Master SecP PriP])
Subsystem: Unknown device f043:815a
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0 (750ns min, 250ns max)
       Region 0: [virtual] Memory at 000001f0 (32-bit, 
non-prefetchable) [disabled] [size=8]
       Region 1: [virtual] Memory at 000003f0 (type 3, 
non-prefetchable) [disabled] [size=1]
       Region 2: [virtual] Memory at 00000170 (32-bit, 
non-prefetchable) [disabled] [size=8]
       Region 3: [virtual] Memory at 00000370 (type 3, 

non-prefetchable) [disabled] [size=1]
Region 4: I/O ports at f000 [size=16]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:07.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev f3) (prog-if 85 [Master SecO PriO])
Subsystem: ASUSTeK Computer Inc. Unknown device 815a
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0 (750ns min, 250ns max)
       Interrupt: pin A routed to IRQ 23
       Region 0: I/O ports at 09f0 [size=8]
       Region 1: I/O ports at 0bf0 [size=4]
       Region 2: I/O ports at 0970 [size=8]
       Region 3: I/O ports at 0b70 [size=4]
       Region 4: I/O ports at d800 [size=16]
       Region 5: Memory at d2102000 (32-bit, non-prefetchable) [size=4K]
       Capabilities: [44] Power Management version 2
               Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 

PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:08.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev f3) (prog-if 85 [Master SecO PriO])
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0 (750ns min, 250ns max)
       Interrupt: pin A routed to IRQ 22
       Region 0: I/O ports at 09e0 [size=8]
       Region 1: I/O ports at 0be0 [size=4]
       Region 2: I/O ports at 0960 [size=8]
       Region 3: I/O ports at 0b60 [size=4]
       Region 4: I/O ports at c400 [size=16]
       Region 5: Memory at d2101000 (32-bit, non-prefetchable) [size=4K]
       Capabilities: [44] Power Management version 2
               Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 

PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:09.0 PCI bridge: nVidia Corporation CK804 PCI Bridge (rev a2) (prog-if 01 [Subtractive decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0
       Bus: primary=00, secondary=05, subordinate=05, sec-latency=128
       I/O behind bridge: 0000f000-00000fff
       Memory behind bridge: d2000000-d20fffff
       Prefetchable memory behind bridge: fff00000-000fffff
       Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- 

<TAbort- <MAbort+ <SERR- <PERR+
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-

00:0a.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3)
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (250ns min, 5000ns max)
Interrupt: pin A routed to IRQ 23
Region 0: Memory at d2100000 (32-bit, non-prefetchable) [size=4K] Region 1: I/O ports at b000 [size=8]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable+ DSel=0 DScale=0 PME-

00:0b.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0, Cache Line Size: 32 bytes
       Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
       I/O behind bridge: 0000f000-00000fff
       Memory behind bridge: fff00000-000fffff
       Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
       Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- 

<TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+
Queue=0/1 Enable+
Address: 00000000fee0100c Data: 4139
Capabilities: [58] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0,
ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x2, ASPM L0s, Port 3
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x4
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug-
Surpise-
Slot: Number 8, PowerLimit 25.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-

00:0c.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0, Cache Line Size: 32 bytes
       Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
       I/O behind bridge: 0000f000-00000fff
       Memory behind bridge: fff00000-000fffff
       Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
       Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- 

<TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+
Queue=0/1 Enable+
Address: 00000000fee0100c Data: 4141
Capabilities: [58] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0,
ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s, Port 2
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x4
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug-
Surpise-
Slot: Number 4, PowerLimit 10.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-

00:0d.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0, Cache Line Size: 32 bytes
       Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
       I/O behind bridge: 0000f000-00000fff
       Memory behind bridge: fff00000-000fffff
       Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
       Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- 

<TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+
Queue=0/1 Enable+
Address: 00000000fee0100c Data: 4149
Capabilities: [58] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0,
ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s, Port 1
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x8
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug-
Surpise-
Slot: Number 2, PowerLimit 10.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-

00:0e.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Latency: 0, Cache Line Size: 32 bytes
       Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
       I/O behind bridge: 0000a000-0000afff
       Memory behind bridge: d0000000-d1ffffff
       Prefetchable memory behind bridge: 00000000c0000000-00000000cfffffff
       Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- 

<TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+
Queue=0/1 Enable+
Address: 00000000fee0100c Data: 4151
Capabilities: [58] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0,
ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s, Port 0
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x16
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug-
Surpise-
Slot: Number 1, PowerLimit 75.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Capabilities: [80] HyperTransport: Host or Secondary Interface
!!! Possibly incomplete decoding
Command: WarmRst+ DblEnd-
Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
<CRCErr=0
Link Config: MLWI=16bit MLWO=16bit LWI=16bit LWO=16bit
Revision ID: 1.02

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

01:00.0 VGA compatible controller: ATI Technologies Inc R423 5F57 [Radeon X800XT (PCIE)] (prog-if 00 [VGA])
Subsystem: ATI Technologies Inc Unknown device 0312
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at c0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at d1000000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at a000 [size=256]
Expansion ROM at d0000000 [disabled] [size=128K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express Endpoint IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0,
ExtTag+
Device: Latency L0s <256ns, L1 <4us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1,
Port 0
Link: Latency L0s <256ns, L1 <2us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x16
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+
Queue=0/0 Enable-

               Address: 0000000000000000  Data: 0000

01:00.1 Display controller: ATI Technologies Inc R423 5F57 [Radeon X800XT (PCIE)] (Secondary)
Subsystem: ATI Technologies Inc Unknown device 0313
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

       Region 0: Memory at d1010000 (64-bit, non-prefetchable) 

[disabled] [size=64K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express Endpoint IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0,
ExtTag-
Device: Latency L0s <256ns, L1 <4us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1,
Port 0

               Link: Latency L0s <256ns, L1 <2us
               Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
               Link: Speed 2.5Gb/s, Width x16

05:0b.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. K8N4-E Mainboard
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (500ns min, 1000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at d2004000 (32-bit, non-prefetchable) [size=2K]
Region 1: Memory at d2000000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME+

Here are the radeonfb patches i have applied:

http://www.shaftnet.org/users/pizza/radeonfb-atom-2.6.19-v6a.diff and some others grabbed from web

To make them easier to identify, i added the files that were modified (diff -ruN) at the end of that report.

Thank you for your help

Jj

ati_ids.h renamed from ati_ids.h.orig +33 -1
@@ -31,6 +31,7 @@
 #define PCI_CHIP_RV360_AR               0x4152
 #define PCI_CHIP_RV350_AS               0x4153
 #define PCI_CHIP_RV350_AT               0x4154
+#define PCI_CHIP_RV350_AU 		0x4155
 #define PCI_CHIP_RV350_AV               0x4156
 #define PCI_CHIP_MACH32			0x4158
 #define PCI_CHIP_RS250_4237		0x4237
@@ -71,7 +72,13 @@
 #define PCI_CHIP_R420_JL                0x4A4C
 #define PCI_CHIP_R420_JM                0x4A4D
 #define PCI_CHIP_R420_JN                0x4A4E
+#define PCI_CHIP_R420_JO 		0x4A4F
 #define PCI_CHIP_R420_JP                0x4A50
+#define PCI_CHIP_R420_JT 		0x4A54
+#define PCI_CHIP_R480_KI 		0x4B49
+#define PCI_CHIP_R480_KJ 		0x4B4A
+#define PCI_CHIP_R480_KK                0x4B4B
+#define PCI_CHIP_R480_KL 		0x4B4C
 #define PCI_CHIP_MACH64LB		0x4C42
 #define PCI_CHIP_MACH64LD		0x4C44
 #define PCI_CHIP_RAGE128LE		0x4C45
@@ -182,9 +189,19 @@
 #define PCI_CHIP_R423_UI                0x5549
 #define PCI_CHIP_R423_UJ                0x554A
 #define PCI_CHIP_R423_UK                0x554B
+#define PCI_CHIP_R423_UL 		0x554C
+#define PCI_CHIP_R423_UM 		0x554D
+#define PCI_CHIP_R423_UN 		0x554E
+#define PCI_CHIP_R423_UO 		0x554F
+#define PCI_CHIP_R423_UP 	       	0x5550
 #define PCI_CHIP_R423_UQ                0x5551
 #define PCI_CHIP_R423_UR                0x5552
 #define PCI_CHIP_R423_UT                0x5554
+#define PCI_CHIP_RV410_VJ 		0x564A
+#define PCI_CHIP_RV410_VK 		0x564B
+#define PCI_CHIP_RV410_VO 		0x564F
+#define PCI_CHIP_RV410_VR 		0x5652
+#define PCI_CHIP_RV410_VS 		0x5653
 #define PCI_CHIP_MACH64VT		0x5654
 #define PCI_CHIP_MACH64VU		0x5655
 #define PCI_CHIP_MACH64VV		0x5656
@@ -206,7 +223,22 @@
 #define PCI_CHIP_RV280_5964		0x5964
 #define PCI_CHIP_RV280_5C61		0x5C61
 #define PCI_CHIP_RV280_5C63		0x5C63
+#define PCI_CHIP_R423_5D48		0x5D48
+#define PCI_CHIP_R423_5D49		0x5D49
+#define PCI_CHIP_R423_5D4A		0x5D4A
+#define PCI_CHIP_R480_5D4C		0x5D4C
+#define PCI_CHIP_R480_5D4D		0x5D4D
+#define PCI_CHIP_R480_5D4E		0x5D4E
+#define PCI_CHIP_R480_5D4F		0x5D4F
+#define PCI_CHIP_R480_5D50		0x5D50
+#define PCI_CHIP_R480_5D52		0x5D52
 #define PCI_CHIP_R423_5D57              0x5D57
+#define PCI_CHIP_RV410_5E48		0x5E48
+#define PCI_CHIP_RV410_5E4A		0x5E4A
+#define PCI_CHIP_RV410_5E4B		0x5E4B
+#define PCI_CHIP_RV410_5E4C		0x5E4C
+#define PCI_CHIP_RV410_5E4D		0x5E4D
+#define PCI_CHIP_RV410_5E4F		0x5E4F
+#define PCI_CHIP_R423_5F57              0x5F57
 #define PCI_CHIP_RS350_7834             0x7834
 #define PCI_CHIP_RS350_7835             0x7835
-
radeon_accel.c renamed from radeon_accel.c.orig +7 -12
@@ -203,9 +203,7 @@
 	host_path_cntl = INREG(HOST_PATH_CNTL);
 	rbbm_soft_reset = INREG(RBBM_SOFT_RESET);
 
-	if (rinfo->family == CHIP_FAMILY_R300 ||
-	    rinfo->family == CHIP_FAMILY_R350 ||
-	    rinfo->family == CHIP_FAMILY_RV350) {
+	if (IS_R300_VARIANT(rinfo)) {
 		u32 tmp;
 
 		OUTREG(RBBM_SOFT_RESET, (rbbm_soft_reset |
@@ -241,9 +239,7 @@
 	INREG(HOST_PATH_CNTL);
 	OUTREG(HOST_PATH_CNTL, host_path_cntl);
 
-	if (rinfo->family != CHIP_FAMILY_R300 ||
-	    rinfo->family != CHIP_FAMILY_R350 ||
-	    rinfo->family != CHIP_FAMILY_RV350)
+	if (IS_R300_VARIANT(rinfo))
 		OUTREG(RBBM_SOFT_RESET, rbbm_soft_reset);
 
 	OUTREG(CLOCK_CNTL_INDEX, clock_cntl_index);
@@ -254,16 +250,15 @@
 {
 	unsigned long temp;
 
-	/* disable 3D engine */
-	OUTREG(RB3D_CNTL, 0);
-
 	radeonfb_engine_reset(rinfo);
 
 	radeon_fifo_wait (1);
-	if ((rinfo->family != CHIP_FAMILY_R300) &&
-	    (rinfo->family != CHIP_FAMILY_R350) &&
-	    (rinfo->family != CHIP_FAMILY_RV350))
+	if (IS_R300_VARIANT(rinfo)) {
+		temp = INREG(RB2D_DSTCACHE_MODE);
+		OUTREG(RB2D_DSTCACHE_MODE, temp | (1<<17)); /* FIXME */
+	} else {
 		OUTREG(RB2D_DSTCACHE_MODE, 0);
+	}
 
 	radeon_fifo_wait (3);
 	/* We re-read MC_FB_LOCATION from card as it can have been
radeon_backlight.c renamed from radeon_backlight.c.orig +2 -2
@@ -58,7 +58,7 @@
 	u32 lvds_gen_cntl, tmpPixclksCntl;
 	int level;
 
-	if (rinfo->mon1_type != MT_LCD)
+	if (PRIMARY_MONITOR(rinfo) != MT_LCD)
 		return 0;
 
 	/* We turn off the LCD completely instead of just dimming the
@@ -146,7 +146,7 @@
 	struct radeon_bl_privdata *pdata;
 	char name[12];
 
-	if (rinfo->mon1_type != MT_LCD)
+	if (PRIMARY_MONITOR(rinfo) == MT_LCD) {
 		return;
 
 #ifdef CONFIG_PMAC_BACKLIGHT
radeon_base.c renamed from radeon_base.c.orig +328 -128

725 lines not on this page · raw message

radeonfb.h renamed from radeonfb.h.orig +124 -39

248 lines not on this page · raw message

radeon_i2c.c renamed from radeon_i2c.c.orig +46 -23

81 lines not on this page · raw message

radeon_monitor.c renamed from radeon_monitor.c.orig +955 -373

1,578 lines not on this page · raw message

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

author
#1 lore raw

Some more news:

the radeon irq isn't identified in /proc/interrupts. In fact, we should read something like this,

18: 2305987 IO-APIC-fasteoi radeon@pci:0000:01:00.0

as it is reported in kern.log file !!

ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18

Intead, i get,

# cat /proc/interrupts
           CPU0
  0:   24560170   IO-APIC-edge      timer
  1:      18202   IO-APIC-edge      i8042
  6:          5   IO-APIC-edge      floppy
  7:          0   IO-APIC-edge      parport0
  9:          0   IO-APIC-fasteoi   acpi
10:          0   IO-APIC-edge      MPU401 UART
14:     266877   IO-APIC-edge      libata
15:          0   IO-APIC-edge      libata
16:          3   IO-APIC-fasteoi   ohci1394
20:     385492   IO-APIC-fasteoi   ohci_hcd:usb2
21:          2   IO-APIC-fasteoi   ehci_hcd:usb1
22:          0   IO-APIC-fasteoi   libata, NVidia CK804
23:    3165506   IO-APIC-fasteoi   libata, eth0
NMI:       2812
LOC:   24557617
ERR:          0

and there is no irq for the radeon card available !

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#2 lore raw
Quoted 34 lines · Jimmy Jazz

Some more news:

the radeon irq isn't identified in /proc/interrupts. In fact, we should read something like this,

18: 2305987 IO-APIC-fasteoi radeon@pci:0000:01:00.0

as it is reported in kern.log file !!

ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18

Intead, i get,

# cat /proc/interrupts
           CPU0
  0:   24560170   IO-APIC-edge      timer
  1:      18202   IO-APIC-edge      i8042
  6:          5   IO-APIC-edge      floppy
  7:          0   IO-APIC-edge      parport0
  9:          0   IO-APIC-fasteoi   acpi
10:          0   IO-APIC-edge      MPU401 UART
14:     266877   IO-APIC-edge      libata
15:          0   IO-APIC-edge      libata
16:          3   IO-APIC-fasteoi   ohci1394
20:     385492   IO-APIC-fasteoi   ohci_hcd:usb2
21:          2   IO-APIC-fasteoi   ehci_hcd:usb1
22:          0   IO-APIC-fasteoi   libata, NVidia CK804
23:    3165506   IO-APIC-fasteoi   libata, eth0
NMI:       2812
LOC:   24557617
ERR:          0
Quoted 3 lines

and there is no irq for the radeon card available !

Is the radeon drm loaded?

Alex

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

author
#3 lore raw
Quoted 35 lines · Alex Deucher
Quoted 34 lines · Jimmy Jazz

Some more news:

the radeon irq isn't identified in /proc/interrupts. In fact, we should read something like this,

18: 2305987 IO-APIC-fasteoi radeon@pci:0000:01:00.0

as it is reported in kern.log file !!

ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18

Intead, i get,

# cat /proc/interrupts
           CPU0
  0:   24560170   IO-APIC-edge      timer
  1:      18202   IO-APIC-edge      i8042
  6:          5   IO-APIC-edge      floppy
  7:          0   IO-APIC-edge      parport0
  9:          0   IO-APIC-fasteoi   acpi
10:          0   IO-APIC-edge      MPU401 UART
14:     266877   IO-APIC-edge      libata
15:          0   IO-APIC-edge      libata
16:          3   IO-APIC-fasteoi   ohci1394
20:     385492   IO-APIC-fasteoi   ohci_hcd:usb2
21:          2   IO-APIC-fasteoi   ehci_hcd:usb1
22:          0   IO-APIC-fasteoi   libata, NVidia CK804
23:    3165506   IO-APIC-fasteoi   libata, eth0
NMI:       2812
LOC:   24557617
ERR:          0
Quoted 7 lines
Quoted 3 lines

and there is no irq for the radeon card available !

Is the radeon drm loaded?

Alex

you are right, it is not!

Jj

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

author
#4 lore raw
In reply to Jimmy Jazz
Quoted 5 lines · Jimmy Jazz

Certainly not related to the current issue, radeonfb and x11 disagree how many memories the video card really has. radeonfb found half the content and detects the dvi connector where the flat screen is attached to quite well but identifies a CRT monitor instead of a TMDS.

this one was easy, the size was just limited to less then 256 :)

# diff -ruN radeon_base.c.patched2 radeon_base.c
--- radeon_base.c.patched2      2007-03-26 14:15:47.000000000 +0200
+++ radeon_base.c       2007-03-28 23:03:53.000000000 +0200
@@ -2139,10 +2139,6 @@
        /* mem size is bits [28:0], mask off the rest */
        rinfo->video_ram = tmp & CONFIG_MEMSIZE_MASK;

- /* Limit memory to 128 megs for now */
- if (rinfo->video_ram > MAX_VRAM)
- rinfo->video_ram = MAX_VRAM;
-
/*
* Hack to get around some busted production M6's
* reporting no ram

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#5 lore raw
Quoted 9 lines · Jimmy Jazz
Quoted 5 lines · Jimmy Jazz

Certainly not related to the current issue, radeonfb and x11 disagree how many memories the video card really has. radeonfb found half the content and detects the dvi connector where the flat screen is attached to quite well but identifies a CRT monitor instead of a TMDS.

this one was easy, the size was just limited to less then 256 :)

It's not that easy. Not all radeons can expose more than 128 MB or ram to the CPU. You also have to make sure the PCI aperture is big enough, some are only 64 or 128 MB while the card may actually have 128 to 256 or more ram. Take a look at the radeon Xorg driver more more info.

Alex

Quoted 6 lines
# diff -ruN radeon_base.c.patched2 radeon_base.c

radeon_base.c 2007-03-28 23:03:53.000000000 +0200 line 2144

Quoted 10 lines
radeon_base.c 2007-03-28 23:03:53.000000000 +0200 renamed from radeon_base.c.patched2 2007-03-26 14:15:47.000000000 +0200 +0 -4
@@ -2139,10 +2139,6 @@
        /* mem size is bits [28:0], mask off the rest */
        rinfo->video_ram = tmp & CONFIG_MEMSIZE_MASK;
 
-       /* Limit memory to 128 megs for now */
-       if (rinfo->video_ram > MAX_VRAM)
-               rinfo->video_ram = MAX_VRAM;
-
        /*
         * Hack to get around some busted production M6's
         * reporting no ram

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

author
#6 lore raw
In reply to Jimmy Jazz

I made some more tests and without forcing the monitor type. I get some odd results and quite the opposite of what i was expecting. Ignoring the connectors table is not a great idea.

The monitor, a dvi flat panel wide screen (1680x1050), is connected to the first video card connector with a dvi cable. Instead, the radeonfb driver sees a CRT connected to a vga connector. Heeelp !

# insmod 
/lib/modules/2.6.20-vs2.3.0.11-gentoo/kernel/drivers/video/aty/radeonfb.ko 
ignore_devlist=0 force_measure_pll=1 ignore_conntable=1 nomodeset=0 
noaccel=0 radeonfb_debug=1 default_dynclk=0 ignore_edid=0
[11734.058425] radeonfb_pci_register BEGIN
[11734.058579] radeonfb (0000:01:00.0): Found 262144k of DDR 256 bits 
wide videoram
[11734.058769] radeonfb (0000:01:00.0): mapped 16384k videoram
[11734.058820] radeonfb: Found Intel x86 BIOS ROM Image
[11734.062077] radeonfb: Retrieved PLL infos from registers
[11734.062122] radeonfb: Reference=27.00 MHz (RefDiv=2) Memory=499.50 
Mhz, System=499.50 MHz
[11734.062210] PLL min 20000 max 50000
[11734.062249] TMDS PLL from BIOS: 16500 b011c
[11735.758767] radeonfb: I2C (port 0) ... found CRT display
[11735.837068] i2c_adapter i2c-3: unable to read EDID block.
[11735.957946] i2c_adapter i2c-3: unable to read EDID block.
[11736.078881] i2c_adapter i2c-3: unable to read EDID block.
[11736.121572] radeonfb: I2C (port 1) ... not found
[11736.199817] i2c_adapter i2c-4: unable to read EDID block.
[11736.320754] i2c_adapter i2c-4: unable to read EDID block.
[11736.441703] i2c_adapter i2c-4: unable to read EDID block.
[11736.484388] radeonfb: I2C (port 2) ... not found
[11736.691277] radeonfb: I2C (port 3) ... not found
[11736.691479] Starting monitor auto detection...
[11736.692528] radeonfb: couldn't find a connector for monitor 1
[11736.692613] radeonfb: couldn't find a connector for monitor 1
[11736.692655]  * Connector 1 is VGA. Head -1, Monitor: CRT
[11736.692803]    ddc port: 0, dac: 1, tmds: -1
[11736.692845] Parsing EDID data for panel info
[11736.692926] Guessing panel info...
[11736.692965] radeonfb: Assuming panel size 1680x1050
[11736.693042] modedb fb_find_mode: Trying specified video mode 
(ignoring refresh rate) 1680x1050
[11736.693090] modedb fb_try_mode: Trying mode noname 1680x1050-8@60
[11736.693176] radeonfb: couldn't find a connector for monitor 2
[11736.760147] radeonfb: Dynamic Clock Power Management disabled
[11736.760973] radeonfb (0000:01:00.0): ATI Radeon ]W
[11736.761075] radeonfb_pci_register END

when i don't ignore the connectors table, the dvi connector is well defined but the monitor is not.

# insmod 
/lib/modules/2.6.20-vs2.3.0.11-gentoo/kernel/drivers/video/aty/radeonfb.ko 
ignore_devlist=0 force_measure_pll=1 ignore_conntable=0 nomodeset=0 
noaccel=0 radeonfb_debug=1 default_dynclk=0 ignore_edid=0
[14370.011807] radeonfb_pci_register BEGIN
[14370.012069] radeonfb (0000:01:00.0): Found 262144k of DDR 256 bits 
wide videoram
[14370.012149] radeonfb (0000:01:00.0): mapped 16384k videoram
[14370.012243] radeonfb: Found Intel x86 BIOS ROM Image
[14370.027648] radeonfb: Retrieved PLL infos from registers
[14370.027734] radeonfb: Reference=27.00 MHz (RefDiv=2) Memory=499.50 
Mhz, System=499.50 MHz
[14370.027781] PLL min 20000 max 50000
[14370.027859] TMDS PLL from BIOS: 16500 b011c
[14371.560068] index 0 port 1 conn 1 dac 0 ddc 1 tmds -1
[14371.560283] index 2 port 0 conn 5 dac 1 ddc 2 tmds -1
[14371.560326] index 3 port 2 conn 2 dac -1 ddc 0 tmds 0
[14371.560404] index 4 port 2 conn 2 dac 1 ddc 0 tmds -1
[14371.560447] Starting monitor auto detection...
[14371.789081] radeonfb: I2C (port 0) ... found CRT display
[14371.868083] i2c_adapter i2c-4: unable to read EDID block.
[14371.989259] i2c_adapter i2c-4: unable to read EDID block.
[14372.110229] i2c_adapter i2c-4: unable to read EDID block.
[14372.152887] radeonfb: I2C (port 2) ... not found
[14372.152944]  * Connector 1 is DVI-I. Head 0, Monitor: CRT (EDID probed)
[14372.153050]    ddc port: 0, dac: 0, tmds: 0
[14372.153088]  * Connector 3 is S-Video. Head -1, Monitor: None
[14372.153187]    ddc port: 2, dac: 0, tmds: -1
[14372.219847] radeonfb: Dynamic Clock Power Management disabled
[14372.222167] radeonfb (0000:01:00.0): ATI Radeon ]W
[14372.222289] radeonfb_pci_register END

I can't believe i'm the only one who isn' able to use an "old" x800 pcie card connected to a dvi flat panel. Get rid of the boring 640x480 resolution dictatorship and have a nice splash screen, that my moto ;)

If someone has any clues, he is very welcome.

Jj

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#7 lore raw
Quoted 89 lines · Jimmy Jazz

I made some more tests and without forcing the monitor type. I get some odd results and quite the opposite of what i was expecting. Ignoring the connectors table is not a great idea.

The monitor, a dvi flat panel wide screen (1680x1050), is connected to the first video card connector with a dvi cable. Instead, the radeonfb driver sees a CRT connected to a vga connector. Heeelp !

# insmod
/lib/modules/2.6.20-vs2.3.0.11-gentoo/kernel/drivers/video/aty/radeonfb.ko
ignore_devlist=0 force_measure_pll=1 ignore_conntable=1 nomodeset=0
noaccel=0 radeonfb_debug=1 default_dynclk=0 ignore_edid=0
[11734.058425] radeonfb_pci_register BEGIN
[11734.058579] radeonfb (0000:01:00.0): Found 262144k of DDR 256 bits
wide videoram
[11734.058769] radeonfb (0000:01:00.0): mapped 16384k videoram
[11734.058820] radeonfb: Found Intel x86 BIOS ROM Image
[11734.062077] radeonfb: Retrieved PLL infos from registers
[11734.062122] radeonfb: Reference=27.00 MHz (RefDiv=2) Memory=499.50
Mhz, System=499.50 MHz
[11734.062210] PLL min 20000 max 50000
[11734.062249] TMDS PLL from BIOS: 16500 b011c
[11735.758767] radeonfb: I2C (port 0) ... found CRT display
[11735.837068] i2c_adapter i2c-3: unable to read EDID block.
[11735.957946] i2c_adapter i2c-3: unable to read EDID block.
[11736.078881] i2c_adapter i2c-3: unable to read EDID block.
[11736.121572] radeonfb: I2C (port 1) ... not found
[11736.199817] i2c_adapter i2c-4: unable to read EDID block.
[11736.320754] i2c_adapter i2c-4: unable to read EDID block.
[11736.441703] i2c_adapter i2c-4: unable to read EDID block.
[11736.484388] radeonfb: I2C (port 2) ... not found
[11736.691277] radeonfb: I2C (port 3) ... not found
[11736.691479] Starting monitor auto detection...
[11736.692528] radeonfb: couldn't find a connector for monitor 1
[11736.692613] radeonfb: couldn't find a connector for monitor 1
[11736.692655]  * Connector 1 is VGA. Head -1, Monitor: CRT
[11736.692803]    ddc port: 0, dac: 1, tmds: -1
[11736.692845] Parsing EDID data for panel info
[11736.692926] Guessing panel info...
[11736.692965] radeonfb: Assuming panel size 1680x1050
[11736.693042] modedb fb_find_mode: Trying specified video mode
(ignoring refresh rate) 1680x1050
[11736.693090] modedb fb_try_mode: Trying mode noname 1680x1050-8@60
[11736.693176] radeonfb: couldn't find a connector for monitor 2
[11736.760147] radeonfb: Dynamic Clock Power Management disabled
[11736.760973] radeonfb (0000:01:00.0): ATI Radeon ]W
[11736.761075] radeonfb_pci_register END

when i don't ignore the connectors table, the dvi connector is well defined but the monitor is not.

# insmod
/lib/modules/2.6.20-vs2.3.0.11-gentoo/kernel/drivers/video/aty/radeonfb.ko
ignore_devlist=0 force_measure_pll=1 ignore_conntable=0 nomodeset=0
noaccel=0 radeonfb_debug=1 default_dynclk=0 ignore_edid=0
[14370.011807] radeonfb_pci_register BEGIN
[14370.012069] radeonfb (0000:01:00.0): Found 262144k of DDR 256 bits
wide videoram
[14370.012149] radeonfb (0000:01:00.0): mapped 16384k videoram
[14370.012243] radeonfb: Found Intel x86 BIOS ROM Image
[14370.027648] radeonfb: Retrieved PLL infos from registers
[14370.027734] radeonfb: Reference=27.00 MHz (RefDiv=2) Memory=499.50
Mhz, System=499.50 MHz
[14370.027781] PLL min 20000 max 50000
[14370.027859] TMDS PLL from BIOS: 16500 b011c
[14371.560068] index 0 port 1 conn 1 dac 0 ddc 1 tmds -1
[14371.560283] index 2 port 0 conn 5 dac 1 ddc 2 tmds -1
[14371.560326] index 3 port 2 conn 2 dac -1 ddc 0 tmds 0
[14371.560404] index 4 port 2 conn 2 dac 1 ddc 0 tmds -1
[14371.560447] Starting monitor auto detection...
[14371.789081] radeonfb: I2C (port 0) ... found CRT display
[14371.868083] i2c_adapter i2c-4: unable to read EDID block.
[14371.989259] i2c_adapter i2c-4: unable to read EDID block.
[14372.110229] i2c_adapter i2c-4: unable to read EDID block.
[14372.152887] radeonfb: I2C (port 2) ... not found
[14372.152944]  * Connector 1 is DVI-I. Head 0, Monitor: CRT (EDID probed)
[14372.153050]    ddc port: 0, dac: 0, tmds: 0
[14372.153088]  * Connector 3 is S-Video. Head -1, Monitor: None
[14372.153187]    ddc port: 2, dac: 0, tmds: -1
[14372.219847] radeonfb: Dynamic Clock Power Management disabled
[14372.222167] radeonfb (0000:01:00.0): ATI Radeon ]W
[14372.222289] radeonfb_pci_register END
Quoted 5 lines

I can't believe i'm the only one who isn' able to use an "old" x800 pcie card connected to a dvi flat panel. Get rid of the boring 640x480 resolution dictatorship and have a nice splash screen, that my moto ;)

If someone has any clues, he is very welcome.

I don't know that radeonfb has proper support for r4xx chips. you may need to port more code over from the radeon Xorg server.

Alex

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

author
#8 lore raw
In reply to Jimmy Jazz

Hello,

good news folks, it works great now and only with 2 tiny patches :)

i finally find out what was wrong with my PCIE X800 XT ATI genuine graphic card. It is quite easy and obvious if you know what the devs really meant with dcc_monid. In my case that was more appropriate then ddc_dvi or ddc_vga . Also dcc_monid was the solution and i finally get something on my screen. Indeed, i needed to modify radeonfb_monitor.c and have included some more controls to make the auto detection less restrictive. The 1680x1050 flat panel is now recognized at its native resolution without forcing the video output to TMDS.

But as usual there is an under achievement somewhere. Xorg stopped working and let the patch unusable :(
Also, you need to patch radeon_accel.c as well to make dri work again. Otherwise fifos just timed out and dri didn't initialize.

(**) RADEON(0): RADEONSaveScreen(2)
(**) RADEON(0): FIFO timed out: 1 entries, stat=0x88026101 (EE) RADEON(0): FIFO timed out, resetting engine... (**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 59 entries, stat=0x8802613b (EE) RADEON(0): FIFO timed out, resetting engine... (**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 17 entries, stat=0x88026111 (EE) RADEON(0): FIFO timed out, resetting engine... (**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 3 entries, stat=0x88026103 (EE) RADEON(0): FIFO timed out, resetting engine... (**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): FIFO timed out: 59 entries, stat=0x8802613b (EE) RADEON(0): FIFO timed out, resetting engine...

And last but not least, you are now able to switch to the console and Xorg back and forth :)

PS:Kofboy suggested me to change the cable for a DVI-D one. Some cables are DVI-I(24+5) and include a VGA and a DVI-D port, other only DVI-D(24+1). I don't have an extra cable and i'm short of money :) so i don't have tried it. It works for kofboy. So give it a try.

I guess that will help other card owners and not only ATI X800 or X700 family one and work without itches.

Jj

radeon_accel.c +7 -12
@@ -203,9 +203,7 @@
 	host_path_cntl = INREG(HOST_PATH_CNTL);
 	rbbm_soft_reset = INREG(RBBM_SOFT_RESET);
 
-	if (rinfo->family == CHIP_FAMILY_R300 ||
-	    rinfo->family == CHIP_FAMILY_R350 ||
-	    rinfo->family == CHIP_FAMILY_RV350) {
+	if (IS_R300_VARIANT(rinfo)) {
 		u32 tmp;
 
 		OUTREG(RBBM_SOFT_RESET, (rbbm_soft_reset |
@@ -241,9 +239,7 @@
 	INREG(HOST_PATH_CNTL);
 	OUTREG(HOST_PATH_CNTL, host_path_cntl);
 
-	if (rinfo->family != CHIP_FAMILY_R300 ||
-	    rinfo->family != CHIP_FAMILY_R350 ||
-	    rinfo->family != CHIP_FAMILY_RV350)
+	if (IS_R300_VARIANT(rinfo))
 		OUTREG(RBBM_SOFT_RESET, rbbm_soft_reset);
 
 	OUTREG(CLOCK_CNTL_INDEX, clock_cntl_index);
@@ -254,16 +250,15 @@
 {
 	unsigned long temp;
 
-	/* disable 3D engine */
-	OUTREG(RB3D_CNTL, 0);
-
 	radeonfb_engine_reset(rinfo);
 
 	radeon_fifo_wait (1);
-	if ((rinfo->family != CHIP_FAMILY_R300) &&
-	    (rinfo->family != CHIP_FAMILY_R350) &&
-	    (rinfo->family != CHIP_FAMILY_RV350))
+	if (IS_R300_VARIANT(rinfo)) {
+		temp = INREG(RB2D_DSTCACHE_MODE);
+		OUTREG(RB2D_DSTCACHE_MODE, temp | (1<<17)); /* FIXME */
+	} else {
 		OUTREG(RB2D_DSTCACHE_MODE, 0);
+	}
 
 	radeon_fifo_wait (3);
 	/* We re-read MC_FB_LOCATION from card as it can have been
radeon_monitor.c +8 -14
@@ -480,17 +480,6 @@
 		
 		RTRACE("Starting monitor auto detection...\n");
 
-#if DEBUG && defined(CONFIG_FB_RADEON_I2C)
-		{
-			u8 *EDIDs[4] = { NULL, NULL, NULL, NULL };
-			int mon_types[4] = {MT_NONE, MT_NONE, MT_NONE, MT_NONE};
-			int i;
-
-			for (i = 0; i < 4; i++)
-				mon_types[i] = radeon_probe_i2c_connector(rinfo,
-									  i+1, &EDIDs[i]);
-		}
-#endif /* DEBUG */
 		/*
 		 * Old single head cards
 		 */
@@ -530,11 +519,11 @@
 				if (!BIOS_IN8(tmp + i*2) && i > 1)
 					break;
 				tmp0 = BIOS_IN16(tmp + i*2);
-				if ((!(tmp0 & 0x01)) && (((tmp0 >> 8) & 0x0f) == ddc_dvi)) {
+				if ((!(tmp0 & 0x01)) && ((((tmp0 >> 8) & 0x0f) == ddc_dvi) || (((tmp0 >> 8) & 0x0f) == ddc_monid))) {
 					rinfo->reversed_DAC = 1;
 					printk(KERN_INFO "radeonfb: Reversed DACs detected\n");
 				}
-				if ((((tmp0 >> 8) & 0x0f) == ddc_dvi) && ((tmp0 >> 4) & 0x01)) {
+				if ((((tmp0 >> 8) & 0x0f) == ddc_dvi || (((tmp0 >> 8) & 0x0f) == ddc_monid)) && ((tmp0 >> 4) & 0x01)) {
 					rinfo->reversed_TMDS = 1;
 					printk(KERN_INFO "radeonfb: Reversed TMDS detected\n");
 				}
@@ -544,6 +533,7 @@
 		/*
 		 * Probe primary head (DVI or laptop internal panel)
 		 */
+		printk(KERN_INFO "radeonfb: Probe primary head\n");
 #ifdef CONFIG_PPC_OF
 		if (rinfo->mon1_type == MT_NONE)
 			rinfo->mon1_type = radeon_probe_OF_head(rinfo, 0,
@@ -551,6 +541,9 @@
 #endif /* CONFIG_PPC_OF */
 #ifdef CONFIG_FB_RADEON_I2C
 		if (rinfo->mon1_type == MT_NONE)
+			rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_monid,
+								      &rinfo->mon1_EDID);
+		if (rinfo->mon1_type == MT_NONE)
 			rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_dvi,
 								      &rinfo->mon1_EDID);
 		if (rinfo->mon1_type == MT_NONE) {
@@ -572,6 +565,7 @@
 		/*
 		 * Probe secondary head (mostly VGA, can be DVI)
 		 */
+		printk(KERN_INFO "radeonfb: Probe secondary head\n");
 #ifdef CONFIG_PPC_OF
 		if (rinfo->mon2_type == MT_NONE)
 			rinfo->mon2_type = radeon_probe_OF_head(rinfo, 1,
@@ -642,7 +636,7 @@
 
 
 /*
- * This functions applyes any arch/model/machine specific fixups
+ * This functions applies any arch/model/machine specific fixups
  * to the panel info. It may eventually alter EDID block as
  * well or whatever is specific to a given model and not probed
  * properly by the default code

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

author
#9 lore raw

Hello,

i sent it without care and i forgot to add some diff files you will have to apply to radeonfb.h, ati_ids.h and radeon_base.c with both radeon_accel.c and radeon_monitor.c patches. Otherwise, you won't be able to compile the kernel anymore. Sorry for the inconvenient.

Thank you all of you who contributed to these patches, the initiator of the radeonfb driver and of course the Xorg team who made ATI cards compatible with the xorg server.

Jj

video/aty/ati_ids.h +1 -1
@@ -209,4 +209,4 @@
 #define PCI_CHIP_R423_5D57              0x5D57
 #define PCI_CHIP_RS350_7834             0x7834
 #define PCI_CHIP_RS350_7835             0x7835
-
+#define PCI_CHIP_RS480_5955             0x5955
video/aty/radeon_accel.c +7 -12
@@ -203,9 +203,7 @@
 	host_path_cntl = INREG(HOST_PATH_CNTL);
 	rbbm_soft_reset = INREG(RBBM_SOFT_RESET);
 
-	if (rinfo->family == CHIP_FAMILY_R300 ||
-	    rinfo->family == CHIP_FAMILY_R350 ||
-	    rinfo->family == CHIP_FAMILY_RV350) {
+	if (IS_R300_VARIANT(rinfo)) {
 		u32 tmp;
 
 		OUTREG(RBBM_SOFT_RESET, (rbbm_soft_reset |
@@ -241,9 +239,7 @@
 	INREG(HOST_PATH_CNTL);
 	OUTREG(HOST_PATH_CNTL, host_path_cntl);
 
-	if (rinfo->family != CHIP_FAMILY_R300 ||
-	    rinfo->family != CHIP_FAMILY_R350 ||
-	    rinfo->family != CHIP_FAMILY_RV350)
+	if (IS_R300_VARIANT(rinfo))
 		OUTREG(RBBM_SOFT_RESET, rbbm_soft_reset);
 
 	OUTREG(CLOCK_CNTL_INDEX, clock_cntl_index);
@@ -254,16 +250,15 @@
 {
 	unsigned long temp;
 
-	/* disable 3D engine */
-	OUTREG(RB3D_CNTL, 0);
-
 	radeonfb_engine_reset(rinfo);
 
 	radeon_fifo_wait (1);
-	if ((rinfo->family != CHIP_FAMILY_R300) &&
-	    (rinfo->family != CHIP_FAMILY_R350) &&
-	    (rinfo->family != CHIP_FAMILY_RV350))
+	if (IS_R300_VARIANT(rinfo)) {
+		temp = INREG(RB2D_DSTCACHE_MODE);
+		OUTREG(RB2D_DSTCACHE_MODE, temp | (1<<17)); /* FIXME */
+	} else {
 		OUTREG(RB2D_DSTCACHE_MODE, 0);
+	}
 
 	radeon_fifo_wait (3);
 	/* We re-read MC_FB_LOCATION from card as it can have been
video/aty/radeon_base.c +95 -17

198 lines not on this page · raw message

video/aty/radeon_monitor.c +8 -14
@@ -480,17 +480,6 @@
 		
 		RTRACE("Starting monitor auto detection...\n");
 
-#if DEBUG && defined(CONFIG_FB_RADEON_I2C)
-		{
-			u8 *EDIDs[4] = { NULL, NULL, NULL, NULL };
-			int mon_types[4] = {MT_NONE, MT_NONE, MT_NONE, MT_NONE};
-			int i;
-
-			for (i = 0; i < 4; i++)
-				mon_types[i] = radeon_probe_i2c_connector(rinfo,
-									  i+1, &EDIDs[i]);
-		}
-#endif /* DEBUG */
 		/*
 		 * Old single head cards
 		 */
@@ -530,11 +519,11 @@
 				if (!BIOS_IN8(tmp + i*2) && i > 1)
 					break;
 				tmp0 = BIOS_IN16(tmp + i*2);
-				if ((!(tmp0 & 0x01)) && (((tmp0 >> 8) & 0x0f) == ddc_dvi)) {
+				if ((!(tmp0 & 0x01)) && ((((tmp0 >> 8) & 0x0f) == ddc_dvi) || (((tmp0 >> 8) & 0x0f) == ddc_monid))) {
 					rinfo->reversed_DAC = 1;
 					printk(KERN_INFO "radeonfb: Reversed DACs detected\n");
 				}
-				if ((((tmp0 >> 8) & 0x0f) == ddc_dvi) && ((tmp0 >> 4) & 0x01)) {
+				if ((((tmp0 >> 8) & 0x0f) == ddc_dvi || (((tmp0 >> 8) & 0x0f) == ddc_monid)) && ((tmp0 >> 4) & 0x01)) {
 					rinfo->reversed_TMDS = 1;
 					printk(KERN_INFO "radeonfb: Reversed TMDS detected\n");
 				}
@@ -544,6 +533,7 @@
 		/*
 		 * Probe primary head (DVI or laptop internal panel)
 		 */
+		printk(KERN_INFO "radeonfb: Probe primary head\n");
 #ifdef CONFIG_PPC_OF
 		if (rinfo->mon1_type == MT_NONE)
 			rinfo->mon1_type = radeon_probe_OF_head(rinfo, 0,
@@ -551,6 +541,9 @@
 #endif /* CONFIG_PPC_OF */
 #ifdef CONFIG_FB_RADEON_I2C
 		if (rinfo->mon1_type == MT_NONE)
+			rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_monid,
+								      &rinfo->mon1_EDID);
+		if (rinfo->mon1_type == MT_NONE)
 			rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_dvi,
 								      &rinfo->mon1_EDID);
 		if (rinfo->mon1_type == MT_NONE) {
@@ -572,6 +565,7 @@
 		/*
 		 * Probe secondary head (mostly VGA, can be DVI)
 		 */
+		printk(KERN_INFO "radeonfb: Probe secondary head\n");
 #ifdef CONFIG_PPC_OF
 		if (rinfo->mon2_type == MT_NONE)
 			rinfo->mon2_type = radeon_probe_OF_head(rinfo, 1,
@@ -642,7 +636,7 @@
 
 
 /*
- * This functions applyes any arch/model/machine specific fixups
+ * This functions applies any arch/model/machine specific fixups
  * to the panel info. It may eventually alter EDID block as
  * well or whatever is specific to a given model and not probed
  * properly by the default code
video/aty/radeonfb.h +6 -1
@@ -48,6 +48,7 @@
 	CHIP_FAMILY_RV350,
 	CHIP_FAMILY_RV380,    /* RV370/RV380/M22/M24 */
 	CHIP_FAMILY_R420,     /* R420/R423/M18 */
+	CHIP_FAMILY_RS480,
 	CHIP_FAMILY_LAST,
 };
 
@@ -64,7 +65,8 @@
 				((rinfo)->family == CHIP_FAMILY_RV350) || \
 				((rinfo)->family == CHIP_FAMILY_R350)  || \
 				((rinfo)->family == CHIP_FAMILY_RV380) || \
-				((rinfo)->family == CHIP_FAMILY_R420))
+				((rinfo)->family == CHIP_FAMILY_R420)  || \
+		                ((rinfo)->family == CHIP_FAMILY_RS480) )
 
 /*
  * Chip flags
@@ -299,6 +301,9 @@
 	void __iomem		*bios_seg;
 	int			fp_bios_start;
 
+	int			is_atom_bios;
+        int                     atom_data_start;
+
 	u32			pseudo_palette[17];
 	struct { u8 red, green, blue, pad; }
 				palette[256];

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

#10 lore raw
Quoted 10 lines · Jimmy Jazz

Hello,

i sent it without care and i forgot to add some diff files you will have to apply to radeonfb.h, ati_ids.h and radeon_base.c with both radeon_accel.c and radeon_monitor.c patches. Otherwise, you won't be able to compile the kernel anymore. Sorry for the inconvenient.

Thank you all of you who contributed to these patches, the initiator of the radeonfb driver and of course the Xorg team who made ATI cards compatible with the xorg server.

There are already patches from Solomon for Atom BIOSes.

I admit that I never found the time to fully cleanup, split, test, etc... those along with other fixes I have in my queue. I could use a co-maintainer for radeonfb...

Ben.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#11 lore raw
Quoted 8 lines · Benjamin Herrenschmidt
Quoted 7 lines · Jimmy Jazz

Hello,

i sent it without care and i forgot to add some diff files you will have to apply to radeonfb.h, ati_ids.h and radeon_base.c with both radeon_accel.c and radeon_monitor.c patches. Otherwise, you won't be able to compile the kernel anymore. Sorry for the inconvenient.

Quoted 5 lines
Quoted 3 lines

Thank you all of you who contributed to these patches, the initiator of the radeonfb driver and of course the Xorg team who made ATI cards compatible with the xorg server.

There are already patches from Solomon for Atom BIOSes.

I'm attaching the usual patch for the OP, rediffed against git-current. Works here on a X850.

Quoted 3 lines

I admit that I never found the time to fully cleanup, split, test, etc... those along with other fixes I have in my queue. I could use a co-maintainer for radeonfb...

Splitting the ATOM patch is PITA, the changes are very interdependent. For other stuff: I can do testing and cleanup ;-)

Luca

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

author
#12 lore raw
Quoted 19 lines · Luca Tettamanti
Quoted 9 lines · Benjamin Herrenschmidt
Quoted 3 lines · Jimmy Jazz

Hello,

i sent it without care and i forgot to add some diff files you will

have

Quoted 4 lines

to apply to radeonfb.h, ati_ids.h and radeon_base.c with both radeon_accel.c and radeon_monitor.c patches. Otherwise, you won't be able to compile the kernel anymore. Sorry for the inconvenient.

Quoted 5 lines
Quoted 3 lines

Thank you all of you who contributed to these patches, the initiator of the radeonfb driver and of course the Xorg team who made ATI cards compatible with the xorg server.

There are already patches from Solomon for Atom BIOSes.

I'm attaching the usual patch for the OP, rediffed against git-current. Works here on a X850.

Quoted 8 lines
Quoted 3 lines

I admit that I never found the time to fully cleanup, split, test, etc... those along with other fixes I have in my queue. I could use a co-maintainer for radeonfb...

Splitting the ATOM patch is PITA, the changes are very interdependent. For other stuff: I can do testing and cleanup ;-)

Luca

Hi Luca,

I added some lines to your code to make my ATI X800 work (it doesn't otherwise). Also DVI Flat panel owners will probably be happy :)

I made the test on linux 2.6.21-rc6-r1 Andrew Morton's kernel release.

Here have a look at the differences before and after i added my patch.
As you can see, before applying the patch, the monitor isn't detected and is defaulted to CRT even if EDID data returns the right informations about the display connected.

# cat /var/log/kern.log (THE BAD)
Apr 13 21:58:01 seal Starting monitor auto detection...
Apr 13 21:58:01 seal i2c-adapter i2c-3: unable to read EDID block.
Apr 13 21:58:01 seal i2c-adapter i2c-3: unable to read EDID block.
Apr 13 21:58:01 seal i2c-adapter i2c-3: unable to read EDID block.
Apr 13 21:58:01 seal radeonfb: I2C (port 1) ... not found
Apr 13 21:58:01 seal radeonfb: I2C (port 0) ... found CRT display
Apr 13 21:58:01 seal * Connector 1 is VGA. Head -1, Monitor: None
Apr 13 21:58:01 seal ddc port: 1, dac: 0, tmds: -1
Apr 13 21:58:01 seal * Connector 2 is DVI-I. Head 0, Monitor: CRT (EDID probed)
Apr 13 21:58:01 seal ddc port: 0, dac: 1, tmds: 0
# cat /var/log/kern.log (THE GOOD)
Apr 13 23:39:54 seal i2c-adapter i2c-1: nForce2 SMBus adapter at 0x4c40
Apr 13 23:39:54 seal radeonfb_pci_register BEGIN
Apr 13 23:39:54 seal ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
Apr 13 23:39:54 seal ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18
Apr 13 23:39:54 seal radeonfb (0000:01:00.0): Found 131072k of DDR 256 bits wide videoram
Apr 13 23:39:54 seal radeonfb (0000:01:00.0): mapped 16384k videoram
Apr 13 23:39:54 seal radeonfb: Found Intel x86 BIOS ROM Image
Apr 13 23:39:54 seal Retrieved PLL infos from ATOM BIOS
Apr 13 23:39:54 seal radeonfb: Reference=27.00 MHz (RefDiv=2) Memory=500.00 Mhz, System=500.00 MHz
Apr 13 23:39:54 seal PLL min 20000 max 50000
Apr 13 23:39:54 seal TMDS PLL from BIOS: 16500 b011c
Apr 13 23:39:54 seal id=1 GPIO: 0xbac4+0x64
Apr 13 23:39:54 seal id=2 GPIO: 0xbac4+0x68
Apr 13 23:39:54 seal Port 0: DDCType-1, DACType-0, TMDSType--1, ConnectorType-1
Apr 13 23:39:54 seal Port 1: DDCType-0, DACType-1, TMDSType-0, ConnectorType-2
Apr 13 23:39:54 seal Starting monitor auto detection...
Apr 13 23:39:54 seal i2c-adapter i2c-3: unable to read EDID block.
Apr 13 23:39:54 seal i2c-adapter i2c-3: unable to read EDID block.
Apr 13 23:39:54 seal i2c-adapter i2c-3: unable to read EDID block.
Apr 13 23:39:54 seal radeonfb: I2C (port 1) ... not found
Apr 13 23:39:54 seal radeonfb: I2C (port 0) ... found TMDS panel
Apr 13 23:39:54 seal * Connector 1 is VGA. Head -1, Monitor: None
Apr 13 23:39:54 seal ddc port: 1, dac: 0, tmds: -1
Apr 13 23:39:54 seal * Connector 2 is DVI-I. Head 0, Monitor: DVI Flat panel (EDID probed)
Apr 13 23:39:54 seal ddc port: 0, dac: 1, tmds: 0

You will find in attachment the diff code source. (AND THE UGLY)

A lot of code was altered recently in xf86-video-ati-6.6.191. I think xorg team made the cleanup Benh asks for ;)

IMHO that would have been great to unify kernel and xorg code regarding display drivers.

@kofboy

I'm unable to send you more than one mail a day. There should be something wrong with your ISP. Please join us on the list :)

Jj

radeon_i2c.c renamed from usr/src/model_with-radeon-r400/aty/radeon_i2c.c +1 -1
@@ -163,7 +163,7 @@
 		mon_type = MT_NONE;
 		goto done;
 	}
-	if ((edid[EDID_STRUCT_DISPLAY] & 0x80) && (conn->ddc_type == ddc_dvi)) {
+	if ((edid[EDID_STRUCT_DISPLAY] & 0x80) && ((conn->ddc_type == ddc_dvi) || (conn->ddc_type == ddc_monid))) {
 		RTRACE("radeonfb: I2C (port %d) ... found TMDS panel\n", conn->ddc_type);
 		mon_type = MT_DFP;
 		goto done;
radeon_monitor.c renamed from usr/src/model_with-radeon-r400/aty/radeon_monitor.c +100 -0

112 lines not on this page · raw message

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

author
#13 lore raw
In reply to Benjamin Herrenschmidt
Quoted 12 lines · Benjamin Herrenschmidt
Quoted 10 lines · Jimmy Jazz

Hello,

i sent it without care and i forgot to add some diff files you will have to apply to radeonfb.h, ati_ids.h and radeon_base.c with both radeon_accel.c and radeon_monitor.c patches. Otherwise, you won't be able to compile the kernel anymore. Sorry for the inconvenient.

Thank you all of you who contributed to these patches, the initiator of the radeonfb driver and of course the Xorg team who made ATI cards compatible with the xorg server.

Quoted 7 lines

There are already patches from Solomon for Atom BIOSes.

I admit that I never found the time to fully cleanup, split, test, etc... those along with other fixes I have in my queue. I could use a co-maintainer for radeonfb...

Ben.

Hello Ben,

I would be happy to help you to improve ATI framebuffer driver but really i have few knowlegdes about videocards. I followed the logic of the program and compared it to the xorg version. Besides, it is sad that xorg and kernel teams didn't follow the same code writing conventions. Also, i tried to stay as near as possible with the original kernel version without increasing the size of the binary code. Moreover, i'm a bit lost about the notion of connectors and how they share s-video, dvi and vga and why we need to invert them sometimes :). Really, it is hardly explained and there is too much exceptions thru the source code that make it difficult to understand what is a dirty hack and what is not. Perhaps, i could bypass many difficulties just because my bios card is "well programmed".

Jj

PS: I don't know if tables are used exclusively by laptops or if they have atom bios too, so i didn't try to include code about it.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV