Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
ieee1394: Kconfig menu touch-up
firewire: Kconfig menu touch-up
firewire: deadline for PHY config transmission
firewire: fw-ohci: unify printk prefixes
firewire: fill_bus_reset_event needs lock protection
firewire: fw-ohci: write selfIDBufferPtr before LinkControl.rcvSelfID
firewire: fw-ohci: disable PHY packet reception into AR context
firewire: fw-ohci: use of uninitialized data in AR handler
firewire: don't panic on invalid AR request buffer

+179 -140
+15 -17
drivers/firewire/Kconfig
··· 1 - comment "An alternative FireWire stack is available with EXPERIMENTAL=y" 1 + comment "A new alternative FireWire stack is available with EXPERIMENTAL=y" 2 2 depends on EXPERIMENTAL=n 3 3 4 + comment "Enable only one of the two stacks, unless you know what you are doing" 5 + depends on EXPERIMENTAL 6 + 4 7 config FIREWIRE 5 - tristate "IEEE 1394 (FireWire) support - alternative stack, EXPERIMENTAL" 8 + tristate "New FireWire stack, EXPERIMENTAL" 6 9 depends on EXPERIMENTAL 7 10 select CRC_ITU_T 8 11 help 9 12 This is the "Juju" FireWire stack, a new alternative implementation 10 13 designed for robustness and simplicity. You can build either this 11 - stack, or the classic stack (the ieee1394 driver, ohci1394 etc.) 12 - or both. Please read http://wiki.linux1394.org/JujuMigration before 13 - you enable the new stack. 14 + stack, or the old stack (the ieee1394 driver, ohci1394 etc.) or both. 15 + Please read http://wiki.linux1394.org/JujuMigration before you 16 + enable the new stack. 14 17 15 18 To compile this driver as a module, say M here: the module will be 16 19 called firewire-core. It functionally replaces ieee1394, raw1394, 17 20 and video1394. 18 21 19 - NOTE: 20 - 21 - You should only build ONE of the stacks, unless you REALLY know what 22 - you are doing. 23 - 24 22 config FIREWIRE_OHCI 25 - tristate "Support for OHCI FireWire host controllers" 23 + tristate "OHCI-1394 controllers" 26 24 depends on PCI && FIREWIRE 27 25 help 28 26 Enable this driver if you have a FireWire controller based ··· 31 33 called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394 32 34 stack. 33 35 34 - NOTE: 36 + NOTE: 35 37 36 - You should only build ohci1394 or firewire-ohci, but not both. 37 - If you nevertheless want to install both, you should configure them 38 - only as modules and blacklist the driver(s) which you don't want to 39 - have auto-loaded. Add either 38 + You should only build either firewire-ohci or the old ohci1394 driver, 39 + but not both. If you nevertheless want to install both, you should 40 + configure them only as modules and blacklist the driver(s) which you 41 + don't want to have auto-loaded. Add either 40 42 41 43 blacklist firewire-ohci 42 44 or ··· 58 60 default y 59 61 60 62 config FIREWIRE_SBP2 61 - tristate "Support for storage devices (SBP-2 protocol driver)" 63 + tristate "Storage devices (SBP-2 protocol)" 62 64 depends on FIREWIRE && SCSI 63 65 help 64 66 This option enables you to use SBP-2 devices connected to a
+7 -2
drivers/firewire/fw-cdev.c
··· 205 205 return dequeue_event(client, buffer, count); 206 206 } 207 207 208 + /* caller must hold card->lock so that node pointers can be dereferenced here */ 208 209 static void 209 210 fill_bus_reset_event(struct fw_cdev_event_bus_reset *event, 210 211 struct client *client) ··· 215 214 event->closure = client->bus_reset_closure; 216 215 event->type = FW_CDEV_EVENT_BUS_RESET; 217 216 event->generation = client->device->generation; 218 - smp_rmb(); /* node_id must not be older than generation */ 219 217 event->node_id = client->device->node_id; 220 218 event->local_node_id = card->local_node->node_id; 221 219 event->bm_node_id = 0; /* FIXME: We don't track the BM. */ ··· 274 274 { 275 275 struct fw_cdev_get_info *get_info = buffer; 276 276 struct fw_cdev_event_bus_reset bus_reset; 277 + struct fw_card *card = client->device->card; 277 278 unsigned long ret = 0; 278 279 279 280 client->version = get_info->version; ··· 300 299 client->bus_reset_closure = get_info->bus_reset_closure; 301 300 if (get_info->bus_reset != 0) { 302 301 void __user *uptr = u64_to_uptr(get_info->bus_reset); 302 + unsigned long flags; 303 303 304 + spin_lock_irqsave(&card->lock, flags); 304 305 fill_bus_reset_event(&bus_reset, client); 306 + spin_unlock_irqrestore(&card->lock, flags); 307 + 305 308 if (copy_to_user(uptr, &bus_reset, sizeof(bus_reset))) 306 309 return -EFAULT; 307 310 } 308 311 309 - get_info->card = client->device->card->index; 312 + get_info->card = card->index; 310 313 311 314 return 0; 312 315 }
+56 -54
drivers/firewire/fw-ohci.c
··· 265 265 !(evt & OHCI1394_busReset)) 266 266 return; 267 267 268 - printk(KERN_DEBUG KBUILD_MODNAME ": IRQ " 269 - "%08x%s%s%s%s%s%s%s%s%s%s%s%s%s\n", 270 - evt, 271 - evt & OHCI1394_selfIDComplete ? " selfID" : "", 272 - evt & OHCI1394_RQPkt ? " AR_req" : "", 273 - evt & OHCI1394_RSPkt ? " AR_resp" : "", 274 - evt & OHCI1394_reqTxComplete ? " AT_req" : "", 275 - evt & OHCI1394_respTxComplete ? " AT_resp" : "", 276 - evt & OHCI1394_isochRx ? " IR" : "", 277 - evt & OHCI1394_isochTx ? " IT" : "", 278 - evt & OHCI1394_postedWriteErr ? " postedWriteErr" : "", 279 - evt & OHCI1394_cycleTooLong ? " cycleTooLong" : "", 280 - evt & OHCI1394_cycle64Seconds ? " cycle64Seconds" : "", 281 - evt & OHCI1394_regAccessFail ? " regAccessFail" : "", 282 - evt & OHCI1394_busReset ? " busReset" : "", 283 - evt & ~(OHCI1394_selfIDComplete | OHCI1394_RQPkt | 284 - OHCI1394_RSPkt | OHCI1394_reqTxComplete | 285 - OHCI1394_respTxComplete | OHCI1394_isochRx | 286 - OHCI1394_isochTx | OHCI1394_postedWriteErr | 287 - OHCI1394_cycleTooLong | OHCI1394_cycle64Seconds | 288 - OHCI1394_regAccessFail | OHCI1394_busReset) 268 + fw_notify("IRQ %08x%s%s%s%s%s%s%s%s%s%s%s%s%s\n", evt, 269 + evt & OHCI1394_selfIDComplete ? " selfID" : "", 270 + evt & OHCI1394_RQPkt ? " AR_req" : "", 271 + evt & OHCI1394_RSPkt ? " AR_resp" : "", 272 + evt & OHCI1394_reqTxComplete ? " AT_req" : "", 273 + evt & OHCI1394_respTxComplete ? " AT_resp" : "", 274 + evt & OHCI1394_isochRx ? " IR" : "", 275 + evt & OHCI1394_isochTx ? " IT" : "", 276 + evt & OHCI1394_postedWriteErr ? " postedWriteErr" : "", 277 + evt & OHCI1394_cycleTooLong ? " cycleTooLong" : "", 278 + evt & OHCI1394_cycle64Seconds ? " cycle64Seconds" : "", 279 + evt & OHCI1394_regAccessFail ? " regAccessFail" : "", 280 + evt & OHCI1394_busReset ? " busReset" : "", 281 + evt & ~(OHCI1394_selfIDComplete | OHCI1394_RQPkt | 282 + OHCI1394_RSPkt | OHCI1394_reqTxComplete | 283 + OHCI1394_respTxComplete | OHCI1394_isochRx | 284 + OHCI1394_isochTx | OHCI1394_postedWriteErr | 285 + OHCI1394_cycleTooLong | OHCI1394_cycle64Seconds | 286 + OHCI1394_regAccessFail | OHCI1394_busReset) 289 287 ? " ?" : ""); 290 288 } 291 289 ··· 306 308 if (likely(!(param_debug & OHCI_PARAM_DEBUG_SELFIDS))) 307 309 return; 308 310 309 - printk(KERN_DEBUG KBUILD_MODNAME ": %d selfIDs, generation %d, " 310 - "local node ID %04x\n", self_id_count, generation, node_id); 311 + fw_notify("%d selfIDs, generation %d, local node ID %04x\n", 312 + self_id_count, generation, node_id); 311 313 312 314 for (; self_id_count--; ++s) 313 315 if ((*s & 1 << 23) == 0) 314 - printk(KERN_DEBUG "selfID 0: %08x, phy %d [%c%c%c] " 315 - "%s gc=%d %s %s%s%s\n", 316 - *s, *s >> 24 & 63, _p(s, 6), _p(s, 4), _p(s, 2), 317 - speed[*s >> 14 & 3], *s >> 16 & 63, 318 - power[*s >> 8 & 7], *s >> 22 & 1 ? "L" : "", 319 - *s >> 11 & 1 ? "c" : "", *s & 2 ? "i" : ""); 316 + fw_notify("selfID 0: %08x, phy %d [%c%c%c] " 317 + "%s gc=%d %s %s%s%s\n", 318 + *s, *s >> 24 & 63, _p(s, 6), _p(s, 4), _p(s, 2), 319 + speed[*s >> 14 & 3], *s >> 16 & 63, 320 + power[*s >> 8 & 7], *s >> 22 & 1 ? "L" : "", 321 + *s >> 11 & 1 ? "c" : "", *s & 2 ? "i" : ""); 320 322 else 321 - printk(KERN_DEBUG "selfID n: %08x, phy %d " 322 - "[%c%c%c%c%c%c%c%c]\n", 323 - *s, *s >> 24 & 63, 324 - _p(s, 16), _p(s, 14), _p(s, 12), _p(s, 10), 325 - _p(s, 8), _p(s, 6), _p(s, 4), _p(s, 2)); 323 + fw_notify("selfID n: %08x, phy %d [%c%c%c%c%c%c%c%c]\n", 324 + *s, *s >> 24 & 63, 325 + _p(s, 16), _p(s, 14), _p(s, 12), _p(s, 10), 326 + _p(s, 8), _p(s, 6), _p(s, 4), _p(s, 2)); 326 327 } 327 328 328 329 static const char *evts[] = { ··· 370 373 evt = 0x1f; 371 374 372 375 if (evt == OHCI1394_evt_bus_reset) { 373 - printk(KERN_DEBUG "A%c evt_bus_reset, generation %d\n", 374 - dir, (header[2] >> 16) & 0xff); 376 + fw_notify("A%c evt_bus_reset, generation %d\n", 377 + dir, (header[2] >> 16) & 0xff); 375 378 return; 376 379 } 377 380 378 381 if (header[0] == ~header[1]) { 379 - printk(KERN_DEBUG "A%c %s, %s, %08x\n", 380 - dir, evts[evt], phys[header[0] >> 30 & 0x3], 381 - header[0]); 382 + fw_notify("A%c %s, %s, %08x\n", 383 + dir, evts[evt], phys[header[0] >> 30 & 0x3], header[0]); 382 384 return; 383 385 } 384 386 ··· 396 400 397 401 switch (tcode) { 398 402 case 0xe: case 0xa: 399 - printk(KERN_DEBUG "A%c %s, %s\n", 400 - dir, evts[evt], tcodes[tcode]); 403 + fw_notify("A%c %s, %s\n", dir, evts[evt], tcodes[tcode]); 401 404 break; 402 405 case 0x0: case 0x1: case 0x4: case 0x5: case 0x9: 403 - printk(KERN_DEBUG "A%c spd %x tl %02x, " 404 - "%04x -> %04x, %s, " 405 - "%s, %04x%08x%s\n", 406 - dir, speed, header[0] >> 10 & 0x3f, 407 - header[1] >> 16, header[0] >> 16, evts[evt], 408 - tcodes[tcode], header[1] & 0xffff, header[2], specific); 406 + fw_notify("A%c spd %x tl %02x, " 407 + "%04x -> %04x, %s, " 408 + "%s, %04x%08x%s\n", 409 + dir, speed, header[0] >> 10 & 0x3f, 410 + header[1] >> 16, header[0] >> 16, evts[evt], 411 + tcodes[tcode], header[1] & 0xffff, header[2], specific); 409 412 break; 410 413 default: 411 - printk(KERN_DEBUG "A%c spd %x tl %02x, " 412 - "%04x -> %04x, %s, " 413 - "%s%s\n", 414 - dir, speed, header[0] >> 10 & 0x3f, 415 - header[1] >> 16, header[0] >> 16, evts[evt], 416 - tcodes[tcode], specific); 414 + fw_notify("A%c spd %x tl %02x, " 415 + "%04x -> %04x, %s, " 416 + "%s%s\n", 417 + dir, speed, header[0] >> 10 & 0x3f, 418 + header[1] >> 16, header[0] >> 16, evts[evt], 419 + tcodes[tcode], specific); 417 420 } 418 421 } 419 422 ··· 543 548 p.header_length = 12; 544 549 p.payload_length = 0; 545 550 break; 551 + 552 + default: 553 + /* FIXME: Stop context, discard everything, and restart? */ 554 + p.header_length = 0; 555 + p.payload_length = 0; 546 556 } 547 557 548 558 p.payload = (void *) buffer + p.header_length; ··· 1468 1468 reg_write(ohci, OHCI1394_HCControlClear, 1469 1469 OHCI1394_HCControl_noByteSwapData); 1470 1470 1471 + reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->self_id_bus); 1472 + reg_write(ohci, OHCI1394_LinkControlClear, 1473 + OHCI1394_LinkControl_rcvPhyPkt); 1471 1474 reg_write(ohci, OHCI1394_LinkControlSet, 1472 1475 OHCI1394_LinkControl_rcvSelfID | 1473 1476 OHCI1394_LinkControl_cycleTimerEnable | ··· 1484 1481 ar_context_run(&ohci->ar_request_ctx); 1485 1482 ar_context_run(&ohci->ar_response_ctx); 1486 1483 1487 - reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->self_id_bus); 1488 1484 reg_write(ohci, OHCI1394_PhyUpperBound, 0x00010000); 1489 1485 reg_write(ohci, OHCI1394_IntEventClear, ~0); 1490 1486 reg_write(ohci, OHCI1394_IntMaskClear, ~0);
+35 -15
drivers/firewire/fw-transaction.c
··· 20 20 21 21 #include <linux/completion.h> 22 22 #include <linux/kernel.h> 23 + #include <linux/kref.h> 23 24 #include <linux/module.h> 24 25 #include <linux/init.h> 25 26 #include <linux/interrupt.h> ··· 298 297 struct fw_phy_packet { 299 298 struct fw_packet packet; 300 299 struct completion done; 300 + struct kref kref; 301 301 }; 302 302 303 - static void 304 - transmit_phy_packet_callback(struct fw_packet *packet, 305 - struct fw_card *card, int status) 303 + static void phy_packet_release(struct kref *kref) 304 + { 305 + struct fw_phy_packet *p = 306 + container_of(kref, struct fw_phy_packet, kref); 307 + kfree(p); 308 + } 309 + 310 + static void transmit_phy_packet_callback(struct fw_packet *packet, 311 + struct fw_card *card, int status) 306 312 { 307 313 struct fw_phy_packet *p = 308 314 container_of(packet, struct fw_phy_packet, packet); 309 315 310 316 complete(&p->done); 317 + kref_put(&p->kref, phy_packet_release); 311 318 } 312 319 313 320 void fw_send_phy_config(struct fw_card *card, 314 321 int node_id, int generation, int gap_count) 315 322 { 316 - struct fw_phy_packet p; 323 + struct fw_phy_packet *p; 324 + long timeout = DIV_ROUND_UP(HZ, 10); 317 325 u32 data = PHY_IDENTIFIER(PHY_PACKET_CONFIG) | 318 326 PHY_CONFIG_ROOT_ID(node_id) | 319 327 PHY_CONFIG_GAP_COUNT(gap_count); 320 328 321 - p.packet.header[0] = data; 322 - p.packet.header[1] = ~data; 323 - p.packet.header_length = 8; 324 - p.packet.payload_length = 0; 325 - p.packet.speed = SCODE_100; 326 - p.packet.generation = generation; 327 - p.packet.callback = transmit_phy_packet_callback; 328 - init_completion(&p.done); 329 + p = kmalloc(sizeof(*p), GFP_KERNEL); 330 + if (p == NULL) 331 + return; 329 332 330 - card->driver->send_request(card, &p.packet); 331 - wait_for_completion(&p.done); 333 + p->packet.header[0] = data; 334 + p->packet.header[1] = ~data; 335 + p->packet.header_length = 8; 336 + p->packet.payload_length = 0; 337 + p->packet.speed = SCODE_100; 338 + p->packet.generation = generation; 339 + p->packet.callback = transmit_phy_packet_callback; 340 + init_completion(&p->done); 341 + kref_set(&p->kref, 2); 342 + 343 + card->driver->send_request(card, &p->packet); 344 + timeout = wait_for_completion_timeout(&p->done, timeout); 345 + kref_put(&p->kref, phy_packet_release); 346 + 347 + /* will leak p if the callback is never executed */ 348 + WARN_ON(timeout == 0); 332 349 } 333 350 334 351 void fw_flush_transactions(struct fw_card *card) ··· 591 572 break; 592 573 593 574 default: 594 - BUG(); 575 + fw_error("ERROR - corrupt request received - %08x %08x %08x\n", 576 + p->header[0], p->header[1], p->header[2]); 595 577 return NULL; 596 578 } 597 579
+66 -52
drivers/ieee1394/Kconfig
··· 4 4 source "drivers/firewire/Kconfig" 5 5 6 6 config IEEE1394 7 - tristate "IEEE 1394 (FireWire) support" 7 + tristate "Stable FireWire stack" 8 8 depends on PCI || BROKEN 9 9 help 10 10 IEEE 1394 describes a high performance serial bus, which is also ··· 19 19 To compile this driver as a module, say M here: the 20 20 module will be called ieee1394. 21 21 22 - comment "Subsystem Options" 23 - depends on IEEE1394 24 - 25 - config IEEE1394_VERBOSEDEBUG 26 - bool "Excessive debugging output" 27 - depends on IEEE1394 22 + config IEEE1394_OHCI1394 23 + tristate "OHCI-1394 controllers" 24 + depends on PCI && IEEE1394 28 25 help 29 - If you say Y here, you will get very verbose debugging logs from 30 - the subsystem which includes a dump of the header of every sent 31 - and received packet. This can amount to a high amount of data 32 - collected in a very short time which is usually also saved to 33 - disk by the system logging daemons. 26 + Enable this driver if you have an IEEE 1394 controller based on the 27 + OHCI-1394 specification. The current driver is only tested with OHCI 28 + chipsets made by Texas Instruments and NEC. Most third-party vendors 29 + use one of these chipsets. It should work with any OHCI-1394 30 + compliant card, however. 34 31 35 - Say Y if you really want or need the debugging output, everyone 36 - else says N. 32 + To compile this driver as a module, say M here: the 33 + module will be called ohci1394. 37 34 38 - comment "Controllers" 39 - depends on IEEE1394 35 + NOTE: 40 36 41 - comment "Texas Instruments PCILynx requires I2C" 37 + You should only build either ohci1394 or the new firewire-ohci driver, 38 + but not both. If you nevertheless want to install both, you should 39 + configure them only as modules and blacklist the driver(s) which you 40 + don't want to have auto-loaded. Add either 41 + 42 + blacklist firewire-ohci 43 + or 44 + blacklist ohci1394 45 + blacklist video1394 46 + blacklist dv1394 47 + 48 + to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf 49 + depending on your distribution. The latter two modules should be 50 + blacklisted together with ohci1394 because they depend on ohci1394. 51 + 52 + If you have an old modprobe which doesn't implement the blacklist 53 + directive, use "install modulename /bin/true" for the modules to be 54 + blacklisted. 55 + 56 + comment "PCILynx controller requires I2C" 42 57 depends on IEEE1394 && I2C=n 43 58 44 59 config IEEE1394_PCILYNX 45 - tristate "Texas Instruments PCILynx support" 60 + tristate "PCILynx controller" 46 61 depends on PCI && IEEE1394 && I2C 47 62 select I2C_ALGOBIT 48 63 help ··· 72 57 PowerMacs G3 B&W contain the PCILynx controller. Therefore 73 58 almost everybody can say N here. 74 59 75 - config IEEE1394_OHCI1394 76 - tristate "OHCI-1394 support" 77 - depends on PCI && IEEE1394 78 - help 79 - Enable this driver if you have an IEEE 1394 controller based on the 80 - OHCI-1394 specification. The current driver is only tested with OHCI 81 - chipsets made by Texas Instruments and NEC. Most third-party vendors 82 - use one of these chipsets. It should work with any OHCI-1394 83 - compliant card, however. 84 - 85 - To compile this driver as a module, say M here: the 86 - module will be called ohci1394. 87 - 88 - comment "Protocols" 89 - depends on IEEE1394 90 - 91 - config IEEE1394_VIDEO1394 92 - tristate "OHCI-1394 Video support" 93 - depends on IEEE1394 && IEEE1394_OHCI1394 94 - help 95 - This option enables video device usage for OHCI-1394 cards. Enable 96 - this option only if you have an IEEE 1394 video device connected to 97 - an OHCI-1394 card. 98 - 99 60 comment "SBP-2 support (for storage devices) requires SCSI" 100 61 depends on IEEE1394 && SCSI=n 101 62 102 63 config IEEE1394_SBP2 103 - tristate "SBP-2 support (Harddisks etc.)" 64 + tristate "Storage devices (SBP-2 protocol)" 104 65 depends on IEEE1394 && SCSI 105 66 help 106 67 This option enables you to use SBP-2 devices connected to an IEEE ··· 118 127 119 128 The module is called eth1394 although it does not emulate Ethernet. 120 129 130 + config IEEE1394_RAWIO 131 + tristate "raw1394 userspace interface" 132 + depends on IEEE1394 133 + help 134 + This option adds support for the raw1394 device file which enables 135 + direct communication of user programs with IEEE 1394 devices 136 + (isochronous and asynchronous). Almost all application programs 137 + which access FireWire require this option. 138 + 139 + To compile this driver as a module, say M here: the module will be 140 + called raw1394. 141 + 142 + config IEEE1394_VIDEO1394 143 + tristate "video1394 userspace interface" 144 + depends on IEEE1394 && IEEE1394_OHCI1394 145 + help 146 + This option adds support for the video1394 device files which enable 147 + isochronous communication of user programs with IEEE 1394 devices, 148 + especially video capture or export. This interface is used by all 149 + libdc1394 based programs and by several other programs, in addition to 150 + the raw1394 interface. It is generally not required for DV capture. 151 + 152 + To compile this driver as a module, say M here: the module will be 153 + called video1394. 154 + 121 155 config IEEE1394_DV1394 122 - tristate "OHCI-DV I/O support (deprecated)" 156 + tristate "dv1394 userspace interface (deprecated)" 123 157 depends on IEEE1394 && IEEE1394_OHCI1394 124 158 help 125 159 The dv1394 driver is unsupported and may be removed from Linux in a 126 160 future release. Its functionality is now provided by raw1394 together 127 161 with libraries such as libiec61883. 128 162 129 - config IEEE1394_RAWIO 130 - tristate "Raw IEEE1394 I/O support" 163 + config IEEE1394_VERBOSEDEBUG 164 + bool "Excessive debugging output" 131 165 depends on IEEE1394 132 166 help 133 - This option adds support for the raw1394 device file which enables 134 - direct communication of user programs with the IEEE 1394 bus and thus 135 - with the attached peripherals. Almost all application programs which 136 - access FireWire require this option. 167 + If you say Y here, you will get very verbose debugging logs from the 168 + ieee1394 drivers, including sent and received packet headers. This 169 + will quickly result in large amounts of data sent to the system log. 137 170 138 - To compile this driver as a module, say M here: the module will be 139 - called raw1394. 171 + Say Y if you really need the debugging output. Everyone else says N. 140 172 141 173 endmenu