Lines Matching defs:ctrl_info

91 static int sis_wait_for_ctrl_ready_with_timeout(struct pqi_ctrl_info *ctrl_info,
100 status = readl(&ctrl_info->registers->sis_firmware_status);
103 dev_err(&ctrl_info->pci_dev->dev,
106 &ctrl_info->registers->sis_mailbox[7]));
113 dev_err(&ctrl_info->pci_dev->dev,
124 int sis_wait_for_ctrl_ready(struct pqi_ctrl_info *ctrl_info)
126 return sis_wait_for_ctrl_ready_with_timeout(ctrl_info,
130 int sis_wait_for_ctrl_ready_resume(struct pqi_ctrl_info *ctrl_info)
132 return sis_wait_for_ctrl_ready_with_timeout(ctrl_info,
136 bool sis_is_firmware_running(struct pqi_ctrl_info *ctrl_info)
141 status = readl(&ctrl_info->registers->sis_firmware_status);
149 dev_err(&ctrl_info->pci_dev->dev,
151 readl(&ctrl_info->registers->sis_mailbox[7]));
156 bool sis_is_kernel_up(struct pqi_ctrl_info *ctrl_info)
158 return readl(&ctrl_info->registers->sis_firmware_status) &
162 u32 sis_get_product_id(struct pqi_ctrl_info *ctrl_info)
164 return readl(&ctrl_info->registers->sis_product_identifier);
172 static int sis_send_sync_cmd(struct pqi_ctrl_info *ctrl_info,
181 registers = ctrl_info->registers;
228 dev_err(&ctrl_info->pci_dev->dev,
249 int sis_get_ctrl_properties(struct pqi_ctrl_info *ctrl_info)
258 rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_GET_ADAPTER_PROPERTIES,
275 ctrl_info->pqi_reset_quiesce_supported = true;
280 int sis_get_pqi_capabilities(struct pqi_ctrl_info *ctrl_info)
287 rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_GET_PQI_CAPABILITIES,
292 ctrl_info->max_sg_entries = params.mailbox[1];
293 ctrl_info->max_transfer_size = params.mailbox[2];
294 ctrl_info->max_outstanding_requests = params.mailbox[3];
295 ctrl_info->config_table_offset = params.mailbox[4];
296 ctrl_info->config_table_length = params.mailbox[5];
301 int sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info)
317 error_buffer_paddr = (unsigned long)ctrl_info->error_buffer_dma_handle;
326 put_unaligned_le32(ctrl_info->max_io_slots,
329 bus_address = dma_map_single(&ctrl_info->pci_dev->dev, base_struct,
331 if (dma_mapping_error(&ctrl_info->pci_dev->dev, bus_address)) {
341 rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_INIT_BASE_STRUCT_ADDRESS,
344 dma_unmap_single(&ctrl_info->pci_dev->dev, bus_address,
355 struct pqi_ctrl_info *ctrl_info, u32 bit)
365 readl(&ctrl_info->registers->sis_host_to_ctrl_doorbell);
368 if (readl(&ctrl_info->registers->sis_firmware_status) &
374 dev_err(&ctrl_info->pci_dev->dev,
386 static inline int sis_set_doorbell_bit(struct pqi_ctrl_info *ctrl_info, u32 bit)
388 writel(bit, &ctrl_info->registers->sis_host_to_ctrl_doorbell);
391 return sis_wait_for_doorbell_bit_to_clear(ctrl_info, bit);
394 void sis_enable_msix(struct pqi_ctrl_info *ctrl_info)
396 sis_set_doorbell_bit(ctrl_info, SIS_ENABLE_MSIX);
399 void sis_enable_intx(struct pqi_ctrl_info *ctrl_info)
401 sis_set_doorbell_bit(ctrl_info, SIS_ENABLE_INTX);
404 void sis_shutdown_ctrl(struct pqi_ctrl_info *ctrl_info,
407 if (readl(&ctrl_info->registers->sis_firmware_status) &
411 if (ctrl_info->firmware_triage_supported)
412 writel(ctrl_shutdown_reason, &ctrl_info->registers->sis_ctrl_shutdown_reason_code);
414 writel(SIS_TRIGGER_SHUTDOWN, &ctrl_info->registers->sis_host_to_ctrl_doorbell);
417 int sis_pqi_reset_quiesce(struct pqi_ctrl_info *ctrl_info)
419 return sis_set_doorbell_bit(ctrl_info, SIS_PQI_RESET_QUIESCE);
422 int sis_reenable_sis_mode(struct pqi_ctrl_info *ctrl_info)
424 return sis_set_doorbell_bit(ctrl_info, SIS_REENABLE_SIS_MODE);
427 void sis_write_driver_scratch(struct pqi_ctrl_info *ctrl_info, u32 value)
429 writel(value, &ctrl_info->registers->sis_driver_scratch);
433 u32 sis_read_driver_scratch(struct pqi_ctrl_info *ctrl_info)
435 return readl(&ctrl_info->registers->sis_driver_scratch);
439 sis_read_firmware_triage_status(struct pqi_ctrl_info *ctrl_info)
441 return ((enum sis_fw_triage_status)(readl(&ctrl_info->registers->sis_firmware_status) &
445 void sis_soft_reset(struct pqi_ctrl_info *ctrl_info)
448 &ctrl_info->registers->sis_host_to_ctrl_doorbell);
454 int sis_wait_for_fw_triage_completion(struct pqi_ctrl_info *ctrl_info)
462 status = sis_read_firmware_triage_status(ctrl_info);
464 dev_err(&ctrl_info->pci_dev->dev,
475 dev_err(&ctrl_info->pci_dev->dev,