host.h (1844e4789fe5c97a9ff3bb82628111abbe7cc846) host.h (abec912d71c44bbd642ce12ad98aab76f5a53163)
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 *

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

153 /* XXX no need to be a union */
154 struct sci_oem_params oem_parameters;
155 struct sci_port_configuration_agent port_agent;
156 struct isci_remote_device *device_table[SCI_MAX_REMOTE_DEVICES];
157 struct sci_remote_node_table available_remote_nodes;
158 struct sci_power_control power_control;
159 u8 io_request_sequence[SCI_MAX_IO_REQUESTS];
160 struct scu_task_context *task_context_table;
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 *

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

153 /* XXX no need to be a union */
154 struct sci_oem_params oem_parameters;
155 struct sci_port_configuration_agent port_agent;
156 struct isci_remote_device *device_table[SCI_MAX_REMOTE_DEVICES];
157 struct sci_remote_node_table available_remote_nodes;
158 struct sci_power_control power_control;
159 u8 io_request_sequence[SCI_MAX_IO_REQUESTS];
160 struct scu_task_context *task_context_table;
161 dma_addr_t task_context_dma;
161 dma_addr_t tc_dma;
162 union scu_remote_node_context *remote_node_context_table;
162 union scu_remote_node_context *remote_node_context_table;
163 dma_addr_t rnc_dma;
163 u32 *completion_queue;
164 u32 *completion_queue;
165 dma_addr_t cq_dma;
164 u32 completion_queue_get;
165 u32 logical_port_entries;
166 u32 remote_node_entries;
167 u32 task_context_entries;
166 u32 completion_queue_get;
167 u32 logical_port_entries;
168 u32 remote_node_entries;
169 u32 task_context_entries;
170 void *ufi_buf;
171 dma_addr_t ufi_dma;
168 struct sci_unsolicited_frame_control uf_control;
169
170 /* phy startup */
171 struct sci_timer phy_timer;
172 /* XXX kill */
173 bool phy_startup_timer_pending;
174 u32 next_phy_to_start;
175 /* XXX convert to unsigned long and use bitops */

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

447enum sci_status sci_controller_allocate_remote_node_context(struct isci_host *ihost,
448 struct isci_remote_device *idev,
449 u16 *node_id);
450void sci_controller_free_remote_node_context(
451 struct isci_host *ihost,
452 struct isci_remote_device *idev,
453 u16 node_id);
454
172 struct sci_unsolicited_frame_control uf_control;
173
174 /* phy startup */
175 struct sci_timer phy_timer;
176 /* XXX kill */
177 bool phy_startup_timer_pending;
178 u32 next_phy_to_start;
179 /* XXX convert to unsigned long and use bitops */

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

451enum sci_status sci_controller_allocate_remote_node_context(struct isci_host *ihost,
452 struct isci_remote_device *idev,
453 u16 *node_id);
454void sci_controller_free_remote_node_context(
455 struct isci_host *ihost,
456 struct isci_remote_device *idev,
457 u16 node_id);
458
455struct isci_request *sci_request_by_tag(struct isci_host *ihost,
456 u16 io_tag);
459struct isci_request *sci_request_by_tag(struct isci_host *ihost, u16 io_tag);
460void sci_controller_power_control_queue_insert(struct isci_host *ihost,
461 struct isci_phy *iphy);
462void sci_controller_power_control_queue_remove(struct isci_host *ihost,
463 struct isci_phy *iphy);
464void sci_controller_link_up(struct isci_host *ihost, struct isci_port *iport,
465 struct isci_phy *iphy);
466void sci_controller_link_down(struct isci_host *ihost, struct isci_port *iport,
467 struct isci_phy *iphy);
468void sci_controller_remote_device_stopped(struct isci_host *ihost,
469 struct isci_remote_device *idev);
457
470
458void sci_controller_power_control_queue_insert(
459 struct isci_host *ihost,
460 struct isci_phy *iphy);
461
462void sci_controller_power_control_queue_remove(
463 struct isci_host *ihost,
464 struct isci_phy *iphy);
465
466void sci_controller_link_up(
467 struct isci_host *ihost,
468 struct isci_port *iport,
469 struct isci_phy *iphy);
470
471void sci_controller_link_down(
472 struct isci_host *ihost,
473 struct isci_port *iport,
474 struct isci_phy *iphy);
475
476void sci_controller_remote_device_stopped(
477 struct isci_host *ihost,
478 struct isci_remote_device *idev);
479
480void sci_controller_copy_task_context(
481 struct isci_host *ihost,
482 struct isci_request *ireq);
483
484void sci_controller_register_setup(struct isci_host *ihost);
485
486enum sci_status sci_controller_continue_io(struct isci_request *ireq);
487int isci_host_scan_finished(struct Scsi_Host *, unsigned long);
488void isci_host_scan_start(struct Scsi_Host *);
489u16 isci_alloc_tag(struct isci_host *ihost);
490enum sci_status isci_free_tag(struct isci_host *ihost, u16 io_tag);
491void isci_tci_free(struct isci_host *ihost, u16 tci);
492
493int isci_host_init(struct isci_host *);
471enum sci_status sci_controller_continue_io(struct isci_request *ireq);
472int isci_host_scan_finished(struct Scsi_Host *, unsigned long);
473void isci_host_scan_start(struct Scsi_Host *);
474u16 isci_alloc_tag(struct isci_host *ihost);
475enum sci_status isci_free_tag(struct isci_host *ihost, u16 io_tag);
476void isci_tci_free(struct isci_host *ihost, u16 tci);
477
478int isci_host_init(struct isci_host *);
479void isci_host_completion_routine(unsigned long data);
480void isci_host_deinit(struct isci_host *);
481void sci_controller_disable_interrupts(struct isci_host *ihost);
494
482
495void isci_host_init_controller_names(
496 struct isci_host *isci_host,
497 unsigned int controller_idx);
498
499void isci_host_deinit(
500 struct isci_host *);
501
502void isci_host_port_link_up(
503 struct isci_host *,
504 struct isci_port *,
505 struct isci_phy *);
506int isci_host_dev_found(struct domain_device *);
507
508void isci_host_remote_device_start_complete(
509 struct isci_host *,
510 struct isci_remote_device *,
511 enum sci_status);
512
513void sci_controller_disable_interrupts(
514 struct isci_host *ihost);
515
516enum sci_status sci_controller_start_io(
517 struct isci_host *ihost,
518 struct isci_remote_device *idev,
519 struct isci_request *ireq);
520
521enum sci_task_status sci_controller_start_task(
522 struct isci_host *ihost,
523 struct isci_remote_device *idev,

--- 22 unchanged lines hidden ---
483enum sci_status sci_controller_start_io(
484 struct isci_host *ihost,
485 struct isci_remote_device *idev,
486 struct isci_request *ireq);
487
488enum sci_task_status sci_controller_start_task(
489 struct isci_host *ihost,
490 struct isci_remote_device *idev,

--- 22 unchanged lines hidden ---