diff options
Diffstat (limited to 'include/linux/wimax/i2400m.h')
-rw-r--r-- | include/linux/wimax/i2400m.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/include/linux/wimax/i2400m.h b/include/linux/wimax/i2400m.h index 74198f5bb4dc..d5148a7889a6 100644 --- a/include/linux/wimax/i2400m.h +++ b/include/linux/wimax/i2400m.h | |||
@@ -207,6 +207,7 @@ enum i2400m_pt { | |||
207 | I2400M_PT_TRACE, /* For device debug */ | 207 | I2400M_PT_TRACE, /* For device debug */ |
208 | I2400M_PT_RESET_WARM, /* device reset */ | 208 | I2400M_PT_RESET_WARM, /* device reset */ |
209 | I2400M_PT_RESET_COLD, /* USB[transport] reset, like reconnect */ | 209 | I2400M_PT_RESET_COLD, /* USB[transport] reset, like reconnect */ |
210 | I2400M_PT_EDATA, /* Extended RX data */ | ||
210 | I2400M_PT_ILLEGAL | 211 | I2400M_PT_ILLEGAL |
211 | }; | 212 | }; |
212 | 213 | ||
@@ -221,6 +222,48 @@ struct i2400m_pl_data_hdr { | |||
221 | } __attribute__((packed)); | 222 | } __attribute__((packed)); |
222 | 223 | ||
223 | 224 | ||
225 | /* | ||
226 | * Payload for an extended data packet | ||
227 | * | ||
228 | * New in fw v1.4 | ||
229 | * | ||
230 | * @reorder: if this payload has to be reorder or not (and how) | ||
231 | * @cs: the type of data in the packet, as defined per (802.16e | ||
232 | * T11.13.19.1). Currently only 2 (IPv4 packet) supported. | ||
233 | * | ||
234 | * This is prefixed to each and every INCOMING DATA packet. | ||
235 | */ | ||
236 | struct i2400m_pl_edata_hdr { | ||
237 | __le32 reorder; /* bits defined in i2400m_ro */ | ||
238 | __u8 cs; | ||
239 | __u8 reserved[11]; | ||
240 | } __attribute__((packed)); | ||
241 | |||
242 | enum i2400m_cs { | ||
243 | I2400M_CS_IPV4_0 = 0, | ||
244 | I2400M_CS_IPV4 = 2, | ||
245 | }; | ||
246 | |||
247 | enum i2400m_ro { | ||
248 | I2400M_RO_NEEDED = 0x01, | ||
249 | I2400M_RO_TYPE = 0x03, | ||
250 | I2400M_RO_TYPE_SHIFT = 1, | ||
251 | I2400M_RO_CIN = 0x0f, | ||
252 | I2400M_RO_CIN_SHIFT = 4, | ||
253 | I2400M_RO_FBN = 0x07ff, | ||
254 | I2400M_RO_FBN_SHIFT = 8, | ||
255 | I2400M_RO_SN = 0x07ff, | ||
256 | I2400M_RO_SN_SHIFT = 21, | ||
257 | }; | ||
258 | |||
259 | enum i2400m_ro_type { | ||
260 | I2400M_RO_TYPE_RESET = 0, | ||
261 | I2400M_RO_TYPE_PACKET, | ||
262 | I2400M_RO_TYPE_WS, | ||
263 | I2400M_RO_TYPE_PACKET_WS, | ||
264 | }; | ||
265 | |||
266 | |||
224 | /* Misc constants */ | 267 | /* Misc constants */ |
225 | enum { | 268 | enum { |
226 | I2400M_PL_PAD = 16, /* Payload data size alignment */ | 269 | I2400M_PL_PAD = 16, /* Payload data size alignment */ |
@@ -381,6 +424,9 @@ enum i2400m_tlv { | |||
381 | I2400M_TLV_RF_STATUS = 163, | 424 | I2400M_TLV_RF_STATUS = 163, |
382 | I2400M_TLV_DEVICE_RESET_TYPE = 132, | 425 | I2400M_TLV_DEVICE_RESET_TYPE = 132, |
383 | I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, | 426 | I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, |
427 | I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611, | ||
428 | I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614, | ||
429 | I2400M_TLV_CONFIG_DL_HOST_REORDER = 615, | ||
384 | }; | 430 | }; |
385 | 431 | ||
386 | 432 | ||
@@ -509,4 +555,27 @@ struct i2400m_tlv_media_status { | |||
509 | __le32 media_status; | 555 | __le32 media_status; |
510 | } __attribute__((packed)); | 556 | } __attribute__((packed)); |
511 | 557 | ||
558 | |||
559 | /* New in v1.4 */ | ||
560 | struct i2400m_tlv_config_idle_timeout { | ||
561 | struct i2400m_tlv_hdr hdr; | ||
562 | __le32 timeout; /* 100 to 300000 ms [5min], 100 increments | ||
563 | * 0 disabled */ | ||
564 | } __attribute__((packed)); | ||
565 | |||
566 | /* New in v1.4 -- for backward compat, will be removed */ | ||
567 | struct i2400m_tlv_config_d2h_data_format { | ||
568 | struct i2400m_tlv_hdr hdr; | ||
569 | __u8 format; /* 0 old format, 1 enhanced */ | ||
570 | __u8 reserved[3]; | ||
571 | } __attribute__((packed)); | ||
572 | |||
573 | /* New in v1.4 */ | ||
574 | struct i2400m_tlv_config_dl_host_reorder { | ||
575 | struct i2400m_tlv_hdr hdr; | ||
576 | __u8 reorder; /* 0 disabled, 1 enabled */ | ||
577 | __u8 reserved[3]; | ||
578 | } __attribute__((packed)); | ||
579 | |||
580 | |||
512 | #endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ | 581 | #endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ |