diff options
Diffstat (limited to 'drivers/scsi/isci/host.c')
-rw-r--r-- | drivers/scsi/isci/host.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/drivers/scsi/isci/host.c b/drivers/scsi/isci/host.c index d8d6f67bd69c..1bc91f2b4f93 100644 --- a/drivers/scsi/isci/host.c +++ b/drivers/scsi/isci/host.c | |||
@@ -349,9 +349,14 @@ void isci_host_deinit(struct isci_host *ihost) | |||
349 | } | 349 | } |
350 | 350 | ||
351 | set_bit(IHOST_STOP_PENDING, &ihost->flags); | 351 | set_bit(IHOST_STOP_PENDING, &ihost->flags); |
352 | |||
353 | spin_lock_irq(&ihost->scic_lock); | ||
352 | scic_controller_stop(scic, SCIC_CONTROLLER_STOP_TIMEOUT); | 354 | scic_controller_stop(scic, SCIC_CONTROLLER_STOP_TIMEOUT); |
355 | spin_unlock_irq(&ihost->scic_lock); | ||
356 | |||
353 | wait_for_stop(ihost); | 357 | wait_for_stop(ihost); |
354 | scic_controller_reset(scic); | 358 | scic_controller_reset(scic); |
359 | isci_timer_list_destroy(ihost); | ||
355 | } | 360 | } |
356 | 361 | ||
357 | static void __iomem *scu_base(struct isci_host *isci_host) | 362 | static void __iomem *scu_base(struct isci_host *isci_host) |
@@ -370,8 +375,6 @@ static void __iomem *smu_base(struct isci_host *isci_host) | |||
370 | return pcim_iomap_table(pdev)[SCI_SMU_BAR * 2] + SCI_SMU_BAR_SIZE * id; | 375 | return pcim_iomap_table(pdev)[SCI_SMU_BAR * 2] + SCI_SMU_BAR_SIZE * id; |
371 | } | 376 | } |
372 | 377 | ||
373 | #define SCI_MAX_TIMER_COUNT 25 | ||
374 | |||
375 | int isci_host_init(struct isci_host *isci_host) | 378 | int isci_host_init(struct isci_host *isci_host) |
376 | { | 379 | { |
377 | int err = 0; | 380 | int err = 0; |
@@ -382,11 +385,7 @@ int isci_host_init(struct isci_host *isci_host) | |||
382 | union scic_oem_parameters scic_oem_params; | 385 | union scic_oem_parameters scic_oem_params; |
383 | union scic_user_parameters scic_user_params; | 386 | union scic_user_parameters scic_user_params; |
384 | 387 | ||
385 | INIT_LIST_HEAD(&isci_host->timer_list_struct.timers); | 388 | isci_timer_list_construct(isci_host); |
386 | isci_timer_list_construct( | ||
387 | &isci_host->timer_list_struct, | ||
388 | SCI_MAX_TIMER_COUNT | ||
389 | ); | ||
390 | 389 | ||
391 | controller = scic_controller_alloc(&isci_host->pdev->dev); | 390 | controller = scic_controller_alloc(&isci_host->pdev->dev); |
392 | 391 | ||
@@ -473,7 +472,17 @@ int isci_host_init(struct isci_host *isci_host) | |||
473 | } | 472 | } |
474 | } | 473 | } |
475 | 474 | ||
475 | tasklet_init(&isci_host->completion_tasklet, | ||
476 | isci_host_completion_routine, (unsigned long)isci_host); | ||
477 | |||
478 | INIT_LIST_HEAD(&(isci_host->mdl_struct_list)); | ||
479 | |||
480 | INIT_LIST_HEAD(&isci_host->requests_to_complete); | ||
481 | INIT_LIST_HEAD(&isci_host->requests_to_abort); | ||
482 | |||
483 | spin_lock_irq(&isci_host->scic_lock); | ||
476 | status = scic_controller_initialize(isci_host->core_controller); | 484 | status = scic_controller_initialize(isci_host->core_controller); |
485 | spin_unlock_irq(&isci_host->scic_lock); | ||
477 | if (status != SCI_SUCCESS) { | 486 | if (status != SCI_SUCCESS) { |
478 | dev_warn(&isci_host->pdev->dev, | 487 | dev_warn(&isci_host->pdev->dev, |
479 | "%s: scic_controller_initialize failed -" | 488 | "%s: scic_controller_initialize failed -" |
@@ -482,17 +491,8 @@ int isci_host_init(struct isci_host *isci_host) | |||
482 | return -ENODEV; | 491 | return -ENODEV; |
483 | } | 492 | } |
484 | 493 | ||
485 | tasklet_init(&isci_host->completion_tasklet, | ||
486 | isci_host_completion_routine, (unsigned long)isci_host); | ||
487 | |||
488 | INIT_LIST_HEAD(&(isci_host->mdl_struct_list)); | ||
489 | |||
490 | INIT_LIST_HEAD(&isci_host->requests_to_complete); | ||
491 | INIT_LIST_HEAD(&isci_host->requests_to_abort); | ||
492 | |||
493 | /* populate mdl with dma memory. scu_mdl_allocate_coherent() */ | 494 | /* populate mdl with dma memory. scu_mdl_allocate_coherent() */ |
494 | err = isci_host_mdl_allocate_coherent(isci_host); | 495 | err = isci_host_mdl_allocate_coherent(isci_host); |
495 | |||
496 | if (err) | 496 | if (err) |
497 | return err; | 497 | return err; |
498 | 498 | ||