git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pty: Rework the pty layer to use the normal buffering logic
[pandora-kernel.git]
/
drivers
/
firewire
/
sbp2.c
diff --git
a/drivers/firewire/sbp2.c
b/drivers/firewire/sbp2.c
index
24c4563
..
8d51568
100644
(file)
--- a/
drivers/firewire/sbp2.c
+++ b/
drivers/firewire/sbp2.c
@@
-200,6
+200,12
@@
static struct fw_device *target_device(struct sbp2_target *tgt)
#define SBP2_RETRY_LIMIT 0xf /* 15 retries */
#define SBP2_CYCLE_LIMIT (0xc8 << 12) /* 200 125us cycles */
#define SBP2_RETRY_LIMIT 0xf /* 15 retries */
#define SBP2_CYCLE_LIMIT (0xc8 << 12) /* 200 125us cycles */
+/*
+ * There is no transport protocol limit to the CDB length, but we implement
+ * a fixed length only. 16 bytes is enough for disks larger than 2 TB.
+ */
+#define SBP2_MAX_CDB_SIZE 16
+
/*
* The default maximum s/g segment size of a FireWire controller is
* usually 0x10000, but SBP-2 only allows 0xffff. Since buffers have to
/*
* The default maximum s/g segment size of a FireWire controller is
* usually 0x10000, but SBP-2 only allows 0xffff. Since buffers have to
@@
-312,7
+318,7
@@
struct sbp2_command_orb {
struct sbp2_pointer next;
struct sbp2_pointer data_descriptor;
__be32 misc;
struct sbp2_pointer next;
struct sbp2_pointer data_descriptor;
__be32 misc;
- u8 command_block[
12
];
+ u8 command_block[
SBP2_MAX_CDB_SIZE
];
} request;
struct scsi_cmnd *cmd;
scsi_done_fn_t done;
} request;
struct scsi_cmnd *cmd;
scsi_done_fn_t done;
@@
-1146,6
+1152,8
@@
static int sbp2_probe(struct device *dev)
if (fw_device_enable_phys_dma(device) < 0)
goto fail_shost_put;
if (fw_device_enable_phys_dma(device) < 0)
goto fail_shost_put;
+ shost->max_cmd_len = SBP2_MAX_CDB_SIZE;
+
if (scsi_add_host(shost, &unit->device) < 0)
goto fail_shost_put;
if (scsi_add_host(shost, &unit->device) < 0)
goto fail_shost_put;