]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/scsi/hisi_sas/hisi_sas.h
scsi: hisi_sas: us start_phy in PHY_FUNC_LINK_RESET
[mirror_ubuntu-bionic-kernel.git] / drivers / scsi / hisi_sas / hisi_sas.h
index ad6b2d18047b29430b4f6ea1c59ca63a4a33f545..ea4b5d65cbb3d971d4a15ae9b77bb70aca685f0a 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/acpi.h>
 #include <linux/clk.h>
 #include <linux/dmapool.h>
+#include <linux/iopoll.h>
 #include <linux/mfd/syscon.h>
 #include <linux/module.h>
 #include <linux/of_address.h>
 #include <scsi/sas_ata.h>
 #include <scsi/libsas.h>
 
-#define DRV_VERSION "v1.6"
-
 #define HISI_SAS_MAX_PHYS      9
 #define HISI_SAS_MAX_QUEUES    32
 #define HISI_SAS_QUEUE_SLOTS 512
-#define HISI_SAS_MAX_ITCT_ENTRIES 2048
+#define HISI_SAS_MAX_ITCT_ENTRIES 1024
 #define HISI_SAS_MAX_DEVICES HISI_SAS_MAX_ITCT_ENTRIES
 #define HISI_SAS_RESET_BIT     0
 #define HISI_SAS_REJECT_CMD_BIT        1
@@ -141,6 +140,7 @@ struct hisi_sas_dq {
 struct hisi_sas_device {
        struct hisi_hba         *hisi_hba;
        struct domain_device    *sas_device;
+       struct completion *completion;
        struct hisi_sas_dq      *dq;
        struct list_head        list;
        u64 attached_phy;
@@ -198,7 +198,7 @@ struct hisi_sas_hw {
        int (*slot_complete)(struct hisi_hba *hisi_hba,
                             struct hisi_sas_slot *slot);
        void (*phys_init)(struct hisi_hba *hisi_hba);
-       void (*phy_enable)(struct hisi_hba *hisi_hba, int phy_no);
+       void (*phy_start)(struct hisi_hba *hisi_hba, int phy_no);
        void (*phy_disable)(struct hisi_hba *hisi_hba, int phy_no);
        void (*phy_hard_reset)(struct hisi_hba *hisi_hba, int phy_no);
        void (*get_events)(struct hisi_hba *hisi_hba, int phy_no);
@@ -342,7 +342,11 @@ struct hisi_sas_initial_fis {
 };
 
 struct hisi_sas_breakpoint {
-       u8      data[128];      /*io128 byte*/
+       u8      data[128];
+};
+
+struct hisi_sas_sata_breakpoint {
+       struct hisi_sas_breakpoint tag[32];
 };
 
 struct hisi_sas_sge {
@@ -401,6 +405,7 @@ struct hisi_sas_slot_buf_table {
 extern struct scsi_transport_template *hisi_sas_stt;
 extern struct scsi_host_template *hisi_sas_sht;
 
+extern void hisi_sas_stop_phys(struct hisi_hba *hisi_hba);
 extern void hisi_sas_init_add(struct hisi_hba *hisi_hba);
 extern int hisi_sas_alloc(struct hisi_hba *hisi_hba, struct Scsi_Host *shost);
 extern void hisi_sas_free(struct hisi_hba *hisi_hba);