summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/unsolicited_frame_control.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2012-02-15 13:58:42 -0800
committerDan Williams <dan.j.williams@intel.com>2012-05-17 12:27:12 -0700
commitabec912d71c44bbd642ce12ad98aab76f5a53163 (patch)
treed8967b23a5a4ea8302b43d4db5e0cd09d21d34d3 /drivers/scsi/isci/unsolicited_frame_control.h
parentae904d15cf344bcb426f63982016f6bacc45825b (diff)
downloadblackbird-op-linux-abec912d71c44bbd642ce12ad98aab76f5a53163.tar.gz
blackbird-op-linux-abec912d71c44bbd642ce12ad98aab76f5a53163.zip
isci: refactor initialization for S3/S4
Based on an original implementation by Ed Nadolski and Artur Wojcik In preparation for S3/S4 support refactor initialization so that driver-load and resume-from-suspend can share the common init path of isci_host_init(). Organize the initialization into objects that are self-contained to the driver (initialized by isci_host_init) versus those that have some upward registration (initialized at allocation time asd_sas_phy, asd_sas_port, dma allocations). The largest change is moving the the validation of the oem and module parameters from isci_host_init() to isci_host_alloc(). The S3/S4 approach being taken is that libsas will be tasked with remembering the state of the domain and the lldd is free to be forgetful. In the case of isci we'll just re-init using a subset of the normal driver load path. [clean up some unused / mis-indented function definitions in host.h] Signed-off-by: Ed Nadolski <edmund.nadolski@intel.com> Signed-off-by: Artur Wojcik <artur.wojcik@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/unsolicited_frame_control.h')
-rw-r--r--drivers/scsi/isci/unsolicited_frame_control.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/isci/unsolicited_frame_control.h b/drivers/scsi/isci/unsolicited_frame_control.h
index 75d896686f5a..1bc551ec611f 100644
--- a/drivers/scsi/isci/unsolicited_frame_control.h
+++ b/drivers/scsi/isci/unsolicited_frame_control.h
@@ -257,9 +257,13 @@ struct sci_unsolicited_frame_control {
};
+#define SCI_UFI_BUF_SIZE (SCU_MAX_UNSOLICITED_FRAMES * SCU_UNSOLICITED_FRAME_BUFFER_SIZE)
+#define SCI_UFI_HDR_SIZE (SCU_MAX_UNSOLICITED_FRAMES * sizeof(struct scu_unsolicited_frame_header))
+#define SCI_UFI_TOTAL_SIZE (SCI_UFI_BUF_SIZE + SCI_UFI_HDR_SIZE + SCU_MAX_UNSOLICITED_FRAMES * sizeof(u64))
+
struct isci_host;
-int sci_unsolicited_frame_control_construct(struct isci_host *ihost);
+void sci_unsolicited_frame_control_construct(struct isci_host *ihost);
enum sci_status sci_unsolicited_frame_control_get_header(
struct sci_unsolicited_frame_control *uf_control,
OpenPOWER on IntegriCloud