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 59