Lines Matching defs:mdev

43 	struct mlx4_en_dev *mdev =
45 struct mlx4_dev *dev = mdev->dev;
61 u64 mlx4_en_get_hwtstamp(struct mlx4_en_dev *mdev, u64 timestamp)
67 seq = read_seqbegin(&mdev->clock_lock);
68 nsec = timecounter_cyc2time(&mdev->clock, timestamp);
69 } while (read_seqretry(&mdev->clock_lock, seq));
74 void mlx4_en_fill_hwtstamps(struct mlx4_en_dev *mdev,
79 hwts->hwtstamp = mlx4_en_get_hwtstamp(mdev, timestamp);
84 * @mdev: board private structure
88 void mlx4_en_remove_timestamp(struct mlx4_en_dev *mdev)
90 if (mdev->ptp_clock) {
91 ptp_clock_unregister(mdev->ptp_clock);
92 mdev->ptp_clock = NULL;
93 mlx4_info(mdev, "removed PHC\n");
104 void mlx4_en_ptp_overflow_check(struct mlx4_en_dev *mdev)
106 bool timeout = time_is_before_jiffies(mdev->last_overflow_check +
111 write_seqlock_irqsave(&mdev->clock_lock, flags);
112 timecounter_read(&mdev->clock);
113 write_sequnlock_irqrestore(&mdev->clock_lock, flags);
114 mdev->last_overflow_check = jiffies;
132 struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev,
135 mult = (u32)adjust_by_scaled_ppm(mdev->nominal_c_mult, scaled_ppm);
137 write_seqlock_irqsave(&mdev->clock_lock, flags);
138 timecounter_read(&mdev->clock);
139 mdev->cycles.mult = mult;
140 write_sequnlock_irqrestore(&mdev->clock_lock, flags);
154 struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev,
158 write_seqlock_irqsave(&mdev->clock_lock, flags);
159 timecounter_adjtime(&mdev->clock, delta);
160 write_sequnlock_irqrestore(&mdev->clock_lock, flags);
176 struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev,
181 write_seqlock_irqsave(&mdev->clock_lock, flags);
182 ns = timecounter_read(&mdev->clock);
183 write_sequnlock_irqrestore(&mdev->clock_lock, flags);
201 struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev,
207 write_seqlock_irqsave(&mdev->clock_lock, flags);
208 timecounter_init(&mdev->clock, &mdev->cycles, ns);
209 write_sequnlock_irqrestore(&mdev->clock_lock, flags);
261 void mlx4_en_init_timestamp(struct mlx4_en_dev *mdev)
263 struct mlx4_dev *dev = mdev->dev;
267 * mdev->ptp_clock is common for all ports, skip initialization if
270 if (mdev->ptp_clock)
273 seqlock_init(&mdev->clock_lock);
275 memset(&mdev->cycles, 0, sizeof(mdev->cycles));
276 mdev->cycles.read = mlx4_en_read_clock;
277 mdev->cycles.mask = CLOCKSOURCE_MASK(48);
278 mdev->cycles.shift = freq_to_shift(dev->caps.hca_core_clock);
279 mdev->cycles.mult =
280 clocksource_khz2mult(1000 * dev->caps.hca_core_clock, mdev->cycles.shift);
281 mdev->nominal_c_mult = mdev->cycles.mult;
283 write_seqlock_irqsave(&mdev->clock_lock, flags);
284 timecounter_init(&mdev->clock, &mdev->cycles,
286 write_sequnlock_irqrestore(&mdev->clock_lock, flags);
289 mdev->ptp_clock_info = mlx4_en_ptp_clock_info;
290 snprintf(mdev->ptp_clock_info.name, 16, "mlx4 ptp");
292 mdev->ptp_clock = ptp_clock_register(&mdev->ptp_clock_info,
293 &mdev->pdev->dev);
294 if (IS_ERR(mdev->ptp_clock)) {
295 mdev->ptp_clock = NULL;
296 mlx4_err(mdev, "ptp_clock_register failed\n");
297 } else if (mdev->ptp_clock) {
298 mlx4_info(mdev, "registered PHC clock\n");