Merge tag 'block-5.11-2021-01-10' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / drivers / block / rsxx / rsxx_cfg.h
blob2b79015f5849890a1221ffe89e5a38561be44d87
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3 * Filename: rsXX_cfg.h
5 * Authors: Joshua Morris <josh.h.morris@us.ibm.com>
6 * Philip Kelleher <pjk1939@linux.vnet.ibm.com>
8 * (C) Copyright 2013 IBM Corporation
9 */
11 #ifndef __RSXX_CFG_H__
12 #define __RSXX_CFG_H__
14 /* NOTE: Config values will be saved in network byte order (i.e. Big endian) */
15 #include <linux/types.h>
18 * The card config version must match the driver's expected version. If it does
19 * not, the DMA interfaces will not be attached and the user will need to
20 * initialize/upgrade the card configuration using the card config utility.
22 #define RSXX_CFG_VERSION 4
24 struct card_cfg_hdr {
25 __u32 version;
26 __u32 crc;
29 struct card_cfg_data {
30 __u32 block_size;
31 __u32 stripe_size;
32 __u32 vendor_id;
33 __u32 cache_order;
34 struct {
35 __u32 mode; /* Disabled, manual, auto-tune... */
36 __u32 count; /* Number of intr to coalesce */
37 __u32 latency;/* Max wait time (in ns) */
38 } intr_coal;
41 struct rsxx_card_cfg {
42 struct card_cfg_hdr hdr;
43 struct card_cfg_data data;
46 /* Vendor ID Values */
47 #define RSXX_VENDOR_ID_IBM 0
48 #define RSXX_VENDOR_ID_DSI 1
49 #define RSXX_VENDOR_COUNT 2
51 /* Interrupt Coalescing Values */
52 #define RSXX_INTR_COAL_DISABLED 0
53 #define RSXX_INTR_COAL_EXPLICIT 1
54 #define RSXX_INTR_COAL_AUTO_TUNE 2
57 #endif /* __RSXX_CFG_H__ */