init.c (89a7301f21fb00e753089671eb9e4132aab8ea08) init.c (dc00c8b6940aa10ab1ce6a4d10b1bfe7b848781b)
1/*
2 * This file is provided under a dual BSD/GPLv2 license. When using or
3 * redistributing this file, you may do so under either license.
4 *
5 * GPL LICENSE SUMMARY
6 *
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8 *

--- 71 unchanged lines hidden (view full) ---

80 { PCI_VDEVICE(INTEL, 0x1D6A),},
81 {}
82};
83
84MODULE_DEVICE_TABLE(pci, isci_id_table);
85
86/* linux isci specific settings */
87
1/*
2 * This file is provided under a dual BSD/GPLv2 license. When using or
3 * redistributing this file, you may do so under either license.
4 *
5 * GPL LICENSE SUMMARY
6 *
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8 *

--- 71 unchanged lines hidden (view full) ---

80 { PCI_VDEVICE(INTEL, 0x1D6A),},
81 {}
82};
83
84MODULE_DEVICE_TABLE(pci, isci_id_table);
85
86/* linux isci specific settings */
87
88int isci_si_rev = ISCI_SI_REVA2;
89module_param(isci_si_rev, int, 0);
90MODULE_PARM_DESC(isci_si_rev, "(deprecated) override default si rev (0: A0 1: A2 2: B0)");
91
92unsigned char no_outbound_task_to = 20;
93module_param(no_outbound_task_to, byte, 0);
94MODULE_PARM_DESC(no_outbound_task_to, "No Outbound Task Timeout (1us incr)");
95
96u16 ssp_max_occ_to = 20;
97module_param(ssp_max_occ_to, ushort, 0);
98MODULE_PARM_DESC(ssp_max_occ_to, "SSP Max occupancy timeout (100us incr)");
99

--- 330 unchanged lines hidden (view full) ---

430 err_shost_remove:
431 scsi_remove_host(shost);
432 err_shost:
433 scsi_host_put(shost);
434
435 return NULL;
436}
437
88unsigned char no_outbound_task_to = 20;
89module_param(no_outbound_task_to, byte, 0);
90MODULE_PARM_DESC(no_outbound_task_to, "No Outbound Task Timeout (1us incr)");
91
92u16 ssp_max_occ_to = 20;
93module_param(ssp_max_occ_to, ushort, 0);
94MODULE_PARM_DESC(ssp_max_occ_to, "SSP Max occupancy timeout (100us incr)");
95

--- 330 unchanged lines hidden (view full) ---

426 err_shost_remove:
427 scsi_remove_host(shost);
428 err_shost:
429 scsi_host_put(shost);
430
431 return NULL;
432}
433
438static void check_si_rev(struct pci_dev *pdev)
439{
440 switch (pdev->revision) {
441 case 0:
442 case 1:
443 /* if the id is ambiguous don't update isci_si_rev */
444 break;
445 case 3:
446 isci_si_rev = ISCI_SI_REVA2;
447 break;
448 case 4:
449 isci_si_rev = ISCI_SI_REVB0;
450 break;
451 default:
452 case 5:
453 isci_si_rev = ISCI_SI_REVC0;
454 break;
455 }
456
457 dev_info(&pdev->dev, "driver configured for %s silicon (rev: %d)\n",
458 isci_si_rev == ISCI_SI_REVA0 ? "A0" :
459 isci_si_rev == ISCI_SI_REVA2 ? "A2" :
460 isci_si_rev == ISCI_SI_REVB0 ? "B0" : "C0", pdev->revision);
461
462}
463
464static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
465{
466 struct isci_pci_info *pci_info;
467 int err, i;
468 struct isci_host *isci_host;
469 const struct firmware *fw = NULL;
470 struct isci_orom *orom = NULL;
471 char *source = "(platform)";
472
434static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
435{
436 struct isci_pci_info *pci_info;
437 int err, i;
438 struct isci_host *isci_host;
439 const struct firmware *fw = NULL;
440 struct isci_orom *orom = NULL;
441 char *source = "(platform)";
442
473 check_si_rev(pdev);
443 dev_info(&pdev->dev, "driver configured for rev: %d silicon\n",
444 pdev->revision);
474
475 pci_info = devm_kzalloc(&pdev->dev, sizeof(*pci_info), GFP_KERNEL);
476 if (!pci_info)
477 return -ENOMEM;
478 pci_set_drvdata(pdev, pci_info);
479
480 if (efi_enabled)
481 orom = isci_get_efi_var(pdev);

--- 113 unchanged lines hidden ---
445
446 pci_info = devm_kzalloc(&pdev->dev, sizeof(*pci_info), GFP_KERNEL);
447 if (!pci_info)
448 return -ENOMEM;
449 pci_set_drvdata(pdev, pci_info);
450
451 if (efi_enabled)
452 orom = isci_get_efi_var(pdev);

--- 113 unchanged lines hidden ---