aboutsummaryrefslogtreecommitdiff
path: root/drivers/firewire/fw-sbp2.c
AgeCommit message (Collapse)Author
2007-05-10firewire: Return SCSI_MLQUEUE_HOST_BUSY for out of memory cases in queuecommand.Kristian Høgsberg
Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-05-10firewire: Handle the last few DMA mapping error cases.Kristian Høgsberg
This should be the last missing checks. Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-05-10firewire: Allocate scsi_host up front and allocate the sbp2_device as hostdata.Kristian Høgsberg
Avoids an extra allocation and simplifies lifetime rules for the scsi_host. Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-05-10firewire: Provide module aliase for backwards compatibility.Olaf Hering
This patch loads fw-sbp2 if sbp2 is still in the config file. So one can go back and forth between releases without worry about the root filesystem drivers. Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Existing mkinitrd scripts still have to be adapted, unless they grok module aliases. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-05-10firewire: Uppercase most macro names.Kristian Høgsberg
Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-05-10firewire: Coding style cleanup: no spaces after function names.Kristian Høgsberg
Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-05-10firewire: Clean up comment style.Kristian Høgsberg
Drop filenames from file preamble, drop editor annotations and use standard indent style for block comments. Signed-off-by: Kristian Hoegsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (fixed typo)
2007-04-12firewire: Do an agent reset on error recovery.Kristian Høgsberg
Signed-off-by: Kristian Høgsberg <krh@redhat.com> (Reverted part which moved it from eh_abort_handler to eh_host_reset_handler) Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-04-12firewire: Only free ORBs that completed the initial transaction.Kristian Høgsberg
In some situations we can receive the ORB status write before we have received the ORB pointer write response. When this happens, we assume that the fw_transaction is finished and free the ORB struct containing the fw_transaction. This fix make the status write logic only accept status writes for ORBs where the initial ORB pointer write transaction finished. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-04-12firewire: Forward SAM status codes to the scsi stack.Kristian Høgsberg
Or the SAM status codes from the device sense data into the command error code. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-15firewire: Add ref-counting for sbp2_device and hold a ref while we have work ↵Kristian Høgsberg
scheduled. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-15firewire: Zero out sd->scsi_host if we fail to register with the SCSI stack.Kristian Høgsberg
Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Don't time out command orbs, leave that to the scsi stack.Kristian Høgsberg
The mod_timer based timing out of orb was a little to agressive and would time out legit, but long-lived scsi cmds. Besides, the scsi stack keeps track of this already. Since we're only timing out management orbs, go back to wait_for_completion_timeout. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Quiet down fw-sbp2 logging a bit, remove stale FIXME.Kristian Høgsberg
Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Only use INIT_DELAYED_WORK for first initialization.Kristian Høgsberg
Use PREPARE_DELAYED_WORK to just change the function pointer. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Use dma_mapping_error() for checking for DMA mapping errors.Kristian Høgsberg
Pointed out by Pete Zaitcev. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Credit the old sbp2.c driver for being a good starting point.Kristian Høgsberg
Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Complete SCSI commands with DID_BUS_BUSY when a bus reset happens.Kristian Høgsberg
This lets the SCSI stack retry the command when a SCSI command is interrupted by a FireWire bus reset. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Introduce a retry mechanism for reconnects and logins.Kristian Høgsberg
Sometimes we reconnect too soon, sometimes too late. Adding a retry mechanism make the reconnect step much more robust. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: fw-sbp2: Do ORB timeout right.Kristian Høgsberg
When a management ORB times out, either because the fw_transaction times out or when we don't get the status write, we need to properly cancel the entire operation. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Implement proper transaction cancelation.Kristian Høgsberg
Drivers such as fw-sbp2 had no way to properly cancel in-progress transactions, which could leave a pending transaction or an unset packet in the low-level queues after kfree'ing the containing structure. fw_cancel_transaction() lets drivers cancel a submitted transaction. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: fw-sbp2: set command set related device flagsStefan Richter
Copied from sbp2: - enable spin-up by START STOP UNIT for all devices - enable INQUIRY (36) workaround on demand - prefer READ/ WRITE (10) over (6) for all devices - prefer MODE SENSE (10) for MMC devices Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: consistent usage of node_idStefan Richter
Definitions as per IEEE 1212 and IEEE 1394: Node ID: Concatenation of bus ID and local ID. 16 bits long. Bus ID: Identifies a particular bus within a group of buses interconnected by bus bridges. Local ID: Identifies a particular node on a bus. PHY ID: Local ID of IEEE 1394 nodes. 6 bits long. Never ever use a variable called node_id for anything else than a node ID. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: fw-sbp2: remove unused macroStefan Richter
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
2007-03-09firewire: fw-sbp2: remove bogus "emulated" host flagStefan Richter
There is no emulation going on here too. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
2007-03-09firewire: comma after last enum item or initializerStefan Richter
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
2007-03-09firewire: mark some structs constStefan Richter
Instances of struct file_operations and struct fw_card_driver can be qualified as "const". Ditto with struct fw_descriptor.data, struct fw_device_id, and predefined instances of struct fw_address_region, at least in the current implementation. Data qualified as const is placed into the .rodata section which won't be mixed with dirty data. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: build fix 3Stefan Richter
drivers/firewire/fw-sbp2.c: At top level: drivers/firewire/fw-sbp2.c:1060: error: storage size of '__mod_ieee1394_device_table' isn't known (error pointed out by akpm) Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: build fix 2Andrew Morton
ia64: drivers/firewire/fw-sbp2.c: In function `sbp2_command_orb_map_scatterlist': drivers/firewire/fw-sbp2.c:826: warning: implicit declaration of function `sg_dma_len' drivers/firewire/fw-sbp2.c:828: warning: implicit declaration of function `sg_dma_address' drivers/firewire/fw-sbp2.c:837: error: invalid use of undefined type `struct scatterlist' drivers/firewire/fw-sbp2.c:838: error: invalid use of undefined type `struct scatterlist' Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2007-03-09firewire: Add SBP-2 protocol driver for storage devices.Kristian Høgsberg
Signed-off-by: Kristian Høgsberg <krh@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>