Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
[safe/jmp/linux-2.6] / include / scsi / scsi_transport_sas.h
index 09125fa..ffeebc3 100644 (file)
@@ -80,8 +80,8 @@ struct sas_phy {
 
 #define dev_to_phy(d) \
        container_of((d), struct sas_phy, dev)
-#define transport_class_to_phy(cdev) \
-       dev_to_phy((cdev)->dev)
+#define transport_class_to_phy(dev) \
+       dev_to_phy((dev)->parent)
 #define phy_to_shost(phy) \
        dev_to_shost((phy)->dev.parent)
 
@@ -96,8 +96,8 @@ struct sas_rphy {
 
 #define dev_to_rphy(d) \
        container_of((d), struct sas_rphy, dev)
-#define transport_class_to_rphy(cdev) \
-       dev_to_rphy((cdev)->dev)
+#define transport_class_to_rphy(dev) \
+       dev_to_rphy((dev)->parent)
 #define rphy_to_shost(rphy) \
        dev_to_shost((rphy)->dev.parent)
 #define target_to_rphy(targ) \
@@ -107,6 +107,8 @@ struct sas_end_device {
        struct sas_rphy         rphy;
        /* flags */
        unsigned                ready_led_meaning:1;
+       unsigned                tlr_supported:1;
+       unsigned                tlr_enabled:1;
        /* parameters */
        u16                     I_T_nexus_loss_timeout;
        u16                     initiator_response_timeout;
@@ -152,8 +154,8 @@ struct sas_port {
 
 #define dev_to_sas_port(d) \
        container_of((d), struct sas_port, dev)
-#define transport_class_to_sas_port(cdev) \
-       dev_to_sas_port((cdev)->dev)
+#define transport_class_to_sas_port(dev) \
+       dev_to_sas_port((dev)->parent)
 
 struct sas_phy_linkrates {
        enum sas_linkrate maximum_linkrate;
@@ -181,6 +183,11 @@ extern int sas_phy_add(struct sas_phy *);
 extern void sas_phy_delete(struct sas_phy *);
 extern int scsi_is_sas_phy(const struct device *);
 
+unsigned int sas_tlr_supported(struct scsi_device *);
+unsigned int sas_is_tlr_enabled(struct scsi_device *);
+void sas_disable_tlr(struct scsi_device *);
+void sas_enable_tlr(struct scsi_device *);
+
 extern struct sas_rphy *sas_end_device_alloc(struct sas_port *);
 extern struct sas_rphy *sas_expander_alloc(struct sas_port *, enum sas_device_type);
 void sas_rphy_free(struct sas_rphy *);