Lines Matching defs:hellcreek
14 #include "hellcreek.h"
21 struct hellcreek *hellcreek = ds->priv;
23 info->phc_index = hellcreek->ptp_clock ?
24 ptp_clock_index(hellcreek->ptp_clock) : -1;
42 static int hellcreek_set_hwtstamp_config(struct hellcreek *hellcreek, int port,
46 &hellcreek->ports[port].port_hwtstamp;
115 struct hellcreek *hellcreek = ds->priv;
120 ps = &hellcreek->ports[port].port_hwtstamp;
125 err = hellcreek_set_hwtstamp_config(hellcreek, port, &config);
139 struct hellcreek *hellcreek = ds->priv;
143 ps = &hellcreek->ports[port].port_hwtstamp;
153 static struct ptp_header *hellcreek_should_tstamp(struct hellcreek *hellcreek,
158 &hellcreek->ports[port].port_hwtstamp;
181 static int hellcreek_ptp_hwtstamp_available(struct hellcreek *hellcreek,
186 status = hellcreek_ptp_read(hellcreek, ts_reg);
189 dev_err(hellcreek->dev,
199 static u64 hellcreek_ptp_hwtstamp_read(struct hellcreek *hellcreek,
204 nsh = hellcreek_ptp_read(hellcreek, ts_reg);
205 nsh = hellcreek_ptp_read(hellcreek, ts_reg);
206 nsh = hellcreek_ptp_read(hellcreek, ts_reg);
207 nsh = hellcreek_ptp_read(hellcreek, ts_reg);
208 nsl = hellcreek_ptp_read(hellcreek, ts_reg);
213 static int hellcreek_txtstamp_work(struct hellcreek *hellcreek,
235 dev_err(hellcreek->dev, "Wrong port for timestamping!\n");
239 ts_status = hellcreek_ptp_hwtstamp_available(hellcreek, status_reg);
248 dev_err(hellcreek->dev,
259 mutex_lock(&hellcreek->ptp_lock);
260 ns = hellcreek_ptp_hwtstamp_read(hellcreek, data_reg);
261 ns += hellcreek_ptp_gettime_seconds(hellcreek, ns);
262 mutex_unlock(&hellcreek->ptp_lock);
292 static void hellcreek_get_rxts(struct hellcreek *hellcreek,
319 mutex_lock(&hellcreek->ptp_lock);
320 ns += hellcreek_ptp_gettime_seconds(hellcreek, ns);
321 mutex_unlock(&hellcreek->ptp_lock);
331 static void hellcreek_rxtstamp_work(struct hellcreek *hellcreek,
339 hellcreek_get_rxts(hellcreek, ps, skb, &ps->rx_queue, port);
344 struct hellcreek *hellcreek = ptp_to_hellcreek(ptp);
345 struct dsa_switch *ds = hellcreek->ds;
354 ps = &hellcreek->ports[i].port_hwtstamp;
357 restart |= hellcreek_txtstamp_work(hellcreek, ps, i);
359 hellcreek_rxtstamp_work(hellcreek, ps, i);
368 struct hellcreek *hellcreek = ds->priv;
374 ps = &hellcreek->ports[port].port_hwtstamp;
384 hdr = hellcreek_should_tstamp(hellcreek, port, skb, type);
405 ptp_schedule_worker(hellcreek->ptp_clock, 0);
411 struct hellcreek *hellcreek = ds->priv;
415 ps = &hellcreek->ports[port].port_hwtstamp;
427 hdr = hellcreek_should_tstamp(hellcreek, port, skb, type);
435 ptp_schedule_worker(hellcreek->ptp_clock, 0);
440 static void hellcreek_hwtstamp_port_setup(struct hellcreek *hellcreek, int port)
443 &hellcreek->ports[port].port_hwtstamp;
448 int hellcreek_hwtstamp_setup(struct hellcreek *hellcreek)
450 struct dsa_switch *ds = hellcreek->ds;
458 hellcreek_hwtstamp_port_setup(hellcreek, i);
464 hellcreek_ptp_write(hellcreek, PR_SETTINGS_C_TS_SRC_TK_MASK |
471 void hellcreek_hwtstamp_free(struct hellcreek *hellcreek)