Re: [PATCH RFC v2 08/11] net: stmmac: dwmac-meson8b: add support for the RX delay configuration

From: Andrew Lunn
Date: Fri May 01 2020 - 11:44:57 EST


> + if (rx_dly_config & PRG_ETH0_ADJ_ENABLE) {
> + /* The timing adjustment logic is driven by a separate clock */
> + ret = meson8b_devm_clk_prepare_enable(dwmac,
> + dwmac->timing_adj_clk);
> + if (ret) {
> + dev_err(dwmac->dev,
> + "Failed to enable the timing-adjustment clock\n");
> + return ret;
> + }
> + }

Hi Martin

It is a while since i used the clk API. I thought the get_optional()
call returned a NULL pointer if the clock does not exist.
clk_prepare_enable() passed a NULL pointer is a NOP, but it also does
not return an error. So if the clock does not exist, you won't get
this error, the code keeps going, configures the hardware, but it does
not work.

I think you need to check dwmac->timing_adj_clk != NULL here, and
error out if DT has properties which require it.

Andrew