Lines Matching refs:ps
99 struct mv88e6xxx_port_hwtstamp *ps = &chip->port_hwtstamp[port]; in mv88e6xxx_set_hwtstamp_config() local
105 clear_bit_unlock(MV88E6XXX_HWTSTAMP_ENABLED, &ps->state); in mv88e6xxx_set_hwtstamp_config()
174 set_bit(MV88E6XXX_HWTSTAMP_ENABLED, &ps->state); in mv88e6xxx_set_hwtstamp_config()
183 struct mv88e6xxx_port_hwtstamp *ps = &chip->port_hwtstamp[port]; in mv88e6xxx_port_hwtstamp_set() local
198 memcpy(&ps->tstamp_config, &config, sizeof(config)); in mv88e6xxx_port_hwtstamp_set()
208 struct mv88e6xxx_port_hwtstamp *ps = &chip->port_hwtstamp[port]; in mv88e6xxx_port_hwtstamp_get() local
209 struct hwtstamp_config *config = &ps->tstamp_config; in mv88e6xxx_port_hwtstamp_get()
254 struct mv88e6xxx_port_hwtstamp *ps = &chip->port_hwtstamp[port]; in mv88e6xxx_should_tstamp() local
264 if (!test_bit(MV88E6XXX_HWTSTAMP_ENABLED, &ps->state)) in mv88e6xxx_should_tstamp()
291 struct mv88e6xxx_port_hwtstamp *ps, in mv88e6xxx_get_rxts() argument
309 err = mv88e6xxx_port_ptp_read(chip, ps->port_id, in mv88e6xxx_get_rxts()
322 err = mv88e6xxx_port_ptp_write(chip, ps->port_id, reg, 0); in mv88e6xxx_get_rxts()
347 struct mv88e6xxx_port_hwtstamp *ps) in mv88e6xxx_rxtstamp_work() argument
352 skb = skb_dequeue(&ps->rx_queue); in mv88e6xxx_rxtstamp_work()
355 mv88e6xxx_get_rxts(chip, ps, skb, ptp_ops->arr0_sts_reg, in mv88e6xxx_rxtstamp_work()
356 &ps->rx_queue); in mv88e6xxx_rxtstamp_work()
358 skb = skb_dequeue(&ps->rx_queue2); in mv88e6xxx_rxtstamp_work()
360 mv88e6xxx_get_rxts(chip, ps, skb, ptp_ops->arr1_sts_reg, in mv88e6xxx_rxtstamp_work()
361 &ps->rx_queue2); in mv88e6xxx_rxtstamp_work()
372 struct mv88e6xxx_port_hwtstamp *ps; in mv88e6xxx_port_rxtstamp() local
377 ps = &chip->port_hwtstamp[port]; in mv88e6xxx_port_rxtstamp()
379 if (ps->tstamp_config.rx_filter != HWTSTAMP_FILTER_PTP_V2_EVENT) in mv88e6xxx_port_rxtstamp()
389 skb_queue_tail(&ps->rx_queue2, skb); in mv88e6xxx_port_rxtstamp()
391 skb_queue_tail(&ps->rx_queue, skb); in mv88e6xxx_port_rxtstamp()
399 struct mv88e6xxx_port_hwtstamp *ps) in mv88e6xxx_txtstamp_work() argument
409 if (!ps->tx_skb) in mv88e6xxx_txtstamp_work()
413 err = mv88e6xxx_port_ptp_read(chip, ps->port_id, in mv88e6xxx_txtstamp_work()
423 if (time_is_before_jiffies(ps->tx_tstamp_start + in mv88e6xxx_txtstamp_work()
426 ps->port_id); in mv88e6xxx_txtstamp_work()
438 mv88e6xxx_port_ptp_write(chip, ps->port_id, ptp_ops->dep_sts_reg, 0); in mv88e6xxx_txtstamp_work()
443 dev_warn(chip->dev, "p%d: tx timestamp overrun\n", ps->port_id); in mv88e6xxx_txtstamp_work()
447 if (departure_block[3] != ps->tx_seq_id) { in mv88e6xxx_txtstamp_work()
448 dev_warn(chip->dev, "p%d: unexpected seq. id\n", ps->port_id); in mv88e6xxx_txtstamp_work()
461 ps->port_id, ktime_to_ns(shhwtstamps.hwtstamp), in mv88e6xxx_txtstamp_work()
462 departure_block[0], ps->tx_seq_id, departure_block[3]); in mv88e6xxx_txtstamp_work()
469 tmp_skb = ps->tx_skb; in mv88e6xxx_txtstamp_work()
470 ps->tx_skb = NULL; in mv88e6xxx_txtstamp_work()
471 clear_bit_unlock(MV88E6XXX_HWTSTAMP_TX_IN_PROGRESS, &ps->state); in mv88e6xxx_txtstamp_work()
477 dev_kfree_skb_any(ps->tx_skb); in mv88e6xxx_txtstamp_work()
478 ps->tx_skb = NULL; in mv88e6xxx_txtstamp_work()
479 clear_bit_unlock(MV88E6XXX_HWTSTAMP_TX_IN_PROGRESS, &ps->state); in mv88e6xxx_txtstamp_work()
488 struct mv88e6xxx_port_hwtstamp *ps; in mv88e6xxx_hwtstamp_work() local
495 ps = &chip->port_hwtstamp[i]; in mv88e6xxx_hwtstamp_work()
496 if (test_bit(MV88E6XXX_HWTSTAMP_TX_IN_PROGRESS, &ps->state)) in mv88e6xxx_hwtstamp_work()
497 restart |= mv88e6xxx_txtstamp_work(chip, ps); in mv88e6xxx_hwtstamp_work()
499 mv88e6xxx_rxtstamp_work(chip, ps); in mv88e6xxx_hwtstamp_work()
509 struct mv88e6xxx_port_hwtstamp *ps = &chip->port_hwtstamp[port]; in mv88e6xxx_port_txtstamp() local
523 &ps->state)) in mv88e6xxx_port_txtstamp()
526 ps->tx_skb = clone; in mv88e6xxx_port_txtstamp()
527 ps->tx_tstamp_start = jiffies; in mv88e6xxx_port_txtstamp()
528 ps->tx_seq_id = be16_to_cpup(seq_ptr); in mv88e6xxx_port_txtstamp()
576 struct mv88e6xxx_port_hwtstamp *ps = &chip->port_hwtstamp[port]; in mv88e6xxx_hwtstamp_port_setup() local
578 ps->port_id = port; in mv88e6xxx_hwtstamp_port_setup()
580 skb_queue_head_init(&ps->rx_queue); in mv88e6xxx_hwtstamp_port_setup()
581 skb_queue_head_init(&ps->rx_queue2); in mv88e6xxx_hwtstamp_port_setup()