]> Pileus Git - ~andy/linux/blobdiff - drivers/scsi/isci/host.h
[SCSI] isci: initial sgpio write support
[~andy/linux] / drivers / scsi / isci / host.h
index 9f33831a2f04ae211e43000d2b3fb4d773708fa6..646051afd3cbd07e2ab6761a18edef7355cf39f6 100644 (file)
@@ -440,6 +440,18 @@ static inline bool is_c0(struct pci_dev *pdev)
        return false;
 }
 
+/* set hw control for 'activity', even though active enclosures seem to drive
+ * the activity led on their own.  Skip setting FSENG control on 'status' due
+ * to unexpected operation and 'error' due to not being a supported automatic
+ * FSENG output
+ */
+#define SGPIO_HW_CONTROL 0x00000443
+
+static inline int isci_gpio_count(struct isci_host *ihost)
+{
+       return ARRAY_SIZE(ihost->scu_registers->peg0.sgpio.output_data_select);
+}
+
 void sci_controller_post_request(struct isci_host *ihost,
                                      u32 request);
 void sci_controller_release_frame(struct isci_host *ihost,
@@ -542,4 +554,7 @@ void sci_port_configuration_agent_construct(
 enum sci_status sci_port_configuration_agent_initialize(
        struct isci_host *ihost,
        struct sci_port_configuration_agent *port_agent);
+
+int isci_gpio_write(struct sas_ha_struct *, u8 reg_type, u8 reg_index,
+                   u8 reg_count, u8 *write_data);
 #endif