Lines Matching full:phydev
19 static int ethnl_cable_test_started(struct phy_device *phydev, u8 cmd) in ethnl_cable_test_started() argument
35 err = ethnl_fill_reply_header(skb, phydev->attached_dev, in ethnl_cable_test_started()
47 return ethnl_multicast(skb, phydev->attached_dev); in ethnl_cable_test_started()
51 phydev_err(phydev, "%s: Error %pe\n", __func__, ERR_PTR(err)); in ethnl_cable_test_started()
72 if (!dev->phydev) { in ethnl_act_cable_test()
88 ret = ops->start_cable_test(dev->phydev, info->extack); in ethnl_act_cable_test()
93 ethnl_cable_test_started(dev->phydev, in ethnl_act_cable_test()
103 int ethnl_cable_test_alloc(struct phy_device *phydev, u8 cmd) in ethnl_cable_test_alloc() argument
110 phydev->skb = genlmsg_new(SZ_16K, GFP_KERNEL); in ethnl_cable_test_alloc()
111 if (!phydev->skb) in ethnl_cable_test_alloc()
114 phydev->ehdr = ethnl_bcastmsg_put(phydev->skb, cmd); in ethnl_cable_test_alloc()
115 if (!phydev->ehdr) { in ethnl_cable_test_alloc()
120 err = ethnl_fill_reply_header(phydev->skb, phydev->attached_dev, in ethnl_cable_test_alloc()
125 err = nla_put_u8(phydev->skb, ETHTOOL_A_CABLE_TEST_NTF_STATUS, in ethnl_cable_test_alloc()
130 phydev->nest = nla_nest_start(phydev->skb, in ethnl_cable_test_alloc()
132 if (!phydev->nest) { in ethnl_cable_test_alloc()
140 nlmsg_free(phydev->skb); in ethnl_cable_test_alloc()
141 phydev->skb = NULL; in ethnl_cable_test_alloc()
146 void ethnl_cable_test_free(struct phy_device *phydev) in ethnl_cable_test_free() argument
148 nlmsg_free(phydev->skb); in ethnl_cable_test_free()
149 phydev->skb = NULL; in ethnl_cable_test_free()
153 void ethnl_cable_test_finished(struct phy_device *phydev) in ethnl_cable_test_finished() argument
155 nla_nest_end(phydev->skb, phydev->nest); in ethnl_cable_test_finished()
157 genlmsg_end(phydev->skb, phydev->ehdr); in ethnl_cable_test_finished()
159 ethnl_multicast(phydev->skb, phydev->attached_dev); in ethnl_cable_test_finished()
163 int ethnl_cable_test_result(struct phy_device *phydev, u8 pair, u8 result) in ethnl_cable_test_result() argument
168 nest = nla_nest_start(phydev->skb, ETHTOOL_A_CABLE_NEST_RESULT); in ethnl_cable_test_result()
172 if (nla_put_u8(phydev->skb, ETHTOOL_A_CABLE_RESULT_PAIR, pair)) in ethnl_cable_test_result()
174 if (nla_put_u8(phydev->skb, ETHTOOL_A_CABLE_RESULT_CODE, result)) in ethnl_cable_test_result()
177 nla_nest_end(phydev->skb, nest); in ethnl_cable_test_result()
181 nla_nest_cancel(phydev->skb, nest); in ethnl_cable_test_result()
186 int ethnl_cable_test_fault_length(struct phy_device *phydev, u8 pair, u32 cm) in ethnl_cable_test_fault_length() argument
191 nest = nla_nest_start(phydev->skb, in ethnl_cable_test_fault_length()
196 if (nla_put_u8(phydev->skb, ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, pair)) in ethnl_cable_test_fault_length()
198 if (nla_put_u32(phydev->skb, ETHTOOL_A_CABLE_FAULT_LENGTH_CM, cm)) in ethnl_cable_test_fault_length()
201 nla_nest_end(phydev->skb, nest); in ethnl_cable_test_fault_length()
205 nla_nest_cancel(phydev->skb, nest); in ethnl_cable_test_fault_length()
324 if (!dev->phydev) { in ethnl_act_cable_test_tdr()
345 ret = ops->start_cable_test_tdr(dev->phydev, info->extack, &cfg); in ethnl_act_cable_test_tdr()
350 ethnl_cable_test_started(dev->phydev, in ethnl_act_cable_test_tdr()
360 int ethnl_cable_test_amplitude(struct phy_device *phydev, in ethnl_cable_test_amplitude() argument
366 nest = nla_nest_start(phydev->skb, in ethnl_cable_test_amplitude()
371 if (nla_put_u8(phydev->skb, ETHTOOL_A_CABLE_AMPLITUDE_PAIR, pair)) in ethnl_cable_test_amplitude()
373 if (nla_put_u16(phydev->skb, ETHTOOL_A_CABLE_AMPLITUDE_mV, mV)) in ethnl_cable_test_amplitude()
376 nla_nest_end(phydev->skb, nest); in ethnl_cable_test_amplitude()
380 nla_nest_cancel(phydev->skb, nest); in ethnl_cable_test_amplitude()
385 int ethnl_cable_test_pulse(struct phy_device *phydev, u16 mV) in ethnl_cable_test_pulse() argument
390 nest = nla_nest_start(phydev->skb, ETHTOOL_A_CABLE_TDR_NEST_PULSE); in ethnl_cable_test_pulse()
394 if (nla_put_u16(phydev->skb, ETHTOOL_A_CABLE_PULSE_mV, mV)) in ethnl_cable_test_pulse()
397 nla_nest_end(phydev->skb, nest); in ethnl_cable_test_pulse()
401 nla_nest_cancel(phydev->skb, nest); in ethnl_cable_test_pulse()
406 int ethnl_cable_test_step(struct phy_device *phydev, u32 first, u32 last, in ethnl_cable_test_step() argument
412 nest = nla_nest_start(phydev->skb, ETHTOOL_A_CABLE_TDR_NEST_STEP); in ethnl_cable_test_step()
416 if (nla_put_u32(phydev->skb, ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, in ethnl_cable_test_step()
420 if (nla_put_u32(phydev->skb, ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, last)) in ethnl_cable_test_step()
423 if (nla_put_u32(phydev->skb, ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, step)) in ethnl_cable_test_step()
426 nla_nest_end(phydev->skb, nest); in ethnl_cable_test_step()
430 nla_nest_cancel(phydev->skb, nest); in ethnl_cable_test_step()