summaryrefslogtreecommitdiff
path: root/include/linux/ahci-remap.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2016-12-02 21:31:02 +0300
committerTejun Heo <tj@kernel.org>2016-12-05 22:31:24 +0300
commitbfa9cb3e110cc02f2120e021bc853773bfd61b74 (patch)
treef8b715bbdd81b89bd8df6d458b9ea5c559a35f7d /include/linux/ahci-remap.h
parenta2e7eefd5618e0f75bae2eb5c9387ea2f627b6ca (diff)
downloadlinux-bfa9cb3e110cc02f2120e021bc853773bfd61b74.tar.xz
ahci-remap.h: add ahci remapping definitions
Signed-off-by: Dan Williams <dan.j.williams@intel.com> [hch: split into a separate header and commit] Signed-off-by: Christoph Hellwig <hch@lst.de> [tj: dropped duplicate definition of AHCI_VSCAP spotted by Sergei] Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/ahci-remap.h')
-rw-r--r--include/linux/ahci-remap.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/linux/ahci-remap.h b/include/linux/ahci-remap.h
new file mode 100644
index 000000000000..62be3a40239d
--- /dev/null
+++ b/include/linux/ahci-remap.h
@@ -0,0 +1,28 @@
+#ifndef _LINUX_AHCI_REMAP_H
+#define _LINUX_AHCI_REMAP_H
+
+#include <linux/sizes.h>
+
+#define AHCI_VSCAP 0xa4
+#define AHCI_REMAP_CAP 0x800
+
+/* device class code */
+#define AHCI_REMAP_N_DCC 0x880
+
+/* remap-device base relative to ahci-bar */
+#define AHCI_REMAP_N_OFFSET SZ_16K
+#define AHCI_REMAP_N_SIZE SZ_16K
+
+#define AHCI_MAX_REMAP 3
+
+static inline unsigned int ahci_remap_dcc(int i)
+{
+ return AHCI_REMAP_N_DCC + i * 0x80;
+}
+
+static inline unsigned int ahci_remap_base(int i)
+{
+ return AHCI_REMAP_N_OFFSET + i * AHCI_REMAP_N_SIZE;
+}
+
+#endif /* _LINUX_AHCI_REMAP_H */