|
@@ -89,7 +89,7 @@ static unsigned int ipr_log_level = IPR_DEFAULT_LOG_LEVEL;
|
|
|
static unsigned int ipr_max_speed = 1;
|
|
|
static int ipr_testmode = 0;
|
|
|
static unsigned int ipr_fastfail = 0;
|
|
|
-static unsigned int ipr_transop_timeout = IPR_OPERATIONAL_TIMEOUT;
|
|
|
+static unsigned int ipr_transop_timeout = 0;
|
|
|
static unsigned int ipr_enable_cache = 1;
|
|
|
static unsigned int ipr_debug = 0;
|
|
|
static int ipr_auto_create = 1;
|
|
@@ -6187,7 +6187,7 @@ static int ipr_reset_enable_ioa(struct ipr_cmnd *ipr_cmd)
|
|
|
dev_info(&ioa_cfg->pdev->dev, "Initializing IOA.\n");
|
|
|
|
|
|
ipr_cmd->timer.data = (unsigned long) ipr_cmd;
|
|
|
- ipr_cmd->timer.expires = jiffies + (ipr_transop_timeout * HZ);
|
|
|
+ ipr_cmd->timer.expires = jiffies + (ioa_cfg->transop_timeout * HZ);
|
|
|
ipr_cmd->timer.function = (void (*)(unsigned long))ipr_oper_timeout;
|
|
|
ipr_cmd->done = ipr_reset_ioa_job;
|
|
|
add_timer(&ipr_cmd->timer);
|
|
@@ -7232,6 +7232,13 @@ static int __devinit ipr_probe_ioa(struct pci_dev *pdev,
|
|
|
goto out_scsi_host_put;
|
|
|
}
|
|
|
|
|
|
+ if (ipr_transop_timeout)
|
|
|
+ ioa_cfg->transop_timeout = ipr_transop_timeout;
|
|
|
+ else if (dev_id->driver_data & IPR_USE_LONG_TRANSOP_TIMEOUT)
|
|
|
+ ioa_cfg->transop_timeout = IPR_LONG_OPERATIONAL_TIMEOUT;
|
|
|
+ else
|
|
|
+ ioa_cfg->transop_timeout = IPR_OPERATIONAL_TIMEOUT;
|
|
|
+
|
|
|
ipr_regs_pci = pci_resource_start(pdev, 0);
|
|
|
|
|
|
rc = pci_request_regions(pdev, IPR_NAME);
|
|
@@ -7539,29 +7546,35 @@ static struct pci_device_id ipr_pci_table[] __devinitdata = {
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CITRINE,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_571A, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CITRINE,
|
|
|
- PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575B, 0, 0, 0 },
|
|
|
+ PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575B, 0, 0,
|
|
|
+ IPR_USE_LONG_TRANSOP_TIMEOUT },
|
|
|
{ PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_OBSIDIAN,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572A, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_OBSIDIAN,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572B, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_OBSIDIAN,
|
|
|
- PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575C, 0, 0, 0 },
|
|
|
+ PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575C, 0, 0,
|
|
|
+ IPR_USE_LONG_TRANSOP_TIMEOUT },
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572A, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572B, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN,
|
|
|
- PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575C, 0, 0, 0 },
|
|
|
+ PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_575C, 0, 0,
|
|
|
+ IPR_USE_LONG_TRANSOP_TIMEOUT },
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN_E,
|
|
|
- PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B7, 0, 0, 0 },
|
|
|
+ PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57B7, 0, 0,
|
|
|
+ IPR_USE_LONG_TRANSOP_TIMEOUT },
|
|
|
{ PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_SNIPE,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_2780, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP,
|
|
|
PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_571E, 0, 0, 0 },
|
|
|
{ PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP,
|
|
|
- PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_571F, 0, 0, 0 },
|
|
|
+ PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_571F, 0, 0,
|
|
|
+ IPR_USE_LONG_TRANSOP_TIMEOUT },
|
|
|
{ PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_SCAMP,
|
|
|
- PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572F, 0, 0, 0 },
|
|
|
+ PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_572F, 0, 0,
|
|
|
+ IPR_USE_LONG_TRANSOP_TIMEOUT },
|
|
|
{ }
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(pci, ipr_pci_table);
|