kunpeng_hccs.h (23fe8112a23106e7dfc2b73fc52a60ea3eb64c20) kunpeng_hccs.h (e3c289c0916e2a3d7859a0cf851ea242fa23ec1e)
1/* SPDX-License-Identifier: GPL-2.0+ */
2/* Copyright (c) 2023 Hisilicon Limited. */
3
4#ifndef __KUNPENG_HCCS_H__
5#define __KUNPENG_HCCS_H__
6
7/*
8 * |--------------- Chip0 ---------------|---------------- ChipN -------------|

--- 66 unchanged lines hidden (view full) ---

75 void (*fill_pcc_shared_mem)(struct hccs_dev *hdev,
76 u8 cmd, struct hccs_desc *desc,
77 void __iomem *comm_space,
78 u16 space_size);
79 u16 shared_mem_size;
80 bool has_txdone_irq;
81};
82
1/* SPDX-License-Identifier: GPL-2.0+ */
2/* Copyright (c) 2023 Hisilicon Limited. */
3
4#ifndef __KUNPENG_HCCS_H__
5#define __KUNPENG_HCCS_H__
6
7/*
8 * |--------------- Chip0 ---------------|---------------- ChipN -------------|

--- 66 unchanged lines hidden (view full) ---

75 void (*fill_pcc_shared_mem)(struct hccs_dev *hdev,
76 u8 cmd, struct hccs_desc *desc,
77 void __iomem *comm_space,
78 u16 space_size);
79 u16 shared_mem_size;
80 bool has_txdone_irq;
81};
82
83#define HCCS_CAPS_HCCS_V2_PM BIT_ULL(0)
84
83struct hccs_dev {
84 struct device *dev;
85 struct acpi_device *acpi_dev;
86 const struct hccs_verspecific_data *verspec_data;
85struct hccs_dev {
86 struct device *dev;
87 struct acpi_device *acpi_dev;
88 const struct hccs_verspecific_data *verspec_data;
89 /* device capabilities from firmware, like HCCS_CAPS_xxx. */
87 u64 caps;
88 u8 chip_num;
89 struct hccs_chip_info *chips;
90 u16 used_type_num;
91 struct hccs_type_name_map *type_name_maps;
92 u8 chan_id;
93 struct mutex lock;
94 struct hccs_mbox_client_info cl_info;

--- 6 unchanged lines hidden (view full) ---

101 HCCS_GET_DIE_INFO,
102 HCCS_GET_DIE_PORT_INFO,
103 HCCS_GET_DEV_CAP,
104 HCCS_GET_PORT_LINK_STATUS,
105 HCCS_GET_PORT_CRC_ERR_CNT,
106 HCCS_GET_DIE_PORTS_LANE_STA,
107 HCCS_GET_DIE_PORTS_LINK_STA,
108 HCCS_GET_DIE_PORTS_CRC_ERR_CNT,
90 u64 caps;
91 u8 chip_num;
92 struct hccs_chip_info *chips;
93 u16 used_type_num;
94 struct hccs_type_name_map *type_name_maps;
95 u8 chan_id;
96 struct mutex lock;
97 struct hccs_mbox_client_info cl_info;

--- 6 unchanged lines hidden (view full) ---

104 HCCS_GET_DIE_INFO,
105 HCCS_GET_DIE_PORT_INFO,
106 HCCS_GET_DEV_CAP,
107 HCCS_GET_PORT_LINK_STATUS,
108 HCCS_GET_PORT_CRC_ERR_CNT,
109 HCCS_GET_DIE_PORTS_LANE_STA,
110 HCCS_GET_DIE_PORTS_LINK_STA,
111 HCCS_GET_DIE_PORTS_CRC_ERR_CNT,
112 HCCS_GET_PORT_IDLE_STATUS,
113 HCCS_PM_DEC_LANE,
114 HCCS_PM_INC_LANE,
109 HCCS_SUB_CMD_MAX = 255,
110};
111
112struct hccs_die_num_req_param {
113 u8 chip_id;
114};
115
116struct hccs_die_info_req_param {

--- 27 unchanged lines hidden (view full) ---

144
145/* The common command request for getting the information of a specific port */
146struct hccs_port_comm_req_param {
147 u8 chip_id;
148 u8 die_id;
149 u8 port_id;
150};
151
115 HCCS_SUB_CMD_MAX = 255,
116};
117
118struct hccs_die_num_req_param {
119 u8 chip_id;
120};
121
122struct hccs_die_info_req_param {

--- 27 unchanged lines hidden (view full) ---

150
151/* The common command request for getting the information of a specific port */
152struct hccs_port_comm_req_param {
153 u8 chip_id;
154 u8 die_id;
155 u8 port_id;
156};
157
158#define HCCS_PREPARE_INC_LANE 1
159#define HCCS_GET_ADAPT_RES 2
160#define HCCS_START_RETRAINING 3
161struct hccs_inc_lane_req_param {
162 u8 port_type;
163 u8 opt_type;
164};
165
152#define HCCS_PORT_RESET 1
153#define HCCS_PORT_SETUP 2
154#define HCCS_PORT_CONFIG 3
155#define HCCS_PORT_READY 4
156struct hccs_link_status {
157 u8 lane_mask; /* indicate which lanes are used. */
158 u8 link_fsm : 3; /* link fsm, 1: reset 2: setup 3: config 4: link-up */
159 u8 lane_num : 5; /* current lane number */

--- 62 unchanged lines hidden ---
166#define HCCS_PORT_RESET 1
167#define HCCS_PORT_SETUP 2
168#define HCCS_PORT_CONFIG 3
169#define HCCS_PORT_READY 4
170struct hccs_link_status {
171 u8 lane_mask; /* indicate which lanes are used. */
172 u8 link_fsm : 3; /* link fsm, 1: reset 2: setup 3: config 4: link-up */
173 u8 lane_num : 5; /* current lane number */

--- 62 unchanged lines hidden ---