On Mon, Nov 28, 2022 at 4:05 PM Arun Ramadoss wrote: > +static int ksz_ptp_enable(struct ptp_clock_info *ptp, > + struct ptp_clock_request *req, int on) > +{ > + struct ksz_ptp_data *ptp_data = ptp_caps_to_data(ptp); > + struct ksz_device *dev = ptp_data_to_ksz_dev(ptp_data); > + struct ptp_perout_request *request = &req->perout; > + int ret; > + > + switch (req->type) { > + case PTP_CLK_REQ_PEROUT: > + if (request->index > ptp->n_per_out) > + return -EINVAL; Should be -EOPNOTSUPP ? I see some other places where -EOPNOTSUPP is more appropriate. > + > + mutex_lock(&ptp_data->lock); > + ret = ksz_ptp_enable_perout(dev, request, on); > + mutex_unlock(&ptp_data->lock); > + break; > + default: > + return -EINVAL; > + } > + > + return ret; > +} > + > /* Function is pointer to the do_aux_work in the ptp_clock capability */ > static long ksz_ptp_do_aux_work(struct ptp_clock_info *ptp) > { > @@ -508,6 +823,8 @@ static const struct ptp_clock_info ksz_ptp_caps = { > .adjfine = ksz_ptp_adjfine, > .adjtime = ksz_ptp_adjtime, > .do_aux_work = ksz_ptp_do_aux_work, > + .enable = ksz_ptp_enable, > + .n_per_out = 3, > }; >