diff options
Diffstat (limited to 'Documentation')
42 files changed, 2088 insertions, 505 deletions
diff --git a/Documentation/BUG-HUNTING b/Documentation/BUG-HUNTING index ca29242dbc38..65b97e1dbf70 100644 --- a/Documentation/BUG-HUNTING +++ b/Documentation/BUG-HUNTING | |||
| @@ -1,3 +1,56 @@ | |||
| 1 | Table of contents | ||
| 2 | ================= | ||
| 3 | |||
| 4 | Last updated: 20 December 2005 | ||
| 5 | |||
| 6 | Contents | ||
| 7 | ======== | ||
| 8 | |||
| 9 | - Introduction | ||
| 10 | - Devices not appearing | ||
| 11 | - Finding patch that caused a bug | ||
| 12 | -- Finding using git-bisect | ||
| 13 | -- Finding it the old way | ||
| 14 | - Fixing the bug | ||
| 15 | |||
| 16 | Introduction | ||
| 17 | ============ | ||
| 18 | |||
| 19 | Always try the latest kernel from kernel.org and build from source. If you are | ||
| 20 | not confident in doing that please report the bug to your distribution vendor | ||
| 21 | instead of to a kernel developer. | ||
| 22 | |||
| 23 | Finding bugs is not always easy. Have a go though. If you can't find it don't | ||
| 24 | give up. Report as much as you have found to the relevant maintainer. See | ||
| 25 | MAINTAINERS for who that is for the subsystem you have worked on. | ||
| 26 | |||
| 27 | Before you submit a bug report read REPORTING-BUGS. | ||
| 28 | |||
| 29 | Devices not appearing | ||
| 30 | ===================== | ||
| 31 | |||
| 32 | Often this is caused by udev. Check that first before blaming it on the | ||
| 33 | kernel. | ||
| 34 | |||
| 35 | Finding patch that caused a bug | ||
| 36 | =============================== | ||
| 37 | |||
| 38 | |||
| 39 | |||
| 40 | Finding using git-bisect | ||
| 41 | ------------------------ | ||
| 42 | |||
| 43 | Using the provided tools with git makes finding bugs easy provided the bug is | ||
| 44 | reproducible. | ||
| 45 | |||
| 46 | Steps to do it: | ||
| 47 | - start using git for the kernel source | ||
| 48 | - read the man page for git-bisect | ||
| 49 | - have fun | ||
| 50 | |||
| 51 | Finding it the old way | ||
| 52 | ---------------------- | ||
| 53 | |||
| 1 | [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] | 54 | [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] |
| 2 | 55 | ||
| 3 | This is how to track down a bug if you know nothing about kernel hacking. | 56 | This is how to track down a bug if you know nothing about kernel hacking. |
| @@ -90,3 +143,63 @@ it does work and it lets non-hackers help fix bugs. And it is cool | |||
| 90 | because Linux snapshots will let you do this - something that you can't | 143 | because Linux snapshots will let you do this - something that you can't |
| 91 | do with vendor supplied releases. | 144 | do with vendor supplied releases. |
| 92 | 145 | ||
| 146 | Fixing the bug | ||
| 147 | ============== | ||
| 148 | |||
| 149 | Nobody is going to tell you how to fix bugs. Seriously. You need to work it | ||
| 150 | out. But below are some hints on how to use the tools. | ||
| 151 | |||
| 152 | To debug a kernel, use objdump and look for the hex offset from the crash | ||
| 153 | output to find the valid line of code/assembler. Without debug symbols, you | ||
| 154 | will see the assembler code for the routine shown, but if your kernel has | ||
| 155 | debug symbols the C code will also be available. (Debug symbols can be enabled | ||
| 156 | in the kernel hacking menu of the menu configuration.) For example: | ||
| 157 | |||
| 158 | objdump -r -S -l --disassemble net/dccp/ipv4.o | ||
| 159 | |||
| 160 | NB.: you need to be at the top level of the kernel tree for this to pick up | ||
| 161 | your C files. | ||
| 162 | |||
| 163 | If you don't have access to the code you can also debug on some crash dumps | ||
| 164 | e.g. crash dump output as shown by Dave Miller. | ||
| 165 | |||
| 166 | > EIP is at ip_queue_xmit+0x14/0x4c0 | ||
| 167 | > ... | ||
| 168 | > Code: 44 24 04 e8 6f 05 00 00 e9 e8 fe ff ff 8d 76 00 8d bc 27 00 00 | ||
| 169 | > 00 00 55 57 56 53 81 ec bc 00 00 00 8b ac 24 d0 00 00 00 8b 5d 08 | ||
| 170 | > <8b> 83 3c 01 00 00 89 44 24 14 8b 45 28 85 c0 89 44 24 18 0f 85 | ||
| 171 | > | ||
| 172 | > Put the bytes into a "foo.s" file like this: | ||
| 173 | > | ||
| 174 | > .text | ||
| 175 | > .globl foo | ||
| 176 | > foo: | ||
| 177 | > .byte .... /* bytes from Code: part of OOPS dump */ | ||
| 178 | > | ||
| 179 | > Compile it with "gcc -c -o foo.o foo.s" then look at the output of | ||
| 180 | > "objdump --disassemble foo.o". | ||
| 181 | > | ||
| 182 | > Output: | ||
| 183 | > | ||
| 184 | > ip_queue_xmit: | ||
| 185 | > push %ebp | ||
| 186 | > push %edi | ||
| 187 | > push %esi | ||
| 188 | > push %ebx | ||
| 189 | > sub $0xbc, %esp | ||
| 190 | > mov 0xd0(%esp), %ebp ! %ebp = arg0 (skb) | ||
| 191 | > mov 0x8(%ebp), %ebx ! %ebx = skb->sk | ||
| 192 | > mov 0x13c(%ebx), %eax ! %eax = inet_sk(sk)->opt | ||
| 193 | |||
| 194 | Another very useful option of the Kernel Hacking section in menuconfig is | ||
| 195 | Debug memory allocations. This will help you see whether data has been | ||
| 196 | initialised and not set before use etc. To see the values that get assigned | ||
| 197 | with this look at mm/slab.c and search for POISON_INUSE. When using this an | ||
| 198 | Oops will often show the poisoned data instead of zero which is the default. | ||
| 199 | |||
| 200 | Once you have worked out a fix please submit it upstream. After all open | ||
| 201 | source is about sharing what you do and don't you want to be recognised for | ||
| 202 | your genius? | ||
| 203 | |||
| 204 | Please do read Documentation/SubmittingPatches though to help your code get | ||
| 205 | accepted. | ||
diff --git a/Documentation/Changes b/Documentation/Changes index fe5ae0f55020..b02f476c2973 100644 --- a/Documentation/Changes +++ b/Documentation/Changes | |||
| @@ -15,24 +15,6 @@ and therefore owes credit to the same people as that file (Jared Mauch, | |||
| 15 | Axel Boldt, Alessandro Sigala, and countless other users all over the | 15 | Axel Boldt, Alessandro Sigala, and countless other users all over the |
| 16 | 'net). | 16 | 'net). |
| 17 | 17 | ||
| 18 | The latest revision of this document, in various formats, can always | ||
| 19 | be found at <http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/>. | ||
| 20 | |||
| 21 | Feel free to translate this document. If you do so, please send me a | ||
| 22 | URL to your translation for inclusion in future revisions of this | ||
| 23 | document. | ||
| 24 | |||
| 25 | Smotrite file <http://oblom.rnc.ru/linux/kernel/Changes.ru>, yavlyaushisya | ||
| 26 | russkim perevodom dannogo documenta. | ||
| 27 | |||
| 28 | Visite <http://www2.adi.uam.es/~ender/tecnico/> para obtener la traducción | ||
| 29 | al español de este documento en varios formatos. | ||
| 30 | |||
| 31 | Eine deutsche Version dieser Datei finden Sie unter | ||
| 32 | <http://www.stefan-winter.de/Changes-2.4.0.txt>. | ||
| 33 | |||
| 34 | Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). | ||
| 35 | |||
| 36 | Current Minimal Requirements | 18 | Current Minimal Requirements |
| 37 | ============================ | 19 | ============================ |
| 38 | 20 | ||
diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/Samsung-S3C24XX/Overview.txt index 89aa89d526ac..8c6ee684174c 100644 --- a/Documentation/arm/Samsung-S3C24XX/Overview.txt +++ b/Documentation/arm/Samsung-S3C24XX/Overview.txt | |||
| @@ -10,6 +10,8 @@ Introduction | |||
| 10 | by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and | 10 | by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and |
| 11 | the S3C2440 are supported CPUs. | 11 | the S3C2440 are supported CPUs. |
| 12 | 12 | ||
| 13 | Support for the S3C2400 series is in progress. | ||
| 14 | |||
| 13 | 15 | ||
| 14 | Configuration | 16 | Configuration |
| 15 | ------------- | 17 | ------------- |
| @@ -32,6 +34,11 @@ Machines | |||
| 32 | A general purpose development board, see EB2410ITX.txt for further | 34 | A general purpose development board, see EB2410ITX.txt for further |
| 33 | details | 35 | details |
| 34 | 36 | ||
| 37 | Simtec Electronics IM2440D20 (Osiris) | ||
| 38 | |||
| 39 | CPU Module from Simtec Electronics, with a S3C2440A CPU, nand flash | ||
| 40 | and a PCMCIA controller. | ||
| 41 | |||
| 35 | Samsung SMDK2410 | 42 | Samsung SMDK2410 |
| 36 | 43 | ||
| 37 | Samsung's own development board, geared for PDA work. | 44 | Samsung's own development board, geared for PDA work. |
| @@ -85,6 +92,26 @@ Adding New Machines | |||
| 85 | mailing list information. | 92 | mailing list information. |
| 86 | 93 | ||
| 87 | 94 | ||
| 95 | I2C | ||
| 96 | --- | ||
| 97 | |||
| 98 | The hardware I2C core in the CPU is supported in single master | ||
| 99 | mode, and can be configured via platform data. | ||
| 100 | |||
| 101 | |||
| 102 | RTC | ||
| 103 | --- | ||
| 104 | |||
| 105 | Support for the onboard RTC unit, including alarm function. | ||
| 106 | |||
| 107 | |||
| 108 | Watchdog | ||
| 109 | -------- | ||
| 110 | |||
| 111 | The onchip watchdog is available via the standard watchdog | ||
| 112 | interface. | ||
| 113 | |||
| 114 | |||
| 88 | NAND | 115 | NAND |
| 89 | ---- | 116 | ---- |
| 90 | 117 | ||
| @@ -121,6 +148,15 @@ Clock Management | |||
| 121 | various clock units | 148 | various clock units |
| 122 | 149 | ||
| 123 | 150 | ||
| 151 | Suspend to RAM | ||
| 152 | -------------- | ||
| 153 | |||
| 154 | For boards that provide support for suspend to RAM, the | ||
| 155 | system can be placed into low power suspend. | ||
| 156 | |||
| 157 | See Suspend.txt for more information. | ||
| 158 | |||
| 159 | |||
| 124 | Platform Data | 160 | Platform Data |
| 125 | ------------- | 161 | ------------- |
| 126 | 162 | ||
| @@ -158,6 +194,7 @@ Platform Data | |||
| 158 | exported outside arch/arm/mach-s3c2410/, or exported to | 194 | exported outside arch/arm/mach-s3c2410/, or exported to |
| 159 | modules via EXPORT_SYMBOL() and related functions. | 195 | modules via EXPORT_SYMBOL() and related functions. |
| 160 | 196 | ||
| 197 | |||
| 161 | Port Contributors | 198 | Port Contributors |
| 162 | ----------------- | 199 | ----------------- |
| 163 | 200 | ||
| @@ -188,8 +225,11 @@ Document Changes | |||
| 188 | 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction | 225 | 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction |
| 189 | 08 Mar 2005 - BJD - Added section on adding machines | 226 | 08 Mar 2005 - BJD - Added section on adding machines |
| 190 | 09 Sep 2005 - BJD - Added section on platform data | 227 | 09 Sep 2005 - BJD - Added section on platform data |
| 228 | 11 Feb 2006 - BJD - Added I2C, RTC and Watchdog sections | ||
| 229 | 11 Feb 2006 - BJD - Added Osiris machine, and S3C2400 information | ||
| 230 | |||
| 191 | 231 | ||
| 192 | Document Author | 232 | Document Author |
| 193 | --------------- | 233 | --------------- |
| 194 | 234 | ||
| 195 | Ben Dooks, (c) 2004-2005 Simtec Electronics | 235 | Ben Dooks, (c) 2004-2005,2006 Simtec Electronics |
diff --git a/Documentation/connector/connector.txt b/Documentation/connector/connector.txt index 57a314b14cf8..ad6e0ba7b38c 100644 --- a/Documentation/connector/connector.txt +++ b/Documentation/connector/connector.txt | |||
| @@ -69,10 +69,11 @@ Unregisters new callback with connector core. | |||
| 69 | 69 | ||
| 70 | struct cb_id *id - unique connector's user identifier. | 70 | struct cb_id *id - unique connector's user identifier. |
| 71 | 71 | ||
| 72 | void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); | 72 | int cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask); |
| 73 | 73 | ||
| 74 | Sends message to the specified groups. It can be safely called from | 74 | Sends message to the specified groups. It can be safely called from |
| 75 | any context, but may silently fail under strong memory pressure. | 75 | softirq context, but may silently fail under strong memory pressure. |
| 76 | If there are no listeners for given group -ESRCH can be returned. | ||
| 76 | 77 | ||
| 77 | struct cn_msg * - message header(with attached data). | 78 | struct cn_msg * - message header(with attached data). |
| 78 | u32 __group - destination group. | 79 | u32 __group - destination group. |
diff --git a/Documentation/dvb/avermedia.txt b/Documentation/dvb/avermedia.txt index 068070ff13cd..8bab8461a4af 100644 --- a/Documentation/dvb/avermedia.txt +++ b/Documentation/dvb/avermedia.txt | |||
| @@ -1,4 +1,3 @@ | |||
| 1 | |||
| 2 | HOWTO: Get An Avermedia DVB-T working under Linux | 1 | HOWTO: Get An Avermedia DVB-T working under Linux |
| 3 | ______________________________________________ | 2 | ______________________________________________ |
| 4 | 3 | ||
| @@ -137,11 +136,8 @@ Getting the card going | |||
| 137 | To power up the card, load the following modules in the | 136 | To power up the card, load the following modules in the |
| 138 | following order: | 137 | following order: |
| 139 | 138 | ||
| 140 | * insmod dvb-core.o | 139 | * modprobe bttv (normally loaded automatically) |
| 141 | * modprobe bttv.o | 140 | * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules) |
| 142 | * insmod bt878.o | ||
| 143 | * insmod dvb-bt8xx.o | ||
| 144 | * insmod sp887x.o | ||
| 145 | 141 | ||
| 146 | Insertion of these modules into the running kernel will | 142 | Insertion of these modules into the running kernel will |
| 147 | activate the appropriate DVB device nodes. It is then possible | 143 | activate the appropriate DVB device nodes. It is then possible |
| @@ -302,4 +298,4 @@ Further Update | |||
| 302 | Many thanks to Nigel Pearson for the updates to this document | 298 | Many thanks to Nigel Pearson for the updates to this document |
| 303 | since the recent revision of the driver. | 299 | since the recent revision of the driver. |
| 304 | 300 | ||
| 305 | January 29th 2004 | 301 | February 14th 2006 |
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt index 52ed462061df..4e7614e606c5 100644 --- a/Documentation/dvb/bt8xx.txt +++ b/Documentation/dvb/bt8xx.txt | |||
| @@ -1,118 +1,78 @@ | |||
| 1 | How to get the Nebula, PCTV, FusionHDTV Lite and Twinhan DST cards working | 1 | How to get the bt8xx cards working |
| 2 | ========================================================================== | 2 | ================================== |
| 3 | 3 | ||
| 4 | This class of cards has a bt878a as the PCI interface, and | 4 | 1) General information |
| 5 | require the bttv driver. | 5 | ====================== |
| 6 | 6 | ||
| 7 | Please pay close attention to the warning about the bttv module | 7 | This class of cards has a bt878a as the PCI interface, and require the bttv driver |
| 8 | options below for the DST card. | 8 | for accessing the i2c bus and the gpio pins of the bt8xx chipset. |
| 9 | Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge: | ||
| 9 | 10 | ||
| 10 | 1) General informations | 11 | Compiling kernel please enable: |
| 11 | ======================= | 12 | a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux" |
| 12 | 13 | b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | |
| 13 | These drivers require the bttv driver to provide the means to access | 14 | => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards" |
| 14 | the i2c bus and the gpio pins of the bt8xx chipset. | ||
| 15 | |||
| 16 | Because of this, you need to enable | ||
| 17 | "Device drivers" => "Multimedia devices" | ||
| 18 | => "Video For Linux" => "BT848 Video For Linux" | ||
| 19 | |||
| 20 | Furthermore you need to enable | ||
| 21 | "Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | ||
| 22 | => "DVB for Linux" "DVB Core Support" "BT8xx based PCI cards" | ||
| 23 | 15 | ||
| 24 | 2) Loading Modules | 16 | 2) Loading Modules |
| 25 | ================== | 17 | ================== |
| 26 | 18 | ||
| 27 | In general you need to load the bttv driver, which will handle the gpio and | 19 | In default cases bttv is loaded automatically. |
| 28 | i2c communication for us, plus the common dvb-bt8xx device driver. | 20 | To load the backend either place dvb-bt8xx in etc/modules, or apply manually: |
| 29 | The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110), TwinHan (dst), | ||
| 30 | FusionHDTV DVB-T Lite (mt352) and FusionHDTV5 Lite (lgdt330x) are loaded | ||
| 31 | automatically by the dvb-bt8xx device driver. | ||
| 32 | |||
| 33 | 3a) Nebula / Pinnacle PCTV / FusionHDTV Lite | ||
| 34 | --------------------------------------------- | ||
| 35 | |||
| 36 | $ modprobe bttv (normally bttv is being loaded automatically by kmod) | ||
| 37 | $ modprobe dvb-bt8xx | ||
| 38 | |||
| 39 | (or just place dvb-bt8xx in /etc/modules for automatic loading) | ||
| 40 | |||
| 41 | |||
| 42 | 3b) TwinHan and Clones | ||
| 43 | -------------------------- | ||
| 44 | 21 | ||
| 45 | $ modprobe bttv card=0x71 | 22 | $ modprobe dvb-bt8xx |
| 46 | $ modprobe dvb-bt8xx | ||
| 47 | $ modprobe dst | ||
| 48 | 23 | ||
| 49 | The value 0x71 will override the PCI type detection for dvb-bt8xx, | 24 | All frontends will be loaded automatically. |
| 50 | which is necessary for TwinHan cards. Omission of this parameter might result | 25 | People running udev please see Documentation/dvb/udev.txt. |
| 51 | in a system lockup. | ||
| 52 | 26 | ||
| 53 | If you're having an older card (blue color PCB) and card=0x71 locks up | 27 | In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary: |
| 54 | your machine, try using 0x68, too. If that does not work, ask on the | ||
| 55 | mailing list. | ||
| 56 | 28 | ||
| 57 | The DST module takes a couple of useful parameters. | 29 | 2a) Running TwinHan and Clones |
| 30 | ------------------------------ | ||
| 58 | 31 | ||
| 59 | verbose takes values 0 to 4. These values control the verbosity level, | 32 | $ modprobe bttv card=113 |
| 60 | and can be used to debug also. | 33 | $ modprobe dvb-bt8xx |
| 34 | $ modprobe dst | ||
| 61 | 35 | ||
| 62 | verbose=0 means complete disabling of messages | 36 | Useful parameters for verbosity level and debugging the dst module: |
| 63 | 1 only error messages are displayed | ||
| 64 | 2 notifications are also displayed | ||
| 65 | 3 informational messages are also displayed | ||
| 66 | 4 debug setting | ||
| 67 | 37 | ||
| 68 | dst_addons takes values 0 and 0x20. A value of 0 means it is a FTA card. | 38 | verbose=0: messages are disabled |
| 69 | 0x20 means it has a Conditional Access slot. | 39 | 1: only error messages are displayed |
| 40 | 2: notifications are displayed | ||
| 41 | 3: other useful messages are displayed | ||
| 42 | 4: debug setting | ||
| 43 | dst_addons=0: card is a free to air (FTA) card only | ||
| 44 | 0x20: card has a conditional access slot for scrambled channels | ||
| 70 | 45 | ||
| 71 | The autodetected values are determined by the cards 'response string' | 46 | The autodetected values are determined by the cards' "response string". |
| 72 | which you can see in your logs e.g. | 47 | In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. |
| 48 | For bug reports please send in a complete log with verbose=4 activated. | ||
| 49 | Please also see Documentation/dvb/ci.txt. | ||
| 73 | 50 | ||
| 74 | dst_get_device_id: Recognise [DSTMCI] | 51 | 2b) Running multiple cards |
| 75 | |||
| 76 | If you need to sent in bug reports on the dst, please do send in a complete | ||
| 77 | log with the verbose=4 module parameter. For general usage, the default setting | ||
| 78 | of verbose=1 is ideal. | ||
| 79 | |||
| 80 | |||
| 81 | 4) Multiple cards | ||
| 82 | -------------------------- | 52 | -------------------------- |
| 83 | 53 | ||
| 84 | If you happen to be running multiple cards, it would be advisable to load | 54 | Examples of card ID's: |
| 85 | the bttv module with the card id. This would help to solve any module loading | ||
| 86 | problems that you might face. | ||
| 87 | |||
| 88 | For example, if you have a Twinhan and Clones card along with a FusionHDTV5 Lite | ||
| 89 | 55 | ||
| 90 | $ modprobe bttv card=0x71 card=0x87 | 56 | Pinnacle PCTV Sat: 94 |
| 91 | 57 | Nebula Electronics Digi TV: 104 | |
| 92 | Here the order of the card id is important and should be the same as that of the | 58 | pcHDTV HD-2000 TV: 112 |
| 93 | physical order of the cards. Here card=0x71 represents the Twinhan and clones | 59 | Twinhan DST and clones: 113 |
| 94 | and card=0x87 represents Fusion HDTV5 Lite. These arguments can also be | 60 | Avermedia AverTV DVB-T 771: 123 |
| 95 | specified in decimal, rather than hex: | 61 | Avermedia AverTV DVB-T 761: 124 |
| 62 | DViCO FusionHDTV DVB-T Lite: 128 | ||
| 63 | DViCO FusionHDTV 5 Lite: 135 | ||
| 96 | 64 | ||
| 65 | Notice: The order of the card ID should be uprising: | ||
| 66 | Example: | ||
| 97 | $ modprobe bttv card=113 card=135 | 67 | $ modprobe bttv card=113 card=135 |
| 68 | $ modprobe dvb-bt8xx | ||
| 98 | 69 | ||
| 99 | Some examples of card-id's | 70 | For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv. |
| 100 | 71 | In case of further problems send questions to the mailing list: www.linuxdvb.org. | |
| 101 | Pinnacle Sat 0x5e (94) | ||
| 102 | Nebula Digi TV 0x68 (104) | ||
| 103 | PC HDTV 0x70 (112) | ||
| 104 | Twinhan 0x71 (113) | ||
| 105 | FusionHDTV DVB-T Lite 0x80 (128) | ||
| 106 | FusionHDTV5 Lite 0x87 (135) | ||
| 107 | |||
| 108 | For a full list of card-id's, see the V4L Documentation within the kernel | ||
| 109 | source: linux/Documentation/video4linux/CARDLIST.bttv | ||
| 110 | |||
| 111 | If you have problems with this please do ask on the mailing list. | ||
| 112 | 72 | ||
| 113 | -- | ||
| 114 | Authors: Richard Walker, | 73 | Authors: Richard Walker, |
| 115 | Jamie Honan, | 74 | Jamie Honan, |
| 116 | Michael Hunold, | 75 | Michael Hunold, |
| 117 | Manu Abraham, | 76 | Manu Abraham, |
| 77 | Uwe Bugla, | ||
| 118 | Michael Krufky | 78 | Michael Krufky |
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware index 75c28a174092..15fc8fbef67e 100644 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
| @@ -21,8 +21,9 @@ | |||
| 21 | use File::Temp qw/ tempdir /; | 21 | use File::Temp qw/ tempdir /; |
| 22 | use IO::Handle; | 22 | use IO::Handle; |
| 23 | 23 | ||
| 24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", | 24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", |
| 25 | "dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", | 25 | "tda10046lifeview", "av7110", "dec2000t", "dec2540t", |
| 26 | "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", | ||
| 26 | "or51211", "or51132_qam", "or51132_vsb", "bluebird"); | 27 | "or51211", "or51132_qam", "or51132_vsb", "bluebird"); |
| 27 | 28 | ||
| 28 | # Check args | 29 | # Check args |
| @@ -126,6 +127,24 @@ sub tda10046 { | |||
| 126 | $outfile; | 127 | $outfile; |
| 127 | } | 128 | } |
| 128 | 129 | ||
| 130 | sub tda10046lifeview { | ||
| 131 | my $sourcefile = "Drv_2.11.02.zip"; | ||
| 132 | my $url = "http://www.lifeview.com.tw/drivers/pci_card/FlyDVB-T/$sourcefile"; | ||
| 133 | my $hash = "1ea24dee4eea8fe971686981f34fd2e0"; | ||
| 134 | my $outfile = "dvb-fe-tda10046.fw"; | ||
| 135 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
| 136 | |||
| 137 | checkstandard(); | ||
| 138 | |||
| 139 | wgetfile($sourcefile, $url); | ||
| 140 | unzip($sourcefile, $tmpdir); | ||
| 141 | extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp"); | ||
| 142 | verify("$tmpdir/fwtmp", $hash); | ||
| 143 | copy("$tmpdir/fwtmp", $outfile); | ||
| 144 | |||
| 145 | $outfile; | ||
| 146 | } | ||
| 147 | |||
| 129 | sub av7110 { | 148 | sub av7110 { |
| 130 | my $sourcefile = "dvb-ttpci-01.fw-261d"; | 149 | my $sourcefile = "dvb-ttpci-01.fw-261d"; |
| 131 | my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; | 150 | my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; |
| @@ -227,7 +246,7 @@ sub vp7041 { | |||
| 227 | } | 246 | } |
| 228 | 247 | ||
| 229 | sub dibusb { | 248 | sub dibusb { |
| 230 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-dibusb-5.0.0.11.fw"; | 249 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw"; |
| 231 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; | 250 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; |
| 232 | my $hash = "fa490295a527360ca16dcdf3224ca243"; | 251 | my $hash = "fa490295a527360ca16dcdf3224ca243"; |
| 233 | 252 | ||
diff --git a/Documentation/dvb/readme.txt b/Documentation/dvb/readme.txt index f5c50b22de3b..0b0380c91990 100644 --- a/Documentation/dvb/readme.txt +++ b/Documentation/dvb/readme.txt | |||
| @@ -20,11 +20,23 @@ http://linuxtv.org/downloads/ | |||
| 20 | 20 | ||
| 21 | What's inside this directory: | 21 | What's inside this directory: |
| 22 | 22 | ||
| 23 | "avermedia.txt" | ||
| 24 | contains detailed information about the | ||
| 25 | Avermedia DVB-T cards. See also "bt8xx.txt". | ||
| 26 | |||
| 27 | "bt8xx.txt" | ||
| 28 | contains detailed information about the | ||
| 29 | various bt8xx based "budget" DVB cards. | ||
| 30 | |||
| 23 | "cards.txt" | 31 | "cards.txt" |
| 24 | contains a list of supported hardware. | 32 | contains a list of supported hardware. |
| 25 | 33 | ||
| 34 | "ci.txt" | ||
| 35 | contains detailed information about the | ||
| 36 | CI module as part from TwinHan cards and Clones. | ||
| 37 | |||
| 26 | "contributors.txt" | 38 | "contributors.txt" |
| 27 | is the who-is-who of DVB development | 39 | is the who-is-who of DVB development. |
| 28 | 40 | ||
| 29 | "faq.txt" | 41 | "faq.txt" |
| 30 | contains frequently asked questions and their answers. | 42 | contains frequently asked questions and their answers. |
| @@ -34,19 +46,17 @@ script to download and extract firmware for those devices | |||
| 34 | that require it. | 46 | that require it. |
| 35 | 47 | ||
| 36 | "ttusb-dec.txt" | 48 | "ttusb-dec.txt" |
| 37 | contains detailed informations about the | 49 | contains detailed information about the |
| 38 | TT DEC2000/DEC3000 USB DVB hardware. | 50 | TT DEC2000/DEC3000 USB DVB hardware. |
| 39 | 51 | ||
| 40 | "bt8xx.txt" | ||
| 41 | contains detailed installation instructions for the | ||
| 42 | various bt8xx based "budget" DVB cards | ||
| 43 | (Nebula, Pinnacle PCTV, Twinhan DST) | ||
| 44 | |||
| 45 | "README.dibusb" | ||
| 46 | contains detailed information about adapters | ||
| 47 | based on DiBcom reference design. | ||
| 48 | |||
| 49 | "udev.txt" | 52 | "udev.txt" |
| 50 | how to get DVB and udev up and running. | 53 | how to get DVB and udev up and running. |
| 51 | 54 | ||
| 55 | "README.dvb-usb" | ||
| 56 | contains detailed information about the DVB USB cards. | ||
| 57 | |||
| 58 | "README.flexcop" | ||
| 59 | contains detailed information about the | ||
| 60 | Technisat- and Flexcop B2C2 drivers. | ||
| 61 | |||
| 52 | Good luck and have fun! | 62 | Good luck and have fun! |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 28a31c5e2289..c7a4d0faab22 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -158,13 +158,6 @@ Who: Adrian Bunk <bunk@stusta.de> | |||
| 158 | 158 | ||
| 159 | --------------------------- | 159 | --------------------------- |
| 160 | 160 | ||
| 161 | What: Legacy /proc/pci interface (PCI_LEGACY_PROC) | ||
| 162 | When: March 2006 | ||
| 163 | Why: deprecated since 2.5.53 in favor of lspci(8) | ||
| 164 | Who: Adrian Bunk <bunk@stusta.de> | ||
| 165 | |||
| 166 | --------------------------- | ||
| 167 | |||
| 168 | What: pci_module_init(driver) | 161 | What: pci_module_init(driver) |
| 169 | When: January 2007 | 162 | When: January 2007 |
| 170 | Why: Is replaced by pci_register_driver(pci_driver). | 163 | Why: Is replaced by pci_register_driver(pci_driver). |
| @@ -196,3 +189,21 @@ Why: Board specific code doesn't build anymore since ~2.6.0 and no | |||
| 196 | users have complained indicating there is no more need for these | 189 | users have complained indicating there is no more need for these |
| 197 | boards. This should really be considered a last call. | 190 | boards. This should really be considered a last call. |
| 198 | Who: Ralf Baechle <ralf@linux-mips.org> | 191 | Who: Ralf Baechle <ralf@linux-mips.org> |
| 192 | |||
| 193 | --------------------------- | ||
| 194 | |||
| 195 | What: USB driver API moves to EXPORT_SYMBOL_GPL | ||
| 196 | When: Febuary 2008 | ||
| 197 | Files: include/linux/usb.h, drivers/usb/core/driver.c | ||
| 198 | Why: The USB subsystem has changed a lot over time, and it has been | ||
| 199 | possible to create userspace USB drivers using usbfs/libusb/gadgetfs | ||
| 200 | that operate as fast as the USB bus allows. Because of this, the USB | ||
| 201 | subsystem will not be allowing closed source kernel drivers to | ||
| 202 | register with it, after this grace period is over. If anyone needs | ||
| 203 | any help in converting their closed source drivers over to use the | ||
| 204 | userspace filesystems, please contact the | ||
| 205 | linux-usb-devel@lists.sourceforge.net mailing list, and the developers | ||
| 206 | there will be glad to help you out. | ||
| 207 | Who: Greg Kroah-Hartman <gregkh@suse.de> | ||
| 208 | |||
| 209 | --------------------------- | ||
diff --git a/Documentation/filesystems/isofs.txt b/Documentation/filesystems/isofs.txt index 424585ff6ea1..758e50401c16 100644 --- a/Documentation/filesystems/isofs.txt +++ b/Documentation/filesystems/isofs.txt | |||
| @@ -9,9 +9,9 @@ when using discs encoded using Microsoft's Joliet extensions. | |||
| 9 | iocharset=name Character set to use for converting from Unicode to | 9 | iocharset=name Character set to use for converting from Unicode to |
| 10 | ASCII. Joliet filenames are stored in Unicode format, but | 10 | ASCII. Joliet filenames are stored in Unicode format, but |
| 11 | Unix for the most part doesn't know how to deal with Unicode. | 11 | Unix for the most part doesn't know how to deal with Unicode. |
| 12 | There is also an option of doing UTF8 translations with the | 12 | There is also an option of doing UTF-8 translations with the |
| 13 | utf8 option. | 13 | utf8 option. |
| 14 | utf8 Encode Unicode names in UTF8 format. Default is no. | 14 | utf8 Encode Unicode names in UTF-8 format. Default is no. |
| 15 | 15 | ||
| 16 | Mount options unique to the isofs filesystem. | 16 | Mount options unique to the isofs filesystem. |
| 17 | block=512 Set the block size for the disk to 512 bytes | 17 | block=512 Set the block size for the disk to 512 bytes |
diff --git a/Documentation/filesystems/jfs.txt b/Documentation/filesystems/jfs.txt index 3e992daf99ad..bae128663748 100644 --- a/Documentation/filesystems/jfs.txt +++ b/Documentation/filesystems/jfs.txt | |||
| @@ -6,7 +6,7 @@ The following mount options are supported: | |||
| 6 | 6 | ||
| 7 | iocharset=name Character set to use for converting from Unicode to | 7 | iocharset=name Character set to use for converting from Unicode to |
| 8 | ASCII. The default is to do no conversion. Use | 8 | ASCII. The default is to do no conversion. Use |
| 9 | iocharset=utf8 for UTF8 translations. This requires | 9 | iocharset=utf8 for UTF-8 translations. This requires |
| 10 | CONFIG_NLS_UTF8 to be set in the kernel .config file. | 10 | CONFIG_NLS_UTF8 to be set in the kernel .config file. |
| 11 | iocharset=none specifies the default behavior explicitly. | 11 | iocharset=none specifies the default behavior explicitly. |
| 12 | 12 | ||
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index 251168587899..638cbd3d2b00 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt | |||
| @@ -457,6 +457,11 @@ ChangeLog | |||
| 457 | 457 | ||
| 458 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | 458 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. |
| 459 | 459 | ||
| 460 | 2.1.27: | ||
| 461 | - Implement page migration support so the kernel can move memory used | ||
| 462 | by NTFS files and directories around for management purposes. | ||
| 463 | - Add support for writing to sparse files created with Windows XP SP2. | ||
| 464 | - Many minor improvements and bug fixes. | ||
| 460 | 2.1.26: | 465 | 2.1.26: |
| 461 | - Implement support for sector sizes above 512 bytes (up to the maximum | 466 | - Implement support for sector sizes above 512 bytes (up to the maximum |
| 462 | supported by NTFS which is 4096 bytes). | 467 | supported by NTFS which is 4096 bytes). |
diff --git a/Documentation/filesystems/vfat.txt b/Documentation/filesystems/vfat.txt index 5ead20c6c744..2001abbc60e6 100644 --- a/Documentation/filesystems/vfat.txt +++ b/Documentation/filesystems/vfat.txt | |||
| @@ -28,16 +28,16 @@ iocharset=name -- Character set to use for converting between the | |||
| 28 | know how to deal with Unicode. | 28 | know how to deal with Unicode. |
| 29 | By default, FAT_DEFAULT_IOCHARSET setting is used. | 29 | By default, FAT_DEFAULT_IOCHARSET setting is used. |
| 30 | 30 | ||
| 31 | There is also an option of doing UTF8 translations | 31 | There is also an option of doing UTF-8 translations |
| 32 | with the utf8 option. | 32 | with the utf8 option. |
| 33 | 33 | ||
| 34 | NOTE: "iocharset=utf8" is not recommended. If unsure, | 34 | NOTE: "iocharset=utf8" is not recommended. If unsure, |
| 35 | you should consider the following option instead. | 35 | you should consider the following option instead. |
| 36 | 36 | ||
| 37 | utf8=<bool> -- UTF8 is the filesystem safe version of Unicode that | 37 | utf8=<bool> -- UTF-8 is the filesystem safe version of Unicode that |
| 38 | is used by the console. It can be be enabled for the | 38 | is used by the console. It can be be enabled for the |
| 39 | filesystem with this option. If 'uni_xlate' gets set, | 39 | filesystem with this option. If 'uni_xlate' gets set, |
| 40 | UTF8 gets disabled. | 40 | UTF-8 gets disabled. |
| 41 | 41 | ||
| 42 | uni_xlate=<bool> -- Translate unhandled Unicode characters to special | 42 | uni_xlate=<bool> -- Translate unhandled Unicode characters to special |
| 43 | escaped sequences. This would let you backup and | 43 | escaped sequences. This would let you backup and |
diff --git a/Documentation/hwmon/w83627hf b/Documentation/hwmon/w83627hf index bbeaba680443..792231921241 100644 --- a/Documentation/hwmon/w83627hf +++ b/Documentation/hwmon/w83627hf | |||
| @@ -18,6 +18,10 @@ Supported chips: | |||
| 18 | Prefix: 'w83637hf' | 18 | Prefix: 'w83637hf' |
| 19 | Addresses scanned: ISA address retrieved from Super I/O registers | 19 | Addresses scanned: ISA address retrieved from Super I/O registers |
| 20 | Datasheet: http://www.winbond.com/PDF/sheet/w83637hf.pdf | 20 | Datasheet: http://www.winbond.com/PDF/sheet/w83637hf.pdf |
| 21 | * Winbond W83687THF | ||
| 22 | Prefix: 'w83687thf' | ||
| 23 | Addresses scanned: ISA address retrieved from Super I/O registers | ||
| 24 | Datasheet: Provided by Winbond on request | ||
| 21 | 25 | ||
| 22 | Authors: | 26 | Authors: |
| 23 | Frodo Looijaard <frodol@dds.nl>, | 27 | Frodo Looijaard <frodol@dds.nl>, |
diff --git a/Documentation/hwmon/w83781d b/Documentation/hwmon/w83781d index e5459333ba68..b1e9f80098ee 100644 --- a/Documentation/hwmon/w83781d +++ b/Documentation/hwmon/w83781d | |||
| @@ -36,6 +36,11 @@ Module parameters | |||
| 36 | Use 'init=0' to bypass initializing the chip. | 36 | Use 'init=0' to bypass initializing the chip. |
| 37 | Try this if your computer crashes when you load the module. | 37 | Try this if your computer crashes when you load the module. |
| 38 | 38 | ||
| 39 | * reset int | ||
| 40 | (default 0) | ||
| 41 | The driver used to reset the chip on load, but does no more. Use | ||
| 42 | 'reset=1' to restore the old behavior. Report if you need to do this. | ||
| 43 | |||
| 39 | force_subclients=bus,caddr,saddr,saddr | 44 | force_subclients=bus,caddr,saddr,saddr |
| 40 | This is used to force the i2c addresses for subclients of | 45 | This is used to force the i2c addresses for subclients of |
| 41 | a certain chip. Typical usage is `force_subclients=0,0x2d,0x4a,0x4b' | 46 | a certain chip. Typical usage is `force_subclients=0,0x2d,0x4a,0x4b' |
| @@ -123,6 +128,25 @@ When an alarm goes off, you can be warned by a beeping signal through | |||
| 123 | your computer speaker. It is possible to enable all beeping globally, | 128 | your computer speaker. It is possible to enable all beeping globally, |
| 124 | or only the beeping for some alarms. | 129 | or only the beeping for some alarms. |
| 125 | 130 | ||
| 131 | Individual alarm and beep bits: | ||
| 132 | |||
| 133 | 0x000001: in0 | ||
| 134 | 0x000002: in1 | ||
| 135 | 0x000004: in2 | ||
| 136 | 0x000008: in3 | ||
| 137 | 0x000010: temp1 | ||
| 138 | 0x000020: temp2 (+temp3 on W83781D) | ||
| 139 | 0x000040: fan1 | ||
| 140 | 0x000080: fan2 | ||
| 141 | 0x000100: in4 | ||
| 142 | 0x000200: in5 | ||
| 143 | 0x000400: in6 | ||
| 144 | 0x000800: fan3 | ||
| 145 | 0x001000: chassis | ||
| 146 | 0x002000: temp3 (W83782D and W83627HF only) | ||
| 147 | 0x010000: in7 (W83782D and W83627HF only) | ||
| 148 | 0x020000: in8 (W83782D and W83627HF only) | ||
| 149 | |||
| 126 | If an alarm triggers, it will remain triggered until the hardware register | 150 | If an alarm triggers, it will remain triggered until the hardware register |
| 127 | is read at least once. This means that the cause for the alarm may | 151 | is read at least once. This means that the cause for the alarm may |
| 128 | already have disappeared! Note that in the current implementation, all | 152 | already have disappeared! Note that in the current implementation, all |
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4 index 856b4b8b962c..a1c8f581afed 100644 --- a/Documentation/i2c/busses/i2c-piix4 +++ b/Documentation/i2c/busses/i2c-piix4 | |||
| @@ -4,7 +4,7 @@ Supported adapters: | |||
| 4 | * Intel 82371AB PIIX4 and PIIX4E | 4 | * Intel 82371AB PIIX4 and PIIX4E |
| 5 | * Intel 82443MX (440MX) | 5 | * Intel 82443MX (440MX) |
| 6 | Datasheet: Publicly available at the Intel website | 6 | Datasheet: Publicly available at the Intel website |
| 7 | * ServerWorks OSB4, CSB5 and CSB6 southbridges | 7 | * ServerWorks OSB4, CSB5, CSB6 and HT-1000 southbridges |
| 8 | Datasheet: Only available via NDA from ServerWorks | 8 | Datasheet: Only available via NDA from ServerWorks |
| 9 | * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge | 9 | * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge |
| 10 | Datasheet: Publicly available at the SMSC website http://www.smsc.com | 10 | Datasheet: Publicly available at the SMSC website http://www.smsc.com |
diff --git a/Documentation/i2c/busses/scx200_acb b/Documentation/i2c/busses/scx200_acb index 08c8cd1df60c..f50e69981ec6 100644 --- a/Documentation/i2c/busses/scx200_acb +++ b/Documentation/i2c/busses/scx200_acb | |||
| @@ -6,9 +6,10 @@ Module Parameters | |||
| 6 | ----------------- | 6 | ----------------- |
| 7 | 7 | ||
| 8 | * base: int | 8 | * base: int |
| 9 | Base addresses for the ACCESS.bus controllers | 9 | Base addresses for the ACCESS.bus controllers on SCx200 and SC1100 devices |
| 10 | 10 | ||
| 11 | Description | 11 | Description |
| 12 | ----------- | 12 | ----------- |
| 13 | 13 | ||
| 14 | Enable the use of the ACCESS.bus controllers of a SCx200 processor. | 14 | Enable the use of the ACCESS.bus controller on the Geode SCx200 and |
| 15 | SC1100 processors and the CS5535 and CS5536 Geode companion devices. | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index fc99075e0af4..44a25f3f51d1 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -49,6 +49,7 @@ restrictions referred to are that the relevant option is valid if: | |||
| 49 | MCA MCA bus support is enabled. | 49 | MCA MCA bus support is enabled. |
| 50 | MDA MDA console support is enabled. | 50 | MDA MDA console support is enabled. |
| 51 | MOUSE Appropriate mouse support is enabled. | 51 | MOUSE Appropriate mouse support is enabled. |
| 52 | MSI Message Signaled Interrupts (PCI). | ||
| 52 | MTD MTD support is enabled. | 53 | MTD MTD support is enabled. |
| 53 | NET Appropriate network support is enabled. | 54 | NET Appropriate network support is enabled. |
| 54 | NUMA NUMA support is enabled. | 55 | NUMA NUMA support is enabled. |
| @@ -1008,7 +1009,9 @@ running once the system is up. | |||
| 1008 | noexec=on: enable non-executable mappings (default) | 1009 | noexec=on: enable non-executable mappings (default) |
| 1009 | noexec=off: disable nn-executable mappings | 1010 | noexec=off: disable nn-executable mappings |
| 1010 | 1011 | ||
| 1011 | nofxsr [BUGS=IA-32] | 1012 | nofxsr [BUGS=IA-32] Disables x86 floating point extended |
| 1013 | register save and restore. The kernel will only save | ||
| 1014 | legacy floating-point registers on task switch. | ||
| 1012 | 1015 | ||
| 1013 | nohlt [BUGS=ARM] | 1016 | nohlt [BUGS=ARM] |
| 1014 | 1017 | ||
| @@ -1053,6 +1056,8 @@ running once the system is up. | |||
| 1053 | 1056 | ||
| 1054 | nosbagart [IA-64] | 1057 | nosbagart [IA-64] |
| 1055 | 1058 | ||
| 1059 | nosep [BUGS=IA-32] Disables x86 SYSENTER/SYSEXIT support. | ||
| 1060 | |||
| 1056 | nosmp [SMP] Tells an SMP kernel to act as a UP kernel. | 1061 | nosmp [SMP] Tells an SMP kernel to act as a UP kernel. |
| 1057 | 1062 | ||
| 1058 | nosync [HW,M68K] Disables sync negotiation for all devices. | 1063 | nosync [HW,M68K] Disables sync negotiation for all devices. |
| @@ -1122,6 +1127,11 @@ running once the system is up. | |||
| 1122 | pas16= [HW,SCSI] | 1127 | pas16= [HW,SCSI] |
| 1123 | See header of drivers/scsi/pas16.c. | 1128 | See header of drivers/scsi/pas16.c. |
| 1124 | 1129 | ||
| 1130 | pause_on_oops= | ||
| 1131 | Halt all CPUs after the first oops has been printed for | ||
| 1132 | the specified number of seconds. This is to be used if | ||
| 1133 | your oopses keep scrolling off the screen. | ||
| 1134 | |||
| 1125 | pcbit= [HW,ISDN] | 1135 | pcbit= [HW,ISDN] |
| 1126 | 1136 | ||
| 1127 | pcd. [PARIDE] | 1137 | pcd. [PARIDE] |
| @@ -1143,6 +1153,9 @@ running once the system is up. | |||
| 1143 | Mechanism 2. | 1153 | Mechanism 2. |
| 1144 | nommconf [IA-32,X86_64] Disable use of MMCONFIG for PCI | 1154 | nommconf [IA-32,X86_64] Disable use of MMCONFIG for PCI |
| 1145 | Configuration | 1155 | Configuration |
| 1156 | nomsi [MSI] If the PCI_MSI kernel config parameter is | ||
| 1157 | enabled, this kernel boot option can be used to | ||
| 1158 | disable the use of MSI interrupts system-wide. | ||
| 1146 | nosort [IA-32] Don't sort PCI devices according to | 1159 | nosort [IA-32] Don't sort PCI devices according to |
| 1147 | order given by the PCI BIOS. This sorting is | 1160 | order given by the PCI BIOS. This sorting is |
| 1148 | done to get a device order compatible with | 1161 | done to get a device order compatible with |
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/e100.txt index 4ef9f7cd5dc3..944aa55e79f8 100644 --- a/Documentation/networking/e100.txt +++ b/Documentation/networking/e100.txt | |||
| @@ -1,16 +1,17 @@ | |||
| 1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters |
| 2 | ============================================================== | 2 | ============================================================== |
| 3 | 3 | ||
| 4 | November 17, 2004 | 4 | November 15, 2005 |
| 5 | |||
| 6 | 5 | ||
| 7 | Contents | 6 | Contents |
| 8 | ======== | 7 | ======== |
| 9 | 8 | ||
| 10 | - In This Release | 9 | - In This Release |
| 11 | - Identifying Your Adapter | 10 | - Identifying Your Adapter |
| 11 | - Building and Installation | ||
| 12 | - Driver Configuration Parameters | 12 | - Driver Configuration Parameters |
| 13 | - Additional Configurations | 13 | - Additional Configurations |
| 14 | - Known Issues | ||
| 14 | - Support | 15 | - Support |
| 15 | 16 | ||
| 16 | 17 | ||
| @@ -18,18 +19,30 @@ In This Release | |||
| 18 | =============== | 19 | =============== |
| 19 | 20 | ||
| 20 | This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of | 21 | This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of |
| 21 | Adapters, version 3.3.x. This driver supports 2.4.x and 2.6.x kernels. | 22 | Adapters. This driver includes support for Itanium(R)2-based systems. |
| 23 | |||
| 24 | For questions related to hardware requirements, refer to the documentation | ||
| 25 | supplied with your Intel PRO/100 adapter. | ||
| 26 | |||
| 27 | The following features are now available in supported kernels: | ||
| 28 | - Native VLANs | ||
| 29 | - Channel Bonding (teaming) | ||
| 30 | - SNMP | ||
| 31 | |||
| 32 | Channel Bonding documentation can be found in the Linux kernel source: | ||
| 33 | /Documentation/networking/bonding.txt | ||
| 34 | |||
| 22 | 35 | ||
| 23 | Identifying Your Adapter | 36 | Identifying Your Adapter |
| 24 | ======================== | 37 | ======================== |
| 25 | 38 | ||
| 26 | For more information on how to identify your adapter, go to the Adapter & | 39 | For more information on how to identify your adapter, go to the Adapter & |
| 27 | Driver ID Guide at: | 40 | Driver ID Guide at: |
| 28 | 41 | ||
| 29 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 42 | http://support.intel.com/support/network/adapter/pro100/21397.htm |
| 30 | 43 | ||
| 31 | For the latest Intel network drivers for Linux, refer to the following | 44 | For the latest Intel network drivers for Linux, refer to the following |
| 32 | website. In the search field, enter your adapter name or type, or use the | 45 | website. In the search field, enter your adapter name or type, or use the |
| 33 | networking link on the left to search for your adapter: | 46 | networking link on the left to search for your adapter: |
| 34 | 47 | ||
| 35 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 48 | http://downloadfinder.intel.com/scripts-df/support_intel.asp |
| @@ -40,73 +53,75 @@ Driver Configuration Parameters | |||
| 40 | The default value for each parameter is generally the recommended setting, | 53 | The default value for each parameter is generally the recommended setting, |
| 41 | unless otherwise noted. | 54 | unless otherwise noted. |
| 42 | 55 | ||
| 43 | Rx Descriptors: Number of receive descriptors. A receive descriptor is a data | 56 | Rx Descriptors: Number of receive descriptors. A receive descriptor is a data |
| 44 | structure that describes a receive buffer and its attributes to the network | 57 | structure that describes a receive buffer and its attributes to the network |
| 45 | controller. The data in the descriptor is used by the controller to write | 58 | controller. The data in the descriptor is used by the controller to write |
| 46 | data from the controller to host memory. In the 3.0.x driver the valid | 59 | data from the controller to host memory. In the 3.x.x driver the valid range |
| 47 | range for this parameter is 64-256. The default value is 64. This parameter | 60 | for this parameter is 64-256. The default value is 64. This parameter can be |
| 48 | can be changed using the command | 61 | changed using the command: |
| 49 | 62 | ||
| 50 | ethtool -G eth? rx n, where n is the number of desired rx descriptors. | 63 | ethtool -G eth? rx n, where n is the number of desired rx descriptors. |
| 51 | 64 | ||
| 52 | Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a | 65 | Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data |
| 53 | data structure that describes a transmit buffer and its attributes to the | 66 | structure that describes a transmit buffer and its attributes to the network |
| 54 | network controller. The data in the descriptor is used by the controller to | 67 | controller. The data in the descriptor is used by the controller to read |
| 55 | read data from the host memory to the controller. In the 3.0.x driver the | 68 | data from the host memory to the controller. In the 3.x.x driver the valid |
| 56 | valid range for this parameter is 64-256. The default value is 64. This | 69 | range for this parameter is 64-256. The default value is 64. This parameter |
| 57 | parameter can be changed using the command | 70 | can be changed using the command: |
| 58 | 71 | ||
| 59 | ethtool -G eth? tx n, where n is the number of desired tx descriptors. | 72 | ethtool -G eth? tx n, where n is the number of desired tx descriptors. |
| 60 | 73 | ||
| 61 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by | 74 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by |
| 62 | default. Ethtool can be used as follows to force speed/duplex. | 75 | default. Ethtool can be used as follows to force speed/duplex. |
| 63 | 76 | ||
| 64 | ethtool -s eth? autoneg off speed {10|100} duplex {full|half} | 77 | ethtool -s eth? autoneg off speed {10|100} duplex {full|half} |
| 65 | 78 | ||
| 66 | NOTE: setting the speed/duplex to incorrect values will cause the link to | 79 | NOTE: setting the speed/duplex to incorrect values will cause the link to |
| 67 | fail. | 80 | fail. |
| 68 | 81 | ||
| 69 | Event Log Message Level: The driver uses the message level flag to log events | 82 | Event Log Message Level: The driver uses the message level flag to log events |
| 70 | to syslog. The message level can be set at driver load time. It can also be | 83 | to syslog. The message level can be set at driver load time. It can also be |
| 71 | set using the command | 84 | set using the command: |
| 72 | 85 | ||
| 73 | ethtool -s eth? msglvl n | 86 | ethtool -s eth? msglvl n |
| 74 | 87 | ||
| 88 | |||
| 75 | Additional Configurations | 89 | Additional Configurations |
| 76 | ========================= | 90 | ========================= |
| 77 | 91 | ||
| 78 | Configuring the Driver on Different Distributions | 92 | Configuring the Driver on Different Distributions |
| 79 | ------------------------------------------------- | 93 | ------------------------------------------------- |
| 80 | 94 | ||
| 81 | Configuring a network driver to load properly when the system is started is | 95 | Configuring a network driver to load properly when the system is started is |
| 82 | distribution dependent. Typically, the configuration process involves adding | 96 | distribution dependent. Typically, the configuration process involves adding |
| 83 | an alias line to /etc/modules.conf as well as editing other system startup | 97 | an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing |
| 84 | scripts and/or configuration files. Many popular Linux distributions ship | 98 | other system startup scripts and/or configuration files. Many popular Linux |
| 85 | with tools to make these changes for you. To learn the proper way to | 99 | distributions ship with tools to make these changes for you. To learn the |
| 86 | configure a network device for your system, refer to your distribution | 100 | proper way to configure a network device for your system, refer to your |
| 87 | documentation. If during this process you are asked for the driver or module | 101 | distribution documentation. If during this process you are asked for the |
| 88 | name, the name for the Linux Base Driver for the Intel PRO/100 Family of | 102 | driver or module name, the name for the Linux Base Driver for the Intel |
| 89 | Adapters is e100. | 103 | PRO/100 Family of Adapters is e100. |
| 90 | 104 | ||
| 91 | As an example, if you install the e100 driver for two PRO/100 adapters | 105 | As an example, if you install the e100 driver for two PRO/100 adapters |
| 92 | (eth0 and eth1), add the following to modules.conf: | 106 | (eth0 and eth1), add the following to modules.conf or modprobe.conf: |
| 93 | 107 | ||
| 94 | alias eth0 e100 | 108 | alias eth0 e100 |
| 95 | alias eth1 e100 | 109 | alias eth1 e100 |
| 96 | 110 | ||
| 97 | Viewing Link Messages | 111 | Viewing Link Messages |
| 98 | --------------------- | 112 | --------------------- |
| 99 | In order to see link messages and other Intel driver information on your | 113 | In order to see link messages and other Intel driver information on your |
| 100 | console, you must set the dmesg level up to six. This can be done by | 114 | console, you must set the dmesg level up to six. This can be done by |
| 101 | entering the following on the command line before loading the e100 driver: | 115 | entering the following on the command line before loading the e100 driver: |
| 102 | 116 | ||
| 103 | dmesg -n 8 | 117 | dmesg -n 8 |
| 104 | 118 | ||
| 105 | If you wish to see all messages issued by the driver, including debug | 119 | If you wish to see all messages issued by the driver, including debug |
| 106 | messages, set the dmesg level to eight. | 120 | messages, set the dmesg level to eight. |
| 107 | 121 | ||
| 108 | NOTE: This setting is not saved across reboots. | 122 | NOTE: This setting is not saved across reboots. |
| 109 | 123 | ||
| 124 | |||
| 110 | Ethtool | 125 | Ethtool |
| 111 | ------- | 126 | ------- |
| 112 | 127 | ||
| @@ -114,29 +129,27 @@ Additional Configurations | |||
| 114 | diagnostics, as well as displaying statistical information. Ethtool | 129 | diagnostics, as well as displaying statistical information. Ethtool |
| 115 | version 1.6 or later is required for this functionality. | 130 | version 1.6 or later is required for this functionality. |
| 116 | 131 | ||
| 117 | The latest release of ethtool can be found at: | 132 | The latest release of ethtool can be found from |
| 118 | http://sf.net/projects/gkernel. | 133 | http://sourceforge.net/projects/gkernel. |
| 119 | 134 | ||
| 120 | NOTE: This driver uses mii support from the kernel. As a result, when | 135 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support |
| 121 | there is no link, ethtool will report speed/duplex to be 10/half. | 136 | for a more complete ethtool feature set can be enabled by upgrading |
| 137 | ethtool to ethtool-1.8.1. | ||
| 122 | 138 | ||
| 123 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | ||
| 124 | for a more complete ethtool feature set can be enabled by upgrading | ||
| 125 | ethtool to ethtool-1.8.1. | ||
| 126 | 139 | ||
| 127 | Enabling Wake on LAN* (WoL) | 140 | Enabling Wake on LAN* (WoL) |
| 128 | --------------------------- | 141 | --------------------------- |
| 129 | WoL is provided through the Ethtool* utility. Ethtool is included with Red | 142 | WoL is provided through the Ethtool* utility. Ethtool is included with Red |
| 130 | Hat* 8.0. For other Linux distributions, download and install Ethtool from | 143 | Hat* 8.0. For other Linux distributions, download and install Ethtool from |
| 131 | the following website: http://sourceforge.net/projects/gkernel. | 144 | the following website: http://sourceforge.net/projects/gkernel. |
| 132 | 145 | ||
| 133 | For instructions on enabling WoL with Ethtool, refer to the Ethtool man | 146 | For instructions on enabling WoL with Ethtool, refer to the Ethtool man page. |
| 134 | page. | ||
| 135 | 147 | ||
| 136 | WoL will be enabled on the system during the next shut down or reboot. For | 148 | WoL will be enabled on the system during the next shut down or reboot. For |
| 137 | this driver version, in order to enable WoL, the e100 driver must be | 149 | this driver version, in order to enable WoL, the e100 driver must be |
| 138 | loaded when shutting down or rebooting the system. | 150 | loaded when shutting down or rebooting the system. |
| 139 | 151 | ||
| 152 | |||
| 140 | NAPI | 153 | NAPI |
| 141 | ---- | 154 | ---- |
| 142 | 155 | ||
| @@ -144,6 +157,25 @@ Additional Configurations | |||
| 144 | 157 | ||
| 145 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. | 158 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. |
| 146 | 159 | ||
| 160 | Multiple Interfaces on Same Ethernet Broadcast Network | ||
| 161 | ------------------------------------------------------ | ||
| 162 | |||
| 163 | Due to the default ARP behavior on Linux, it is not possible to have | ||
| 164 | one system on two IP networks in the same Ethernet broadcast domain | ||
| 165 | (non-partitioned switch) behave as expected. All Ethernet interfaces | ||
| 166 | will respond to IP traffic for any IP address assigned to the system. | ||
| 167 | This results in unbalanced receive traffic. | ||
| 168 | |||
| 169 | If you have multiple interfaces in a server, either turn on ARP | ||
| 170 | filtering by | ||
| 171 | |||
| 172 | (1) entering: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | ||
| 173 | (this only works if your kernel's version is higher than 2.4.5), or | ||
| 174 | |||
| 175 | (2) installing the interfaces in separate broadcast domains (either | ||
| 176 | in different switches or in a switch partitioned to VLANs). | ||
| 177 | |||
| 178 | |||
| 147 | Support | 179 | Support |
| 148 | ======= | 180 | ======= |
| 149 | 181 | ||
| @@ -151,20 +183,24 @@ For general information, go to the Intel support website at: | |||
| 151 | 183 | ||
| 152 | http://support.intel.com | 184 | http://support.intel.com |
| 153 | 185 | ||
| 186 | or the Intel Wired Networking project hosted by Sourceforge at: | ||
| 187 | |||
| 188 | http://sourceforge.net/projects/e1000 | ||
| 189 | |||
| 154 | If an issue is identified with the released source code on the supported | 190 | If an issue is identified with the released source code on the supported |
| 155 | kernel with a supported adapter, email the specific information related to | 191 | kernel with a supported adapter, email the specific information related to the |
| 156 | the issue to linux.nics@intel.com. | 192 | issue to e1000-devel@lists.sourceforge.net. |
| 157 | 193 | ||
| 158 | 194 | ||
| 159 | License | 195 | License |
| 160 | ======= | 196 | ======= |
| 161 | 197 | ||
| 162 | This software program is released under the terms of a license agreement | 198 | This software program is released under the terms of a license agreement |
| 163 | between you ('Licensee') and Intel. Do not use or load this software or any | 199 | between you ('Licensee') and Intel. Do not use or load this software or any |
| 164 | associated materials (collectively, the 'Software') until you have carefully | 200 | associated materials (collectively, the 'Software') until you have carefully |
| 165 | read the full terms and conditions of the LICENSE located in this software | 201 | read the full terms and conditions of the file COPYING located in this software |
| 166 | package. By loading or using the Software, you agree to the terms of this | 202 | package. By loading or using the Software, you agree to the terms of this |
| 167 | Agreement. If you do not agree with the terms of this Agreement, do not | 203 | Agreement. If you do not agree with the terms of this Agreement, do not install |
| 168 | install or use the Software. | 204 | or use the Software. |
| 169 | 205 | ||
| 170 | * Other names and brands may be claimed as the property of others. | 206 | * Other names and brands may be claimed as the property of others. |
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt index 2ebd4058d46d..71fe15af356c 100644 --- a/Documentation/networking/e1000.txt +++ b/Documentation/networking/e1000.txt | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters | 1 | Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters |
| 2 | =============================================================== | 2 | =============================================================== |
| 3 | 3 | ||
| 4 | November 17, 2004 | 4 | November 15, 2005 |
| 5 | 5 | ||
| 6 | 6 | ||
| 7 | Contents | 7 | Contents |
| @@ -20,254 +20,316 @@ In This Release | |||
| 20 | =============== | 20 | =============== |
| 21 | 21 | ||
| 22 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family | 22 | This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family |
| 23 | of Adapters, version 5.x.x. | 23 | of Adapters. This driver includes support for Itanium(R)2-based systems. |
| 24 | 24 | ||
| 25 | For questions related to hardware requirements, refer to the documentation | 25 | For questions related to hardware requirements, refer to the documentation |
| 26 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed | 26 | supplied with your Intel PRO/1000 adapter. All hardware requirements listed |
| 27 | apply to use with Linux. | 27 | apply to use with Linux. |
| 28 | 28 | ||
| 29 | Native VLANs are now available with supported kernels. | 29 | The following features are now available in supported kernels: |
| 30 | - Native VLANs | ||
| 31 | - Channel Bonding (teaming) | ||
| 32 | - SNMP | ||
| 33 | |||
| 34 | Channel Bonding documentation can be found in the Linux kernel source: | ||
| 35 | /Documentation/networking/bonding.txt | ||
| 36 | |||
| 37 | The driver information previously displayed in the /proc filesystem is not | ||
| 38 | supported in this release. Alternatively, you can use ethtool (version 1.6 | ||
| 39 | or later), lspci, and ifconfig to obtain the same information. | ||
| 40 | |||
| 41 | Instructions on updating ethtool can be found in the section "Additional | ||
| 42 | Configurations" later in this document. | ||
| 43 | |||
| 30 | 44 | ||
| 31 | Identifying Your Adapter | 45 | Identifying Your Adapter |
| 32 | ======================== | 46 | ======================== |
| 33 | 47 | ||
| 34 | For more information on how to identify your adapter, go to the Adapter & | 48 | For more information on how to identify your adapter, go to the Adapter & |
| 35 | Driver ID Guide at: | 49 | Driver ID Guide at: |
| 36 | 50 | ||
| 37 | http://support.intel.com/support/network/adapter/pro100/21397.htm | 51 | http://support.intel.com/support/network/adapter/pro100/21397.htm |
| 38 | 52 | ||
| 39 | For the latest Intel network drivers for Linux, refer to the following | 53 | For the latest Intel network drivers for Linux, refer to the following |
| 40 | website. In the search field, enter your adapter name or type, or use the | 54 | website. In the search field, enter your adapter name or type, or use the |
| 41 | networking link on the left to search for your adapter: | 55 | networking link on the left to search for your adapter: |
| 42 | 56 | ||
| 43 | http://downloadfinder.intel.com/scripts-df/support_intel.asp | 57 | http://downloadfinder.intel.com/scripts-df/support_intel.asp |
| 44 | 58 | ||
| 45 | Command Line Parameters | ||
| 46 | ======================= | ||
| 47 | 59 | ||
| 48 | If the driver is built as a module, the following optional parameters are | 60 | Command Line Parameters ======================= |
| 49 | used by entering them on the command line with the modprobe or insmod command | 61 | |
| 50 | using this syntax: | 62 | If the driver is built as a module, the following optional parameters |
| 63 | are used by entering them on the command line with the modprobe or insmod | ||
| 64 | command using this syntax: | ||
| 51 | 65 | ||
| 52 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] | 66 | modprobe e1000 [<option>=<VAL1>,<VAL2>,...] |
| 53 | 67 | ||
| 54 | insmod e1000 [<option>=<VAL1>,<VAL2>,...] | 68 | insmod e1000 [<option>=<VAL1>,<VAL2>,...] |
| 55 | 69 | ||
| 56 | For example, with two PRO/1000 PCI adapters, entering: | 70 | For example, with two PRO/1000 PCI adapters, entering: |
| 57 | 71 | ||
| 58 | insmod e1000 TxDescriptors=80,128 | 72 | insmod e1000 TxDescriptors=80,128 |
| 59 | 73 | ||
| 60 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 TX | 74 | loads the e1000 driver with 80 TX descriptors for the first adapter and 128 |
| 61 | descriptors for the second adapter. | 75 | TX descriptors for the second adapter. |
| 62 | 76 | ||
| 63 | The default value for each parameter is generally the recommended setting, | 77 | The default value for each parameter is generally the recommended setting, |
| 64 | unless otherwise noted. Also, if the driver is statically built into the | 78 | unless otherwise noted. |
| 65 | kernel, the driver is loaded with the default values for all the parameters. | 79 | |
| 66 | Ethtool can be used to change some of the parameters at runtime. | 80 | NOTES: For more information about the AutoNeg, Duplex, and Speed |
| 81 | parameters, see the "Speed and Duplex Configuration" section in | ||
| 82 | this document. | ||
| 67 | 83 | ||
| 68 | NOTES: For more information about the AutoNeg, Duplex, and Speed | 84 | For more information about the InterruptThrottleRate, |
| 69 | parameters, see the "Speed and Duplex Configuration" section in | 85 | RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay |
| 70 | this document. | 86 | parameters, see the application note at: |
| 87 | http://www.intel.com/design/network/applnots/ap450.htm | ||
| 71 | 88 | ||
| 72 | For more information about the InterruptThrottleRate, RxIntDelay, | 89 | A descriptor describes a data buffer and attributes related to |
| 73 | TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay parameters, see the | 90 | the data buffer. This information is accessed by the hardware. |
| 74 | application note at: | ||
| 75 | http://www.intel.com/design/network/applnots/ap450.htm | ||
| 76 | 91 | ||
| 77 | A descriptor describes a data buffer and attributes related to the | ||
| 78 | data buffer. This information is accessed by the hardware. | ||
| 79 | 92 | ||
| 80 | AutoNeg (adapters using copper connections only) | 93 | AutoNeg |
| 81 | Valid Range: 0x01-0x0F, 0x20-0x2F | 94 | ------- |
| 95 | (Supported only on adapters with copper connections) | ||
| 96 | Valid Range: 0x01-0x0F, 0x20-0x2F | ||
| 82 | Default Value: 0x2F | 97 | Default Value: 0x2F |
| 83 | This parameter is a bit mask that specifies which speed and duplex | 98 | |
| 84 | settings the board advertises. When this parameter is used, the Speed and | 99 | This parameter is a bit mask that specifies which speed and duplex |
| 85 | Duplex parameters must not be specified. | 100 | settings the board advertises. When this parameter is used, the Speed |
| 86 | NOTE: Refer to the Speed and Duplex section of this readme for more | 101 | and Duplex parameters must not be specified. |
| 87 | information on the AutoNeg parameter. | 102 | |
| 88 | 103 | NOTE: Refer to the Speed and Duplex section of this readme for more | |
| 89 | Duplex (adapters using copper connections only) | 104 | information on the AutoNeg parameter. |
| 90 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | 105 | |
| 106 | |||
| 107 | Duplex | ||
| 108 | ------ | ||
| 109 | (Supported only on adapters with copper connections) | ||
| 110 | Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) | ||
| 91 | Default Value: 0 | 111 | Default Value: 0 |
| 92 | Defines the direction in which data is allowed to flow. Can be either one | 112 | |
| 93 | or two-directional. If both Duplex and the link partner are set to auto- | 113 | Defines the direction in which data is allowed to flow. Can be either |
| 94 | negotiate, the board auto-detects the correct duplex. If the link partner | 114 | one or two-directional. If both Duplex and the link partner are set to |
| 95 | is forced (either full or half), Duplex defaults to half-duplex. | 115 | auto-negotiate, the board auto-detects the correct duplex. If the link |
| 116 | partner is forced (either full or half), Duplex defaults to half-duplex. | ||
| 117 | |||
| 96 | 118 | ||
| 97 | FlowControl | 119 | FlowControl |
| 98 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) | 120 | ---------- |
| 99 | Default: Read flow control settings from the EEPROM | 121 | Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) |
| 100 | This parameter controls the automatic generation(Tx) and response(Rx) to | 122 | Default Value: Reads flow control settings from the EEPROM |
| 101 | Ethernet PAUSE frames. | 123 | |
| 124 | This parameter controls the automatic generation(Tx) and response(Rx) | ||
| 125 | to Ethernet PAUSE frames. | ||
| 126 | |||
| 102 | 127 | ||
| 103 | InterruptThrottleRate | 128 | InterruptThrottleRate |
| 104 | Valid Range: 100-100000 (0=off, 1=dynamic) | 129 | --------------------- |
| 130 | (not supported on Intel 82542, 82543 or 82544-based adapters) | ||
| 131 | Valid Range: 100-100000 (0=off, 1=dynamic) | ||
| 105 | Default Value: 8000 | 132 | Default Value: 8000 |
| 106 | This value represents the maximum number of interrupts per second the | 133 | |
| 107 | controller generates. InterruptThrottleRate is another setting used in | 134 | This value represents the maximum number of interrupts per second the |
| 108 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust | 135 | controller generates. InterruptThrottleRate is another setting used in |
| 109 | InterruptThrottleRate based on the current traffic load. | 136 | interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust |
| 110 | Un-supported Adapters: InterruptThrottleRate is NOT supported by 82542, 82543 | 137 | InterruptThrottleRate based on the current traffic load. |
| 111 | or 82544-based adapters. | 138 | |
| 112 | 139 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | |
| 113 | NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and | 140 | RxAbsIntDelay parameters. In other words, minimizing the receive |
| 114 | RxAbsIntDelay parameters. In other words, minimizing the receive | 141 | and/or transmit absolute delays does not force the controller to |
| 115 | and/or transmit absolute delays does not force the controller to | 142 | generate more interrupts than what the Interrupt Throttle Rate |
| 116 | generate more interrupts than what the Interrupt Throttle Rate | 143 | allows. |
| 117 | allows. | 144 | |
| 118 | CAUTION: If you are using the Intel PRO/1000 CT Network Connection | 145 | CAUTION: If you are using the Intel PRO/1000 CT Network Connection |
| 119 | (controller 82547), setting InterruptThrottleRate to a value | 146 | (controller 82547), setting InterruptThrottleRate to a value |
| 120 | greater than 75,000, may hang (stop transmitting) adapters under | 147 | greater than 75,000, may hang (stop transmitting) adapters |
| 121 | certain network conditions. If this occurs a NETDEV WATCHDOG | 148 | under certain network conditions. If this occurs a NETDEV |
| 122 | message is logged in the system event log. In addition, the | 149 | WATCHDOG message is logged in the system event log. In |
| 123 | controller is automatically reset, restoring the network | 150 | addition, the controller is automatically reset, restoring |
| 124 | connection. To eliminate the potential for the hang, ensure | 151 | the network connection. To eliminate the potential for the |
| 125 | that InterruptThrottleRate is set no greater than 75,000 and is | 152 | hang, ensure that InterruptThrottleRate is set no greater |
| 126 | not set to 0. | 153 | than 75,000 and is not set to 0. |
| 127 | NOTE: When e1000 is loaded with default settings and multiple adapters are | 154 | |
| 128 | in use simultaneously, the CPU utilization may increase non-linearly. | 155 | NOTE: When e1000 is loaded with default settings and multiple adapters |
| 129 | In order to limit the CPU utilization without impacting the overall | 156 | are in use simultaneously, the CPU utilization may increase non- |
| 130 | throughput, we recommend that you load the driver as follows: | 157 | linearly. In order to limit the CPU utilization without impacting |
| 131 | 158 | the overall throughput, we recommend that you load the driver as | |
| 132 | insmod e1000.o InterruptThrottleRate=3000,3000,3000 | 159 | follows: |
| 133 | 160 | ||
| 134 | This sets the InterruptThrottleRate to 3000 interrupts/sec for the | 161 | insmod e1000.o InterruptThrottleRate=3000,3000,3000 |
| 135 | first, second, and third instances of the driver. The range of 2000 to | 162 | |
| 136 | 3000 interrupts per second works on a majority of systems and is a | 163 | This sets the InterruptThrottleRate to 3000 interrupts/sec for |
| 137 | good starting point, but the optimal value will be platform-specific. | 164 | the first, second, and third instances of the driver. The range |
| 138 | If CPU utilization is not a concern, use RX_POLLING (NAPI) and default | 165 | of 2000 to 3000 interrupts per second works on a majority of |
| 139 | driver settings. | 166 | systems and is a good starting point, but the optimal value will |
| 167 | be platform-specific. If CPU utilization is not a concern, use | ||
| 168 | RX_POLLING (NAPI) and default driver settings. | ||
| 169 | |||
| 140 | 170 | ||
| 141 | RxDescriptors | 171 | RxDescriptors |
| 142 | Valid Range: 80-256 for 82542 and 82543-based adapters | 172 | ------------- |
| 143 | 80-4096 for all other supported adapters | 173 | Valid Range: 80-256 for 82542 and 82543-based adapters |
| 174 | 80-4096 for all other supported adapters | ||
| 144 | Default Value: 256 | 175 | Default Value: 256 |
| 145 | This value is the number of receive descriptors allocated by the driver. | ||
| 146 | Increasing this value allows the driver to buffer more incoming packets. | ||
| 147 | Each descriptor is 16 bytes. A receive buffer is allocated for each | ||
| 148 | descriptor and can either be 2048 or 4096 bytes long, depending on the MTU | ||
| 149 | 176 | ||
| 150 | setting. An incoming packet can span one or more receive descriptors. | 177 | This value specifies the number of receive descriptors allocated by the |
| 151 | The maximum MTU size is 16110. | 178 | driver. Increasing this value allows the driver to buffer more incoming |
| 179 | packets. Each descriptor is 16 bytes. A receive buffer is also | ||
| 180 | allocated for each descriptor and is 2048. | ||
| 152 | 181 | ||
| 153 | NOTE: MTU designates the frame size. It only needs to be set for Jumbo | ||
| 154 | Frames. | ||
| 155 | NOTE: Depending on the available system resources, the request for a | ||
| 156 | higher number of receive descriptors may be denied. In this case, | ||
| 157 | use a lower number. | ||
| 158 | 182 | ||
| 159 | RxIntDelay | 183 | RxIntDelay |
| 160 | Valid Range: 0-65535 (0=off) | 184 | ---------- |
| 185 | Valid Range: 0-65535 (0=off) | ||
| 161 | Default Value: 0 | 186 | Default Value: 0 |
| 162 | This value delays the generation of receive interrupts in units of 1.024 | 187 | |
| 163 | microseconds. Receive interrupt reduction can improve CPU efficiency if | 188 | This value delays the generation of receive interrupts in units of 1.024 |
| 164 | properly tuned for specific network traffic. Increasing this value adds | 189 | microseconds. Receive interrupt reduction can improve CPU efficiency if |
| 165 | extra latency to frame reception and can end up decreasing the throughput | 190 | properly tuned for specific network traffic. Increasing this value adds |
| 166 | of TCP traffic. If the system is reporting dropped receives, this value | 191 | extra latency to frame reception and can end up decreasing the throughput |
| 167 | may be set too high, causing the driver to run out of available receive | 192 | of TCP traffic. If the system is reporting dropped receives, this value |
| 168 | descriptors. | 193 | may be set too high, causing the driver to run out of available receive |
| 169 | 194 | descriptors. | |
| 170 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may | 195 | |
| 171 | hang (stop transmitting) under certain network conditions. If | 196 | CAUTION: When setting RxIntDelay to a value other than 0, adapters may |
| 172 | this occurs a NETDEV WATCHDOG message is logged in the system | 197 | hang (stop transmitting) under certain network conditions. If |
| 173 | event log. In addition, the controller is automatically reset, | 198 | this occurs a NETDEV WATCHDOG message is logged in the system |
| 174 | restoring the network connection. To eliminate the potential for | 199 | event log. In addition, the controller is automatically reset, |
| 175 | the hang ensure that RxIntDelay is set to 0. | 200 | restoring the network connection. To eliminate the potential |
| 176 | 201 | for the hang ensure that RxIntDelay is set to 0. | |
| 177 | RxAbsIntDelay (82540, 82545 and later adapters only) | 202 | |
| 178 | Valid Range: 0-65535 (0=off) | 203 | |
| 204 | RxAbsIntDelay | ||
| 205 | ------------- | ||
| 206 | (This parameter is supported only on 82540, 82545 and later adapters.) | ||
| 207 | Valid Range: 0-65535 (0=off) | ||
| 179 | Default Value: 128 | 208 | Default Value: 128 |
| 180 | This value, in units of 1.024 microseconds, limits the delay in which a | 209 | |
| 181 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, | 210 | This value, in units of 1.024 microseconds, limits the delay in which a |
| 182 | this value ensures that an interrupt is generated after the initial | 211 | receive interrupt is generated. Useful only if RxIntDelay is non-zero, |
| 183 | packet is received within the set amount of time. Proper tuning, | 212 | this value ensures that an interrupt is generated after the initial |
| 184 | along with RxIntDelay, may improve traffic throughput in specific network | 213 | packet is received within the set amount of time. Proper tuning, |
| 185 | conditions. | 214 | along with RxIntDelay, may improve traffic throughput in specific network |
| 186 | 215 | conditions. | |
| 187 | Speed (adapters using copper connections only) | 216 | |
| 217 | |||
| 218 | Speed | ||
| 219 | ----- | ||
| 220 | (This parameter is supported only on adapters with copper connections.) | ||
| 188 | Valid Settings: 0, 10, 100, 1000 | 221 | Valid Settings: 0, 10, 100, 1000 |
| 189 | Default Value: 0 (auto-negotiate at all supported speeds) | 222 | Default Value: 0 (auto-negotiate at all supported speeds) |
| 190 | Speed forces the line speed to the specified value in megabits per second | 223 | |
| 191 | (Mbps). If this parameter is not specified or is set to 0 and the link | 224 | Speed forces the line speed to the specified value in megabits per second |
| 192 | partner is set to auto-negotiate, the board will auto-detect the correct | 225 | (Mbps). If this parameter is not specified or is set to 0 and the link |
| 193 | speed. Duplex should also be set when Speed is set to either 10 or 100. | 226 | partner is set to auto-negotiate, the board will auto-detect the correct |
| 227 | speed. Duplex should also be set when Speed is set to either 10 or 100. | ||
| 228 | |||
| 194 | 229 | ||
| 195 | TxDescriptors | 230 | TxDescriptors |
| 196 | Valid Range: 80-256 for 82542 and 82543-based adapters | 231 | ------------- |
| 197 | 80-4096 for all other supported adapters | 232 | Valid Range: 80-256 for 82542 and 82543-based adapters |
| 233 | 80-4096 for all other supported adapters | ||
| 198 | Default Value: 256 | 234 | Default Value: 256 |
| 199 | This value is the number of transmit descriptors allocated by the driver. | ||
| 200 | Increasing this value allows the driver to queue more transmits. Each | ||
| 201 | descriptor is 16 bytes. | ||
| 202 | 235 | ||
| 203 | NOTE: Depending on the available system resources, the request for a | 236 | This value is the number of transmit descriptors allocated by the driver. |
| 204 | higher number of transmit descriptors may be denied. In this case, | 237 | Increasing this value allows the driver to queue more transmits. Each |
| 205 | use a lower number. | 238 | descriptor is 16 bytes. |
| 239 | |||
| 240 | NOTE: Depending on the available system resources, the request for a | ||
| 241 | higher number of transmit descriptors may be denied. In this case, | ||
| 242 | use a lower number. | ||
| 243 | |||
| 206 | 244 | ||
| 207 | TxIntDelay | 245 | TxIntDelay |
| 208 | Valid Range: 0-65535 (0=off) | 246 | ---------- |
| 247 | Valid Range: 0-65535 (0=off) | ||
| 209 | Default Value: 64 | 248 | Default Value: 64 |
| 210 | This value delays the generation of transmit interrupts in units of | 249 | |
| 211 | 1.024 microseconds. Transmit interrupt reduction can improve CPU | 250 | This value delays the generation of transmit interrupts in units of |
| 212 | efficiency if properly tuned for specific network traffic. If the | 251 | 1.024 microseconds. Transmit interrupt reduction can improve CPU |
| 213 | system is reporting dropped transmits, this value may be set too high | 252 | efficiency if properly tuned for specific network traffic. If the |
| 214 | causing the driver to run out of available transmit descriptors. | 253 | system is reporting dropped transmits, this value may be set too high |
| 215 | 254 | causing the driver to run out of available transmit descriptors. | |
| 216 | TxAbsIntDelay (82540, 82545 and later adapters only) | 255 | |
| 217 | Valid Range: 0-65535 (0=off) | 256 | |
| 257 | TxAbsIntDelay | ||
| 258 | ------------- | ||
| 259 | (This parameter is supported only on 82540, 82545 and later adapters.) | ||
| 260 | Valid Range: 0-65535 (0=off) | ||
| 218 | Default Value: 64 | 261 | Default Value: 64 |
| 219 | This value, in units of 1.024 microseconds, limits the delay in which a | 262 | |
| 220 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, | 263 | This value, in units of 1.024 microseconds, limits the delay in which a |
| 221 | this value ensures that an interrupt is generated after the initial | 264 | transmit interrupt is generated. Useful only if TxIntDelay is non-zero, |
| 222 | packet is sent on the wire within the set amount of time. Proper tuning, | 265 | this value ensures that an interrupt is generated after the initial |
| 223 | along with TxIntDelay, may improve traffic throughput in specific | 266 | packet is sent on the wire within the set amount of time. Proper tuning, |
| 224 | network conditions. | 267 | along with TxIntDelay, may improve traffic throughput in specific |
| 225 | 268 | network conditions. | |
| 226 | XsumRX (not available on the 82542-based adapter) | 269 | |
| 227 | Valid Range: 0-1 | 270 | XsumRX |
| 271 | ------ | ||
| 272 | (This parameter is NOT supported on the 82542-based adapter.) | ||
| 273 | Valid Range: 0-1 | ||
| 228 | Default Value: 1 | 274 | Default Value: 1 |
| 229 | A value of '1' indicates that the driver should enable IP checksum | 275 | |
| 230 | offload for received packets (both UDP and TCP) to the adapter hardware. | 276 | A value of '1' indicates that the driver should enable IP checksum |
| 277 | offload for received packets (both UDP and TCP) to the adapter hardware. | ||
| 278 | |||
| 231 | 279 | ||
| 232 | Speed and Duplex Configuration | 280 | Speed and Duplex Configuration |
| 233 | ============================== | 281 | ============================== |
| 234 | 282 | ||
| 235 | Three keywords are used to control the speed and duplex configuration. These | 283 | Three keywords are used to control the speed and duplex configuration. |
| 236 | keywords are Speed, Duplex, and AutoNeg. | 284 | These keywords are Speed, Duplex, and AutoNeg. |
| 237 | 285 | ||
| 238 | If the board uses a fiber interface, these keywords are ignored, and the | 286 | If the board uses a fiber interface, these keywords are ignored, and the |
| 239 | fiber interface board only links at 1000 Mbps full-duplex. | 287 | fiber interface board only links at 1000 Mbps full-duplex. |
| 240 | 288 | ||
| 241 | For copper-based boards, the keywords interact as follows: | 289 | For copper-based boards, the keywords interact as follows: |
| 242 | 290 | ||
| 243 | The default operation is auto-negotiate. The board advertises all supported | 291 | The default operation is auto-negotiate. The board advertises all |
| 244 | speed and duplex combinations, and it links at the highest common speed and | 292 | supported speed and duplex combinations, and it links at the highest |
| 245 | duplex mode IF the link partner is set to auto-negotiate. | 293 | common speed and duplex mode IF the link partner is set to auto-negotiate. |
| 246 | 294 | ||
| 247 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps is | 295 | If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps |
| 248 | advertised (The 1000BaseT spec requires auto-negotiation.) | 296 | is advertised (The 1000BaseT spec requires auto-negotiation.) |
| 249 | 297 | ||
| 250 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- | 298 | If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- |
| 251 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner SHOULD | 299 | negotiation is disabled, and the AutoNeg parameter is ignored. Partner |
| 252 | also be forced. | 300 | SHOULD also be forced. |
| 301 | |||
| 302 | The AutoNeg parameter is used when more control is required over the | ||
| 303 | auto-negotiation process. It should be used when you wish to control which | ||
| 304 | speed and duplex combinations are advertised during the auto-negotiation | ||
| 305 | process. | ||
| 306 | |||
| 307 | The parameter may be specified as either a decimal or hexidecimal value as | ||
| 308 | determined by the bitmap below. | ||
| 253 | 309 | ||
| 254 | The AutoNeg parameter is used when more control is required over the auto- | 310 | Bit position 7 6 5 4 3 2 1 0 |
| 255 | negotiation process. When this parameter is used, Speed and Duplex parameters | 311 | Decimal Value 128 64 32 16 8 4 2 1 |
| 256 | must not be specified. The following table describes supported values for the | 312 | Hex value 80 40 20 10 8 4 2 1 |
| 257 | AutoNeg parameter: | 313 | Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 |
| 314 | Duplex Full Full Half Full Half | ||
| 258 | 315 | ||
| 259 | Speed (Mbps) 1000 100 100 10 10 | 316 | Some examples of using AutoNeg: |
| 260 | Duplex Full Full Half Full Half | ||
| 261 | Value (in base 16) 0x20 0x08 0x04 0x02 0x01 | ||
| 262 | 317 | ||
| 263 | Example: insmod e1000 AutoNeg=0x03, loads e1000 and specifies (10 full duplex, | 318 | modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half) |
| 264 | 10 half duplex) for negotiation with the peer. | 319 | modprobe e1000 AutoNeg=1 (Same as above) |
| 320 | modprobe e1000 AutoNeg=0x02 (Restricts autonegotiation to 10 Full) | ||
| 321 | modprobe e1000 AutoNeg=0x03 (Restricts autonegotiation to 10 Half or 10 Full) | ||
| 322 | modprobe e1000 AutoNeg=0x04 (Restricts autonegotiation to 100 Half) | ||
| 323 | modprobe e1000 AutoNeg=0x05 (Restricts autonegotiation to 10 Half or 100 | ||
| 324 | Half) | ||
| 325 | modprobe e1000 AutoNeg=0x020 (Restricts autonegotiation to 1000 Full) | ||
| 326 | modprobe e1000 AutoNeg=32 (Same as above) | ||
| 265 | 327 | ||
| 266 | Note that setting AutoNeg does not guarantee that the board will link at the | 328 | Note that when this parameter is used, Speed and Duplex must not be specified. |
| 267 | highest specified speed or duplex mode, but the board will link at the | 329 | |
| 268 | highest possible speed/duplex of the link partner IF the link partner is also | 330 | If the link partner is forced to a specific speed and duplex, then this |
| 269 | set to auto-negotiate. If the link partner is forced speed/duplex, the | 331 | parameter should not be used. Instead, use the Speed and Duplex parameters |
| 270 | adapter MUST be forced to the same speed/duplex. | 332 | previously mentioned to force the adapter to the same speed and duplex. |
| 271 | 333 | ||
| 272 | 334 | ||
| 273 | Additional Configurations | 335 | Additional Configurations |
| @@ -276,19 +338,19 @@ Additional Configurations | |||
| 276 | Configuring the Driver on Different Distributions | 338 | Configuring the Driver on Different Distributions |
| 277 | ------------------------------------------------- | 339 | ------------------------------------------------- |
| 278 | 340 | ||
| 279 | Configuring a network driver to load properly when the system is started is | 341 | Configuring a network driver to load properly when the system is started |
| 280 | distribution dependent. Typically, the configuration process involves adding | 342 | is distribution dependent. Typically, the configuration process involves |
| 281 | an alias line to /etc/modules.conf as well as editing other system startup | 343 | adding an alias line to /etc/modules.conf or /etc/modprobe.conf as well |
| 282 | scripts and/or configuration files. Many popular Linux distributions ship | 344 | as editing other system startup scripts and/or configuration files. Many |
| 283 | with tools to make these changes for you. To learn the proper way to | 345 | popular Linux distributions ship with tools to make these changes for you. |
| 284 | configure a network device for your system, refer to your distribution | 346 | To learn the proper way to configure a network device for your system, |
| 285 | documentation. If during this process you are asked for the driver or module | 347 | refer to your distribution documentation. If during this process you are |
| 286 | name, the name for the Linux Base Driver for the Intel PRO/1000 Family of | 348 | asked for the driver or module name, the name for the Linux Base Driver |
| 287 | Adapters is e1000. | 349 | for the Intel PRO/1000 Family of Adapters is e1000. |
| 288 | 350 | ||
| 289 | As an example, if you install the e1000 driver for two PRO/1000 adapters | 351 | As an example, if you install the e1000 driver for two PRO/1000 adapters |
| 290 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add the | 352 | (eth0 and eth1) and set the speed and duplex to 10full and 100half, add |
| 291 | following to modules.conf: | 353 | the following to modules.conf or or modprobe.conf: |
| 292 | 354 | ||
| 293 | alias eth0 e1000 | 355 | alias eth0 e1000 |
| 294 | alias eth1 e1000 | 356 | alias eth1 e1000 |
| @@ -297,9 +359,9 @@ Additional Configurations | |||
| 297 | Viewing Link Messages | 359 | Viewing Link Messages |
| 298 | --------------------- | 360 | --------------------- |
| 299 | 361 | ||
| 300 | Link messages will not be displayed to the console if the distribution is | 362 | Link messages will not be displayed to the console if the distribution is |
| 301 | restricting system messages. In order to see network driver link messages on | 363 | restricting system messages. In order to see network driver link messages |
| 302 | your console, set dmesg to eight by entering the following: | 364 | on your console, set dmesg to eight by entering the following: |
| 303 | 365 | ||
| 304 | dmesg -n 8 | 366 | dmesg -n 8 |
| 305 | 367 | ||
| @@ -308,22 +370,42 @@ Additional Configurations | |||
| 308 | Jumbo Frames | 370 | Jumbo Frames |
| 309 | ------------ | 371 | ------------ |
| 310 | 372 | ||
| 311 | The driver supports Jumbo Frames for all adapters except 82542-based | 373 | The driver supports Jumbo Frames for all adapters except 82542 and |
| 312 | adapters. Jumbo Frames support is enabled by changing the MTU to a value | 374 | 82573-based adapters. Jumbo Frames support is enabled by changing the |
| 313 | larger than the default of 1500. Use the ifconfig command to increase the | 375 | MTU to a value larger than the default of 1500. Use the ifconfig command |
| 314 | MTU size. For example: | 376 | to increase the MTU size. For example: |
| 377 | |||
| 378 | ifconfig eth<x> mtu 9000 up | ||
| 379 | |||
| 380 | This setting is not saved across reboots. It can be made permanent if | ||
| 381 | you add: | ||
| 382 | |||
| 383 | MTU=9000 | ||
| 315 | 384 | ||
| 316 | ifconfig ethx mtu 9000 up | 385 | to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example |
| 386 | applies to the Red Hat distributions; other distributions may store this | ||
| 387 | setting in a different location. | ||
| 317 | 388 | ||
| 318 | The maximum MTU setting for Jumbo Frames is 16110. This value coincides | 389 | Notes: |
| 319 | with the maximum Jumbo Frames size of 16128. | ||
| 320 | 390 | ||
| 321 | NOTE: Jumbo Frames are supported at 1000 Mbps only. Using Jumbo Frames at | 391 | - To enable Jumbo Frames, increase the MTU size on the interface beyond |
| 322 | 10 or 100 Mbps may result in poor performance or loss of link. | 392 | 1500. |
| 393 | - The maximum MTU setting for Jumbo Frames is 16110. This value coincides | ||
| 394 | with the maximum Jumbo Frames size of 16128. | ||
| 395 | - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or | ||
| 396 | loss of link. | ||
| 397 | - Some Intel gigabit adapters that support Jumbo Frames have a frame size | ||
| 398 | limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. | ||
| 399 | The adapters with this limitation are based on the Intel 82571EB and | ||
| 400 | 82572EI controllers, which correspond to these product names: | ||
| 401 | Intel® PRO/1000 PT Dual Port Server Adapter | ||
| 402 | Intel® PRO/1000 PF Dual Port Server Adapter | ||
| 403 | Intel® PRO/1000 PT Server Adapter | ||
| 404 | Intel® PRO/1000 PT Desktop Adapter | ||
| 405 | Intel® PRO/1000 PF Server Adapter | ||
| 323 | 406 | ||
| 407 | - The Intel PRO/1000 PM Network Connection does not support jumbo frames. | ||
| 324 | 408 | ||
| 325 | NOTE: MTU designates the frame size. To enable Jumbo Frames, increase the | ||
| 326 | MTU size on the interface beyond 1500. | ||
| 327 | 409 | ||
| 328 | Ethtool | 410 | Ethtool |
| 329 | ------- | 411 | ------- |
| @@ -333,32 +415,41 @@ Additional Configurations | |||
| 333 | version 1.6 or later is required for this functionality. | 415 | version 1.6 or later is required for this functionality. |
| 334 | 416 | ||
| 335 | The latest release of ethtool can be found from | 417 | The latest release of ethtool can be found from |
| 336 | http://sf.net/projects/gkernel. | 418 | http://sourceforge.net/projects/gkernel. |
| 337 | 419 | ||
| 338 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support | 420 | NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support |
| 339 | for a more complete ethtool feature set can be enabled by upgrading | 421 | for a more complete ethtool feature set can be enabled by upgrading |
| 340 | ethtool to ethtool-1.8.1. | 422 | ethtool to ethtool-1.8.1. |
| 341 | 423 | ||
| 342 | Enabling Wake on LAN* (WoL) | 424 | Enabling Wake on LAN* (WoL) |
| 343 | --------------------------- | 425 | --------------------------- |
| 344 | 426 | ||
| 345 | WoL is configured through the Ethtool* utility. Ethtool is included with | 427 | WoL is configured through the Ethtool* utility. Ethtool is included with |
| 346 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, | 428 | all versions of Red Hat after Red Hat 7.2. For other Linux distributions, |
| 347 | download and install Ethtool from the following website: | 429 | download and install Ethtool from the following website: |
| 348 | http://sourceforge.net/projects/gkernel. | 430 | http://sourceforge.net/projects/gkernel. |
| 349 | 431 | ||
| 350 | For instructions on enabling WoL with Ethtool, refer to the website listed | 432 | For instructions on enabling WoL with Ethtool, refer to the website listed |
| 351 | above. | 433 | above. |
| 352 | 434 | ||
| 353 | WoL will be enabled on the system during the next shut down or reboot. | 435 | WoL will be enabled on the system during the next shut down or reboot. |
| 354 | For this driver version, in order to enable WoL, the e1000 driver must be | 436 | For this driver version, in order to enable WoL, the e1000 driver must be |
| 355 | loaded when shutting down or rebooting the system. | 437 | loaded when shutting down or rebooting the system. |
| 356 | 438 | ||
| 357 | NAPI | 439 | NAPI |
| 358 | ---- | 440 | ---- |
| 359 | 441 | ||
| 360 | NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled | 442 | NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled |
| 361 | or disabled based on the configuration of the kernel. | 443 | or disabled based on the configuration of the kernel. To override |
| 444 | the default, use the following compile-time flags. | ||
| 445 | |||
| 446 | To enable NAPI, compile the driver module, passing in a configuration option: | ||
| 447 | |||
| 448 | make CFLAGS_EXTRA=-DE1000_NAPI install | ||
| 449 | |||
| 450 | To disable NAPI, compile the driver module, passing in a configuration option: | ||
| 451 | |||
| 452 | make CFLAGS_EXTRA=-DE1000_NO_NAPI install | ||
| 362 | 453 | ||
| 363 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. | 454 | See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. |
| 364 | 455 | ||
| @@ -369,10 +460,85 @@ Known Issues | |||
| 369 | Jumbo Frames System Requirement | 460 | Jumbo Frames System Requirement |
| 370 | ------------------------------- | 461 | ------------------------------- |
| 371 | 462 | ||
| 372 | Memory allocation failures have been observed on Linux systems with 64 MB | 463 | Memory allocation failures have been observed on Linux systems with 64 MB |
| 373 | of RAM or less that are running Jumbo Frames. If you are using Jumbo Frames, | 464 | of RAM or less that are running Jumbo Frames. If you are using Jumbo |
| 374 | your system may require more than the advertised minimum requirement of 64 MB | 465 | Frames, your system may require more than the advertised minimum |
| 375 | of system memory. | 466 | requirement of 64 MB of system memory. |
| 467 | |||
| 468 | Performance Degradation with Jumbo Frames | ||
| 469 | ----------------------------------------- | ||
| 470 | |||
| 471 | Degradation in throughput performance may be observed in some Jumbo frames | ||
| 472 | environments. If this is observed, increasing the application's socket | ||
| 473 | buffer size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values | ||
| 474 | may help. See the specific application manual and | ||
| 475 | /usr/src/linux*/Documentation/ | ||
| 476 | networking/ip-sysctl.txt for more details. | ||
| 477 | |||
| 478 | Jumbo frames on Foundry BigIron 8000 switch | ||
| 479 | ------------------------------------------- | ||
| 480 | There is a known issue using Jumbo frames when connected to a Foundry | ||
| 481 | BigIron 8000 switch. This is a 3rd party limitation. If you experience | ||
| 482 | loss of packets, lower the MTU size. | ||
| 483 | |||
| 484 | Multiple Interfaces on Same Ethernet Broadcast Network | ||
| 485 | ------------------------------------------------------ | ||
| 486 | |||
| 487 | Due to the default ARP behavior on Linux, it is not possible to have | ||
| 488 | one system on two IP networks in the same Ethernet broadcast domain | ||
| 489 | (non-partitioned switch) behave as expected. All Ethernet interfaces | ||
| 490 | will respond to IP traffic for any IP address assigned to the system. | ||
| 491 | This results in unbalanced receive traffic. | ||
| 492 | |||
| 493 | If you have multiple interfaces in a server, either turn on ARP | ||
| 494 | filtering by entering: | ||
| 495 | |||
| 496 | echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter | ||
| 497 | (this only works if your kernel's version is higher than 2.4.5), | ||
| 498 | |||
| 499 | NOTE: This setting is not saved across reboots. The configuration | ||
| 500 | change can be made permanent by adding the line: | ||
| 501 | net.ipv4.conf.all.arp_filter = 1 | ||
| 502 | to the file /etc/sysctl.conf | ||
| 503 | |||
| 504 | or, | ||
| 505 | |||
| 506 | install the interfaces in separate broadcast domains (either in | ||
| 507 | different switches or in a switch partitioned to VLANs). | ||
| 508 | |||
| 509 | 82541/82547 can't link or are slow to link with some link partners | ||
| 510 | ----------------------------------------------------------------- | ||
| 511 | |||
| 512 | There is a known compatibility issue with 82541/82547 and some | ||
| 513 | low-end switches where the link will not be established, or will | ||
| 514 | be slow to establish. In particular, these switches are known to | ||
| 515 | be incompatible with 82541/82547: | ||
| 516 | |||
| 517 | Planex FXG-08TE | ||
| 518 | I-O Data ETG-SH8 | ||
| 519 | |||
| 520 | To workaround this issue, the driver can be compiled with an override | ||
| 521 | of the PHY's master/slave setting. Forcing master or forcing slave | ||
| 522 | mode will improve time-to-link. | ||
| 523 | |||
| 524 | # make EXTRA_CFLAGS=-DE1000_MASTER_SLAVE=<n> | ||
| 525 | |||
| 526 | Where <n> is: | ||
| 527 | |||
| 528 | 0 = Hardware default | ||
| 529 | 1 = Master mode | ||
| 530 | 2 = Slave mode | ||
| 531 | 3 = Auto master/slave | ||
| 532 | |||
| 533 | Disable rx flow control with ethtool | ||
| 534 | ------------------------------------ | ||
| 535 | |||
| 536 | In order to disable receive flow control using ethtool, you must turn | ||
| 537 | off auto-negotiation on the same command line. | ||
| 538 | |||
| 539 | For example: | ||
| 540 | |||
| 541 | ethtool -A eth? autoneg off rx off | ||
| 376 | 542 | ||
| 377 | 543 | ||
| 378 | Support | 544 | Support |
| @@ -382,20 +548,24 @@ For general information, go to the Intel support website at: | |||
| 382 | 548 | ||
| 383 | http://support.intel.com | 549 | http://support.intel.com |
| 384 | 550 | ||
| 551 | or the Intel Wired Networking project hosted by Sourceforge at: | ||
| 552 | |||
| 553 | http://sourceforge.net/projects/e1000 | ||
| 554 | |||
| 385 | If an issue is identified with the released source code on the supported | 555 | If an issue is identified with the released source code on the supported |
| 386 | kernel with a supported adapter, email the specific information related to | 556 | kernel with a supported adapter, email the specific information related |
| 387 | the issue to linux.nics@intel.com. | 557 | to the issue to e1000-devel@lists.sourceforge.net |
| 388 | 558 | ||
| 389 | 559 | ||
| 390 | License | 560 | License |
| 391 | ======= | 561 | ======= |
| 392 | 562 | ||
| 393 | This software program is released under the terms of a license agreement | 563 | This software program is released under the terms of a license agreement |
| 394 | between you ('Licensee') and Intel. Do not use or load this software or any | 564 | between you ('Licensee') and Intel. Do not use or load this software or any |
| 395 | associated materials (collectively, the 'Software') until you have carefully | 565 | associated materials (collectively, the 'Software') until you have carefully |
| 396 | read the full terms and conditions of the LICENSE located in this software | 566 | read the full terms and conditions of the file COPYING located in this software |
| 397 | package. By loading or using the Software, you agree to the terms of this | 567 | package. By loading or using the Software, you agree to the terms of this |
| 398 | Agreement. If you do not agree with the terms of this Agreement, do not | 568 | Agreement. If you do not agree with the terms of this Agreement, do not |
| 399 | install or use the Software. | 569 | install or use the Software. |
| 400 | 570 | ||
| 401 | * Other names and brands may be claimed as the property of others. | 571 | * Other names and brands may be claimed as the property of others. |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index 26364d06ae92..f12007b80a46 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
| @@ -355,6 +355,13 @@ somaxconn - INTEGER | |||
| 355 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning | 355 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning |
| 356 | for TCP sockets. | 356 | for TCP sockets. |
| 357 | 357 | ||
| 358 | tcp_workaround_signed_windows - BOOLEAN | ||
| 359 | If set, assume no receipt of a window scaling option means the | ||
| 360 | remote TCP is broken and treats the window as a signed quantity. | ||
| 361 | If unset, assume the remote TCP is not broken even if we do | ||
| 362 | not receive a window scaling option from them. | ||
| 363 | Default: 0 | ||
| 364 | |||
| 358 | IP Variables: | 365 | IP Variables: |
| 359 | 366 | ||
| 360 | ip_local_port_range - 2 INTEGERS | 367 | ip_local_port_range - 2 INTEGERS |
| @@ -619,6 +626,11 @@ arp_ignore - INTEGER | |||
| 619 | The max value from conf/{all,interface}/arp_ignore is used | 626 | The max value from conf/{all,interface}/arp_ignore is used |
| 620 | when ARP request is received on the {interface} | 627 | when ARP request is received on the {interface} |
| 621 | 628 | ||
| 629 | arp_accept - BOOLEAN | ||
| 630 | Define behavior when gratuitous arp replies are received: | ||
| 631 | 0 - drop gratuitous arp frames | ||
| 632 | 1 - accept gratuitous arp frames | ||
| 633 | |||
| 622 | app_solicit - INTEGER | 634 | app_solicit - INTEGER |
| 623 | The maximum number of probes to send to the user space ARP daemon | 635 | The maximum number of probes to send to the user space ARP daemon |
| 624 | via netlink before dropping back to multicast probes (see | 636 | via netlink before dropping back to multicast probes (see |
| @@ -717,6 +729,33 @@ accept_ra - BOOLEAN | |||
| 717 | Functional default: enabled if local forwarding is disabled. | 729 | Functional default: enabled if local forwarding is disabled. |
| 718 | disabled if local forwarding is enabled. | 730 | disabled if local forwarding is enabled. |
| 719 | 731 | ||
| 732 | accept_ra_defrtr - BOOLEAN | ||
| 733 | Learn default router in Router Advertisement. | ||
| 734 | |||
| 735 | Functional default: enabled if accept_ra is enabled. | ||
| 736 | disabled if accept_ra is disabled. | ||
| 737 | |||
| 738 | accept_ra_pinfo - BOOLEAN | ||
| 739 | Learn Prefix Inforamtion in Router Advertisement. | ||
| 740 | |||
| 741 | Functional default: enabled if accept_ra is enabled. | ||
| 742 | disabled if accept_ra is disabled. | ||
| 743 | |||
| 744 | accept_ra_rt_info_max_plen - INTEGER | ||
| 745 | Maximum prefix length of Route Information in RA. | ||
| 746 | |||
| 747 | Route Information w/ prefix larger than or equal to this | ||
| 748 | variable shall be ignored. | ||
| 749 | |||
| 750 | Functional default: 0 if accept_ra_rtr_pref is enabled. | ||
| 751 | -1 if accept_ra_rtr_pref is disabled. | ||
| 752 | |||
| 753 | accept_ra_rtr_pref - BOOLEAN | ||
| 754 | Accept Router Preference in RA. | ||
| 755 | |||
| 756 | Functional default: enabled if accept_ra is enabled. | ||
| 757 | disabled if accept_ra is disabled. | ||
| 758 | |||
| 720 | accept_redirects - BOOLEAN | 759 | accept_redirects - BOOLEAN |
| 721 | Accept Redirects. | 760 | Accept Redirects. |
| 722 | 761 | ||
| @@ -727,8 +766,8 @@ autoconf - BOOLEAN | |||
| 727 | Autoconfigure addresses using Prefix Information in Router | 766 | Autoconfigure addresses using Prefix Information in Router |
| 728 | Advertisements. | 767 | Advertisements. |
| 729 | 768 | ||
| 730 | Functional default: enabled if accept_ra is enabled. | 769 | Functional default: enabled if accept_ra_pinfo is enabled. |
| 731 | disabled if accept_ra is disabled. | 770 | disabled if accept_ra_pinfo is disabled. |
| 732 | 771 | ||
| 733 | dad_transmits - INTEGER | 772 | dad_transmits - INTEGER |
| 734 | The amount of Duplicate Address Detection probes to send. | 773 | The amount of Duplicate Address Detection probes to send. |
| @@ -771,6 +810,12 @@ mtu - INTEGER | |||
| 771 | Default Maximum Transfer Unit | 810 | Default Maximum Transfer Unit |
| 772 | Default: 1280 (IPv6 required minimum) | 811 | Default: 1280 (IPv6 required minimum) |
| 773 | 812 | ||
| 813 | router_probe_interval - INTEGER | ||
| 814 | Minimum interval (in seconds) between Router Probing described | ||
| 815 | in RFC4191. | ||
| 816 | |||
| 817 | Default: 60 | ||
| 818 | |||
| 774 | router_solicitation_delay - INTEGER | 819 | router_solicitation_delay - INTEGER |
| 775 | Number of seconds to wait after interface is brought up | 820 | Number of seconds to wait after interface is brought up |
| 776 | before sending Router Solicitations. | 821 | before sending Router Solicitations. |
diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt index cc4b4d04129c..278771c9ad99 100644 --- a/Documentation/networking/pktgen.txt +++ b/Documentation/networking/pktgen.txt | |||
| @@ -109,6 +109,22 @@ Examples: | |||
| 109 | cycle through the port range. | 109 | cycle through the port range. |
| 110 | pgset "udp_dst_max 9" set UDP destination port max. | 110 | pgset "udp_dst_max 9" set UDP destination port max. |
| 111 | 111 | ||
| 112 | pgset "mpls 0001000a,0002000a,0000000a" set MPLS labels (in this example | ||
| 113 | outer label=16,middle label=32, | ||
| 114 | inner label=0 (IPv4 NULL)) Note that | ||
| 115 | there must be no spaces between the | ||
| 116 | arguments. Leading zeros are required. | ||
| 117 | Do not set the bottom of stack bit, | ||
| 118 | thats done automatically. If you do | ||
| 119 | set the bottom of stack bit, that | ||
| 120 | indicates that you want to randomly | ||
| 121 | generate that address and the flag | ||
| 122 | MPLS_RND will be turned on. You | ||
| 123 | can have any mix of random and fixed | ||
| 124 | labels in the label stack. | ||
| 125 | |||
| 126 | pgset "mpls 0" turn off mpls (or any invalid argument works too!) | ||
| 127 | |||
| 112 | pgset stop aborts injection. Also, ^C aborts generator. | 128 | pgset stop aborts injection. Also, ^C aborts generator. |
| 113 | 129 | ||
| 114 | 130 | ||
| @@ -167,6 +183,8 @@ pkt_size | |||
| 167 | min_pkt_size | 183 | min_pkt_size |
| 168 | max_pkt_size | 184 | max_pkt_size |
| 169 | 185 | ||
| 186 | mpls | ||
| 187 | |||
| 170 | udp_src_min | 188 | udp_src_min |
| 171 | udp_src_max | 189 | udp_src_max |
| 172 | 190 | ||
| @@ -211,4 +229,4 @@ Grant Grundler for testing on IA-64 and parisc, Harald Welte, Lennert Buytenhek | |||
| 211 | Stephen Hemminger, Andi Kleen, Dave Miller and many others. | 229 | Stephen Hemminger, Andi Kleen, Dave Miller and many others. |
| 212 | 230 | ||
| 213 | 231 | ||
| 214 | Good luck with the linux net-development. \ No newline at end of file | 232 | Good luck with the linux net-development. |
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt index b28b7f04abb8..d7814a113ee1 100644 --- a/Documentation/power/swsusp.txt +++ b/Documentation/power/swsusp.txt | |||
| @@ -17,6 +17,11 @@ Some warnings, first. | |||
| 17 | * but it will probably only crash. | 17 | * but it will probably only crash. |
| 18 | * | 18 | * |
| 19 | * (*) suspend/resume support is needed to make it safe. | 19 | * (*) suspend/resume support is needed to make it safe. |
| 20 | * | ||
| 21 | * If you have any filesystems on USB devices mounted before suspend, | ||
| 22 | * they won't be accessible after resume and you may lose data, as though | ||
| 23 | * you have unplugged the USB devices with mounted filesystems on them | ||
| 24 | * (see the FAQ below for details). | ||
| 20 | 25 | ||
| 21 | You need to append resume=/dev/your_swap_partition to kernel command | 26 | You need to append resume=/dev/your_swap_partition to kernel command |
| 22 | line. Then you suspend by | 27 | line. Then you suspend by |
| @@ -27,19 +32,18 @@ echo shutdown > /sys/power/disk; echo disk > /sys/power/state | |||
| 27 | 32 | ||
| 28 | echo platform > /sys/power/disk; echo disk > /sys/power/state | 33 | echo platform > /sys/power/disk; echo disk > /sys/power/state |
| 29 | 34 | ||
| 35 | . If you have SATA disks, you'll need recent kernels with SATA suspend | ||
| 36 | support. For suspend and resume to work, make sure your disk drivers | ||
| 37 | are built into kernel -- not modules. [There's way to make | ||
| 38 | suspend/resume with modular disk drivers, see FAQ, but you probably | ||
| 39 | should not do that.] | ||
| 40 | |||
| 30 | If you want to limit the suspend image size to N bytes, do | 41 | If you want to limit the suspend image size to N bytes, do |
| 31 | 42 | ||
| 32 | echo N > /sys/power/image_size | 43 | echo N > /sys/power/image_size |
| 33 | 44 | ||
| 34 | before suspend (it is limited to 500 MB by default). | 45 | before suspend (it is limited to 500 MB by default). |
| 35 | 46 | ||
| 36 | Encrypted suspend image: | ||
| 37 | ------------------------ | ||
| 38 | If you want to store your suspend image encrypted with a temporary | ||
| 39 | key to prevent data gathering after resume you must compile | ||
| 40 | crypto and the aes algorithm into the kernel - modules won't work | ||
| 41 | as they cannot be loaded at resume time. | ||
| 42 | |||
| 43 | 47 | ||
| 44 | Article about goals and implementation of Software Suspend for Linux | 48 | Article about goals and implementation of Software Suspend for Linux |
| 45 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 49 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| @@ -333,4 +337,37 @@ init=/bin/bash, then swapon and starting suspend sequence manually | |||
| 333 | usually does the trick. Then it is good idea to try with latest | 337 | usually does the trick. Then it is good idea to try with latest |
| 334 | vanilla kernel. | 338 | vanilla kernel. |
| 335 | 339 | ||
| 340 | Q: How can distributions ship a swsusp-supporting kernel with modular | ||
| 341 | disk drivers (especially SATA)? | ||
| 342 | |||
| 343 | A: Well, it can be done, load the drivers, then do echo into | ||
| 344 | /sys/power/disk/resume file from initrd. Be sure not to mount | ||
| 345 | anything, not even read-only mount, or you are going to lose your | ||
| 346 | data. | ||
| 347 | |||
| 348 | Q: How do I make suspend more verbose? | ||
| 349 | |||
| 350 | A: If you want to see any non-error kernel messages on the virtual | ||
| 351 | terminal the kernel switches to during suspend, you have to set the | ||
| 352 | kernel console loglevel to at least 5, for example by doing | ||
| 353 | |||
| 354 | echo 5 > /proc/sys/kernel/printk | ||
| 355 | |||
| 356 | Q: Is this true that if I have a mounted filesystem on a USB device and | ||
| 357 | I suspend to disk, I can lose data unless the filesystem has been mounted | ||
| 358 | with "sync"? | ||
| 359 | |||
| 360 | A: That's right. It depends on your hardware, and it could be true even for | ||
| 361 | suspend-to-RAM. In fact, even with "-o sync" you can lose data if your | ||
| 362 | programs have information in buffers they haven't written out to disk. | ||
| 363 | |||
| 364 | If you're lucky, your hardware will support low-power modes for USB | ||
| 365 | controllers while the system is asleep. Lots of hardware doesn't, | ||
| 366 | however. Shutting off the power to a USB controller is equivalent to | ||
| 367 | unplugging all the attached devices. | ||
| 368 | |||
| 369 | Remember that it's always a bad idea to unplug a disk drive containing a | ||
| 370 | mounted filesystem. With USB that's true even when your system is asleep! | ||
| 371 | The safest thing is to unmount all USB-based filesystems before suspending | ||
| 372 | and remount them after resuming. | ||
| 336 | 373 | ||
diff --git a/Documentation/power/userland-swsusp.txt b/Documentation/power/userland-swsusp.txt new file mode 100644 index 000000000000..94058220aaf0 --- /dev/null +++ b/Documentation/power/userland-swsusp.txt | |||
| @@ -0,0 +1,149 @@ | |||
| 1 | Documentation for userland software suspend interface | ||
| 2 | (C) 2006 Rafael J. Wysocki <rjw@sisk.pl> | ||
| 3 | |||
| 4 | First, the warnings at the beginning of swsusp.txt still apply. | ||
| 5 | |||
| 6 | Second, you should read the FAQ in swsusp.txt _now_ if you have not | ||
| 7 | done it already. | ||
| 8 | |||
| 9 | Now, to use the userland interface for software suspend you need special | ||
| 10 | utilities that will read/write the system memory snapshot from/to the | ||
| 11 | kernel. Such utilities are available, for example, from | ||
| 12 | <http://www.sisk.pl/kernel/utilities/suspend>. You may want to have | ||
| 13 | a look at them if you are going to develop your own suspend/resume | ||
| 14 | utilities. | ||
| 15 | |||
| 16 | The interface consists of a character device providing the open(), | ||
| 17 | release(), read(), and write() operations as well as several ioctl() | ||
| 18 | commands defined in kernel/power/power.h. The major and minor | ||
| 19 | numbers of the device are, respectively, 10 and 231, and they can | ||
| 20 | be read from /sys/class/misc/snapshot/dev. | ||
| 21 | |||
| 22 | The device can be open either for reading or for writing. If open for | ||
| 23 | reading, it is considered to be in the suspend mode. Otherwise it is | ||
| 24 | assumed to be in the resume mode. The device cannot be open for reading | ||
| 25 | and writing. It is also impossible to have the device open more than once | ||
| 26 | at a time. | ||
| 27 | |||
| 28 | The ioctl() commands recognized by the device are: | ||
| 29 | |||
| 30 | SNAPSHOT_FREEZE - freeze user space processes (the current process is | ||
| 31 | not frozen); this is required for SNAPSHOT_ATOMIC_SNAPSHOT | ||
| 32 | and SNAPSHOT_ATOMIC_RESTORE to succeed | ||
| 33 | |||
| 34 | SNAPSHOT_UNFREEZE - thaw user space processes frozen by SNAPSHOT_FREEZE | ||
| 35 | |||
| 36 | SNAPSHOT_ATOMIC_SNAPSHOT - create a snapshot of the system memory; the | ||
| 37 | last argument of ioctl() should be a pointer to an int variable, | ||
| 38 | the value of which will indicate whether the call returned after | ||
| 39 | creating the snapshot (1) or after restoring the system memory state | ||
| 40 | from it (0) (after resume the system finds itself finishing the | ||
| 41 | SNAPSHOT_ATOMIC_SNAPSHOT ioctl() again); after the snapshot | ||
| 42 | has been created the read() operation can be used to transfer | ||
| 43 | it out of the kernel | ||
| 44 | |||
| 45 | SNAPSHOT_ATOMIC_RESTORE - restore the system memory state from the | ||
| 46 | uploaded snapshot image; before calling it you should transfer | ||
| 47 | the system memory snapshot back to the kernel using the write() | ||
| 48 | operation; this call will not succeed if the snapshot | ||
| 49 | image is not available to the kernel | ||
| 50 | |||
| 51 | SNAPSHOT_FREE - free memory allocated for the snapshot image | ||
| 52 | |||
| 53 | SNAPSHOT_SET_IMAGE_SIZE - set the preferred maximum size of the image | ||
| 54 | (the kernel will do its best to ensure the image size will not exceed | ||
| 55 | this number, but if it turns out to be impossible, the kernel will | ||
| 56 | create the smallest image possible) | ||
| 57 | |||
| 58 | SNAPSHOT_AVAIL_SWAP - return the amount of available swap in bytes (the last | ||
| 59 | argument should be a pointer to an unsigned int variable that will | ||
| 60 | contain the result if the call is successful). | ||
| 61 | |||
| 62 | SNAPSHOT_GET_SWAP_PAGE - allocate a swap page from the resume partition | ||
| 63 | (the last argument should be a pointer to a loff_t variable that | ||
| 64 | will contain the swap page offset if the call is successful) | ||
| 65 | |||
| 66 | SNAPSHOT_FREE_SWAP_PAGES - free all swap pages allocated with | ||
| 67 | SNAPSHOT_GET_SWAP_PAGE | ||
| 68 | |||
| 69 | SNAPSHOT_SET_SWAP_FILE - set the resume partition (the last ioctl() argument | ||
| 70 | should specify the device's major and minor numbers in the old | ||
| 71 | two-byte format, as returned by the stat() function in the .st_rdev | ||
| 72 | member of the stat structure); it is recommended to always use this | ||
| 73 | call, because the code to set the resume partition could be removed from | ||
| 74 | future kernels | ||
| 75 | |||
| 76 | The device's read() operation can be used to transfer the snapshot image from | ||
| 77 | the kernel. It has the following limitations: | ||
| 78 | - you cannot read() more than one virtual memory page at a time | ||
| 79 | - read()s accross page boundaries are impossible (ie. if ypu read() 1/2 of | ||
| 80 | a page in the previous call, you will only be able to read() | ||
| 81 | _at_ _most_ 1/2 of the page in the next call) | ||
| 82 | |||
| 83 | The device's write() operation is used for uploading the system memory snapshot | ||
| 84 | into the kernel. It has the same limitations as the read() operation. | ||
| 85 | |||
| 86 | The release() operation frees all memory allocated for the snapshot image | ||
| 87 | and all swap pages allocated with SNAPSHOT_GET_SWAP_PAGE (if any). | ||
| 88 | Thus it is not necessary to use either SNAPSHOT_FREE or | ||
| 89 | SNAPSHOT_FREE_SWAP_PAGES before closing the device (in fact it will also | ||
| 90 | unfreeze user space processes frozen by SNAPSHOT_UNFREEZE if they are | ||
| 91 | still frozen when the device is being closed). | ||
| 92 | |||
| 93 | Currently it is assumed that the userland utilities reading/writing the | ||
| 94 | snapshot image from/to the kernel will use a swap parition, called the resume | ||
| 95 | partition, as storage space. However, this is not really required, as they | ||
| 96 | can use, for example, a special (blank) suspend partition or a file on a partition | ||
| 97 | that is unmounted before SNAPSHOT_ATOMIC_SNAPSHOT and mounted afterwards. | ||
| 98 | |||
| 99 | These utilities SHOULD NOT make any assumptions regarding the ordering of | ||
| 100 | data within the snapshot image, except for the image header that MAY be | ||
| 101 | assumed to start with an swsusp_info structure, as specified in | ||
| 102 | kernel/power/power.h. This structure MAY be used by the userland utilities | ||
| 103 | to obtain some information about the snapshot image, such as the size | ||
| 104 | of the snapshot image, including the metadata and the header itself, | ||
| 105 | contained in the .size member of swsusp_info. | ||
| 106 | |||
| 107 | The snapshot image MUST be written to the kernel unaltered (ie. all of the image | ||
| 108 | data, metadata and header MUST be written in _exactly_ the same amount, form | ||
| 109 | and order in which they have been read). Otherwise, the behavior of the | ||
| 110 | resumed system may be totally unpredictable. | ||
| 111 | |||
| 112 | While executing SNAPSHOT_ATOMIC_RESTORE the kernel checks if the | ||
| 113 | structure of the snapshot image is consistent with the information stored | ||
| 114 | in the image header. If any inconsistencies are detected, | ||
| 115 | SNAPSHOT_ATOMIC_RESTORE will not succeed. Still, this is not a fool-proof | ||
| 116 | mechanism and the userland utilities using the interface SHOULD use additional | ||
| 117 | means, such as checksums, to ensure the integrity of the snapshot image. | ||
| 118 | |||
| 119 | The suspending and resuming utilities MUST lock themselves in memory, | ||
| 120 | preferrably using mlockall(), before calling SNAPSHOT_FREEZE. | ||
| 121 | |||
| 122 | The suspending utility MUST check the value stored by SNAPSHOT_ATOMIC_SNAPSHOT | ||
| 123 | in the memory location pointed to by the last argument of ioctl() and proceed | ||
| 124 | in accordance with it: | ||
| 125 | 1. If the value is 1 (ie. the system memory snapshot has just been | ||
| 126 | created and the system is ready for saving it): | ||
| 127 | (a) The suspending utility MUST NOT close the snapshot device | ||
| 128 | _unless_ the whole suspend procedure is to be cancelled, in | ||
| 129 | which case, if the snapshot image has already been saved, the | ||
| 130 | suspending utility SHOULD destroy it, preferrably by zapping | ||
| 131 | its header. If the suspend is not to be cancelled, the | ||
| 132 | system MUST be powered off or rebooted after the snapshot | ||
| 133 | image has been saved. | ||
| 134 | (b) The suspending utility SHOULD NOT attempt to perform any | ||
| 135 | file system operations (including reads) on the file systems | ||
| 136 | that were mounted before SNAPSHOT_ATOMIC_SNAPSHOT has been | ||
| 137 | called. However, it MAY mount a file system that was not | ||
| 138 | mounted at that time and perform some operations on it (eg. | ||
| 139 | use it for saving the image). | ||
| 140 | 2. If the value is 0 (ie. the system state has just been restored from | ||
| 141 | the snapshot image), the suspending utility MUST close the snapshot | ||
| 142 | device. Afterwards it will be treated as a regular userland process, | ||
| 143 | so it need not exit. | ||
| 144 | |||
| 145 | The resuming utility SHOULD NOT attempt to mount any file systems that could | ||
| 146 | be mounted before suspend and SHOULD NOT attempt to perform any operations | ||
| 147 | involving such file systems. | ||
| 148 | |||
| 149 | For details, please refer to the source code. | ||
diff --git a/Documentation/power/video.txt b/Documentation/power/video.txt index 912bed87c758..d18a57d1a531 100644 --- a/Documentation/power/video.txt +++ b/Documentation/power/video.txt | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | 1 | ||
| 2 | Video issues with S3 resume | 2 | Video issues with S3 resume |
| 3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 4 | 2003-2005, Pavel Machek | 4 | 2003-2006, Pavel Machek |
| 5 | 5 | ||
| 6 | During S3 resume, hardware needs to be reinitialized. For most | 6 | During S3 resume, hardware needs to be reinitialized. For most |
| 7 | devices, this is easy, and kernel driver knows how to do | 7 | devices, this is easy, and kernel driver knows how to do |
| @@ -15,6 +15,27 @@ run normally so video card is normally initialized. It should not be | |||
| 15 | problem for S1 standby, because hardware should retain its state over | 15 | problem for S1 standby, because hardware should retain its state over |
| 16 | that. | 16 | that. |
| 17 | 17 | ||
| 18 | We either have to run video BIOS during early resume, or interpret it | ||
| 19 | using vbetool later, or maybe nothing is neccessary on particular | ||
| 20 | system because video state is preserved. Unfortunately different | ||
| 21 | methods work on different systems, and no known method suits all of | ||
| 22 | them. | ||
| 23 | |||
| 24 | Userland application called s2ram has been developed; it contains long | ||
| 25 | whitelist of systems, and automatically selects working method for a | ||
| 26 | given system. It can be downloaded from CVS at | ||
| 27 | www.sf.net/projects/suspend . If you get a system that is not in the | ||
| 28 | whitelist, please try to find a working solution, and submit whitelist | ||
| 29 | entry so that work does not need to be repeated. | ||
| 30 | |||
| 31 | Currently, VBE_SAVE method (6 below) works on most | ||
| 32 | systems. Unfortunately, vbetool only runs after userland is resumed, | ||
| 33 | so it makes debugging of early resume problems | ||
| 34 | hard/impossible. Methods that do not rely on userland are preferable. | ||
| 35 | |||
| 36 | Details | ||
| 37 | ~~~~~~~ | ||
| 38 | |||
| 18 | There are a few types of systems where video works after S3 resume: | 39 | There are a few types of systems where video works after S3 resume: |
| 19 | 40 | ||
| 20 | (1) systems where video state is preserved over S3. | 41 | (1) systems where video state is preserved over S3. |
| @@ -104,6 +125,7 @@ HP NX7000 ??? (*) | |||
| 104 | HP Pavilion ZD7000 vbetool post needed, need open-source nv driver for X | 125 | HP Pavilion ZD7000 vbetool post needed, need open-source nv driver for X |
| 105 | HP Omnibook XE3 athlon version none (1) | 126 | HP Omnibook XE3 athlon version none (1) |
| 106 | HP Omnibook XE3GC none (1), video is S3 Savage/IX-MV | 127 | HP Omnibook XE3GC none (1), video is S3 Savage/IX-MV |
| 128 | HP Omnibook 5150 none (1), (S1 also works OK) | ||
| 107 | IBM TP T20, model 2647-44G none (1), video is S3 Inc. 86C270-294 Savage/IX-MV, vesafb gets "interesting" but X work. | 129 | IBM TP T20, model 2647-44G none (1), video is S3 Inc. 86C270-294 Savage/IX-MV, vesafb gets "interesting" but X work. |
| 108 | IBM TP A31 / Type 2652-M5G s3_mode (3) [works ok with BIOS 1.04 2002-08-23, but not at all with BIOS 1.11 2004-11-05 :-(] | 130 | IBM TP A31 / Type 2652-M5G s3_mode (3) [works ok with BIOS 1.04 2002-08-23, but not at all with BIOS 1.11 2004-11-05 :-(] |
| 109 | IBM TP R32 / Type 2658-MMG none (1) | 131 | IBM TP R32 / Type 2658-MMG none (1) |
| @@ -120,18 +142,24 @@ IBM ThinkPad T42p (2373-GTG) s3_bios (2) | |||
| 120 | IBM TP X20 ??? (*) | 142 | IBM TP X20 ??? (*) |
| 121 | IBM TP X30 s3_bios (2) | 143 | IBM TP X30 s3_bios (2) |
| 122 | IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight. | 144 | IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight. |
| 123 | IBM TP X32 none (1), but backlight is on and video is trashed after long suspend | 145 | IBM TP X32 none (1), but backlight is on and video is trashed after long suspend. s3_bios,s3_mode (4) works too. Perhaps that gets better results? |
| 124 | IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) | 146 | IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) |
| 147 | IBM TP 600e none(1), but a switch to console and back to X is needed | ||
| 125 | Medion MD4220 ??? (*) | 148 | Medion MD4220 ??? (*) |
| 126 | Samsung P35 vbetool needed (6) | 149 | Samsung P35 vbetool needed (6) |
| 127 | Sharp PC-AR10 (ATI rage) none (1) | 150 | Sharp PC-AR10 (ATI rage) none (1), backlight does not switch off |
| 128 | Sony Vaio PCG-C1VRX/K s3_bios (2) | 151 | Sony Vaio PCG-C1VRX/K s3_bios (2) |
| 129 | Sony Vaio PCG-F403 ??? (*) | 152 | Sony Vaio PCG-F403 ??? (*) |
| 153 | Sony Vaio PCG-GRT995MP none (1), works with 'nv' X driver | ||
| 154 | Sony Vaio PCG-GR7/K none (1), but needs radeonfb, use radeontool (http://fdd.com/software/radeon/) to turn off backlight. | ||
| 130 | Sony Vaio PCG-N505SN ??? (*) | 155 | Sony Vaio PCG-N505SN ??? (*) |
| 131 | Sony Vaio vgn-s260 X or boot-radeon can init it (5) | 156 | Sony Vaio vgn-s260 X or boot-radeon can init it (5) |
| 157 | Sony Vaio vgn-S580BH vga=normal, but suspend from X. Console will be blank unless you return to X. | ||
| 158 | Sony Vaio vgn-FS115B s3_bios (2),s3_mode (4) | ||
| 132 | Toshiba Libretto L5 none (1) | 159 | Toshiba Libretto L5 none (1) |
| 133 | Toshiba Satellite 4030CDT s3_mode (3) | 160 | Toshiba Portege 3020CT s3_mode (3) |
| 134 | Toshiba Satellite 4080XCDT s3_mode (3) | 161 | Toshiba Satellite 4030CDT s3_mode (3) (S1 also works OK) |
| 162 | Toshiba Satellite 4080XCDT s3_mode (3) (S1 also works OK) | ||
| 135 | Toshiba Satellite 4090XCDT ??? (*) | 163 | Toshiba Satellite 4090XCDT ??? (*) |
| 136 | Toshiba Satellite P10-554 s3_bios,s3_mode (4)(****) | 164 | Toshiba Satellite P10-554 s3_bios,s3_mode (4)(****) |
| 137 | Toshiba M30 (2) xor X with nvidia driver using internal AGP | 165 | Toshiba M30 (2) xor X with nvidia driver using internal AGP |
| @@ -151,39 +179,3 @@ Asus A7V8X nVidia RIVA TNT2 model 64 s3_bios,s3_mode (4) | |||
| 151 | (***) To be tested with a newer kernel. | 179 | (***) To be tested with a newer kernel. |
| 152 | 180 | ||
| 153 | (****) Not with SMP kernel, UP only. | 181 | (****) Not with SMP kernel, UP only. |
| 154 | |||
| 155 | VBEtool details | ||
| 156 | ~~~~~~~~~~~~~~~ | ||
| 157 | (with thanks to Carl-Daniel Hailfinger) | ||
| 158 | |||
| 159 | First, boot into X and run the following script ONCE: | ||
| 160 | #!/bin/bash | ||
| 161 | statedir=/root/s3/state | ||
| 162 | mkdir -p $statedir | ||
| 163 | chvt 2 | ||
| 164 | sleep 1 | ||
| 165 | vbetool vbestate save >$statedir/vbe | ||
| 166 | |||
| 167 | |||
| 168 | To suspend and resume properly, call the following script as root: | ||
| 169 | #!/bin/bash | ||
| 170 | statedir=/root/s3/state | ||
| 171 | curcons=`fgconsole` | ||
| 172 | fuser /dev/tty$curcons 2>/dev/null|xargs ps -o comm= -p|grep -q X && chvt 2 | ||
| 173 | cat /dev/vcsa >$statedir/vcsa | ||
| 174 | sync | ||
| 175 | echo 3 >/proc/acpi/sleep | ||
| 176 | sync | ||
| 177 | vbetool post | ||
| 178 | vbetool vbestate restore <$statedir/vbe | ||
| 179 | cat $statedir/vcsa >/dev/vcsa | ||
| 180 | rckbd restart | ||
| 181 | chvt $[curcons%6+1] | ||
| 182 | chvt $curcons | ||
| 183 | |||
| 184 | |||
| 185 | Unless you change your graphics card or other hardware configuration, | ||
| 186 | the state once saved will be OK for every resume afterwards. | ||
| 187 | NOTE: The "rckbd restart" command may be different for your | ||
| 188 | distribution. Simply replace it with the command you would use to | ||
| 189 | set the fonts on screen. | ||
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index d02c64953dcd..ee551c6ea235 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
| @@ -1365,6 +1365,78 @@ platforms are moved over to use the flattened-device-tree model. | |||
| 1365 | }; | 1365 | }; |
| 1366 | 1366 | ||
| 1367 | 1367 | ||
| 1368 | g) Freescale SOC SEC Security Engines | ||
| 1369 | |||
| 1370 | Required properties: | ||
| 1371 | |||
| 1372 | - device_type : Should be "crypto" | ||
| 1373 | - model : Model of the device. Should be "SEC1" or "SEC2" | ||
| 1374 | - compatible : Should be "talitos" | ||
| 1375 | - reg : Offset and length of the register set for the device | ||
| 1376 | - interrupts : <a b> where a is the interrupt number and b is a | ||
| 1377 | field that represents an encoding of the sense and level | ||
| 1378 | information for the interrupt. This should be encoded based on | ||
| 1379 | the information in section 2) depending on the type of interrupt | ||
| 1380 | controller you have. | ||
| 1381 | - interrupt-parent : the phandle for the interrupt controller that | ||
| 1382 | services interrupts for this device. | ||
| 1383 | - num-channels : An integer representing the number of channels | ||
| 1384 | available. | ||
| 1385 | - channel-fifo-len : An integer representing the number of | ||
| 1386 | descriptor pointers each channel fetch fifo can hold. | ||
| 1387 | - exec-units-mask : The bitmask representing what execution units | ||
| 1388 | (EUs) are available. It's a single 32 bit cell. EU information | ||
| 1389 | should be encoded following the SEC's Descriptor Header Dword | ||
| 1390 | EU_SEL0 field documentation, i.e. as follows: | ||
| 1391 | |||
| 1392 | bit 0 = reserved - should be 0 | ||
| 1393 | bit 1 = set if SEC has the ARC4 EU (AFEU) | ||
| 1394 | bit 2 = set if SEC has the DES/3DES EU (DEU) | ||
| 1395 | bit 3 = set if SEC has the message digest EU (MDEU) | ||
| 1396 | bit 4 = set if SEC has the random number generator EU (RNG) | ||
| 1397 | bit 5 = set if SEC has the public key EU (PKEU) | ||
| 1398 | bit 6 = set if SEC has the AES EU (AESU) | ||
| 1399 | bit 7 = set if SEC has the Kasumi EU (KEU) | ||
| 1400 | |||
| 1401 | bits 8 through 31 are reserved for future SEC EUs. | ||
| 1402 | |||
| 1403 | - descriptor-types-mask : The bitmask representing what descriptors | ||
| 1404 | are available. It's a single 32 bit cell. Descriptor type | ||
| 1405 | information should be encoded following the SEC's Descriptor | ||
| 1406 | Header Dword DESC_TYPE field documentation, i.e. as follows: | ||
| 1407 | |||
| 1408 | bit 0 = set if SEC supports the aesu_ctr_nonsnoop desc. type | ||
| 1409 | bit 1 = set if SEC supports the ipsec_esp descriptor type | ||
| 1410 | bit 2 = set if SEC supports the common_nonsnoop desc. type | ||
| 1411 | bit 3 = set if SEC supports the 802.11i AES ccmp desc. type | ||
| 1412 | bit 4 = set if SEC supports the hmac_snoop_no_afeu desc. type | ||
| 1413 | bit 5 = set if SEC supports the srtp descriptor type | ||
| 1414 | bit 6 = set if SEC supports the non_hmac_snoop_no_afeu desc.type | ||
| 1415 | bit 7 = set if SEC supports the pkeu_assemble descriptor type | ||
| 1416 | bit 8 = set if SEC supports the aesu_key_expand_output desc.type | ||
| 1417 | bit 9 = set if SEC supports the pkeu_ptmul descriptor type | ||
| 1418 | bit 10 = set if SEC supports the common_nonsnoop_afeu desc. type | ||
| 1419 | bit 11 = set if SEC supports the pkeu_ptadd_dbl descriptor type | ||
| 1420 | |||
| 1421 | ..and so on and so forth. | ||
| 1422 | |||
| 1423 | Example: | ||
| 1424 | |||
| 1425 | /* MPC8548E */ | ||
| 1426 | crypto@30000 { | ||
| 1427 | device_type = "crypto"; | ||
| 1428 | model = "SEC2"; | ||
| 1429 | compatible = "talitos"; | ||
| 1430 | reg = <30000 10000>; | ||
| 1431 | interrupts = <1d 3>; | ||
| 1432 | interrupt-parent = <40000>; | ||
| 1433 | num-channels = <4>; | ||
| 1434 | channel-fifo-len = <24>; | ||
| 1435 | exec-units-mask = <000000fe>; | ||
| 1436 | descriptor-types-mask = <073f1127>; | ||
| 1437 | }; | ||
| 1438 | |||
| 1439 | |||
| 1368 | More devices will be defined as this spec matures. | 1440 | More devices will be defined as this spec matures. |
| 1369 | 1441 | ||
| 1370 | 1442 | ||
diff --git a/Documentation/powerpc/eeh-pci-error-recovery.txt b/Documentation/powerpc/eeh-pci-error-recovery.txt index 67a11a36270c..3764dd4b12cb 100644 --- a/Documentation/powerpc/eeh-pci-error-recovery.txt +++ b/Documentation/powerpc/eeh-pci-error-recovery.txt | |||
| @@ -121,7 +121,7 @@ accomplished. | |||
| 121 | 121 | ||
| 122 | EEH must be enabled in the PHB's very early during the boot process, | 122 | EEH must be enabled in the PHB's very early during the boot process, |
| 123 | and if a PCI slot is hot-plugged. The former is performed by | 123 | and if a PCI slot is hot-plugged. The former is performed by |
| 124 | eeh_init() in arch/ppc64/kernel/eeh.c, and the later by | 124 | eeh_init() in arch/powerpc/platforms/pseries/eeh.c, and the later by |
| 125 | drivers/pci/hotplug/pSeries_pci.c calling in to the eeh.c code. | 125 | drivers/pci/hotplug/pSeries_pci.c calling in to the eeh.c code. |
| 126 | EEH must be enabled before a PCI scan of the device can proceed. | 126 | EEH must be enabled before a PCI scan of the device can proceed. |
| 127 | Current Power5 hardware will not work unless EEH is enabled; | 127 | Current Power5 hardware will not work unless EEH is enabled; |
| @@ -133,7 +133,7 @@ error. Given an arbitrary address, the routine | |||
| 133 | pci_get_device_by_addr() will find the pci device associated | 133 | pci_get_device_by_addr() will find the pci device associated |
| 134 | with that address (if any). | 134 | with that address (if any). |
| 135 | 135 | ||
| 136 | The default include/asm-ppc64/io.h macros readb(), inb(), insb(), | 136 | The default include/asm-powerpc/io.h macros readb(), inb(), insb(), |
| 137 | etc. include a check to see if the i/o read returned all-0xff's. | 137 | etc. include a check to see if the i/o read returned all-0xff's. |
| 138 | If so, these make a call to eeh_dn_check_failure(), which in turn | 138 | If so, these make a call to eeh_dn_check_failure(), which in turn |
| 139 | asks the firmware if the all-ff's value is the sign of a true EEH | 139 | asks the firmware if the all-ff's value is the sign of a true EEH |
| @@ -143,11 +143,12 @@ seen in /proc/ppc64/eeh (subject to change). Normally, almost | |||
| 143 | all of these occur during boot, when the PCI bus is scanned, where | 143 | all of these occur during boot, when the PCI bus is scanned, where |
| 144 | a large number of 0xff reads are part of the bus scan procedure. | 144 | a large number of 0xff reads are part of the bus scan procedure. |
| 145 | 145 | ||
| 146 | If a frozen slot is detected, code in arch/ppc64/kernel/eeh.c will | 146 | If a frozen slot is detected, code in |
| 147 | print a stack trace to syslog (/var/log/messages). This stack trace | 147 | arch/powerpc/platforms/pseries/eeh.c will print a stack trace to |
| 148 | has proven to be very useful to device-driver authors for finding | 148 | syslog (/var/log/messages). This stack trace has proven to be very |
| 149 | out at what point the EEH error was detected, as the error itself | 149 | useful to device-driver authors for finding out at what point the EEH |
| 150 | usually occurs slightly beforehand. | 150 | error was detected, as the error itself usually occurs slightly |
| 151 | beforehand. | ||
| 151 | 152 | ||
| 152 | Next, it uses the Linux kernel notifier chain/work queue mechanism to | 153 | Next, it uses the Linux kernel notifier chain/work queue mechanism to |
| 153 | allow any interested parties to find out about the failure. Device | 154 | allow any interested parties to find out about the failure. Device |
diff --git a/Documentation/powerpc/hvcs.txt b/Documentation/powerpc/hvcs.txt index dca75cbda6f8..1e38166f4e54 100644 --- a/Documentation/powerpc/hvcs.txt +++ b/Documentation/powerpc/hvcs.txt | |||
| @@ -558,9 +558,9 @@ partitions. | |||
| 558 | 558 | ||
| 559 | The proper channel for reporting bugs is either through the Linux OS | 559 | The proper channel for reporting bugs is either through the Linux OS |
| 560 | distribution company that provided your OS or by posting issues to the | 560 | distribution company that provided your OS or by posting issues to the |
| 561 | ppc64 development mailing list at: | 561 | PowerPC development mailing list at: |
| 562 | 562 | ||
| 563 | linuxppc64-dev@lists.linuxppc.org | 563 | linuxppc-dev@ozlabs.org |
| 564 | 564 | ||
| 565 | This request is to provide a documented and searchable public exchange | 565 | This request is to provide a documented and searchable public exchange |
| 566 | of the problems and solutions surrounding this driver for the benefit of | 566 | of the problems and solutions surrounding this driver for the benefit of |
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 36b511c7cade..1def6049784c 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
| @@ -513,6 +513,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 513 | 513 | ||
| 514 | This module supports multiple cards and autoprobe. | 514 | This module supports multiple cards and autoprobe. |
| 515 | 515 | ||
| 516 | The power-management is supported. | ||
| 517 | |||
| 516 | Module snd-ens1371 | 518 | Module snd-ens1371 |
| 517 | ------------------ | 519 | ------------------ |
| 518 | 520 | ||
| @@ -526,6 +528,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 526 | 528 | ||
| 527 | This module supports multiple cards and autoprobe. | 529 | This module supports multiple cards and autoprobe. |
| 528 | 530 | ||
| 531 | The power-management is supported. | ||
| 532 | |||
| 529 | Module snd-es968 | 533 | Module snd-es968 |
| 530 | ---------------- | 534 | ---------------- |
| 531 | 535 | ||
| @@ -671,6 +675,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 671 | 675 | ||
| 672 | model - force the model name | 676 | model - force the model name |
| 673 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) | 677 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) |
| 678 | single_cmd - Use single immediate commands to communicate with | ||
| 679 | codecs (for debugging only) | ||
| 674 | 680 | ||
| 675 | This module supports one card and autoprobe. | 681 | This module supports one card and autoprobe. |
| 676 | 682 | ||
| @@ -694,13 +700,34 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 694 | asus 3-jack | 700 | asus 3-jack |
| 695 | uniwill 3-jack | 701 | uniwill 3-jack |
| 696 | F1734 2-jack | 702 | F1734 2-jack |
| 703 | lg LG laptop (m1 express dual) | ||
| 697 | test for testing/debugging purpose, almost all controls can be | 704 | test for testing/debugging purpose, almost all controls can be |
| 698 | adjusted. Appearing only when compiled with | 705 | adjusted. Appearing only when compiled with |
| 699 | $CONFIG_SND_DEBUG=y | 706 | $CONFIG_SND_DEBUG=y |
| 707 | auto auto-config reading BIOS (default) | ||
| 700 | 708 | ||
| 701 | ALC260 | 709 | ALC260 |
| 702 | hp HP machines | 710 | hp HP machines |
| 703 | fujitsu Fujitsu S7020 | 711 | fujitsu Fujitsu S7020 |
| 712 | acer Acer TravelMate | ||
| 713 | basic fixed pin assignment (old default model) | ||
| 714 | auto auto-config reading BIOS (default) | ||
| 715 | |||
| 716 | ALC262 | ||
| 717 | fujitsu Fujitsu Laptop | ||
| 718 | basic fixed pin assignment w/o SPDIF | ||
| 719 | auto auto-config reading BIOS (default) | ||
| 720 | |||
| 721 | ALC882/883/885 | ||
| 722 | 3stack-dig 3-jack with SPDIF I/O | ||
| 723 | 6stck-dig 6-jack digital with SPDIF I/O | ||
| 724 | auto auto-config reading BIOS (default) | ||
| 725 | |||
| 726 | ALC861 | ||
| 727 | 3stack 3-jack | ||
| 728 | 3stack-dig 3-jack with SPDIF I/O | ||
| 729 | 6stack-dig 6-jack with SPDIF I/O | ||
| 730 | auto auto-config reading BIOS (default) | ||
| 704 | 731 | ||
| 705 | CMI9880 | 732 | CMI9880 |
| 706 | minimal 3-jack in back | 733 | minimal 3-jack in back |
| @@ -710,6 +737,28 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 710 | allout 5-jack in back, 2-jack in front, SPDIF out | 737 | allout 5-jack in back, 2-jack in front, SPDIF out |
| 711 | auto auto-config reading BIOS (default) | 738 | auto auto-config reading BIOS (default) |
| 712 | 739 | ||
| 740 | AD1981 | ||
| 741 | basic 3-jack (default) | ||
| 742 | hp HP nx6320 | ||
| 743 | |||
| 744 | AD1986A | ||
| 745 | 6stack 6-jack, separate surrounds (default) | ||
| 746 | 3stack 3-stack, shared surrounds | ||
| 747 | laptop 2-channel only (FSC V2060, Samsung M50) | ||
| 748 | laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J) | ||
| 749 | |||
| 750 | AD1988 | ||
| 751 | 6stack 6-jack | ||
| 752 | 6stack-dig ditto with SPDIF | ||
| 753 | 3stack 3-jack | ||
| 754 | 3stack-dig ditto with SPDIF | ||
| 755 | laptop 3-jack with hp-jack automute | ||
| 756 | laptop-dig ditto with SPDIF | ||
| 757 | auto auto-confgi reading BIOS (default) | ||
| 758 | |||
| 759 | STAC7661(?) | ||
| 760 | vaio Setup for VAIO FE550G/SZ110 | ||
| 761 | |||
| 713 | If the default configuration doesn't work and one of the above | 762 | If the default configuration doesn't work and one of the above |
| 714 | matches with your device, report it together with the PCI | 763 | matches with your device, report it together with the PCI |
| 715 | subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel | 764 | subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel |
| @@ -723,6 +772,17 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 723 | (Usually SD_LPLIB register is more accurate than the | 772 | (Usually SD_LPLIB register is more accurate than the |
| 724 | position buffer.) | 773 | position buffer.) |
| 725 | 774 | ||
| 775 | NB: If you get many "azx_get_response timeout" messages at | ||
| 776 | loading, it's likely a problem of interrupts (e.g. ACPI irq | ||
| 777 | routing). Try to boot with options like "pci=noacpi". Also, you | ||
| 778 | can try "single_cmd=1" module option. This will switch the | ||
| 779 | communication method between HDA controller and codecs to the | ||
| 780 | single immediate commands instead of CORB/RIRB. Basically, the | ||
| 781 | single command mode is provided only for BIOS, and you won't get | ||
| 782 | unsolicited events, too. But, at least, this works independently | ||
| 783 | from the irq. Remember this is a last resort, and should be | ||
| 784 | avoided as much as possible... | ||
| 785 | |||
| 726 | The power-management is supported. | 786 | The power-management is supported. |
| 727 | 787 | ||
| 728 | Module snd-hdsp | 788 | Module snd-hdsp |
| @@ -802,6 +862,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 802 | ------------------ | 862 | ------------------ |
| 803 | 863 | ||
| 804 | Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards. | 864 | Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards. |
| 865 | * MidiMan M Audio Revolution 5.1 | ||
| 805 | * MidiMan M Audio Revolution 7.1 | 866 | * MidiMan M Audio Revolution 7.1 |
| 806 | * AMP Ltd AUDIO2000 | 867 | * AMP Ltd AUDIO2000 |
| 807 | * TerraTec Aureon 5.1 Sky | 868 | * TerraTec Aureon 5.1 Sky |
| @@ -810,6 +871,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 810 | * TerraTec Phase 22 | 871 | * TerraTec Phase 22 |
| 811 | * TerraTec Phase 28 | 872 | * TerraTec Phase 28 |
| 812 | * AudioTrak Prodigy 7.1 | 873 | * AudioTrak Prodigy 7.1 |
| 874 | * AudioTrak Prodigy 7.1LT | ||
| 813 | * AudioTrak Prodigy 192 | 875 | * AudioTrak Prodigy 192 |
| 814 | * Pontis MS300 | 876 | * Pontis MS300 |
| 815 | * Albatron K8X800 Pro II | 877 | * Albatron K8X800 Pro II |
| @@ -820,9 +882,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 820 | * Shuttle SN25P | 882 | * Shuttle SN25P |
| 821 | 883 | ||
| 822 | model - Use the given board model, one of the following: | 884 | model - Use the given board model, one of the following: |
| 823 | revo71, amp2000, prodigy71, prodigy192, aureon51, | 885 | revo51, revo71, amp2000, prodigy71, prodigy71lt, |
| 824 | aureon71, universe, k8x800, phase22, phase28, ms300, | 886 | prodigy192, aureon51, aureon71, universe, |
| 825 | av710 | 887 | k8x800, phase22, phase28, ms300, av710 |
| 826 | 888 | ||
| 827 | This module supports multiple cards and autoprobe. | 889 | This module supports multiple cards and autoprobe. |
| 828 | 890 | ||
| @@ -1353,6 +1415,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
| 1353 | 1415 | ||
| 1354 | vid - Vendor ID for the device (optional) | 1416 | vid - Vendor ID for the device (optional) |
| 1355 | pid - Product ID for the device (optional) | 1417 | pid - Product ID for the device (optional) |
| 1418 | device_setup - Device specific magic number (optional) | ||
| 1419 | - Influence depends on the device | ||
| 1420 | - Default: 0x0000 | ||
| 1356 | 1421 | ||
| 1357 | This module supports multiple devices, autoprobe and hotplugging. | 1422 | This module supports multiple devices, autoprobe and hotplugging. |
| 1358 | 1423 | ||
diff --git a/Documentation/sound/alsa/Audiophile-Usb.txt b/Documentation/sound/alsa/Audiophile-Usb.txt new file mode 100644 index 000000000000..4692c8e77dc1 --- /dev/null +++ b/Documentation/sound/alsa/Audiophile-Usb.txt | |||
| @@ -0,0 +1,333 @@ | |||
| 1 | Guide to using M-Audio Audiophile USB with ALSA and Jack v1.2 | ||
| 2 | ======================================================== | ||
| 3 | |||
| 4 | Thibault Le Meur <Thibault.LeMeur@supelec.fr> | ||
| 5 | |||
| 6 | This document is a guide to using the M-Audio Audiophile USB (tm) device with | ||
| 7 | ALSA and JACK. | ||
| 8 | |||
| 9 | 1 - Audiophile USB Specs and correct usage | ||
| 10 | ========================================== | ||
| 11 | This part is a reminder of important facts about the functions and limitations | ||
| 12 | of the device. | ||
| 13 | |||
| 14 | The device has 4 audio interfaces, and 2 MIDI ports: | ||
| 15 | * Analog Stereo Input (Ai) | ||
| 16 | - This port supports 2 pairs of line-level audio inputs (1/4" TS and RCA) | ||
| 17 | - When the 1/4" TS (jack) connectors are connected, the RCA connectors | ||
| 18 | are disabled | ||
| 19 | * Analog Stereo Output (Ao) | ||
| 20 | * Digital Stereo Input (Di) | ||
| 21 | * Digital Stereo Output (Do) | ||
| 22 | * Midi In (Mi) | ||
| 23 | * Midi Out (Mo) | ||
| 24 | |||
| 25 | The internal DAC/ADC has the following caracteristics: | ||
| 26 | * sample depth of 16 or 24 bits | ||
| 27 | * sample rate from 8kHz to 96kHz | ||
| 28 | * Two ports can't use different sample depths at the same time.Moreover, the | ||
| 29 | Audiophile USB documentation gives the following Warning: "Please exit any | ||
| 30 | audio application running before switching between bit depths" | ||
| 31 | |||
| 32 | Due to the USB 1.1 bandwidth limitation, a limited number of interfaces can be | ||
| 33 | activated at the same time depending on the audio mode selected: | ||
| 34 | * 16-bit/48kHz ==> 4 channels in/ 4 channels out | ||
| 35 | - Ai+Ao+Di+Do | ||
| 36 | * 24-bit/48kHz ==> 4 channels in/2 channels out, | ||
| 37 | or 2 channels in/4 channels out | ||
| 38 | - Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do | ||
| 39 | * 24-bit/96kHz ==> 2 channels in, or 2 channels out (half duplex only) | ||
| 40 | - Ai or Ao or Di or Do | ||
| 41 | |||
| 42 | Important facts about the Digital interface: | ||
| 43 | -------------------------------------------- | ||
| 44 | * The Do port additionnaly supports surround-encoded AC-3 and DTS passthrough, | ||
| 45 | though I haven't tested it under linux | ||
| 46 | - Note that in this setup only the Do interface can be enabled | ||
| 47 | * Apart from recording an audio digital stream, enabling the Di port is a way | ||
| 48 | to synchronize the device to an external sample clock | ||
| 49 | - As a consequence, the Di port must be enable only if an active Digital | ||
| 50 | source is connected | ||
| 51 | - Enabling Di when no digital source is connected can result in a | ||
| 52 | synchronization error (for instance sound played at an odd sample rate) | ||
| 53 | |||
| 54 | |||
| 55 | 2 - Audiophile USB support in ALSA | ||
| 56 | ================================== | ||
| 57 | |||
| 58 | 2.1 - MIDI ports | ||
| 59 | ---------------- | ||
| 60 | The Audiophile USB MIDI ports will be automatically supported once the | ||
| 61 | following modules have been loaded: | ||
| 62 | * snd-usb-audio | ||
| 63 | * snd-seq | ||
| 64 | * snd-seq-midi | ||
| 65 | |||
| 66 | No additionnal setting is required. | ||
| 67 | |||
| 68 | 2.2 - Audio ports | ||
| 69 | ----------------- | ||
| 70 | |||
| 71 | Audio functions of the Audiophile USB device are handled by the snd-usb-audio | ||
| 72 | module. This module can work in a default mode (without any device-specific | ||
| 73 | parameter), or in an advanced mode with the device-specific parameter called | ||
| 74 | "device_setup". | ||
| 75 | |||
| 76 | 2.2.1 - Default Alsa driver mode | ||
| 77 | |||
| 78 | The default behaviour of the snd-usb-audio driver is to parse the device | ||
| 79 | capabilities at startup and enable all functions inside the device (including | ||
| 80 | all ports at any sample rates and any sample depths supported). This approach | ||
| 81 | has the advantage to let the driver easily switch from sample rates/depths | ||
| 82 | automatically according to the need of the application claiming the device. | ||
| 83 | |||
| 84 | In this case the Audiophile ports are mapped to alsa pcm devices in the | ||
| 85 | following way (I suppose the device's index is 1): | ||
| 86 | * hw:1,0 is Ao in playback and Di in capture | ||
| 87 | * hw:1,1 is Do in playback and Ai in capture | ||
| 88 | * hw:1,2 is Do in AC3/DTS passthrough mode | ||
| 89 | |||
| 90 | You must note as well that the device uses Big Endian byte encoding so that | ||
| 91 | supported audio format are S16_BE for 16-bit depth modes and S24_3BE for | ||
| 92 | 24-bits depth mode. One exception is the hw:1,2 port which is Little Endian | ||
| 93 | compliant and thus uses S16_LE. | ||
| 94 | |||
| 95 | Examples: | ||
| 96 | * playing a S24_3BE encoded raw file to the Ao port | ||
| 97 | % aplay -D hw:1,0 -c2 -t raw -r48000 -fS24_3BE test.raw | ||
| 98 | * recording a S24_3BE encoded raw file from the Ai port | ||
| 99 | % arecord -D hw:1,1 -c2 -t raw -r48000 -fS24_3BE test.raw | ||
| 100 | * playing a S16_BE encoded raw file to the Do port | ||
| 101 | % aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_BE test.raw | ||
| 102 | |||
| 103 | If you're happy with the default Alsa driver setup and don't experience any | ||
| 104 | issue with this mode, then you can skip the following chapter. | ||
| 105 | |||
| 106 | 2.2.2 - Advanced module setup | ||
| 107 | |||
| 108 | Due to the hardware constraints described above, the device initialization made | ||
| 109 | by the Alsa driver in default mode may result in a corrupted state of the | ||
| 110 | device. For instance, a particularly annoying issue is that the sound captured | ||
| 111 | from the Ai port sounds distorted (as if boosted with an excessive high volume | ||
| 112 | gain). | ||
| 113 | |||
| 114 | For people having this problem, the snd-usb-audio module has a new module | ||
| 115 | parameter called "device_setup". | ||
| 116 | |||
| 117 | 2.2.2.1 - Initializing the working mode of the Audiohile USB | ||
| 118 | |||
| 119 | As far as the Audiohile USB device is concerned, this value let the user | ||
| 120 | specify: | ||
| 121 | * the sample depth | ||
| 122 | * the sample rate | ||
| 123 | * whether the Di port is used or not | ||
| 124 | |||
| 125 | Here is a list of supported device_setup values for this device: | ||
| 126 | * device_setup=0x00 (or omitted) | ||
| 127 | - Alsa driver default mode | ||
| 128 | - maintains backward compatibility with setups that do not use this | ||
| 129 | parameter by not introducing any change | ||
| 130 | - results sometimes in corrupted sound as decribed earlier | ||
| 131 | * device_setup=0x01 | ||
| 132 | - 16bits 48kHz mode with Di disabled | ||
| 133 | - Ai,Ao,Do can be used at the same time | ||
| 134 | - hw:1,0 is not available in capture mode | ||
| 135 | - hw:1,2 is not available | ||
| 136 | * device_setup=0x11 | ||
| 137 | - 16bits 48kHz mode with Di enabled | ||
| 138 | - Ai,Ao,Di,Do can be used at the same time | ||
| 139 | - hw:1,0 is available in capture mode | ||
| 140 | - hw:1,2 is not available | ||
| 141 | * device_setup=0x09 | ||
| 142 | - 24bits 48kHz mode with Di disabled | ||
| 143 | - Ai,Ao,Do can be used at the same time | ||
| 144 | - hw:1,0 is not available in capture mode | ||
| 145 | - hw:1,2 is not available | ||
| 146 | * device_setup=0x19 | ||
| 147 | - 24bits 48kHz mode with Di enabled | ||
| 148 | - 3 ports from {Ai,Ao,Di,Do} can be used at the same time | ||
| 149 | - hw:1,0 is available in capture mode and an active digital source must be | ||
| 150 | connected to Di | ||
| 151 | - hw:1,2 is not available | ||
| 152 | * device_setup=0x0D or 0x10 | ||
| 153 | - 24bits 96kHz mode | ||
| 154 | - Di is enabled by default for this mode but does not need to be connected | ||
| 155 | to an active source | ||
| 156 | - Only 1 port from {Ai,Ao,Di,Do} can be used at the same time | ||
| 157 | - hw:1,0 is available in captured mode | ||
| 158 | - hw:1,2 is not available | ||
| 159 | * device_setup=0x03 | ||
| 160 | - 16bits 48kHz mode with only the Do port enabled | ||
| 161 | - AC3 with DTS passthru (not tested) | ||
| 162 | - Caution with this setup the Do port is mapped to the pcm device hw:1,0 | ||
| 163 | |||
| 164 | 2.2.2.2 - Setting and switching configurations with the device_setup parameter | ||
| 165 | |||
| 166 | The parameter can be given: | ||
| 167 | * By manually probing the device (as root): | ||
| 168 | # modprobe -r snd-usb-audio | ||
| 169 | # modprobe snd-usb-audio index=1 device_setup=0x09 | ||
| 170 | * Or while configuring the modules options in your modules configuration file | ||
| 171 | - For Fedora distributions, edit the /etc/modprobe.conf file: | ||
| 172 | alias snd-card-1 snd-usb-audio | ||
| 173 | options snd-usb-audio index=1 device_setup=0x09 | ||
| 174 | |||
| 175 | IMPORTANT NOTE WHEN SWITCHING CONFIGURATION: | ||
| 176 | ------------------------------------------- | ||
| 177 | * You may need to _first_ intialize the module with the correct device_setup | ||
| 178 | parameter and _only_after_ turn on the Audiophile USB device | ||
| 179 | * This is especially true when switching the sample depth: | ||
| 180 | - first trun off the device | ||
| 181 | - de-register the snd-usb-audio module | ||
| 182 | - change the device_setup parameter (by either manually reprobing the module | ||
| 183 | or changing modprobe.conf) | ||
| 184 | - turn on the device | ||
| 185 | |||
| 186 | 2.2.2.3 - Audiophile USB's device_setup structure | ||
| 187 | |||
| 188 | If you want to understand the device_setup magic numbers for the Audiophile | ||
| 189 | USB, you need some very basic understanding of binary computation. However, | ||
| 190 | this is not required to use the parameter and you may skip thi section. | ||
| 191 | |||
| 192 | The device_setup is one byte long and its structure is the following: | ||
| 193 | |||
| 194 | +---+---+---+---+---+---+---+---+ | ||
| 195 | | b7| b6| b5| b4| b3| b2| b1| b0| | ||
| 196 | +---+---+---+---+---+---+---+---+ | ||
| 197 | | 0 | 0 | 0 | Di|24B|96K|DTS|SET| | ||
| 198 | +---+---+---+---+---+---+---+---+ | ||
| 199 | |||
| 200 | Where: | ||
| 201 | * b0 is the "SET" bit | ||
| 202 | - it MUST be set if device_setup is initialized | ||
| 203 | * b1 is the "DTS" bit | ||
| 204 | - it is set only for Digital output with DTS/AC3 | ||
| 205 | - this setup is not tested | ||
| 206 | * b2 is the Rate selection flag | ||
| 207 | - When set to "1" the rate range is 48.1-96kHz | ||
| 208 | - Otherwise the sample rate range is 8-48kHz | ||
| 209 | * b3 is the bit depth selection flag | ||
| 210 | - When set to "1" samples are 24bits long | ||
| 211 | - Otherwise they are 16bits long | ||
| 212 | - Note that b2 implies b3 as the 96kHz mode is only supported for 24 bits | ||
| 213 | samples | ||
| 214 | * b4 is the Digital input flag | ||
| 215 | - When set to "1" the device assumes that an active digital source is | ||
| 216 | connected | ||
| 217 | - You shouldn't enable Di if no source is seen on the port (this leads to | ||
| 218 | synchronization issues) | ||
| 219 | - b4 is implied by b2 (since only one port is enabled at a time no synch | ||
| 220 | error can occur) | ||
| 221 | * b5 to b7 are reserved for future uses, and must be set to "0" | ||
| 222 | - might become Ao, Do, Ai, for b7, b6, b4 respectively | ||
| 223 | |||
| 224 | Caution: | ||
| 225 | * there is no check on the value you will give to device_setup | ||
| 226 | - for instance choosing 0x05 (16bits 96kHz) will fail back to 0x09 since | ||
| 227 | b2 implies b3. But _there_will_be_no_warning_ in /var/log/messages | ||
| 228 | * Hardware constraints due to the USB bus limitation aren't checked | ||
| 229 | - choosing b2 will prepare all interfaces for 24bits/96kHz but you'll | ||
| 230 | only be able to use one at the same time | ||
| 231 | |||
| 232 | 2.2.3 - USB implementation details for this device | ||
| 233 | |||
| 234 | You may safely skip this section if you're not interrested in driver | ||
| 235 | development. | ||
| 236 | |||
| 237 | This section describes some internals aspect of the device and summarize the | ||
| 238 | data I got by usb-snooping the windows and linux drivers. | ||
| 239 | |||
| 240 | The M-Audio Audiophile USB has 7 USB Interfaces: | ||
| 241 | a "USB interface": | ||
| 242 | * USB Interface nb.0 | ||
| 243 | * USB Interface nb.1 | ||
| 244 | - Audio Control function | ||
| 245 | * USB Interface nb.2 | ||
| 246 | - Analog Output | ||
| 247 | * USB Interface nb.3 | ||
| 248 | - Digital Output | ||
| 249 | * USB Interface nb.4 | ||
| 250 | - Analog Input | ||
| 251 | * USB Interface nb.5 | ||
| 252 | - Digital Input | ||
| 253 | * USB Interface nb.6 | ||
| 254 | - MIDI interface compliant with the MIDIMAN quirk | ||
| 255 | |||
| 256 | Each interface has 5 altsettings (AltSet 1,2,3,4,5) except: | ||
| 257 | * Interface 3 (Digital Out) has an extra Alset nb.6 | ||
| 258 | * Interface 5 (Digital In) does not have Alset nb.3 and 5 | ||
| 259 | |||
| 260 | Here is a short description of the AltSettings capabilities: | ||
| 261 | * AltSettings 1 corresponds to | ||
| 262 | - 24-bit depth, 48.1-96kHz sample mode | ||
| 263 | - Adaptive playback (Ao and Do), Synch capture (Ai), or Asynch capture (Di) | ||
| 264 | * AltSettings 2 corresponds to | ||
| 265 | - 24-bit depth, 8-48kHz sample mode | ||
| 266 | - Asynch capture and playback (Ao,Ai,Do,Di) | ||
| 267 | * AltSettings 3 corresponds to | ||
| 268 | - 24-bit depth, 8-48kHz sample mode | ||
| 269 | - Synch capture (Ai) and Adaptive playback (Ao,Do) | ||
| 270 | * AltSettings 4 corresponds to | ||
| 271 | - 16-bit depth, 8-48kHz sample mode | ||
| 272 | - Asynch capture and playback (Ao,Ai,Do,Di) | ||
| 273 | * AltSettings 5 corresponds to | ||
| 274 | - 16-bit depth, 8-48kHz sample mode | ||
| 275 | - Synch capture (Ai) and Adaptive playback (Ao,Do) | ||
| 276 | * AltSettings 6 corresponds to | ||
| 277 | - 16-bit depth, 8-48kHz sample mode | ||
| 278 | - Synch playback (Do), audio format type III IEC1937_AC-3 | ||
| 279 | |||
| 280 | In order to ensure a correct intialization of the device, the driver | ||
| 281 | _must_know_ how the device will be used: | ||
| 282 | * if DTS is choosen, only Interface 2 with AltSet nb.6 must be | ||
| 283 | registered | ||
| 284 | * if 96KHz only AltSets nb.1 of each interface must be selected | ||
| 285 | * if samples are using 24bits/48KHz then AltSet 2 must me used if | ||
| 286 | Digital input is connected, and only AltSet nb.3 if Digital input | ||
| 287 | is not connected | ||
| 288 | * if samples are using 16bits/48KHz then AltSet 4 must me used if | ||
| 289 | Digital input is connected, and only AltSet nb.5 if Digital input | ||
| 290 | is not connected | ||
| 291 | |||
| 292 | When device_setup is given as a parameter to the snd-usb-audio module, the | ||
| 293 | parse_audio_enpoint function uses a quirk called | ||
| 294 | "audiophile_skip_setting_quirk" in order to prevent AltSettings not | ||
| 295 | corresponding to device_setup from being registered in the driver. | ||
| 296 | |||
| 297 | 3 - Audiophile USB and Jack support | ||
| 298 | =================================== | ||
| 299 | |||
| 300 | This section deals with support of the Audiophile USB device in Jack. | ||
| 301 | The main issue regarding this support is that the device is Big Endian | ||
| 302 | compliant. | ||
| 303 | |||
| 304 | 3.1 - Using the plug alsa plugin | ||
| 305 | -------------------------------- | ||
| 306 | |||
| 307 | Jack doesn't directly support big endian devices. Thus, one way to have support | ||
| 308 | for this device with Alsa is to use the Alsa "plug" converter. | ||
| 309 | |||
| 310 | For instance here is one way to run Jack with 2 playback channels on Ao and 2 | ||
| 311 | capture channels from Ai: | ||
| 312 | % jackd -R -dalsa -dplughw:1 -r48000 -p256 -n2 -D -Cplughw:1,1 | ||
| 313 | |||
| 314 | |||
| 315 | However you may see the following warning message: | ||
| 316 | "You appear to be using the ALSA software "plug" layer, probably a result of | ||
| 317 | using the "default" ALSA device. This is less efficient than it could be. | ||
| 318 | Consider using a hardware device instead rather than using the plug layer." | ||
| 319 | |||
| 320 | |||
| 321 | 3.2 - Patching alsa to use direct pcm device | ||
| 322 | ------------------------------------------- | ||
| 323 | A patch for Jack by Andreas Steinmetz adds support for Big Endian devices. | ||
| 324 | However it has not been included in the CVS tree. | ||
| 325 | |||
| 326 | You can find it at the following URL: | ||
| 327 | http://sourceforge.net/tracker/index.php?func=detail&aid=1289682&group_id=39687& | ||
| 328 | atid=425939 | ||
| 329 | |||
| 330 | After having applied the patch you can run jackd with the following command | ||
| 331 | line: | ||
| 332 | % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1 | ||
| 333 | |||
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index 4251085d38d3..6dc9d9f622ca 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
| @@ -1834,7 +1834,7 @@ | |||
| 1834 | mychip_set_sample_format(chip, runtime->format); | 1834 | mychip_set_sample_format(chip, runtime->format); |
| 1835 | mychip_set_sample_rate(chip, runtime->rate); | 1835 | mychip_set_sample_rate(chip, runtime->rate); |
| 1836 | mychip_set_channels(chip, runtime->channels); | 1836 | mychip_set_channels(chip, runtime->channels); |
| 1837 | mychip_set_dma_setup(chip, runtime->dma_area, | 1837 | mychip_set_dma_setup(chip, runtime->dma_addr, |
| 1838 | chip->buffer_size, | 1838 | chip->buffer_size, |
| 1839 | chip->period_size); | 1839 | chip->period_size); |
| 1840 | return 0; | 1840 | return 0; |
| @@ -3388,7 +3388,7 @@ struct _snd_pcm_runtime { | |||
| 3388 | .name = "PCM Playback Switch", | 3388 | .name = "PCM Playback Switch", |
| 3389 | .index = 0, | 3389 | .index = 0, |
| 3390 | .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, | 3390 | .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, |
| 3391 | .private_values = 0xffff, | 3391 | .private_value = 0xffff, |
| 3392 | .info = my_control_info, | 3392 | .info = my_control_info, |
| 3393 | .get = my_control_get, | 3393 | .get = my_control_get, |
| 3394 | .put = my_control_put | 3394 | .put = my_control_put |
| @@ -3449,7 +3449,7 @@ struct _snd_pcm_runtime { | |||
| 3449 | </para> | 3449 | </para> |
| 3450 | 3450 | ||
| 3451 | <para> | 3451 | <para> |
| 3452 | The <structfield>private_values</structfield> field contains | 3452 | The <structfield>private_value</structfield> field contains |
| 3453 | an arbitrary long integer value for this record. When using | 3453 | an arbitrary long integer value for this record. When using |
| 3454 | generic <structfield>info</structfield>, | 3454 | generic <structfield>info</structfield>, |
| 3455 | <structfield>get</structfield> and | 3455 | <structfield>get</structfield> and |
diff --git a/Documentation/spinlocks.txt b/Documentation/spinlocks.txt index c2122996631e..a661d684768e 100644 --- a/Documentation/spinlocks.txt +++ b/Documentation/spinlocks.txt | |||
| @@ -9,7 +9,7 @@ removed soon. So for any new code dynamic initialization should be used: | |||
| 9 | static int __init xxx_init(void) | 9 | static int __init xxx_init(void) |
| 10 | { | 10 | { |
| 11 | spin_lock_init(&xxx_lock); | 11 | spin_lock_init(&xxx_lock); |
| 12 | rw_lock_init(&xxx_rw_lock); | 12 | rwlock_init(&xxx_rw_lock); |
| 13 | ... | 13 | ... |
| 14 | } | 14 | } |
| 15 | 15 | ||
diff --git a/Documentation/usb/et61x251.txt b/Documentation/usb/et61x251.txt index b44dda407ce2..29340282ab5f 100644 --- a/Documentation/usb/et61x251.txt +++ b/Documentation/usb/et61x251.txt | |||
| @@ -176,6 +176,14 @@ Description: Force the application to unmap previously mapped buffer memory | |||
| 176 | 1 = force memory unmapping (save memory) | 176 | 1 = force memory unmapping (save memory) |
| 177 | Default: 0 | 177 | Default: 0 |
| 178 | ------------------------------------------------------------------------------- | 178 | ------------------------------------------------------------------------------- |
| 179 | Name: frame_timeout | ||
| 180 | Type: uint array (min = 0, max = 64) | ||
| 181 | Syntax: <n[,...]> | ||
| 182 | Description: Timeout for a video frame in seconds. This parameter is | ||
| 183 | specific for each detected camera. This parameter can be | ||
| 184 | changed at runtime thanks to the /sys filesystem interface. | ||
| 185 | Default: 2 | ||
| 186 | ------------------------------------------------------------------------------- | ||
| 179 | Name: debug | 187 | Name: debug |
| 180 | Type: ushort | 188 | Type: ushort |
| 181 | Syntax: <n> | 189 | Syntax: <n> |
| @@ -266,7 +274,7 @@ the V4L2 interface. | |||
| 266 | 274 | ||
| 267 | 275 | ||
| 268 | 10. Notes for V4L2 application developers | 276 | 10. Notes for V4L2 application developers |
| 269 | ======================================== | 277 | ========================================= |
| 270 | This driver follows the V4L2 API specifications. In particular, it enforces two | 278 | This driver follows the V4L2 API specifications. In particular, it enforces two |
| 271 | rules: | 279 | rules: |
| 272 | 280 | ||
diff --git a/Documentation/usb/sn9c102.txt b/Documentation/usb/sn9c102.txt index c6b76414172c..b957beae5607 100644 --- a/Documentation/usb/sn9c102.txt +++ b/Documentation/usb/sn9c102.txt | |||
| @@ -196,6 +196,14 @@ Description: Force the application to unmap previously mapped buffer memory | |||
| 196 | 1 = force memory unmapping (save memory) | 196 | 1 = force memory unmapping (save memory) |
| 197 | Default: 0 | 197 | Default: 0 |
| 198 | ------------------------------------------------------------------------------- | 198 | ------------------------------------------------------------------------------- |
| 199 | Name: frame_timeout | ||
| 200 | Type: uint array (min = 0, max = 64) | ||
| 201 | Syntax: <n[,...]> | ||
| 202 | Description: Timeout for a video frame in seconds. This parameter is | ||
| 203 | specific for each detected camera. This parameter can be | ||
| 204 | changed at runtime thanks to the /sys filesystem interface. | ||
| 205 | Default: 2 | ||
| 206 | ------------------------------------------------------------------------------- | ||
| 199 | Name: debug | 207 | Name: debug |
| 200 | Type: ushort | 208 | Type: ushort |
| 201 | Syntax: <n> | 209 | Syntax: <n> |
| @@ -321,6 +329,7 @@ Vendor ID Product ID | |||
| 321 | --------- ---------- | 329 | --------- ---------- |
| 322 | 0x0c45 0x6001 | 330 | 0x0c45 0x6001 |
| 323 | 0x0c45 0x6005 | 331 | 0x0c45 0x6005 |
| 332 | 0x0c45 0x6007 | ||
| 324 | 0x0c45 0x6009 | 333 | 0x0c45 0x6009 |
| 325 | 0x0c45 0x600d | 334 | 0x0c45 0x600d |
| 326 | 0x0c45 0x6024 | 335 | 0x0c45 0x6024 |
| @@ -370,6 +379,7 @@ HV7131D Hynix Semiconductor, Inc. | |||
| 370 | MI-0343 Micron Technology, Inc. | 379 | MI-0343 Micron Technology, Inc. |
| 371 | OV7630 OmniVision Technologies, Inc. | 380 | OV7630 OmniVision Technologies, Inc. |
| 372 | PAS106B PixArt Imaging, Inc. | 381 | PAS106B PixArt Imaging, Inc. |
| 382 | PAS202BCA PixArt Imaging, Inc. | ||
| 373 | PAS202BCB PixArt Imaging, Inc. | 383 | PAS202BCB PixArt Imaging, Inc. |
| 374 | TAS5110C1B Taiwan Advanced Sensor Corporation | 384 | TAS5110C1B Taiwan Advanced Sensor Corporation |
| 375 | TAS5130D1B Taiwan Advanced Sensor Corporation | 385 | TAS5130D1B Taiwan Advanced Sensor Corporation |
| @@ -493,6 +503,7 @@ Many thanks to following persons for their contribute (listed in alphabetical | |||
| 493 | order): | 503 | order): |
| 494 | 504 | ||
| 495 | - Luca Capello for the donation of a webcam; | 505 | - Luca Capello for the donation of a webcam; |
| 506 | - Philippe Coval for having helped testing the PAS202BCA image sensor; | ||
| 496 | - Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the | 507 | - Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the |
| 497 | donation of a webcam; | 508 | donation of a webcam; |
| 498 | - Jon Hollstrom for the donation of a webcam; | 509 | - Jon Hollstrom for the donation of a webcam; |
diff --git a/Documentation/usb/zc0301.txt b/Documentation/usb/zc0301.txt new file mode 100644 index 000000000000..f55262c6733b --- /dev/null +++ b/Documentation/usb/zc0301.txt | |||
| @@ -0,0 +1,254 @@ | |||
| 1 | |||
| 2 | ZC0301 Image Processor and Control Chip | ||
| 3 | Driver for Linux | ||
| 4 | ======================================= | ||
| 5 | |||
| 6 | - Documentation - | ||
| 7 | |||
| 8 | |||
| 9 | Index | ||
| 10 | ===== | ||
| 11 | 1. Copyright | ||
| 12 | 2. Disclaimer | ||
| 13 | 3. License | ||
| 14 | 4. Overview and features | ||
| 15 | 5. Module dependencies | ||
| 16 | 6. Module loading | ||
| 17 | 7. Module parameters | ||
| 18 | 8. Supported devices | ||
| 19 | 9. Notes for V4L2 application developers | ||
| 20 | 10. Contact information | ||
| 21 | 11. Credits | ||
| 22 | |||
| 23 | |||
| 24 | 1. Copyright | ||
| 25 | ============ | ||
| 26 | Copyright (C) 2006 by Luca Risolia <luca.risolia@studio.unibo.it> | ||
| 27 | |||
| 28 | |||
| 29 | 2. Disclaimer | ||
| 30 | ============= | ||
| 31 | This software is not developed or sponsored by Z-Star Microelectronics Corp. | ||
| 32 | Trademarks are property of their respective owner. | ||
| 33 | |||
| 34 | |||
| 35 | 3. License | ||
| 36 | ========== | ||
| 37 | This program is free software; you can redistribute it and/or modify | ||
| 38 | it under the terms of the GNU General Public License as published by | ||
| 39 | the Free Software Foundation; either version 2 of the License, or | ||
| 40 | (at your option) any later version. | ||
| 41 | |||
| 42 | This program is distributed in the hope that it will be useful, | ||
| 43 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 44 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 45 | GNU General Public License for more details. | ||
| 46 | |||
| 47 | You should have received a copy of the GNU General Public License | ||
| 48 | along with this program; if not, write to the Free Software | ||
| 49 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 50 | |||
| 51 | |||
| 52 | 4. Overview and features | ||
| 53 | ======================== | ||
| 54 | This driver supports the video interface of the devices mounting the ZC0301 | ||
| 55 | Image Processor and Control Chip. | ||
| 56 | |||
| 57 | The driver relies on the Video4Linux2 and USB core modules. It has been | ||
| 58 | designed to run properly on SMP systems as well. | ||
| 59 | |||
| 60 | The latest version of the ZC0301 driver can be found at the following URL: | ||
| 61 | http://www.linux-projects.org/ | ||
| 62 | |||
| 63 | Some of the features of the driver are: | ||
| 64 | |||
| 65 | - full compliance with the Video4Linux2 API (see also "Notes for V4L2 | ||
| 66 | application developers" paragraph); | ||
| 67 | - available mmap or read/poll methods for video streaming through isochronous | ||
| 68 | data transfers; | ||
| 69 | - automatic detection of image sensor; | ||
| 70 | - video format is standard JPEG; | ||
| 71 | - dynamic driver control thanks to various module parameters (see "Module | ||
| 72 | parameters" paragraph); | ||
| 73 | - up to 64 cameras can be handled at the same time; they can be connected and | ||
| 74 | disconnected from the host many times without turning off the computer, if | ||
| 75 | the system supports hotplugging; | ||
| 76 | |||
| 77 | |||
| 78 | 5. Module dependencies | ||
| 79 | ====================== | ||
| 80 | For it to work properly, the driver needs kernel support for Video4Linux and | ||
| 81 | USB. | ||
| 82 | |||
| 83 | The following options of the kernel configuration file must be enabled and | ||
| 84 | corresponding modules must be compiled: | ||
| 85 | |||
| 86 | # Multimedia devices | ||
| 87 | # | ||
| 88 | CONFIG_VIDEO_DEV=m | ||
| 89 | |||
| 90 | # USB support | ||
| 91 | # | ||
| 92 | CONFIG_USB=m | ||
| 93 | |||
| 94 | In addition, depending on the hardware being used, the modules below are | ||
| 95 | necessary: | ||
| 96 | |||
| 97 | # USB Host Controller Drivers | ||
| 98 | # | ||
| 99 | CONFIG_USB_EHCI_HCD=m | ||
| 100 | CONFIG_USB_UHCI_HCD=m | ||
| 101 | CONFIG_USB_OHCI_HCD=m | ||
| 102 | |||
| 103 | The ZC0301 controller also provides a built-in microphone interface. It is | ||
| 104 | supported by the USB Audio driver thanks to the ALSA API: | ||
| 105 | |||
| 106 | # Sound | ||
| 107 | # | ||
| 108 | CONFIG_SOUND=y | ||
| 109 | |||
| 110 | # Advanced Linux Sound Architecture | ||
| 111 | # | ||
| 112 | CONFIG_SND=m | ||
| 113 | |||
| 114 | # USB devices | ||
| 115 | # | ||
| 116 | CONFIG_SND_USB_AUDIO=m | ||
| 117 | |||
| 118 | And finally: | ||
| 119 | |||
| 120 | # USB Multimedia devices | ||
| 121 | # | ||
| 122 | CONFIG_USB_ZC0301=m | ||
| 123 | |||
| 124 | |||
| 125 | 6. Module loading | ||
| 126 | ================= | ||
| 127 | To use the driver, it is necessary to load the "zc0301" module into memory | ||
| 128 | after every other module required: "videodev", "usbcore" and, depending on | ||
| 129 | the USB host controller you have, "ehci-hcd", "uhci-hcd" or "ohci-hcd". | ||
| 130 | |||
| 131 | Loading can be done as shown below: | ||
| 132 | |||
| 133 | [root@localhost home]# modprobe zc0301 | ||
| 134 | |||
| 135 | At this point the devices should be recognized. You can invoke "dmesg" to | ||
| 136 | analyze kernel messages and verify that the loading process has gone well: | ||
| 137 | |||
| 138 | [user@localhost home]$ dmesg | ||
| 139 | |||
| 140 | |||
| 141 | 7. Module parameters | ||
| 142 | ==================== | ||
| 143 | Module parameters are listed below: | ||
| 144 | ------------------------------------------------------------------------------- | ||
| 145 | Name: video_nr | ||
| 146 | Type: short array (min = 0, max = 64) | ||
| 147 | Syntax: <-1|n[,...]> | ||
| 148 | Description: Specify V4L2 minor mode number: | ||
| 149 | -1 = use next available | ||
| 150 | n = use minor number n | ||
| 151 | You can specify up to 64 cameras this way. | ||
| 152 | For example: | ||
| 153 | video_nr=-1,2,-1 would assign minor number 2 to the second | ||
| 154 | registered camera and use auto for the first one and for every | ||
| 155 | other camera. | ||
| 156 | Default: -1 | ||
| 157 | ------------------------------------------------------------------------------- | ||
| 158 | Name: force_munmap | ||
| 159 | Type: bool array (min = 0, max = 64) | ||
| 160 | Syntax: <0|1[,...]> | ||
| 161 | Description: Force the application to unmap previously mapped buffer memory | ||
| 162 | before calling any VIDIOC_S_CROP or VIDIOC_S_FMT ioctl's. Not | ||
| 163 | all the applications support this feature. This parameter is | ||
| 164 | specific for each detected camera. | ||
| 165 | 0 = do not force memory unmapping | ||
| 166 | 1 = force memory unmapping (save memory) | ||
| 167 | Default: 0 | ||
| 168 | ------------------------------------------------------------------------------- | ||
| 169 | Name: frame_timeout | ||
| 170 | Type: uint array (min = 0, max = 64) | ||
| 171 | Syntax: <n[,...]> | ||
| 172 | Description: Timeout for a video frame in seconds. This parameter is | ||
| 173 | specific for each detected camera. This parameter can be | ||
| 174 | changed at runtime thanks to the /sys filesystem interface. | ||
| 175 | Default: 2 | ||
| 176 | ------------------------------------------------------------------------------- | ||
| 177 | Name: debug | ||
| 178 | Type: ushort | ||
| 179 | Syntax: <n> | ||
| 180 | Description: Debugging information level, from 0 to 3: | ||
| 181 | 0 = none (use carefully) | ||
| 182 | 1 = critical errors | ||
| 183 | 2 = significant informations | ||
| 184 | 3 = more verbose messages | ||
| 185 | Level 3 is useful for testing only, when only one device | ||
| 186 | is used at the same time. It also shows some more informations | ||
| 187 | about the hardware being detected. This module parameter can be | ||
| 188 | changed at runtime thanks to the /sys filesystem interface. | ||
| 189 | Default: 2 | ||
| 190 | ------------------------------------------------------------------------------- | ||
| 191 | |||
| 192 | |||
| 193 | 8. Supported devices | ||
| 194 | ==================== | ||
| 195 | None of the names of the companies as well as their products will be mentioned | ||
| 196 | here. They have never collaborated with the author, so no advertising. | ||
| 197 | |||
| 198 | From the point of view of a driver, what unambiguously identify a device are | ||
| 199 | its vendor and product USB identifiers. Below is a list of known identifiers of | ||
| 200 | devices mounting the ZC0301 Image Processor and Control Chips: | ||
| 201 | |||
| 202 | Vendor ID Product ID | ||
| 203 | --------- ---------- | ||
| 204 | 0x041e 0x4017 | ||
| 205 | 0x041e 0x401c | ||
| 206 | 0x041e 0x401e | ||
| 207 | 0x041e 0x4034 | ||
| 208 | 0x041e 0x4035 | ||
| 209 | 0x046d 0x08ae | ||
| 210 | 0x0ac8 0x0301 | ||
| 211 | 0x10fd 0x8050 | ||
| 212 | |||
| 213 | The list above does not imply that all those devices work with this driver: up | ||
| 214 | until now only the ones that mount the following image sensors are supported; | ||
| 215 | kernel messages will always tell you whether this is the case: | ||
| 216 | |||
| 217 | Model Manufacturer | ||
| 218 | ----- ------------ | ||
| 219 | PAS202BCB PixArt Imaging, Inc. | ||
| 220 | |||
| 221 | |||
| 222 | 9. Notes for V4L2 application developers | ||
| 223 | ======================================== | ||
| 224 | This driver follows the V4L2 API specifications. In particular, it enforces two | ||
| 225 | rules: | ||
| 226 | |||
| 227 | - exactly one I/O method, either "mmap" or "read", is associated with each | ||
| 228 | file descriptor. Once it is selected, the application must close and reopen the | ||
| 229 | device to switch to the other I/O method; | ||
| 230 | |||
| 231 | - although it is not mandatory, previously mapped buffer memory should always | ||
| 232 | be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's. | ||
| 233 | The same number of buffers as before will be allocated again to match the size | ||
| 234 | of the new video frames, so you have to map the buffers again before any I/O | ||
| 235 | attempts on them. | ||
| 236 | |||
| 237 | |||
| 238 | 10. Contact information | ||
| 239 | ======================= | ||
| 240 | The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>. | ||
| 241 | |||
| 242 | GPG/PGP encrypted e-mail's are accepted. The GPG key ID of the author is | ||
| 243 | 'FCE635A4'; the public 1024-bit key should be available at any keyserver; | ||
| 244 | the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'. | ||
| 245 | |||
| 246 | |||
| 247 | 11. Credits | ||
| 248 | =========== | ||
| 249 | - Informations about the chip internals needed to enable the I2C protocol have | ||
| 250 | been taken from the documentation of the ZC030x Video4Linux1 driver written | ||
| 251 | by Andrew Birkett <andy@nobugs.org>; | ||
| 252 | - The initialization values of the ZC0301 controller connected to the PAS202BCB | ||
| 253 | image sensor have been taken from the SPCA5XX driver maintained by | ||
| 254 | Michel Xhaard <mxhaard@magic.fr>. | ||
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index 8bea3fbd0548..3b39a91b24bd 100644 --- a/Documentation/video4linux/CARDLIST.cx88 +++ b/Documentation/video4linux/CARDLIST.cx88 | |||
| @@ -43,3 +43,5 @@ | |||
| 43 | 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] | 43 | 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] |
| 44 | 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] | 44 | 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] |
| 45 | 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] | 45 | 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] |
| 46 | 45 -> KWorld HardwareMpegTV XPert [17de:0840] | ||
| 47 | 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44] | ||
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index a0c7cad20971..a3026689bbe6 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
| @@ -8,3 +8,4 @@ | |||
| 8 | 7 -> Leadtek Winfast USB II (em2800) | 8 | 7 -> Leadtek Winfast USB II (em2800) |
| 9 | 8 -> Kworld USB2800 (em2800) | 9 | 8 -> Kworld USB2800 (em2800) |
| 10 | 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] | 10 | 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] |
| 11 | 12 -> Kworld PVR TV 2800 RF (em2820/em2840) | ||
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index da4fb890165f..8c7195455963 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
| @@ -83,3 +83,12 @@ | |||
| 83 | 82 -> MSI TV@Anywhere plus [1462:6231] | 83 | 82 -> MSI TV@Anywhere plus [1462:6231] |
| 84 | 83 -> Terratec Cinergy 250 PCI TV [153b:1160] | 84 | 83 -> Terratec Cinergy 250 PCI TV [153b:1160] |
| 85 | 84 -> LifeView FlyDVB Trio [5168:0319] | 85 | 84 -> LifeView FlyDVB Trio [5168:0319] |
| 86 | 85 -> AverTV DVB-T 777 [1461:2c05] | ||
| 87 | 86 -> LifeView FlyDVB-T [5168:0301] | ||
| 88 | 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421] | ||
| 89 | 88 -> Tevion/KWorld DVB-T 220RF [17de:7201] | ||
| 90 | 89 -> ELSA EX-VISION 700TV [1048:226c] | ||
| 91 | 90 -> Kworld ATSC110 [17de:7350] | ||
| 92 | 91 -> AVerMedia A169 B [1461:7360] | ||
| 93 | 92 -> AVerMedia A169 B1 [1461:6360] | ||
| 94 | 93 -> Medion 7134 Bridge #2 [16be:0005] | ||
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner index f6d0cf7b7922..1bcdac67dd8c 100644 --- a/Documentation/video4linux/CARDLIST.tuner +++ b/Documentation/video4linux/CARDLIST.tuner | |||
| @@ -64,8 +64,10 @@ tuner=62 - Philips TEA5767HN FM Radio | |||
| 64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner | 64 | tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner |
| 65 | tuner=64 - LG TDVS-H062F/TUA6034 | 65 | tuner=64 - LG TDVS-H062F/TUA6034 |
| 66 | tuner=65 - Ymec TVF66T5-B/DFF | 66 | tuner=65 - Ymec TVF66T5-B/DFF |
| 67 | tuner=66 - LG NTSC (TALN mini series) | 67 | tuner=66 - LG TALN series |
| 68 | tuner=67 - Philips TD1316 Hybrid Tuner | 68 | tuner=67 - Philips TD1316 Hybrid Tuner |
| 69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in | 69 | tuner=68 - Philips TUV1236D ATSC/NTSC dual in |
| 70 | tuner=69 - Tena TNF 5335 MF | 70 | tuner=69 - Tena TNF 5335 and similar models |
| 71 | tuner=70 - Samsung TCPN 2121P30A | 71 | tuner=70 - Samsung TCPN 2121P30A |
| 72 | tuner=71 - Xceive xc3028 | ||
| 73 | tuner=72 - Thomson FE6600 | ||
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/video4linux/README.cpia2 new file mode 100644 index 000000000000..ce8213d28b67 --- /dev/null +++ b/Documentation/video4linux/README.cpia2 | |||
| @@ -0,0 +1,130 @@ | |||
| 1 | $Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $ | ||
| 2 | |||
| 3 | 1. Introduction | ||
| 4 | |||
| 5 | This is a driver for STMicroelectronics's CPiA2 (second generation | ||
| 6 | Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG | ||
| 7 | stream at up to vga size. It implements the Video4Linux interface as much as | ||
| 8 | possible. Since the V4L interface does not support compressed formats, only | ||
| 9 | an mjpeg enabled application can be used with the camera. We have modified the | ||
| 10 | gqcam application to view this stream. | ||
| 11 | |||
| 12 | The driver is implemented as two kernel modules. The cpia2 module | ||
| 13 | contains the camera functions and the V4L interface. The cpia2_usb module | ||
| 14 | contains usb specific functions. The main reason for this was the size of the | ||
| 15 | module was getting out of hand, so I separted them. It is not likely that | ||
| 16 | there will be a parallel port version. | ||
| 17 | |||
| 18 | FEATURES: | ||
| 19 | - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos | ||
| 20 | sensors. I only have the vga sensor, so can't test the other. | ||
| 21 | - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between. | ||
| 22 | VGA and QVGA are the native image sizes for the VGA camera. CIF is done | ||
| 23 | in the coprocessor by scaling QVGA. All other sizes are done by clipping. | ||
| 24 | - Palette: YCrCb, compressed with MJPEG. | ||
| 25 | - Some compression parameters are settable. | ||
| 26 | - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA). | ||
| 27 | - Adjust brightness, color, contrast while streaming. | ||
| 28 | - Flicker control settable for 50 or 60 Hz mains frequency. | ||
| 29 | |||
| 30 | 2. Making and installing the stv672 driver modules: | ||
| 31 | |||
| 32 | Requirements: | ||
| 33 | ------------- | ||
| 34 | This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has | ||
| 35 | only been tested on 2.6. Video4Linux must be either compiled into the kernel or | ||
| 36 | available as a module. Video4Linux2 is automatically detected and made | ||
| 37 | available at compile time. | ||
| 38 | |||
| 39 | Compiling: | ||
| 40 | ---------- | ||
| 41 | As root, do a make install. This will compile and install the modules | ||
| 42 | into the media/video directory in the module tree. For 2.4 kernels, use | ||
| 43 | Makefile_2.4 (aka do make -f Makefile_2.4 install). | ||
| 44 | |||
| 45 | Setup: | ||
| 46 | ------ | ||
| 47 | Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This | ||
| 48 | may be done automatically by your distribution. | ||
| 49 | |||
| 50 | 3. Driver options | ||
| 51 | |||
| 52 | Option Description | ||
| 53 | ------ ----------- | ||
| 54 | video_nr video device to register (0=/dev/video0, etc) | ||
| 55 | range -1 to 64. default is -1 (first available) | ||
| 56 | If you have more than 1 camera, this MUST be -1. | ||
| 57 | buffer_size Size for each frame buffer in bytes (default 68k) | ||
| 58 | num_buffers Number of frame buffers (1-32, default 3) | ||
| 59 | alternate USB Alternate (2-7, default 7) | ||
| 60 | flicker_freq Frequency for flicker reduction(50 or 60, default 60) | ||
| 61 | flicker_mode 0 to disable, or 1 to enable flicker reduction. | ||
| 62 | (default 0). This is only effective if the camera | ||
| 63 | uses a stv0672 coprocessor. | ||
| 64 | |||
| 65 | Setting the options: | ||
| 66 | -------------------- | ||
| 67 | If you are using modules, edit /etc/modules.conf and add an options | ||
| 68 | line like this: | ||
| 69 | options cpia2 num_buffers=3 buffer_size=65535 | ||
| 70 | |||
| 71 | If the driver is compiled into the kernel, at boot time specify them | ||
| 72 | like this: | ||
| 73 | cpia2.num_buffers=3 cpia2.buffer_size=65535 | ||
| 74 | |||
| 75 | What buffer size should I use? | ||
| 76 | ------------------------------ | ||
| 77 | The maximum image size depends on the alternate you choose, and the | ||
| 78 | frame rate achieved by the camera. If the compression engine is able to | ||
| 79 | keep up with the frame rate, the maximum image size is given by the table | ||
| 80 | below. | ||
| 81 | The compression engine starts out at maximum compression, and will | ||
| 82 | increase image quality until it is close to the size in the table. As long | ||
| 83 | as the compression engine can keep up with the frame rate, after a short time | ||
| 84 | the images will all be about the size in the table, regardless of resolution. | ||
| 85 | At low alternate settings, the compression engine may not be able to | ||
| 86 | compress the image enough and will reduce the frame rate by producing larger | ||
| 87 | images. | ||
| 88 | The default of 68k should be good for most users. This will handle | ||
| 89 | any alternate at frame rates down to 15fps. For lower frame rates, it may | ||
| 90 | be necessary to increase the buffer size to avoid having frames dropped due | ||
| 91 | to insufficient space. | ||
| 92 | |||
| 93 | Image size(bytes) | ||
| 94 | Alternate bytes/ms 15fps 30fps | ||
| 95 | 2 128 8533 4267 | ||
| 96 | 3 384 25600 12800 | ||
| 97 | 4 640 42667 21333 | ||
| 98 | 5 768 51200 25600 | ||
| 99 | 6 896 59733 29867 | ||
| 100 | 7 1023 68200 34100 | ||
| 101 | |||
| 102 | How many buffers should I use? | ||
| 103 | ------------------------------ | ||
| 104 | For normal streaming, 3 should give the best results. With only 2, | ||
| 105 | it is possible for the camera to finish sending one image just after a | ||
| 106 | program has started reading the other. If this happens, the driver must drop | ||
| 107 | a frame. The exception to this is if you have a heavily loaded machine. In | ||
| 108 | this case use 2 buffers. You are probably not reading at the full frame rate. | ||
| 109 | If the camera can send multiple images before a read finishes, it could | ||
| 110 | overwrite the third buffer before the read finishes, leading to a corrupt | ||
| 111 | image. Single and double buffering have extra checks to avoid overwriting. | ||
| 112 | |||
| 113 | 4. Using the camera | ||
| 114 | |||
| 115 | We are providing a modified gqcam application to view the output. In | ||
| 116 | order to avoid confusion, here it is called mview. There is also the qx5view | ||
| 117 | program which can also control the lights on the qx5 microscope. MJPEG Tools | ||
| 118 | (http://mjpeg.sourceforge.net) can also be used to record from the camera. | ||
| 119 | |||
| 120 | 5. Notes to developers: | ||
| 121 | |||
| 122 | - This is a driver version stripped of the 2.4 back compatibility | ||
| 123 | and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support. | ||
| 124 | |||
| 125 | 6. Thanks: | ||
| 126 | |||
| 127 | - Peter Pregler <Peter_Pregler@email.com>, | ||
| 128 | Scott J. Bertin <scottbertin@yahoo.com>, and | ||
| 129 | Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which | ||
| 130 | this one was modelled from. | ||
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/video4linux/cpia2_overview.txt new file mode 100644 index 000000000000..a6e53665216b --- /dev/null +++ b/Documentation/video4linux/cpia2_overview.txt | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | Programmer's View of Cpia2 | ||
| 2 | |||
| 3 | Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a | ||
| 4 | division of ST Microelectronics). There are two versions. The first is the | ||
| 5 | STV0672, which is capable of up to 30 frames per second (fps) in frame sizes | ||
| 6 | up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version, | ||
| 7 | which can handle up to 30 fps VGA. Both coprocessors can be attached to two | ||
| 8 | CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will | ||
| 9 | be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors. | ||
| 10 | |||
| 11 | The two chipsets operate almost identically. The core is an 8051 processor, | ||
| 12 | running two different versions of firmware. The 672 runs the VP4 video | ||
| 13 | processor code, the 676 runs VP5. There are a few differences in register | ||
| 14 | mappings for the two chips. In these cases, the symbols defined in the | ||
| 15 | header files are marked with VP4 or VP5 as part of the symbol name. | ||
| 16 | |||
| 17 | The cameras appear externally as three sets of registers. Setting register | ||
| 18 | values is the only way to control the camera. Some settings are | ||
| 19 | interdependant, such as the sequence required to power up the camera. I will | ||
| 20 | try to make note of all of these cases. | ||
| 21 | |||
| 22 | The register sets are called blocks. Block 0 is the system block. This | ||
| 23 | section is always powered on when the camera is plugged in. It contains | ||
| 24 | registers that control housekeeping functions such as powering up the video | ||
| 25 | processor. The video processor is the VP block. These registers control | ||
| 26 | how the video from the sensor is processed. Examples are timing registers, | ||
| 27 | user mode (vga, qvga), scaling, cropping, framerates, and so on. The last | ||
| 28 | block is the video compressor (VC). The video stream sent from the camera is | ||
| 29 | compressed as Motion JPEG (JPEGA). The VC controls all of the compression | ||
| 30 | parameters. Looking at the file cpia2_registers.h, you can get a full view | ||
| 31 | of these registers and the possible values for most of them. | ||
| 32 | |||
| 33 | One or more registers can be set or read by sending a usb control message to | ||
| 34 | the camera. There are three modes for this. Block mode requests a number | ||
| 35 | of contiguous registers. Random mode reads or writes random registers with | ||
| 36 | a tuple structure containing address/value pairs. The repeat mode is only | ||
| 37 | used by VP4 to load a firmware patch. It contains a starting address and | ||
| 38 | a sequence of bytes to be written into a gpio port. \ No newline at end of file | ||
diff --git a/Documentation/w1/masters/ds2482 b/Documentation/w1/masters/ds2482 new file mode 100644 index 000000000000..c5d5478d90b2 --- /dev/null +++ b/Documentation/w1/masters/ds2482 | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | Kernel driver ds2482 | ||
| 2 | ==================== | ||
| 3 | |||
| 4 | Supported chips: | ||
| 5 | * Maxim DS2482-100, Maxim DS2482-800 | ||
| 6 | Prefix: 'ds2482' | ||
| 7 | Addresses scanned: None | ||
| 8 | Datasheets: | ||
| 9 | http://pdfserv.maxim-ic.com/en/ds/DS2482-100-DS2482S-100.pdf | ||
| 10 | http://pdfserv.maxim-ic.com/en/ds/DS2482-800-DS2482S-800.pdf | ||
| 11 | |||
| 12 | Author: Ben Gardner <bgardner@wabtec.com> | ||
| 13 | |||
| 14 | |||
| 15 | Description | ||
| 16 | ----------- | ||
| 17 | |||
| 18 | The Maixm/Dallas Semiconductor DS2482 is a I2C device that provides | ||
| 19 | one (DS2482-100) or eight (DS2482-800) 1-wire busses. | ||
| 20 | |||
| 21 | |||
| 22 | General Remarks | ||
| 23 | --------------- | ||
| 24 | |||
| 25 | Valid addresses are 0x18, 0x19, 0x1a, and 0x1b. | ||
| 26 | However, the device cannot be detected without writing to the i2c bus, so no | ||
| 27 | detection is done. | ||
| 28 | You should force the device address. | ||
| 29 | |||
| 30 | $ modprobe ds2482 force=0,0x18 | ||
| 31 | |||
