2b79015f5849890a1221ffe89e5a38561be44d87
[releases.git] / rsxx_cfg.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3 * Filename: rsXX_cfg.h
4 *
5 * Authors: Joshua Morris <josh.h.morris@us.ibm.com>
6 *       Philip Kelleher <pjk1939@linux.vnet.ibm.com>
7 *
8 * (C) Copyright 2013 IBM Corporation
9 */
10
11 #ifndef __RSXX_CFG_H__
12 #define __RSXX_CFG_H__
13
14 /* NOTE: Config values will be saved in network byte order (i.e. Big endian) */
15 #include <linux/types.h>
16
17 /*
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.
21  */
22 #define RSXX_CFG_VERSION        4
23
24 struct card_cfg_hdr {
25         __u32   version;
26         __u32   crc;
27 };
28
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;
39 };
40
41 struct rsxx_card_cfg {
42         struct card_cfg_hdr     hdr;
43         struct card_cfg_data    data;
44 };
45
46 /* Vendor ID Values */
47 #define RSXX_VENDOR_ID_IBM              0
48 #define RSXX_VENDOR_ID_DSI              1
49 #define RSXX_VENDOR_COUNT               2
50
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
55
56
57 #endif /* __RSXX_CFG_H__ */
58