diff options
Diffstat (limited to 'drivers/scsi/aacraid/comminit.c')
| -rw-r--r-- | drivers/scsi/aacraid/comminit.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c index 75abd0453289..59a341b2aedc 100644 --- a/drivers/scsi/aacraid/comminit.c +++ b/drivers/scsi/aacraid/comminit.c | |||
| @@ -195,7 +195,7 @@ int aac_send_shutdown(struct aac_dev * dev) | |||
| 195 | fibctx, | 195 | fibctx, |
| 196 | sizeof(struct aac_close), | 196 | sizeof(struct aac_close), |
| 197 | FsaNormal, | 197 | FsaNormal, |
| 198 | 1, 1, | 198 | -2 /* Timeout silently */, 1, |
| 199 | NULL, NULL); | 199 | NULL, NULL); |
| 200 | 200 | ||
| 201 | if (status == 0) | 201 | if (status == 0) |
| @@ -313,8 +313,15 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev) | |||
| 313 | dev->max_fib_size = sizeof(struct hw_fib); | 313 | dev->max_fib_size = sizeof(struct hw_fib); |
| 314 | dev->sg_tablesize = host->sg_tablesize = (dev->max_fib_size | 314 | dev->sg_tablesize = host->sg_tablesize = (dev->max_fib_size |
| 315 | - sizeof(struct aac_fibhdr) | 315 | - sizeof(struct aac_fibhdr) |
| 316 | - sizeof(struct aac_write) + sizeof(struct sgmap)) | 316 | - sizeof(struct aac_write) + sizeof(struct sgentry)) |
| 317 | / sizeof(struct sgmap); | 317 | / sizeof(struct sgentry); |
| 318 | dev->raw_io_64 = 0; | ||
| 319 | if ((!aac_adapter_sync_cmd(dev, GET_ADAPTER_PROPERTIES, | ||
| 320 | 0, 0, 0, 0, 0, 0, status+0, status+1, status+2, NULL, NULL)) && | ||
| 321 | (status[0] == 0x00000001)) { | ||
| 322 | if (status[1] & AAC_OPT_NEW_COMM_64) | ||
| 323 | dev->raw_io_64 = 1; | ||
| 324 | } | ||
| 318 | if ((!aac_adapter_sync_cmd(dev, GET_COMM_PREFERRED_SETTINGS, | 325 | if ((!aac_adapter_sync_cmd(dev, GET_COMM_PREFERRED_SETTINGS, |
| 319 | 0, 0, 0, 0, 0, 0, | 326 | 0, 0, 0, 0, 0, 0, |
| 320 | status+0, status+1, status+2, status+3, status+4)) | 327 | status+0, status+1, status+2, status+3, status+4)) |
| @@ -342,8 +349,8 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev) | |||
| 342 | dev->max_fib_size = 512; | 349 | dev->max_fib_size = 512; |
| 343 | dev->sg_tablesize = host->sg_tablesize | 350 | dev->sg_tablesize = host->sg_tablesize |
| 344 | = (512 - sizeof(struct aac_fibhdr) | 351 | = (512 - sizeof(struct aac_fibhdr) |
| 345 | - sizeof(struct aac_write) + sizeof(struct sgmap)) | 352 | - sizeof(struct aac_write) + sizeof(struct sgentry)) |
| 346 | / sizeof(struct sgmap); | 353 | / sizeof(struct sgentry); |
| 347 | host->can_queue = AAC_NUM_IO_FIB; | 354 | host->can_queue = AAC_NUM_IO_FIB; |
| 348 | } else if (acbsize == 2048) { | 355 | } else if (acbsize == 2048) { |
| 349 | host->max_sectors = 512; | 356 | host->max_sectors = 512; |
