ACPI / property: Allow holes in reference properties
[cascardo/linux.git] / include / linux / qed / storage_common.h
1 /* QLogic qed NIC Driver
2  * Copyright (c) 2015 QLogic Corporation
3  *
4  * This software is available under the terms of the GNU General Public License
5  * (GPL) Version 2, available from the file COPYING in the main directory of
6  * this source tree.
7  */
8
9 #ifndef __STORAGE_COMMON__
10 #define __STORAGE_COMMON__
11
12 #define NUM_OF_CMDQS_CQS (NUM_OF_GLOBAL_QUEUES / 2)
13 #define BDQ_NUM_RESOURCES (4)
14
15 #define BDQ_ID_RQ                        (0)
16 #define BDQ_ID_IMM_DATA          (1)
17 #define BDQ_NUM_IDS          (2)
18
19 #define BDQ_MAX_EXTERNAL_RING_SIZE (1 << 15)
20
21 struct scsi_bd {
22         struct regpair address;
23         struct regpair opaque;
24 };
25
26 struct scsi_bdq_ram_drv_data {
27         __le16 external_producer;
28         __le16 reserved0[3];
29 };
30
31 struct scsi_drv_cmdq {
32         __le16 cmdq_cons;
33         __le16 reserved0;
34         __le32 reserved1;
35 };
36
37 struct scsi_init_func_params {
38         __le16 num_tasks;
39         u8 log_page_size;
40         u8 debug_mode;
41         u8 reserved2[12];
42 };
43
44 struct scsi_init_func_queues {
45         struct regpair glbl_q_params_addr;
46         __le16 rq_buffer_size;
47         __le16 cq_num_entries;
48         __le16 cmdq_num_entries;
49         u8 bdq_resource_id;
50         u8 q_validity;
51 #define SCSI_INIT_FUNC_QUEUES_RQ_VALID_MASK        0x1
52 #define SCSI_INIT_FUNC_QUEUES_RQ_VALID_SHIFT       0
53 #define SCSI_INIT_FUNC_QUEUES_IMM_DATA_VALID_MASK  0x1
54 #define SCSI_INIT_FUNC_QUEUES_IMM_DATA_VALID_SHIFT 1
55 #define SCSI_INIT_FUNC_QUEUES_CMD_VALID_MASK       0x1
56 #define SCSI_INIT_FUNC_QUEUES_CMD_VALID_SHIFT      2
57 #define SCSI_INIT_FUNC_QUEUES_RESERVED_VALID_MASK  0x1F
58 #define SCSI_INIT_FUNC_QUEUES_RESERVED_VALID_SHIFT 3
59         u8 num_queues;
60         u8 queue_relative_offset;
61         u8 cq_sb_pi;
62         u8 cmdq_sb_pi;
63         __le16 cq_cmdq_sb_num_arr[NUM_OF_CMDQS_CQS];
64         __le16 reserved0;
65         u8 bdq_pbl_num_entries[BDQ_NUM_IDS];
66         struct regpair bdq_pbl_base_address[BDQ_NUM_IDS];
67         __le16 bdq_xoff_threshold[BDQ_NUM_IDS];
68         __le16 bdq_xon_threshold[BDQ_NUM_IDS];
69         __le16 cmdq_xoff_threshold;
70         __le16 cmdq_xon_threshold;
71         __le32 reserved1;
72 };
73
74 struct scsi_ram_per_bdq_resource_drv_data {
75         struct scsi_bdq_ram_drv_data drv_data_per_bdq_id[BDQ_NUM_IDS];
76 };
77
78 struct scsi_sge {
79         struct regpair sge_addr;
80         __le16 sge_len;
81         __le16 reserved0;
82         __le32 reserved1;
83 };
84
85 struct scsi_terminate_extra_params {
86         __le16 unsolicited_cq_count;
87         __le16 cmdq_count;
88         u8 reserved[4];
89 };
90
91 #endif /* __STORAGE_COMMON__ */