## Automatically generated incremental diff ## From: linux-2.6.2-rc1 ## To: linux-2.6.2-rc2 ## Robot: $Id: make-incremental-diff,v 1.12 2004/01/06 07:19:36 hpa Exp $ diff -urN linux-2.6.2-rc1/Documentation/BK-usage/00-INDEX linux-2.6.2-rc2/Documentation/BK-usage/00-INDEX --- linux-2.6.2-rc1/Documentation/BK-usage/00-INDEX 2004-01-08 22:59:10.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/BK-usage/00-INDEX 2004-01-25 19:08:24.000000000 -0800 @@ -17,6 +17,14 @@ which compresses its input, and then outputs the uu-/base64-encoded version of the compressed input. +cpcset: Copy changeset between unrelated repositories. +Attempts to preserve changeset user, user address, description, in +addition to the changeset (the patch) itself. +Typical usage: + cd my-updated-repo + bk changes # looking for a changeset... + cpcset 1.1511 . ../another-repo + csets-to-patches: Produces a delta of two BK repositories, in the form of individual files, each containing a single cset as a GNU patch. Output is several files, each with the filename "/tmp/rev-$REV.patch" @@ -33,6 +41,11 @@ bk changes -L ~/repo/original-repo 2>&1 | \ perl cset-to-linus > summary.txt +gcapatch: Generates patch containing changes in local repository. +Typical usage: + cd my-updated-repo + gcapatch > foo.patch + unbz64wrap: Reverse an encoded, compressed data stream created by bz64wrap into an uncompressed, typically text/plain output. diff -urN linux-2.6.2-rc1/Documentation/BK-usage/cpcset linux-2.6.2-rc2/Documentation/BK-usage/cpcset --- linux-2.6.2-rc1/Documentation/BK-usage/cpcset 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/BK-usage/cpcset 2004-01-25 19:08:24.000000000 -0800 @@ -0,0 +1,36 @@ +#!/bin/sh +# +# Purpose: Copy changeset patch and description from one +# repository to another, unrelated one. +# +# usage: cpcset [revision] [from-repository] [to-repository] +# + +REV=$1 +FROM=$2 +TO=$3 +TMPF=/tmp/cpcset.$$ + +rm -f $TMPF* + +CWD_SAVE=`pwd` +cd $FROM +bk changes -r$REV | \ + grep -v '^ChangeSet' | \ + sed -e 's/^ //g' > $TMPF.log + +USERHOST=`bk changes -r$REV | grep '^ChangeSet' | awk '{print $4}'` +export BK_USER=`echo $USERHOST | awk '-F@' '{print $1}'` +export BK_HOST=`echo $USERHOST | awk '-F@' '{print $2}'` + +bk export -tpatch -hdu -r$REV > $TMPF.patch && \ +cd $CWD_SAVE && \ +cd $TO && \ +bk import -tpatch -CFR -y"`cat $TMPF.log`" $TMPF.patch . && \ +bk commit -y"`cat $TMPF.log`" + +rm -f $TMPF* + +echo changeset $REV copied. +echo "" + diff -urN linux-2.6.2-rc1/Documentation/BK-usage/gcapatch linux-2.6.2-rc2/Documentation/BK-usage/gcapatch --- linux-2.6.2-rc1/Documentation/BK-usage/gcapatch 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/BK-usage/gcapatch 2004-01-25 19:08:24.000000000 -0800 @@ -0,0 +1,8 @@ +#!/bin/sh +# +# Purpose: Generate GNU diff of local changes versus canonical top-of-tree +# +# Usage: gcapatch > foo.patch +# + +bk export -tpatch -hdu -r`bk repogca bk://linux.bkbits.net/linux-2.5`,+ diff -urN linux-2.6.2-rc1/Documentation/video4linux/CARDLIST.bttv linux-2.6.2-rc2/Documentation/video4linux/CARDLIST.bttv --- linux-2.6.2-rc1/Documentation/video4linux/CARDLIST.bttv 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/CARDLIST.bttv 2004-01-25 19:08:25.000000000 -0800 @@ -0,0 +1,115 @@ +card=0 - *** UNKNOWN/GENERIC *** +card=1 - MIRO PCTV +card=2 - Hauppauge (bt848) +card=3 - STB, Gateway P/N 6000699 (bt848) +card=4 - Intel Create and Share PCI/ Smart Video Recorder III +card=5 - Diamond DTV2000 +card=6 - AVerMedia TVPhone +card=7 - MATRIX-Vision MV-Delta +card=8 - Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26 +card=9 - IMS/IXmicro TurboTV +card=10 - Hauppauge (bt878) +card=11 - MIRO PCTV pro +card=12 - ADS Technologies Channel Surfer TV (bt848) +card=13 - AVerMedia TVCapture 98 +card=14 - Aimslab Video Highway Xtreme (VHX) +card=15 - Zoltrix TV-Max +card=16 - Prolink Pixelview PlayTV (bt878) +card=17 - Leadtek WinView 601 +card=18 - AVEC Intercapture +card=19 - Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only) +card=20 - CEI Raffles Card +card=21 - Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50 +card=22 - Askey CPH050/ Phoebe Tv Master + FM +card=23 - Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878 +card=24 - Askey CPH05X/06X (bt878) [many vendors] +card=25 - Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar +card=26 - Hauppauge WinCam newer (bt878) +card=27 - Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50 +card=28 - Terratec TerraTV+ Version 1.1 (bt878) +card=29 - Imagenation PXC200 +card=30 - Lifeview FlyVideo 98 LR50 +card=31 - Formac iProTV, Formac ProTV I (bt848) +card=32 - Intel Create and Share PCI/ Smart Video Recorder III +card=33 - Terratec TerraTValue Version Bt878 +card=34 - Leadtek WinFast 2000/ WinFast 2000 XP +card=35 - Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II +card=36 - Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner +card=37 - Prolink PixelView PlayTV pro +card=38 - Askey CPH06X TView99 +card=39 - Pinnacle PCTV Studio/Rave +card=40 - STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100 +card=41 - AVerMedia TVPhone 98 +card=42 - ProVideo PV951 +card=43 - Little OnAir TV +card=44 - Sigma TVII-FM +card=45 - MATRIX-Vision MV-Delta 2 +card=46 - Zoltrix Genie TV/FM +card=47 - Terratec TV/Radio+ +card=48 - Askey CPH03x/ Dynalink Magic TView +card=49 - IODATA GV-BCTV3/PCI +card=50 - Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP +card=51 - Eagle Wireless Capricorn2 (bt878A) +card=52 - Pinnacle PCTV Studio Pro +card=53 - Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS +card=54 - Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90] +card=55 - Askey CPH031/ BESTBUY Easy TV +card=56 - Lifeview FlyVideo 98FM LR50 +card=57 - GrandTec 'Grand Video Capture' (Bt848) +card=58 - Askey CPH060/ Phoebe TV Master Only (No FM) +card=59 - Askey CPH03x TV Capturer +card=60 - Modular Technology MM100PCTV +card=61 - AG Electronics GMV1 +card=62 - Askey CPH061/ BESTBUY Easy TV (bt878) +card=63 - ATI TV-Wonder +card=64 - ATI TV-Wonder VE +card=65 - Lifeview FlyVideo 2000S LR90 +card=66 - Terratec TValueRadio +card=67 - IODATA GV-BCTV4/PCI +card=68 - 3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA) +card=69 - Active Imaging AIMMS +card=70 - Prolink Pixelview PV-BT878P+ (Rev.4C,8E) +card=71 - Lifeview FlyVideo 98EZ (capture only) LR51 +card=72 - Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) +card=73 - Sensoray 311 +card=74 - RemoteVision MX (RV605) +card=75 - Powercolor MTV878/ MTV878R/ MTV878F +card=76 - Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP) +card=77 - GrandTec Multi Capture Card (Bt878) +card=78 - Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF +card=79 - DSP Design TCVIDEO +card=80 - Hauppauge WinTV PVR +card=81 - IODATA GV-BCTV5/PCI +card=82 - Osprey 100/150 (878) +card=83 - Osprey 100/150 (848) +card=84 - Osprey 101 (848) +card=85 - Osprey 101/151 +card=86 - Osprey 101/151 w/ svid +card=87 - Osprey 200/201/250/251 +card=88 - Osprey 200/250 +card=89 - Osprey 210/220 +card=90 - Osprey 500 +card=91 - Osprey 540 +card=92 - Osprey 2000 +card=93 - IDS Eagle +card=94 - Pinnacle PCTV Sat +card=95 - Formac ProTV II (bt878) +card=96 - MachTV +card=97 - Euresys Picolo +card=98 - ProVideo PV150 +card=99 - AD-TVK503 +card=100 - Hercules Smart TV Stereo +card=101 - Pace TV & Radio Card +card=102 - IVC-200 +card=103 - Grand X-Guard / Trust 814PCI +card=104 - Nebula Electronics DigiTV +card=105 - ProVideo PV143 +card=106 - PHYTEC VD-009-X1 MiniDIN (bt878) +card=107 - PHYTEC VD-009-X1 Combi (bt878) +card=108 - PHYTEC VD-009 MiniDIN (bt878) +card=109 - PHYTEC VD-009 Combi (bt878) +card=110 - IVC-100 +card=111 - IVC-120G +card=112 - pcHDTV HD-2000 TV +card=113 - Twinhan DST + clones +card=114 - Winfast VC100 diff -urN linux-2.6.2-rc1/Documentation/video4linux/CARDLIST.saa7134 linux-2.6.2-rc2/Documentation/video4linux/CARDLIST.saa7134 --- linux-2.6.2-rc1/Documentation/video4linux/CARDLIST.saa7134 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/CARDLIST.saa7134 2004-01-25 19:08:25.000000000 -0800 @@ -0,0 +1,23 @@ + 0 -> UNKNOWN/GENERIC + 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001] + 2 -> LifeView FlyVIDEO3000 [5168:0138] + 3 -> LifeView FlyVIDEO2000 [5168:0138] + 4 -> EMPRESS [1131:6752] + 5 -> SKNet Monster TV [1131:4e85] + 6 -> Tevion MD 9717 + 7 -> KNC One TV-Station RDS / Typhoon TV+Radio 90031 [1131:fe01] + 8 -> Terratec Cinergy 400 TV [153B:1142] + 9 -> Medion 5044 + 10 -> Kworld/KuroutoShikou SAA7130-TVPCI + 11 -> Terratec Cinergy 600 TV [153B:1143] + 12 -> Medion 7134 [16be:0003] + 13 -> ELSA EX-VISION 300TV [1048:226b] + 14 -> ELSA EX-VISION 500TV [1048:226b] + 15 -> ASUS TV-FM 7134 [PCI_VENDOR_ID_ASUSTEK:4842,PCI_VENDOR_ID_ASUSTEK:4830] + 16 -> AOPEN VA1000 POWER [1131:7133] + 17 -> 10MOONS PCI TV CAPTURE CARD [1131:2001] + 18 -> BMK MPEX No Tuner + 19 -> Compro VideoMate TV [185b:c100] + 20 -> Matrox CronosPlus [PCI_VENDOR_ID_MATROX:48d0] + 21 -> Medion 2819 [1461:a70b] + 22 -> BMK MPEX Tuner diff -urN linux-2.6.2-rc1/Documentation/video4linux/CARDLIST.tuner linux-2.6.2-rc2/Documentation/video4linux/CARDLIST.tuner --- linux-2.6.2-rc1/Documentation/video4linux/CARDLIST.tuner 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/CARDLIST.tuner 2004-01-25 19:08:25.000000000 -0800 @@ -0,0 +1,43 @@ +tuner=0 - Temic PAL (4002 FH5) +tuner=1 - Philips PAL_I (FI1246 and compatibles) +tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles) +tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF) +tuner=4 - NoTuner +tuner=5 - Philips PAL_BG (FI1216 and compatibles) +tuner=6 - Temic NTSC (4032 FY5) +tuner=7 - Temic PAL_I (4062 FY5) +tuner=8 - Temic NTSC (4036 FY5) +tuner=9 - Alps HSBH1 +tuner=10 - Alps TSBE1 +tuner=11 - Alps TSBB5 +tuner=12 - Alps TSBE5 +tuner=13 - Alps TSBC5 +tuner=14 - Temic PAL_BG (4006FH5) +tuner=15 - Alps TSCH6 +tuner=16 - Temic PAL_DK (4016 FY5) +tuner=17 - Philips NTSC_M (MK2) +tuner=18 - Temic PAL_I (4066 FY5) +tuner=19 - Temic PAL* auto (4006 FN5) +tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5) +tuner=21 - Temic NTSC (4039 FR5) +tuner=22 - Temic PAL/SECAM multi (4046 FM5) +tuner=23 - Philips PAL_DK (FI1256 and compatibles) +tuner=24 - Philips PAL/SECAM multi (FQ1216ME) +tuner=25 - LG PAL_I+FM (TAPC-I001D) +tuner=26 - LG PAL_I (TAPC-I701D) +tuner=27 - LG NTSC+FM (TPI8NSR01F) +tuner=28 - LG PAL_BG+FM (TPI8PSB01D) +tuner=29 - LG PAL_BG (TPI8PSB11D) +tuner=30 - Temic PAL* auto + FM (4009 FN5) +tuner=31 - SHARP NTSC_JP (2U5JF5540) +tuner=32 - Samsung PAL TCPM9091PD27 +tuner=33 - MT2032 universal +tuner=34 - Temic PAL_BG (4106 FH5) +tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5) +tuner=36 - Temic NTSC (4136 FY5) +tuner=37 - LG PAL (newer TAPC series) +tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3) +tuner=39 - LG NTSC (newer TAPC series) +tuner=40 - HITACHI V7-J180AT +tuner=41 - Philips PAL_MK (FI1216 MK) +tuner=42 - Philips 1236D ATSC/NTSC daul in diff -urN linux-2.6.2-rc1/Documentation/video4linux/README.cx88 linux-2.6.2-rc2/Documentation/video4linux/README.cx88 --- linux-2.6.2-rc1/Documentation/video4linux/README.cx88 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/README.cx88 2004-01-25 19:08:25.000000000 -0800 @@ -0,0 +1,59 @@ + +cx8800 release notes +==================== + +This is a v4l2 device driver for the cx2388x chip. + + +current status +============== + +video + Basically works. Some minor quality glitches. For now + only capture, overlay support isn't completed yet. + +audio + Doesn't work. Also the chip specs for the on-chip TV sound + decoder are next to useless :-/ + Most tuner chips do provide mono sound, which may or may not + be useable depending on the board design. With the Hauppauge + cards it works, so there is at least mono sound. Not nice, + but better than nothing. + +vbi + not implemented yet (but I don't expect problems here, just + found no time for that yet). + + +how to add support for new cards +================================ + +The driver needs some config info for the TV cards. This stuff is in +cx88-cards.c. If the driver doesn't work well you likely need a new +entry for your card in that file. Check the kernel log (using dmesg) +to see whenever the driver knows your card or not. There is a line +like this one: + + cx8800[0]: subsystem: 0070:3400, board: Hauppauge WinTV \ + 34xxx models [card=1,autodetected] + +If your card is listed as "board: UNKNOWN/GENERIC" it is unknown to +the driver. + +You can try to create a new entry yourself, or you can mail me the +config information. I need at least the following informations to +add the card: + + * the PCI Subsystem ID ("0070:3400" from the line above, "lspci -v" + output is fine too). + * the tuner type used by the card. You can try to find one by + trial-and-error using the tuner= insmod option. If you + know which one the card has you can also have a look at the + list in CARDLIST.tuner + +Have fun, + + Gerd + +-- +Gerd Knorr [SuSE Labs] diff -urN linux-2.6.2-rc1/Documentation/video4linux/README.ir linux-2.6.2-rc2/Documentation/video4linux/README.ir --- linux-2.6.2-rc1/Documentation/video4linux/README.ir 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/README.ir 2004-01-25 19:08:25.000000000 -0800 @@ -0,0 +1,72 @@ + +infrared remote control support in video4linux drivers +====================================================== + + +basics +------ + +Current versions use the linux input layer to support infrared +remote controls. I suggest to download my input layer tools +from http://bytesex.org/snapshot/input-.tar.gz + +Modules you have to load: + + saa7134 statically built in, i.e. just the driver :) + bttv ir-kbd-gpio or ir-kbd-i2c depending on your + card. + +ir-kbd-gpio and ir-kbd-i2c don't support all cards lirc supports +(yet), mainly for the reason that the code of lirc_i2c and lirc_gpio +was very confusing and I decided to basically start over from scratch. +Feel free to contact me in case of trouble. Note that the ir-kbd-* +modules work on 2.6.x kernels only through ... + + +how it works +------------ + +The modules register the remote as keyboard within the linux input +layer, i.e. you'll see the keys of the remote as normal key strokes +(if CONFIG_INPUT_KEYBOARD is enabled). + +Using the event devices (CONFIG_INPUT_EVDEV) it is possible for +applications to access the remote via /dev/input/event devices. +You might have to create the special files using "/sbin/MAKEDEV +input". The input layer tools mentioned above use the event device. + +The input layer tools are nice for trouble shooting, i.e. to check +whenever the input device is really present, which of the devices it +is, check whenever pressing keys on the remote actually generates +events and the like. You can also use the kbd utility to change the +keymaps (2.6.x kernels only through). + + +using with lircd +================ + +The cvs version of the lircd daemon supports reading events from the +linux input layer (via event device). The input layer tools tarball +comes with a lircd config file. + + +using without lircd +=================== + +XFree86 likely can be configured to recognise the remote keys. Once I +simply tried to configure one of the multimedia keyboards as input +device, which had the effect that XFree86 recognised some of the keys +of my remote control and passed volume up/down key presses as +XF86AudioRaiseVolume and XF86AudioLowerVolume key events to the X11 +clients. + +It likely is possible to make that fly with a nice xkb config file, +I know next to nothing about that through. + + +Have fun, + + Gerd + +-- +Gerd Knorr diff -urN linux-2.6.2-rc1/Documentation/video4linux/README.saa7134 linux-2.6.2-rc2/Documentation/video4linux/README.saa7134 --- linux-2.6.2-rc1/Documentation/video4linux/README.saa7134 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/README.saa7134 2004-01-25 19:08:25.000000000 -0800 @@ -0,0 +1,73 @@ + + +What is it? +=========== + +This is a v4l2/oss device driver for saa7130/33/34/35 based capture / TV +boards. See http://www.semiconductors.philips.com/pip/saa7134hl for a +description. + + +Status +====== + +Almost everything is working. video, sound, tuner, radio, mpeg ts, ... + +As with bttv, card-specific tweaks are needed. Check CARDLIST for a +list of known TV cards and saa7134-cards.c for the drivers card +configuration info. + + +Build +===== + +Pick up videodev + v4l2 patches from http://bytesex.org/patches/. +Configure, build, install + boot the new kernel. You'll need at least +these config options: + + CONFIG_I2C=m + CONFIG_VIDEO_DEV=m + +Type "make" to build the driver now. "make install" installs the +driver. "modprobe saa7134" should load it. Depending on the card you +might have to pass card= as insmod option, check CARDLIST for +valid choices. + + +Changes / Fixes +=============== + +Please mail me unified diffs ("diff -u") with your changes, and don't +forget to tell me what it changes / which problem it fixes / whatever +it is good for ... + + +Known Problems +============== + +* The tuner for the flyvideos isn't detected automatically and the + default might not work for you depending on which version you have. + There is a tuner= insmod option to override the driver's default. + +Card Variations: +================ + +Cards can use either of these two crystals (xtal): + - 32.11 MHz -> .audio_clock=0x187de7 + - 24.576MHz -> .audio_clock=0x200000 +(xtal * .audio_clock = 51539600) + + +Credits +======= + +andrew.stevens@philips.com + werner.leeb@philips.com for providing +saa7134 hardware specs and sample board. + + +Have fun, + + Gerd + +-- +Gerd Knorr [SuSE Labs] diff -urN linux-2.6.2-rc1/Documentation/video4linux/bttv/CARDLIST linux-2.6.2-rc2/Documentation/video4linux/bttv/CARDLIST --- linux-2.6.2-rc1/Documentation/video4linux/bttv/CARDLIST 2004-01-08 22:59:09.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/bttv/CARDLIST 1969-12-31 16:00:00.000000000 -0800 @@ -1,141 +0,0 @@ -bttv.o - card=0 - *** UNKNOWN/GENERIC *** - card=1 - MIRO PCTV - card=2 - Hauppauge (bt848) - card=3 - STB, Gateway P/N 6000699 (bt848) - card=4 - Intel Create and Share PCI/ Smart Video Recorder III - card=5 - Diamond DTV2000 - card=6 - AVerMedia TVPhone - card=7 - MATRIX-Vision MV-Delta - card=8 - Lifeview FlyVideo II (Bt848) LR26 - card=9 - IMS/IXmicro TurboTV - card=10 - Hauppauge (bt878) - card=11 - MIRO PCTV pro - card=12 - ADS Technologies Channel Surfer TV (bt848) - card=13 - AVerMedia TVCapture 98 - card=14 - Aimslab Video Highway Xtreme (VHX) - card=15 - Zoltrix TV-Max - card=16 - Prolink Pixelview PlayTV (bt878) - card=17 - Leadtek WinView 601 - card=18 - AVEC Intercapture - card=19 - Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only) - card=20 - CEI Raffles Card - card=21 - Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50 - card=22 - Askey CPH050/ Phoebe Tv Master + FM - card=23 - Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878 - card=24 - Askey CPH05X/06X (bt878) [many vendors] - card=25 - Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar - card=26 - Hauppauge WinCam newer (bt878) - card=27 - Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50 - card=28 - Terratec TerraTV+ Version 1.1 (bt878) - card=29 - Imagenation PXC200 - card=30 - Lifeview FlyVideo 98 LR50 - card=31 - Formac iProTV - card=32 - Intel Create and Share PCI/ Smart Video Recorder III - card=33 - Terratec TerraTValue Version Bt878 - card=34 - Leadtek WinFast 2000/ WinFast 2000 XP - card=35 - Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II - card=36 - Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner - card=37 - Prolink PixelView PlayTV pro - card=38 - Askey CPH06X TView99 - card=39 - Pinnacle PCTV Studio/Rave - card=40 - STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100 - card=41 - AVerMedia TVPhone 98 - card=42 - ProVideo PV951 - card=43 - Little OnAir TV - card=44 - Sigma TVII-FM - card=45 - MATRIX-Vision MV-Delta 2 - card=46 - Zoltrix Genie TV/FM - card=47 - Terratec TV/Radio+ - card=48 - Askey CPH03x/ Dynalink Magic TView - card=49 - IODATA GV-BCTV3/PCI - card=50 - Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP - card=51 - Eagle Wireless Capricorn2 (bt878A) - card=52 - Pinnacle PCTV Studio Pro - card=53 - Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS - card=54 - Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90] - card=55 - Askey CPH031/ BESTBUY Easy TV - card=56 - Lifeview FlyVideo 98FM LR50 - card=57 - GrandTec 'Grand Video Capture' (Bt848) - card=58 - Askey CPH060/ Phoebe TV Master Only (No FM) - card=59 - Askey CPH03x TV Capturer - card=60 - Modular Technology MM100PCTV - card=61 - AG Electronics GMV1 - card=62 - Askey CPH061/ BESTBUY Easy TV (bt878) - card=63 - ATI TV-Wonder - card=64 - ATI TV-Wonder VE - card=65 - Lifeview FlyVideo 2000S LR90 - card=66 - Terratec TValueRadio - card=67 - IODATA GV-BCTV4/PCI - card=68 - 3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA) - card=69 - Active Imaging AIMMS - card=70 - Prolink Pixelview PV-BT878P+ (Rev.4C,8E) - card=71 - Lifeview FlyVideo 98EZ (capture only) LR51 - card=72 - Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) - card=73 - Sensoray 311 - card=74 - RemoteVision MX (RV605) - card=75 - Powercolor MTV878/ MTV878R/ MTV878F - card=76 - Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP) - card=77 - GrandTec Multi Capture Card (Bt878) - card=78 - Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF - card=79 - DSP Design TCVIDEO - card=80 - Hauppauge WinTV PVR - card=81 - GV-BCTV5/PCI - card=82 - Osprey 100/150 (878) - card=83 - Osprey 100/150 (848) - card=84 - Osprey 101 (848) - card=85 - Osprey 101/151 - card=86 - Osprey 101/151 w/ svid - card=87 - Osprey 200/201/250/251 - card=88 - Osprey 200/250 - card=89 - Osprey 210/220 - card=90 - Osprey 500 - card=91 - Osprey 540 - card=92 - Osprey 2000 - card=93 - IDS Eagle - card=94 - Pinnacle PCTV Sat - card=95 - Formac ProTV II - card=96 - MachTV - card=97 - Euresys Picolo - -tuner.o - type=0 - Temic PAL (4002 FH5) - type=1 - Philips PAL_I (FI1246 and compatibles) - type=2 - Philips NTSC (FI1236,FM1236 and compatibles) - type=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF) - type=4 - NoTuner - type=5 - Philips PAL_BG (FI1216 and compatibles) - type=6 - Temic NTSC (4032 FY5) - type=7 - Temic PAL_I (4062 FY5) - type=8 - Temic NTSC (4036 FY5) - type=9 - Alps HSBH1 - type=10 - Alps TSBE1 - type=11 - Alps TSBB5 - type=12 - Alps TSBE5 - type=13 - Alps TSBC5 - type=14 - Temic PAL_BG (4006FH5) - type=15 - Alps TSCH6 - type=16 - Temic PAL_DK (4016 FY5) - type=17 - Philips NTSC_M (MK2) - type=18 - Temic PAL_I (4066 FY5) - type=19 - Temic PAL* auto (4006 FN5) - type=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5) - type=21 - Temic NTSC (4039 FR5) - type=22 - Temic PAL/SECAM multi (4046 FM5) - type=23 - Philips PAL_DK (FI1256 and compatibles) - type=24 - Philips PAL/SECAM multi (FQ1216ME) - type=25 - LG PAL_I+FM (TAPC-I001D) - type=26 - LG PAL_I (TAPC-I701D) - type=27 - LG NTSC+FM (TPI8NSR01F) - type=28 - LG PAL_BG+FM (TPI8PSB01D) - type=29 - LG PAL_BG (TPI8PSB11D) - type=30 - Temic PAL* auto + FM (4009 FN5) - type=31 - SHARP NTSC_JP (2U5JF5540) - type=32 - Samsung PAL TCPM9091PD27 - type=33 - MT2032 universal - type=34 - Temic PAL_BG (4106 FH5) - type=35 - Temic PAL_DK/SECAM_L (4012 FY5) - type=36 - Temic NTSC (4136 FY5) - type=37 - LG PAL (newer TAPC series) - type=38 - Philips PAL/SECAM multi (FM1216ME MK3) - type=39 - LG NTSC (newer TAPC series) diff -urN linux-2.6.2-rc1/Documentation/video4linux/bttv/Insmod-options linux-2.6.2-rc2/Documentation/video4linux/bttv/Insmod-options --- linux-2.6.2-rc1/Documentation/video4linux/bttv/Insmod-options 2004-01-08 22:59:09.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/bttv/Insmod-options 2004-01-25 19:08:25.000000000 -0800 @@ -1,4 +1,10 @@ +Note: "modinfo " prints various informations about a kernel +module, among them a complete and up-to-date list of insmod options. +This list tends to be outdated because it is updated manually ... + +========================================================================== + bttv.o the bt848/878 (grabber chip) driver diff -urN linux-2.6.2-rc1/Documentation/video4linux/bttv/README linux-2.6.2-rc2/Documentation/video4linux/bttv/README --- linux-2.6.2-rc1/Documentation/video4linux/bttv/README 2004-01-08 22:59:06.000000000 -0800 +++ linux-2.6.2-rc2/Documentation/video4linux/bttv/README 2004-01-25 19:08:25.000000000 -0800 @@ -1,88 +1,37 @@ -IMPORTANT: Don't send me mails with images attached unless I ask you -to do so. Mails with images attached will go to /dev/null unseen. - - -Release notes for bttv-0.7.x -============================ - -This version is based on Ralphs 0.6.4 release. There are alot of -changes. Bugfixes, merged patches from other people, merged fixes -from the kernel version, port to the new i2c stack, removed support -for 2.0.x, code cleanups, ... - -To compile this bttv version, you'll the new i2c stack. Kernels -newer than 2.3.34 have this already included. If you have a older -kernel, download it from: - http://www2.lm-sensors.nu/~lm78/download.html +Release notes for bttv +====================== You'll need at least these config options for bttv: -CONFIG_I2C=m -CONFIG_I2C_ALGOBIT=m -CONFIG_VIDEO_DEV=m + CONFIG_I2C=m + CONFIG_I2C_ALGOBIT=m + CONFIG_VIDEO_DEV=m The latest bttv version is available from http://bytesex.org/bttv/ -You'll find Ralphs original (mostly outdated) documentation in the -ralphs-doc subdirectory. - - -Compile bttv ------------- - -If you are compiling the kernel version, just say 'm' if you are asked -for bttv. I /strongly/ recommend to compile bttv as module, because -there are some insmod options for configuring the driver. Starting -with 0.7.49 the most important ones are available as kernel args too. - -If you downloaded the separate bttv bundle: You need configured kernel -sources to compile the bttv driver. The driver uses some Makefile -magic to compile the modules with your kernel's configuration -(wrt. module-versions, SMP, ...). If you already have compiled the -kernel at least once, you probably don't have do worry about this. If -not, go to /usr/src/linux and run at least "make config". Even -better, compile your own kernel, you'll never become a real hacker -else ;-) -Note that you have to turn on video4linux support (CONFIG_VIDEO_DEV) -in the kernel to get the videodev.o module which is required by bttv. - Make bttv work with your card ----------------------------- -Setup your /etc/modules.conf file and let kmod load the modules. -See also: +Just try "modprobe bttv" and see if that works. -Modules.conf: some sample entries for /etc/modules.conf -Insmod-options: list of all insmod options available for bttv and - the helper modules. -MAKEDEV: a script to create the special files for v4l -CARDLIST: List of all supported cards -Cards: more detailed descriptions of known TV cards: - OEM name variants, used i2c chips, ... - also includes non-bttv cards. - -Loading just the bttv modules isn't enouth for most cards. The -drivers for the i2c tuner/sound chips must also be loaded. bttv tries -to load them automagically by calling request_module() now, but this -obviously works only with kmod enabled. +If it doesn't bttv likely could not autodetect your card and needs some +insmod options. The most important insmod option for bttv is "card=n" +to select the correct card type. If you get video but no sound you've +very likely specified the wrong (or no) card type. A list of supported +cards is in CARDLIST.bttv If bttv takes very long to load (happens sometimes with the cheap cards which have no tuner), try adding this to your modules.conf: options i2c-algo-bit bit_test=1 -The most important insmod option for bttv is "card=n" to select the -correct card type in case the autodetection does'nt work. If you get -video but no sound you've very likely specified the wrong (or no) -card type. A list of supported cards is in CARDLIST. - For the WinTV/PVR you need one firmware file from the driver CD: hcwamc.rbf. The file is in the pvr45xxx.exe archive (self-extracting zip file, unzip can unpack it). Put it into the /etc/pvr directory or use the firm_altera= insmod option to point the driver to the location of the file. -If your card isn't listed in CARDLIST or if you have trouble making +If your card isn't listed in CARDLIST.bttv or if you have trouble making audio work, you should read the Sound-FAQ. @@ -103,14 +52,6 @@ in bttv-cards.c (in case you are intrested or want to mail patches with updates). -Old driver versions used to have a heuristic which could identify some -bt848-based cards. It worked for Hauppauge and Miro cards in most -cases (simply because these where the first cards available on the -market), but misdetected other bt848 cards. That code is gone now for -exactly this reason, the misdetection confused lots of people. If you -have a old Hauppauge or Miro card, you'll have to load the driver with -card=1 or card=2 these days. - Still doesn't work? ------------------- @@ -146,4 +87,4 @@ Gerd -- -Gerd Knorr +Gerd Knorr diff -urN linux-2.6.2-rc1/MAINTAINERS linux-2.6.2-rc2/MAINTAINERS --- linux-2.6.2-rc1/MAINTAINERS 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/MAINTAINERS 2004-01-25 19:08:26.000000000 -0800 @@ -709,7 +709,8 @@ DVB SUBSYSTEM AND DRIVERS P: LinuxTV.org Project -L: linux-dvb@linuxtv.org +M: linux-dvb-maintainer@linuxtv.org +L: linux-dvb@linuxtv.org (subscription required) W: http://linuxtv.org/developer/dvb.xml S: Supported diff -urN linux-2.6.2-rc1/Makefile linux-2.6.2-rc2/Makefile --- linux-2.6.2-rc1/Makefile 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/Makefile 2004-01-25 19:08:26.000000000 -0800 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 2 -EXTRAVERSION =-rc1 +EXTRAVERSION =-rc2 # *DOCUMENTATION* # To see a list of typical targets execute "make help" @@ -690,7 +690,7 @@ _modinst_: @if [ -z "`$(DEPMOD) -V | grep module-init-tools`" ]; then \ echo "Warning: you may need to install module-init-tools"; \ - echo "See http://www.codemonkey.org.uk/post-halloween-2.5.txt";\ + echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt";\ sleep 1; \ fi @rm -rf $(MODLIB)/kernel diff -urN linux-2.6.2-rc1/arch/alpha/kernel/signal.c linux-2.6.2-rc2/arch/alpha/kernel/signal.c --- linux-2.6.2-rc1/arch/alpha/kernel/signal.c 2004-01-08 22:59:33.000000000 -0800 +++ linux-2.6.2-rc2/arch/alpha/kernel/signal.c 2004-01-25 19:08:26.000000000 -0800 @@ -201,10 +201,13 @@ * Do a signal return; undo the signal stack. */ +#if _NSIG_WORDS > 1 +# error "Non SA_SIGINFO frame needs rearranging" +#endif + struct sigframe { struct sigcontext sc; - unsigned long extramask[_NSIG_WORDS-1]; unsigned int retcode[3]; }; @@ -268,19 +271,20 @@ return err; } +/* Note that this syscall is also used by setcontext(3) to install + a given sigcontext. This because it's impossible to set *all* + registers and transfer control from userland. */ + asmlinkage void -do_sigreturn(struct sigframe *frame, struct pt_regs *regs, +do_sigreturn(struct sigcontext *sc, struct pt_regs *regs, struct switch_stack *sw) { sigset_t set; /* Verify that it's a good sigcontext before using it */ - if (verify_area(VERIFY_READ, frame, sizeof(*frame))) + if (verify_area(VERIFY_READ, sc, sizeof(*sc))) goto give_sigsegv; - if (__get_user(set.sig[0], &frame->sc.sc_mask) - || (_NSIG_WORDS > 1 - && __copy_from_user(&set.sig[1], &frame->extramask, - sizeof(frame->extramask)))) + if (__get_user(set.sig[0], &sc->sc_mask)) goto give_sigsegv; sigdelsetmask(&set, ~_BLOCKABLE); @@ -289,7 +293,7 @@ recalc_sigpending(); spin_unlock_irq(¤t->sighand->siglock); - if (restore_sigcontext(&frame->sc, regs, sw)) + if (restore_sigcontext(sc, regs, sw)) goto give_sigsegv; /* Send SIGTRAP if we're single-stepping: */ @@ -314,10 +318,9 @@ struct switch_stack *sw) { sigset_t set; - stack_t st; - /* Verify that it's a good sigcontext before using it */ - if (verify_area(VERIFY_READ, frame, sizeof(*frame))) + /* Verify that it's a good ucontext_t before using it */ + if (verify_area(VERIFY_READ, &frame->uc, sizeof(frame->uc))) goto give_sigsegv; if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) goto give_sigsegv; @@ -331,12 +334,6 @@ if (restore_sigcontext(&frame->uc.uc_mcontext, regs, sw)) goto give_sigsegv; - if (__copy_from_user(&st, &frame->uc.uc_stack, sizeof(st))) - goto give_sigsegv; - /* It is more difficult to avoid calling this function than to - call it and ignore errors. */ - do_sigaltstack(&st, NULL, rdusp()); - /* Send SIGTRAP if we're single-stepping: */ if (ptrace_cancel_bpt (current)) { siginfo_t info; @@ -437,10 +434,6 @@ goto give_sigsegv; err |= setup_sigcontext(&frame->sc, regs, sw, set->sig[0], oldsp); - if (_NSIG_WORDS > 1) { - err |= __copy_to_user(frame->extramask, &set->sig[1], - sizeof(frame->extramask)); - } if (err) goto give_sigsegv; diff -urN linux-2.6.2-rc1/arch/i386/Kconfig linux-2.6.2-rc2/arch/i386/Kconfig --- linux-2.6.2-rc1/arch/i386/Kconfig 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/Kconfig 2004-01-25 19:08:26.000000000 -0800 @@ -399,7 +399,7 @@ config X86_OOSTORE bool - depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 + depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR default y config HPET_TIMER @@ -1261,11 +1261,6 @@ If you don't debug the kernel, you can say N, but we may not be able to solve problems without frame pointers. -config X86_EXTRA_IRQS - bool - depends on X86_LOCAL_APIC || X86_VOYAGER - default y - config X86_FIND_SMP_CONFIG bool depends on X86_LOCAL_APIC || X86_VOYAGER diff -urN linux-2.6.2-rc1/arch/i386/defconfig linux-2.6.2-rc2/arch/i386/defconfig --- linux-2.6.2-rc1/arch/i386/defconfig 2004-01-08 22:59:46.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/defconfig 2004-01-25 19:08:26.000000000 -0800 @@ -1101,7 +1101,6 @@ # CONFIG_DEBUG_KERNEL is not set CONFIG_DEBUG_SPINLOCK_SLEEP=y CONFIG_FRAME_POINTER=y -CONFIG_X86_EXTRA_IRQS=y CONFIG_X86_FIND_SMP_CONFIG=y CONFIG_X86_MPPARSE=y diff -urN linux-2.6.2-rc1/arch/i386/kernel/apic.c linux-2.6.2-rc2/arch/i386/kernel/apic.c --- linux-2.6.2-rc1/arch/i386/kernel/apic.c 2004-01-08 23:00:13.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/kernel/apic.c 2004-01-25 19:08:26.000000000 -0800 @@ -834,11 +834,13 @@ void __setup_APIC_LVTT(unsigned int clocks) { - unsigned int lvtt1_value, tmp_value; + unsigned int lvtt_value, tmp_value, ver; - lvtt1_value = SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV) | - APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR; - apic_write_around(APIC_LVTT, lvtt1_value); + ver = GET_APIC_VERSION(apic_read(APIC_LVR)); + lvtt_value = APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR; + if (!APIC_INTEGRATED(ver)) + lvtt_value |= SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV); + apic_write_around(APIC_LVTT, lvtt_value); /* * Divide PICLK by 16 diff -urN linux-2.6.2-rc1/arch/i386/kernel/apm.c linux-2.6.2-rc2/arch/i386/kernel/apm.c --- linux-2.6.2-rc1/arch/i386/kernel/apm.c 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/kernel/apm.c 2004-01-25 19:08:26.000000000 -0800 @@ -844,6 +844,8 @@ idle_percentage *= 100; idle_percentage /= jiffies_since_last_check; use_apm_idle = (idle_percentage > idle_threshold); + if (apm_info.forbid_idle) + use_apm_idle = 0; last_jiffies = jiffies; last_stime = current->stime; } diff -urN linux-2.6.2-rc1/arch/i386/kernel/cpu/mcheck/non-fatal.c linux-2.6.2-rc2/arch/i386/kernel/cpu/mcheck/non-fatal.c --- linux-2.6.2-rc1/arch/i386/kernel/cpu/mcheck/non-fatal.c 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/kernel/cpu/mcheck/non-fatal.c 2004-01-25 19:08:26.000000000 -0800 @@ -74,6 +74,16 @@ static int __init init_nonfatal_mce_checker(void) { + struct cpuinfo_x86 *c = &boot_cpu_data; + + /* Check for MCE support */ + if (!cpu_has(c, X86_FEATURE_MCE)) + return -ENODEV; + + /* Check for PPro style MCA */ + if (!cpu_has(c, X86_FEATURE_MCA)) + return -ENODEV; + /* Some Athlons misbehave when we frob bank 0 */ if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD && boot_cpu_data.x86 == 6) diff -urN linux-2.6.2-rc1/arch/i386/kernel/cpu/mtrr/if.c linux-2.6.2-rc2/arch/i386/kernel/cpu/mtrr/if.c --- linux-2.6.2-rc1/arch/i386/kernel/cpu/mtrr/if.c 2004-01-08 22:59:19.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/kernel/cpu/mtrr/if.c 2004-01-25 19:08:26.000000000 -0800 @@ -352,6 +352,14 @@ static int __init mtrr_if_init(void) { + struct cpuinfo_x86 *c = &boot_cpu_data; + + if ((!cpu_has(c, X86_FEATURE_MTRR)) && + (!cpu_has(c, X86_FEATURE_K6_MTRR)) && + (!cpu_has(c, X86_FEATURE_CYRIX_ARR)) && + (!cpu_has(c, X86_FEATURE_CENTAUR_MCR))) + return -ENODEV; + proc_root_mtrr = create_proc_entry("mtrr", S_IWUSR | S_IRUGO, &proc_root); if (proc_root_mtrr) { diff -urN linux-2.6.2-rc1/arch/i386/kernel/dmi_scan.c linux-2.6.2-rc2/arch/i386/kernel/dmi_scan.c --- linux-2.6.2-rc1/arch/i386/kernel/dmi_scan.c 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/kernel/dmi_scan.c 2004-01-25 19:08:26.000000000 -0800 @@ -283,6 +283,30 @@ return 0; } +static __init int apm_is_horked_d850md(struct dmi_blacklist *d) +{ + if (apm_info.disabled == 0) { + apm_info.disabled = 1; + printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident); + printk(KERN_INFO "This bug is fixed in bios P15 which is available for \n"); + printk(KERN_INFO "download from support.intel.com \n"); + } + return 0; +} + +/* + * Some APM bioses hang on APM idle calls + */ + +static __init int apm_likes_to_melt(struct dmi_blacklist *d) +{ + if (apm_info.forbid_idle == 0) { + apm_info.forbid_idle = 1; + printk(KERN_INFO "%s machine detected. Disabling APM idle calls.\n", d->ident); + } + return 0; +} + /* * Some machines, usually laptops, can't handle an enabled local APIC. * The symptoms include hangs or reboots when suspending or resuming, @@ -558,6 +582,22 @@ MATCH(DMI_PRODUCT_NAME, "Latitude C600"), NO_MATCH, NO_MATCH } }, + { set_apm_ints, "Dell Latitude", { /* Allow interrupts during suspend on Dell Latitude laptops*/ + MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + MATCH(DMI_PRODUCT_NAME, "Latitude C510"), + NO_MATCH, NO_MATCH + } }, + { apm_is_horked, "Dell Inspiron 2500", { /* APM crashes */ + MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"), + MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), + MATCH(DMI_BIOS_VERSION,"A11") + } }, + { set_apm_ints, "Dell Inspiron", { /* Allow interrupts during suspend on Dell Inspiron laptops*/ + MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"), + NO_MATCH, NO_MATCH + } }, { broken_apm_power, "Dell Inspiron 5000e", { /* Handle problems with APM on Inspiron 5000e */ MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), MATCH(DMI_BIOS_VERSION, "A04"), @@ -568,6 +608,12 @@ MATCH(DMI_BIOS_VERSION, "A12"), MATCH(DMI_BIOS_DATE, "02/04/2002"), NO_MATCH } }, + { apm_is_horked, "Dell Dimension 4100", { /* APM crashes */ + MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + MATCH(DMI_PRODUCT_NAME, "XPS-Z"), + MATCH(DMI_BIOS_VENDOR,"Intel Corp."), + MATCH(DMI_BIOS_VERSION,"A11") + } }, { set_realmode_power_off, "Award Software v4.60 PGMA", { /* broken PM poweroff bios */ MATCH(DMI_BIOS_VENDOR, "Award Software International, Inc."), MATCH(DMI_BIOS_VERSION, "4.60 PGMA"), @@ -578,21 +624,16 @@ MATCH(DMI_PRODUCT_NAME, "PowerEdge 1300/"), NO_MATCH, NO_MATCH } }, - { set_bios_reboot, "Dell PowerEdge 300", { /* Handle problems with rebooting on Dell 1300's */ + { set_bios_reboot, "Dell PowerEdge 300", { /* Handle problems with rebooting on Dell 300's */ MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"), NO_MATCH, NO_MATCH } }, - { set_bios_reboot, "Dell PowerEdge 2400", { /* Handle problems with rebooting on Dell 300/800's */ + { set_bios_reboot, "Dell PowerEdge 2400", { /* Handle problems with rebooting on Dell 2400's */ MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400"), NO_MATCH, NO_MATCH } }, - { set_apm_ints, "Dell Inspiron", { /* Allow interrupts during suspend on Dell Inspiron laptops*/ - MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), - MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"), - NO_MATCH, NO_MATCH - } }, { set_apm_ints, "Compaq 12XL125", { /* Allow interrupts during suspend on Compaq Laptops*/ MATCH(DMI_SYS_VENDOR, "Compaq"), MATCH(DMI_PRODUCT_NAME, "Compaq PC"), @@ -619,7 +660,7 @@ MATCH(DMI_BIOS_VERSION, "Version1.01"), NO_MATCH, NO_MATCH, } }, - { apm_is_horked, "Intel D850MD", { /* APM crashes */ + { apm_is_horked_d850md, "Intel D850MD", { /* APM crashes */ MATCH(DMI_BIOS_VENDOR, "Intel Corp."), MATCH(DMI_BIOS_VERSION, "MV85010A.86A.0016.P07.0201251536"), NO_MATCH, NO_MATCH, @@ -647,6 +688,16 @@ MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), MATCH(DMI_BIOS_VERSION,"A11") } }, + { apm_likes_to_melt, "Jabil AMD", { /* APM idle hangs */ + MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), + MATCH(DMI_BIOS_VERSION, "0AASNP06"), + NO_MATCH, NO_MATCH, + } }, + { apm_likes_to_melt, "AMI Bios", { /* APM idle hangs */ + MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), + MATCH(DMI_BIOS_VERSION, "0AASNP05"), + NO_MATCH, NO_MATCH, + } }, { sony_vaio_laptop, "Sony Vaio", { /* This is a Sony Vaio laptop */ MATCH(DMI_SYS_VENDOR, "Sony Corporation"), MATCH(DMI_PRODUCT_NAME, "PCG-"), @@ -777,6 +828,11 @@ } }, { broken_pirq, "l44GX Bios", { /* Bad $PIR */ MATCH(DMI_BIOS_VENDOR, "Intel Corporation"), + MATCH(DMI_BIOS_VERSION,"L440GX0.86B.0115.P12"), + NO_MATCH, NO_MATCH + } }, + { broken_pirq, "l44GX Bios", { /* Bad $PIR */ + MATCH(DMI_BIOS_VENDOR, "Intel Corporation"), MATCH(DMI_BIOS_VERSION,"L440GX0.86B.0120.P12"), NO_MATCH, NO_MATCH } }, @@ -790,6 +846,12 @@ MATCH(DMI_BIOS_VERSION,"L440GX0.86B.0066.P07.9906041405"), NO_MATCH, NO_MATCH } }, + + { broken_pirq, "IBM xseries 370", { /* Bad $PIR */ + MATCH(DMI_BIOS_VENDOR, "IBM"), + MATCH(DMI_BIOS_VERSION,"MMKT33AUS"), + NO_MATCH, NO_MATCH + } }, /* Intel in disguise - In this case they can't hide and they don't run too well either... */ diff -urN linux-2.6.2-rc1/arch/i386/pci/direct.c linux-2.6.2-rc2/arch/i386/pci/direct.c --- linux-2.6.2-rc1/arch/i386/pci/direct.c 2004-01-08 22:59:18.000000000 -0800 +++ linux-2.6.2-rc2/arch/i386/pci/direct.c 2004-01-25 19:08:26.000000000 -0800 @@ -259,7 +259,7 @@ release_resource(region); type2: - if ((!pci_probe & PCI_PROBE_CONF2) == 0) + if ((pci_probe & PCI_PROBE_CONF2) == 0) goto out; region = request_region(0xCF8, 4, "PCI conf2"); if (!region) diff -urN linux-2.6.2-rc1/arch/ppc/kernel/setup.c linux-2.6.2-rc2/arch/ppc/kernel/setup.c --- linux-2.6.2-rc1/arch/ppc/kernel/setup.c 2004-01-08 23:00:03.000000000 -0800 +++ linux-2.6.2-rc2/arch/ppc/kernel/setup.c 2004-01-25 19:08:26.000000000 -0800 @@ -675,7 +675,6 @@ if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab); paging_init(); - sort_exception_table(); /* this is for modules since _machine can be a define -- Cort */ ppc_md.ppc_machine = _machine; diff -urN linux-2.6.2-rc1/arch/ppc/kernel/signal.c linux-2.6.2-rc2/arch/ppc/kernel/signal.c --- linux-2.6.2-rc1/arch/ppc/kernel/signal.c 2004-01-08 23:00:05.000000000 -0800 +++ linux-2.6.2-rc2/arch/ppc/kernel/signal.c 2004-01-25 19:08:26.000000000 -0800 @@ -241,12 +241,16 @@ * (except for MSR). */ static int -restore_user_regs(struct pt_regs *regs, struct mcontext __user *sr) +restore_user_regs(struct pt_regs *regs, struct mcontext __user *sr, int sig) { + unsigned long save_r2; #ifdef CONFIG_ALTIVEC unsigned long msr; #endif + /* backup/restore the TLS as we don't want it to be modified */ + if (!sig) + save_r2 = regs->gpr[2]; /* copy up to but not including MSR */ if (__copy_from_user(regs, &sr->mc_gregs, PT_MSR * sizeof(elf_greg_t))) return 1; @@ -254,6 +258,8 @@ if (__copy_from_user(®s->orig_gpr3, &sr->mc_gregs[PT_ORIG_R3], GP_REGS_SIZE - PT_ORIG_R3 * sizeof(elf_greg_t))) return 1; + if (!sig) + regs->gpr[2] = save_r2; /* force the process to reload the FP registers from current->thread when it next does FP instructions */ @@ -359,7 +365,7 @@ force_sig(SIGSEGV, current); } -static int do_setcontext(struct ucontext __user *ucp, struct pt_regs *regs) +static int do_setcontext(struct ucontext __user *ucp, struct pt_regs *regs, int sig) { sigset_t set; struct mcontext *mcp; @@ -368,7 +374,7 @@ || __get_user(mcp, &ucp->uc_regs)) return -EFAULT; restore_sigmask(&set); - if (restore_user_regs(regs, mcp)) + if (restore_user_regs(regs, mcp, sig)) return -EFAULT; return 0; @@ -376,10 +382,16 @@ int sys_swapcontext(struct ucontext __user *old_ctx, struct ucontext __user *new_ctx, - int r5, int r6, int r7, int r8, struct pt_regs *regs) + int ctx_size, int r6, int r7, int r8, struct pt_regs *regs) { unsigned char tmp; + /* Context size is for future use. Right now, we only make sure + * we are passed something we understand + */ + if (ctx_size < sizeof(struct ucontext)) + return -EINVAL; + if (old_ctx != NULL) { if (verify_area(VERIFY_WRITE, old_ctx, sizeof(*old_ctx)) || save_user_regs(regs, &old_ctx->uc_mcontext, 0) @@ -406,7 +418,7 @@ * or if another thread unmaps the region containing the context. * We kill the task with a SIGSEGV in this situation. */ - if (do_setcontext(new_ctx, regs)) + if (do_setcontext(new_ctx, regs, 0)) do_exit(SIGSEGV); sigreturn_exit(regs); /* doesn't actually return back to here */ @@ -425,7 +437,7 @@ (regs->gpr[1] + __SIGNAL_FRAMESIZE + 16); if (verify_area(VERIFY_READ, rt_sf, sizeof(struct rt_sigframe))) goto bad; - if (do_setcontext(&rt_sf->uc, regs)) + if (do_setcontext(&rt_sf->uc, regs, 1)) goto bad; /* @@ -484,7 +496,7 @@ if (save_user_regs(regs, &frame->mctx, __NR_sigreturn)) goto badframe; - if (put_user(regs->gpr[1], (unsigned long *)newsp)) + if (put_user(regs->gpr[1], (unsigned long __user *)newsp)) goto badframe; regs->gpr[1] = newsp; regs->gpr[3] = sig; @@ -529,7 +541,7 @@ sr = (struct mcontext *) sigctx.regs; if (verify_area(VERIFY_READ, sr, sizeof(*sr)) - || restore_user_regs(regs, sr)) + || restore_user_regs(regs, sr, 1)) goto badframe; sigreturn_exit(regs); /* doesn't return */ diff -urN linux-2.6.2-rc1/arch/ppc64/Kconfig linux-2.6.2-rc2/arch/ppc64/Kconfig --- linux-2.6.2-rc1/arch/ppc64/Kconfig 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/ppc64/Kconfig 2004-01-25 19:08:26.000000000 -0800 @@ -286,6 +286,8 @@ source "drivers/char/Kconfig" +source "drivers/i2c/Kconfig" + source "drivers/media/Kconfig" source "fs/Kconfig" diff -urN linux-2.6.2-rc1/arch/ppc64/kernel/sys_ppc32.c linux-2.6.2-rc2/arch/ppc64/kernel/sys_ppc32.c --- linux-2.6.2-rc1/arch/ppc64/kernel/sys_ppc32.c 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/ppc64/kernel/sys_ppc32.c 2004-01-25 19:08:26.000000000 -0800 @@ -2011,6 +2011,8 @@ int retval; int i; + sched_balance_exec(); + file = open_exec(filename); retval = PTR_ERR(file); diff -urN linux-2.6.2-rc1/arch/sparc64/Kconfig linux-2.6.2-rc2/arch/sparc64/Kconfig --- linux-2.6.2-rc1/arch/sparc64/Kconfig 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/Kconfig 2004-01-25 19:08:26.000000000 -0800 @@ -727,6 +727,10 @@ depends on DEBUG_KERNEL bool "Stack Overflow Detection Support" +config DEBUG_BOOTMEM + depends on DEBUG_KERNEL + bool "Debug BOOTMEM initialization" + # We have a custom atomic_dec_and_lock() implementation but it's not # compatible with spinlock debugging so we need to fall back on # the generic version in that case. diff -urN linux-2.6.2-rc1/arch/sparc64/defconfig linux-2.6.2-rc2/arch/sparc64/defconfig --- linux-2.6.2-rc1/arch/sparc64/defconfig 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/defconfig 2004-01-25 19:08:26.000000000 -0800 @@ -379,6 +379,7 @@ CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID5=m +CONFIG_MD_RAID6=m CONFIG_MD_MULTIPATH=m CONFIG_BLK_DEV_DM=m # CONFIG_DM_IOCTL_V4 is not set @@ -969,7 +970,7 @@ CONFIG_PHONE_IXJ=m # -# Unix 98 PTY support +# Unix98 PTY support # CONFIG_UNIX98_PTYS=y CONFIG_UNIX98_PTY_COUNT=256 @@ -1054,16 +1055,21 @@ CONFIG_I2C_ALI15X3=m CONFIG_I2C_AMD756=m CONFIG_I2C_AMD8111=m +CONFIG_I2C_ELV=m CONFIG_I2C_I801=m CONFIG_I2C_I810=m +CONFIG_I2C_ISA=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_PHILIPSPAR=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_PROSAVAGE=m CONFIG_I2C_SAVAGE4=m CONFIG_SCx200_ACB=m CONFIG_I2C_SIS5595=m CONFIG_I2C_SIS630=m CONFIG_I2C_SIS96X=m +CONFIG_I2C_VELLEMAN=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m CONFIG_I2C_VOODOO3=m @@ -1073,14 +1079,20 @@ # CONFIG_I2C_SENSOR=m CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_EEPROM=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM90=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83L785TS=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # # File systems @@ -1572,12 +1584,15 @@ # # USB Miscellaneous drivers # +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m # CONFIG_USB_TIGL is not set CONFIG_USB_AUERSWALD=m CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m # CONFIG_USB_BRLVGER is not set CONFIG_USB_LCD=m +CONFIG_USB_LED=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_TEST=m # CONFIG_USB_GADGET is not set diff -urN linux-2.6.2-rc1/arch/sparc64/kernel/head.S linux-2.6.2-rc2/arch/sparc64/kernel/head.S --- linux-2.6.2-rc1/arch/sparc64/kernel/head.S 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/kernel/head.S 2004-01-25 19:08:26.000000000 -0800 @@ -54,7 +54,14 @@ .ascii "HdrS" .word LINUX_VERSION_CODE - .half 0x0203 /* HdrS version */ + + /* History: + * + * 0x0202 : Supports kernel params string + * 0x0300 : Supports being located at other than 0x4000 + */ + .half 0x0300 /* HdrS version */ + root_flags: .half 1 root_dev: @@ -345,7 +352,8 @@ nop nop and %g1, %g3, %g1 /* Mask to just get paddr bits. */ - sub %g1, %g2, %g1 /* Get rid of %pc offset to get base. */ + set 0x5fff, %l3 /* Mask offset to get phys base. */ + andn %g1, %l3, %g1 /* NOTE: We hold on to %g1 paddr base as we need it below to lock * NOTE: the PROM cif code into the TLB. diff -urN linux-2.6.2-rc1/arch/sparc64/kernel/smp.c linux-2.6.2-rc2/arch/sparc64/kernel/smp.c --- linux-2.6.2-rc1/arch/sparc64/kernel/smp.c 2004-01-08 22:59:02.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/kernel/smp.c 2004-01-25 19:08:26.000000000 -0800 @@ -1261,6 +1261,7 @@ void __devinit smp_prepare_boot_cpu(void) { + current_thread_info()->cpu = hard_smp_processor_id(); cpu_set(smp_processor_id(), cpu_online_map); cpu_set(smp_processor_id(), phys_cpu_present_map); } diff -urN linux-2.6.2-rc1/arch/sparc64/kernel/sys_sparc32.c linux-2.6.2-rc2/arch/sparc64/kernel/sys_sparc32.c --- linux-2.6.2-rc1/arch/sparc64/kernel/sys_sparc32.c 2004-01-08 22:59:45.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/kernel/sys_sparc32.c 2004-01-25 19:08:26.000000000 -0800 @@ -1950,6 +1950,8 @@ int retval; int i; + sched_balance_exec(); + file = open_exec(filename); retval = PTR_ERR(file); @@ -2023,7 +2025,8 @@ security_bprm_free(&bprm); out_mm: - mmdrop(bprm.mm); + if (bprm.mm) + mmdrop(bprm.mm); out_file: if (bprm.file) { diff -urN linux-2.6.2-rc1/arch/sparc64/kernel/traps.c linux-2.6.2-rc2/arch/sparc64/kernel/traps.c --- linux-2.6.2-rc1/arch/sparc64/kernel/traps.c 2004-01-08 23:00:12.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/kernel/traps.c 2004-01-25 19:08:26.000000000 -0800 @@ -2043,8 +2043,4 @@ */ atomic_inc(&init_mm.mm_count); current->active_mm = &init_mm; - -#ifdef CONFIG_SMP - current_thread_info()->cpu = hard_smp_processor_id(); -#endif } diff -urN linux-2.6.2-rc1/arch/sparc64/mm/init.c linux-2.6.2-rc2/arch/sparc64/mm/init.c --- linux-2.6.2-rc1/arch/sparc64/mm/init.c 2004-01-08 22:59:26.000000000 -0800 +++ linux-2.6.2-rc2/arch/sparc64/mm/init.c 2004-01-25 19:08:26.000000000 -0800 @@ -1293,6 +1293,10 @@ unsigned long bootmap_pfn, bytes_avail, size; int i; +#ifdef CONFIG_DEBUG_BOOTMEM + prom_printf("bootmem_init: Scan sp_banks, "); +#endif + bytes_avail = 0UL; for (i = 0; sp_banks[i].num_bytes != 0; i++) { end_of_phys_memory = sp_banks[i].base_addr + @@ -1359,14 +1363,24 @@ /* Initialize the boot-time allocator. */ max_pfn = max_low_pfn = end_pfn; min_low_pfn = pfn_base; + +#ifdef CONFIG_DEBUG_BOOTMEM + prom_printf("init_bootmem(spfn[%lx], bpfn[%lx], mlpfn[%lx])\n", + start_pfn, bootmap_pfn, max_low_pfn); +#endif bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn, pfn_base, end_pfn); /* Now register the available physical memory with the * allocator. */ - for (i = 0; sp_banks[i].num_bytes != 0; i++) + for (i = 0; sp_banks[i].num_bytes != 0; i++) { +#ifdef CONFIG_DEBUG_BOOTMEM + prom_printf("free_bootmem(sp_banks:%d): base[%lx] size[%lx]\n", + i, sp_banks[i].base_addr, sp_banks[i].num_bytes); +#endif free_bootmem(sp_banks[i].base_addr, sp_banks[i].num_bytes); + } #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start) { @@ -1382,6 +1396,9 @@ #endif /* Reserve the kernel text/data/bss. */ size = (start_pfn << PAGE_SHIFT) - phys_base; +#ifdef CONFIG_DEBUG_BOOTMEM + prom_printf("reserve_bootmem(kernel): base[%lx] size[%lx]\n", phys_base, size); +#endif reserve_bootmem(phys_base, size); *pages_avail -= PAGE_ALIGN(size) >> PAGE_SHIFT; @@ -1390,6 +1407,10 @@ * in free_all_bootmem. */ size = bootmap_size; +#ifdef CONFIG_DEBUG_BOOTMEM + prom_printf("reserve_bootmem(bootmap): base[%lx] size[%lx]\n", + (bootmap_pfn << PAGE_SHIFT), size); +#endif reserve_bootmem((bootmap_pfn << PAGE_SHIFT), size); *pages_avail -= PAGE_ALIGN(size) >> PAGE_SHIFT; @@ -1714,6 +1735,9 @@ max_mapnr = last_valid_pfn - pfn_base; high_memory = __va(last_valid_pfn << PAGE_SHIFT); +#ifdef CONFIG_DEBUG_BOOTMEM + prom_printf("mem_init: Calling free_all_bootmem().\n"); +#endif totalram_pages = num_physpages = free_all_bootmem() - 1; /* diff -urN linux-2.6.2-rc1/arch/x86_64/Kconfig linux-2.6.2-rc2/arch/x86_64/Kconfig --- linux-2.6.2-rc1/arch/x86_64/Kconfig 2004-01-25 19:07:50.000000000 -0800 +++ linux-2.6.2-rc2/arch/x86_64/Kconfig 2004-01-25 19:08:26.000000000 -0800 @@ -68,6 +68,9 @@ If unsure, say Y. +config HPET_EMULATE_RTC + def_bool HPET_TIMER && RTC=y + config GENERIC_ISA_DMA bool default y @@ -271,51 +274,7 @@ menu "Power management options" -config PM - bool "Power Management support" - ---help--- - "Power Management" means that parts of your computer are shut - off or put into a power conserving "sleep" mode if they are not - being used. There are two competing standards for doing this: APM - and ACPI. If you want to use either one, say Y here and then also - to the requisite support below. - - Power Management is most important for battery powered laptop - computers. - - Note that, even if you say N here, Linux on the x86 architecture - will issue the hlt instruction if nothing is to be done, thereby - sending the processor to limited sleep and saving power. However - using ACPI will likely save more power. - -config SOFTWARE_SUSPEND - bool "Software Suspend (EXPERIMENTAL)" - depends on EXPERIMENTAL && PM && SWAP - ---help--- - Enable the possibilty of suspending the machine. It doesn't need APM. - You may suspend your machine by 'swsusp' or 'shutdown -z