+/*
+ * This structure is used to statically define the capabilities
+ * of supported devices.
+ * Capabilities:
+ * rqpacing -
+ * Some HW variants require that PCIe read-requests be correctly throttled.
+ * This is called "rqpacing" and has to do with credit and flow control
+ * on certain Arkville implementations.
+ */
+struct ark_caps {
+ bool rqpacing;
+ bool isvf;
+};
+struct ark_dev_caps {
+ uint32_t device_id;
+ struct ark_caps caps;
+};
+#define SET_DEV_CAPS(id, rqp, vf) \
+ {id, {.rqpacing = rqp, .isvf = vf} }
+
+static const struct ark_dev_caps
+ark_device_caps[] = {
+ SET_DEV_CAPS(0x100d, true, false),
+ SET_DEV_CAPS(0x100e, true, false),
+ SET_DEV_CAPS(0x100f, true, false),
+ SET_DEV_CAPS(0x1010, false, false),
+ SET_DEV_CAPS(0x1017, true, false),
+ SET_DEV_CAPS(0x1018, true, false),
+ SET_DEV_CAPS(0x1019, true, false),
+ SET_DEV_CAPS(0x101a, true, false),
+ SET_DEV_CAPS(0x101b, true, false),
+ SET_DEV_CAPS(0x101c, true, true),
+ SET_DEV_CAPS(0x101e, false, false),
+ SET_DEV_CAPS(0x101f, false, false),
+ {.device_id = 0,}
+};
+