Lines Matching refs:ctrl_info

87 static int sis_wait_for_ctrl_ready_with_timeout(struct pqi_ctrl_info *ctrl_info,  in sis_wait_for_ctrl_ready_with_timeout()  argument
96 status = readl(&ctrl_info->registers->sis_firmware_status); in sis_wait_for_ctrl_ready_with_timeout()
99 dev_err(&ctrl_info->pci_dev->dev, in sis_wait_for_ctrl_ready_with_timeout()
102 &ctrl_info->registers->sis_mailbox[7])); in sis_wait_for_ctrl_ready_with_timeout()
109 dev_err(&ctrl_info->pci_dev->dev, in sis_wait_for_ctrl_ready_with_timeout()
120 int sis_wait_for_ctrl_ready(struct pqi_ctrl_info *ctrl_info) in sis_wait_for_ctrl_ready() argument
122 return sis_wait_for_ctrl_ready_with_timeout(ctrl_info, in sis_wait_for_ctrl_ready()
126 int sis_wait_for_ctrl_ready_resume(struct pqi_ctrl_info *ctrl_info) in sis_wait_for_ctrl_ready_resume() argument
128 return sis_wait_for_ctrl_ready_with_timeout(ctrl_info, in sis_wait_for_ctrl_ready_resume()
132 bool sis_is_firmware_running(struct pqi_ctrl_info *ctrl_info) in sis_is_firmware_running() argument
137 status = readl(&ctrl_info->registers->sis_firmware_status); in sis_is_firmware_running()
145 dev_err(&ctrl_info->pci_dev->dev, in sis_is_firmware_running()
147 readl(&ctrl_info->registers->sis_mailbox[7])); in sis_is_firmware_running()
152 bool sis_is_kernel_up(struct pqi_ctrl_info *ctrl_info) in sis_is_kernel_up() argument
154 return readl(&ctrl_info->registers->sis_firmware_status) & in sis_is_kernel_up()
163 static int sis_send_sync_cmd(struct pqi_ctrl_info *ctrl_info, in sis_send_sync_cmd() argument
172 registers = ctrl_info->registers; in sis_send_sync_cmd()
218 dev_err(&ctrl_info->pci_dev->dev, in sis_send_sync_cmd()
239 int sis_get_ctrl_properties(struct pqi_ctrl_info *ctrl_info) in sis_get_ctrl_properties() argument
248 rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_GET_ADAPTER_PROPERTIES, in sis_get_ctrl_properties()
265 ctrl_info->pqi_reset_quiesce_supported = true; in sis_get_ctrl_properties()
270 int sis_get_pqi_capabilities(struct pqi_ctrl_info *ctrl_info) in sis_get_pqi_capabilities() argument
277 rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_GET_PQI_CAPABILITIES, in sis_get_pqi_capabilities()
282 ctrl_info->max_sg_entries = params.mailbox[1]; in sis_get_pqi_capabilities()
283 ctrl_info->max_transfer_size = params.mailbox[2]; in sis_get_pqi_capabilities()
284 ctrl_info->max_outstanding_requests = params.mailbox[3]; in sis_get_pqi_capabilities()
285 ctrl_info->config_table_offset = params.mailbox[4]; in sis_get_pqi_capabilities()
286 ctrl_info->config_table_length = params.mailbox[5]; in sis_get_pqi_capabilities()
291 int sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info) in sis_init_base_struct_addr() argument
307 error_buffer_paddr = (unsigned long)ctrl_info->error_buffer_dma_handle; in sis_init_base_struct_addr()
316 put_unaligned_le32(ctrl_info->max_io_slots, in sis_init_base_struct_addr()
319 bus_address = pci_map_single(ctrl_info->pci_dev, base_struct, in sis_init_base_struct_addr()
321 if (pci_dma_mapping_error(ctrl_info->pci_dev, bus_address)) { in sis_init_base_struct_addr()
331 rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_INIT_BASE_STRUCT_ADDRESS, in sis_init_base_struct_addr()
334 pci_unmap_single(ctrl_info->pci_dev, bus_address, sizeof(*base_struct), in sis_init_base_struct_addr()
346 struct pqi_ctrl_info *ctrl_info, u32 bit) in sis_wait_for_doorbell_bit_to_clear() argument
356 readl(&ctrl_info->registers->sis_host_to_ctrl_doorbell); in sis_wait_for_doorbell_bit_to_clear()
359 if (readl(&ctrl_info->registers->sis_firmware_status) & in sis_wait_for_doorbell_bit_to_clear()
365 dev_err(&ctrl_info->pci_dev->dev, in sis_wait_for_doorbell_bit_to_clear()
377 static inline int sis_set_doorbell_bit(struct pqi_ctrl_info *ctrl_info, u32 bit) in sis_set_doorbell_bit() argument
379 writel(bit, &ctrl_info->registers->sis_host_to_ctrl_doorbell); in sis_set_doorbell_bit()
381 return sis_wait_for_doorbell_bit_to_clear(ctrl_info, bit); in sis_set_doorbell_bit()
384 void sis_enable_msix(struct pqi_ctrl_info *ctrl_info) in sis_enable_msix() argument
386 sis_set_doorbell_bit(ctrl_info, SIS_ENABLE_MSIX); in sis_enable_msix()
389 void sis_enable_intx(struct pqi_ctrl_info *ctrl_info) in sis_enable_intx() argument
391 sis_set_doorbell_bit(ctrl_info, SIS_ENABLE_INTX); in sis_enable_intx()
394 void sis_shutdown_ctrl(struct pqi_ctrl_info *ctrl_info) in sis_shutdown_ctrl() argument
396 if (readl(&ctrl_info->registers->sis_firmware_status) & in sis_shutdown_ctrl()
401 &ctrl_info->registers->sis_host_to_ctrl_doorbell); in sis_shutdown_ctrl()
404 int sis_pqi_reset_quiesce(struct pqi_ctrl_info *ctrl_info) in sis_pqi_reset_quiesce() argument
406 return sis_set_doorbell_bit(ctrl_info, SIS_PQI_RESET_QUIESCE); in sis_pqi_reset_quiesce()
409 int sis_reenable_sis_mode(struct pqi_ctrl_info *ctrl_info) in sis_reenable_sis_mode() argument
411 return sis_set_doorbell_bit(ctrl_info, SIS_REENABLE_SIS_MODE); in sis_reenable_sis_mode()
414 void sis_write_driver_scratch(struct pqi_ctrl_info *ctrl_info, u32 value) in sis_write_driver_scratch() argument
416 writel(value, &ctrl_info->registers->sis_driver_scratch); in sis_write_driver_scratch()
419 u32 sis_read_driver_scratch(struct pqi_ctrl_info *ctrl_info) in sis_read_driver_scratch() argument
421 return readl(&ctrl_info->registers->sis_driver_scratch); in sis_read_driver_scratch()