Lines Matching refs:p
26 static void sxgbe_init_tx_desc(struct sxgbe_tx_norm_desc *p) in sxgbe_init_tx_desc() argument
28 p->tdes23.tx_rd_des23.own_bit = 0; in sxgbe_init_tx_desc()
31 static void sxgbe_tx_desc_enable_tse(struct sxgbe_tx_norm_desc *p, u8 is_tse, in sxgbe_tx_desc_enable_tse() argument
35 p->tdes23.tx_rd_des23.tse_bit = is_tse; in sxgbe_tx_desc_enable_tse()
36 p->tdes23.tx_rd_des23.buf1_size = total_hdr_len; in sxgbe_tx_desc_enable_tse()
37 p->tdes23.tx_rd_des23.tcp_hdr_len = tcp_hdr_len / 4; in sxgbe_tx_desc_enable_tse()
38 p->tdes23.tx_rd_des23.tx_pkt_len.tcp_payload_len = tcp_payload_len; in sxgbe_tx_desc_enable_tse()
42 static void sxgbe_prepare_tx_desc(struct sxgbe_tx_norm_desc *p, u8 is_fd, in sxgbe_prepare_tx_desc() argument
45 p->tdes23.tx_rd_des23.first_desc = is_fd; in sxgbe_prepare_tx_desc()
46 p->tdes23.tx_rd_des23.buf1_size = buf1_len; in sxgbe_prepare_tx_desc()
48 p->tdes23.tx_rd_des23.tx_pkt_len.pkt_len.total_pkt_len = pkt_len; in sxgbe_prepare_tx_desc()
51 p->tdes23.tx_rd_des23.cksum_ctl = cic_full; in sxgbe_prepare_tx_desc()
55 static void sxgbe_tx_vlanctl_desc(struct sxgbe_tx_norm_desc *p, int vlan_ctl) in sxgbe_tx_vlanctl_desc() argument
57 p->tdes23.tx_rd_des23.vlan_tag_ctl = vlan_ctl; in sxgbe_tx_vlanctl_desc()
61 static void sxgbe_set_tx_owner(struct sxgbe_tx_norm_desc *p) in sxgbe_set_tx_owner() argument
63 p->tdes23.tx_rd_des23.own_bit = 1; in sxgbe_set_tx_owner()
67 static int sxgbe_get_tx_owner(struct sxgbe_tx_norm_desc *p) in sxgbe_get_tx_owner() argument
69 return p->tdes23.tx_rd_des23.own_bit; in sxgbe_get_tx_owner()
73 static void sxgbe_close_tx_desc(struct sxgbe_tx_norm_desc *p) in sxgbe_close_tx_desc() argument
75 p->tdes23.tx_rd_des23.last_desc = 1; in sxgbe_close_tx_desc()
76 p->tdes23.tx_rd_des23.int_on_com = 1; in sxgbe_close_tx_desc()
80 static void sxgbe_release_tx_desc(struct sxgbe_tx_norm_desc *p) in sxgbe_release_tx_desc() argument
82 memset(p, 0, sizeof(*p)); in sxgbe_release_tx_desc()
88 static void sxgbe_clear_tx_ic(struct sxgbe_tx_norm_desc *p) in sxgbe_clear_tx_ic() argument
90 p->tdes23.tx_rd_des23.int_on_com = 0; in sxgbe_clear_tx_ic()
94 static int sxgbe_get_tx_ls(struct sxgbe_tx_norm_desc *p) in sxgbe_get_tx_ls() argument
96 return p->tdes23.tx_rd_des23.last_desc; in sxgbe_get_tx_ls()
100 static int sxgbe_get_tx_len(struct sxgbe_tx_norm_desc *p) in sxgbe_get_tx_len() argument
102 return p->tdes23.tx_rd_des23.buf1_size; in sxgbe_get_tx_len()
106 static void sxgbe_tx_enable_tstamp(struct sxgbe_tx_norm_desc *p) in sxgbe_tx_enable_tstamp() argument
108 p->tdes23.tx_rd_des23.timestmp_enable = 1; in sxgbe_tx_enable_tstamp()
112 static int sxgbe_get_tx_timestamp_status(struct sxgbe_tx_norm_desc *p) in sxgbe_get_tx_timestamp_status() argument
114 return p->tdes23.tx_rd_des23.timestmp_enable; in sxgbe_get_tx_timestamp_status()
118 static void sxgbe_tx_ctxt_desc_set_ctxt(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_set_ctxt() argument
120 p->ctxt_bit = 1; in sxgbe_tx_ctxt_desc_set_ctxt()
124 static void sxgbe_tx_ctxt_desc_set_owner(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_set_owner() argument
126 p->own_bit = 1; in sxgbe_tx_ctxt_desc_set_owner()
130 static int sxgbe_tx_ctxt_desc_get_owner(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_get_owner() argument
132 return p->own_bit; in sxgbe_tx_ctxt_desc_get_owner()
136 static void sxgbe_tx_ctxt_desc_set_mss(struct sxgbe_tx_ctxt_desc *p, u16 mss) in sxgbe_tx_ctxt_desc_set_mss() argument
138 p->maxseg_size = mss; in sxgbe_tx_ctxt_desc_set_mss()
142 static int sxgbe_tx_ctxt_desc_get_mss(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_get_mss() argument
144 return p->maxseg_size; in sxgbe_tx_ctxt_desc_get_mss()
148 static void sxgbe_tx_ctxt_desc_set_tcmssv(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_set_tcmssv() argument
150 p->tcmssv = 1; in sxgbe_tx_ctxt_desc_set_tcmssv()
154 static void sxgbe_tx_ctxt_desc_reset_ostc(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_reset_ostc() argument
156 p->ostc = 0; in sxgbe_tx_ctxt_desc_reset_ostc()
160 static void sxgbe_tx_ctxt_desc_set_ivlantag(struct sxgbe_tx_ctxt_desc *p, in sxgbe_tx_ctxt_desc_set_ivlantag() argument
165 p->ivlan_tag_valid = is_ivlanvalid; in sxgbe_tx_ctxt_desc_set_ivlantag()
166 p->ivlan_tag = ivlan_tag; in sxgbe_tx_ctxt_desc_set_ivlantag()
167 p->ivlan_tag_ctl = ivlan_ctl; in sxgbe_tx_ctxt_desc_set_ivlantag()
172 static int sxgbe_tx_ctxt_desc_get_ivlantag(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_get_ivlantag() argument
174 return p->ivlan_tag; in sxgbe_tx_ctxt_desc_get_ivlantag()
178 static void sxgbe_tx_ctxt_desc_set_vlantag(struct sxgbe_tx_ctxt_desc *p, in sxgbe_tx_ctxt_desc_set_vlantag() argument
182 p->vltag_valid = is_vlanvalid; in sxgbe_tx_ctxt_desc_set_vlantag()
183 p->vlan_tag = vlan_tag; in sxgbe_tx_ctxt_desc_set_vlantag()
188 static int sxgbe_tx_ctxt_desc_get_vlantag(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_get_vlantag() argument
190 return p->vlan_tag; in sxgbe_tx_ctxt_desc_get_vlantag()
194 static void sxgbe_tx_ctxt_desc_set_tstamp(struct sxgbe_tx_ctxt_desc *p, in sxgbe_tx_ctxt_desc_set_tstamp() argument
198 p->ostc = ostc_enable; in sxgbe_tx_ctxt_desc_set_tstamp()
199 p->tstamp_lo = (u32) tstamp; in sxgbe_tx_ctxt_desc_set_tstamp()
200 p->tstamp_hi = (u32) (tstamp>>32); in sxgbe_tx_ctxt_desc_set_tstamp()
204 static void sxgbe_tx_ctxt_desc_close(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_close() argument
206 p->own_bit = 1; in sxgbe_tx_ctxt_desc_close()
210 static int sxgbe_tx_ctxt_desc_get_cde(struct sxgbe_tx_ctxt_desc *p) in sxgbe_tx_ctxt_desc_get_cde() argument
212 return p->ctxt_desc_err; in sxgbe_tx_ctxt_desc_get_cde()
216 static void sxgbe_init_rx_desc(struct sxgbe_rx_norm_desc *p, int disable_rx_ic, in sxgbe_init_rx_desc() argument
219 p->rdes23.rx_rd_des23.own_bit = 1; in sxgbe_init_rx_desc()
221 p->rdes23.rx_rd_des23.int_on_com = disable_rx_ic; in sxgbe_init_rx_desc()
225 static int sxgbe_get_rx_owner(struct sxgbe_rx_norm_desc *p) in sxgbe_get_rx_owner() argument
227 return p->rdes23.rx_rd_des23.own_bit; in sxgbe_get_rx_owner()
231 static void sxgbe_set_rx_owner(struct sxgbe_rx_norm_desc *p) in sxgbe_set_rx_owner() argument
233 p->rdes23.rx_rd_des23.own_bit = 1; in sxgbe_set_rx_owner()
237 static void sxgbe_set_rx_int_on_com(struct sxgbe_rx_norm_desc *p) in sxgbe_set_rx_int_on_com() argument
239 p->rdes23.rx_rd_des23.int_on_com = 1; in sxgbe_set_rx_int_on_com()
243 static int sxgbe_get_rx_frame_len(struct sxgbe_rx_norm_desc *p) in sxgbe_get_rx_frame_len() argument
245 return p->rdes23.rx_wb_des23.pkt_len; in sxgbe_get_rx_frame_len()
249 static int sxgbe_get_rx_fd_status(struct sxgbe_rx_norm_desc *p) in sxgbe_get_rx_fd_status() argument
251 return p->rdes23.rx_wb_des23.first_desc; in sxgbe_get_rx_fd_status()
255 static int sxgbe_get_rx_ld_status(struct sxgbe_rx_norm_desc *p) in sxgbe_get_rx_ld_status() argument
257 return p->rdes23.rx_wb_des23.last_desc; in sxgbe_get_rx_ld_status()
262 static int sxgbe_rx_wbstatus(struct sxgbe_rx_norm_desc *p, in sxgbe_rx_wbstatus() argument
268 if (p->rdes23.rx_wb_des23.err_summary) { in sxgbe_rx_wbstatus()
269 switch (p->rdes23.rx_wb_des23.err_l2_type) { in sxgbe_rx_wbstatus()
303 switch (p->rdes23.rx_wb_des23.err_l2_type) { in sxgbe_rx_wbstatus()
350 switch (p->rdes23.rx_wb_des23.layer34_pkt_type) { in sxgbe_rx_wbstatus()
384 if (p->rdes23.rx_wb_des23.vlan_filter_match) in sxgbe_rx_wbstatus()
387 if (p->rdes23.rx_wb_des23.sa_filter_fail) { in sxgbe_rx_wbstatus()
391 if (p->rdes23.rx_wb_des23.da_filter_fail) { in sxgbe_rx_wbstatus()
395 if (p->rdes23.rx_wb_des23.hash_filter_pass) in sxgbe_rx_wbstatus()
398 if (p->rdes23.rx_wb_des23.l3_filter_match) in sxgbe_rx_wbstatus()
401 if (p->rdes23.rx_wb_des23.l4_filter_match) in sxgbe_rx_wbstatus()
408 static int sxgbe_get_rx_ctxt_owner(struct sxgbe_rx_ctxt_desc *p) in sxgbe_get_rx_ctxt_owner() argument
410 return p->own_bit; in sxgbe_get_rx_ctxt_owner()
414 static void sxgbe_set_ctxt_rx_owner(struct sxgbe_rx_ctxt_desc *p) in sxgbe_set_ctxt_rx_owner() argument
416 p->own_bit = 1; in sxgbe_set_ctxt_rx_owner()
421 static void sxgbe_rx_ctxt_wbstatus(struct sxgbe_rx_ctxt_desc *p, in sxgbe_rx_ctxt_wbstatus() argument
424 if (p->tstamp_dropped) in sxgbe_rx_ctxt_wbstatus()
428 if (p->ptp_msgtype == RX_NO_PTP) in sxgbe_rx_ctxt_wbstatus()
430 else if (p->ptp_msgtype == RX_PTP_SYNC) in sxgbe_rx_ctxt_wbstatus()
432 else if (p->ptp_msgtype == RX_PTP_FOLLOW_UP) in sxgbe_rx_ctxt_wbstatus()
434 else if (p->ptp_msgtype == RX_PTP_DELAY_REQ) in sxgbe_rx_ctxt_wbstatus()
436 else if (p->ptp_msgtype == RX_PTP_DELAY_RESP) in sxgbe_rx_ctxt_wbstatus()
438 else if (p->ptp_msgtype == RX_PTP_PDELAY_REQ) in sxgbe_rx_ctxt_wbstatus()
440 else if (p->ptp_msgtype == RX_PTP_PDELAY_RESP) in sxgbe_rx_ctxt_wbstatus()
442 else if (p->ptp_msgtype == RX_PTP_PDELAY_FOLLOW_UP) in sxgbe_rx_ctxt_wbstatus()
444 else if (p->ptp_msgtype == RX_PTP_ANNOUNCE) in sxgbe_rx_ctxt_wbstatus()
446 else if (p->ptp_msgtype == RX_PTP_MGMT) in sxgbe_rx_ctxt_wbstatus()
448 else if (p->ptp_msgtype == RX_PTP_SIGNAL) in sxgbe_rx_ctxt_wbstatus()
450 else if (p->ptp_msgtype == RX_PTP_RESV_MSG) in sxgbe_rx_ctxt_wbstatus()
455 static int sxgbe_get_rx_ctxt_tstamp_status(struct sxgbe_rx_ctxt_desc *p) in sxgbe_get_rx_ctxt_tstamp_status() argument
457 if ((p->tstamp_hi == 0xffffffff) && (p->tstamp_lo == 0xffffffff)) { in sxgbe_get_rx_ctxt_tstamp_status()
462 return p->tstamp_available; in sxgbe_get_rx_ctxt_tstamp_status()
466 static u64 sxgbe_get_rx_timestamp(struct sxgbe_rx_ctxt_desc *p) in sxgbe_get_rx_timestamp() argument
470 ns = p->tstamp_lo; in sxgbe_get_rx_timestamp()
471 ns |= ((u64)p->tstamp_hi) << 32; in sxgbe_get_rx_timestamp()