net: cadence: macb: convert from round_rate() to determine_rate()

The round_rate() clk ops is deprecated, so migrate this driver from
round_rate() to determine_rate().

Signed-off-by: Brian Masney <bmasney@redhat.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20250810-net-round-rate-v1-1-dbb237c9fe5c@redhat.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Brian Masney 2025-08-10 18:24:14 -04:00 committed by Paolo Abeni
parent 3b5ca25ecf
commit 40e819747b

View File

@ -4822,36 +4822,45 @@ static unsigned long fu540_macb_tx_recalc_rate(struct clk_hw *hw,
return mgmt->rate;
}
static long fu540_macb_tx_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
static int fu540_macb_tx_determine_rate(struct clk_hw *hw,
struct clk_rate_request *req)
{
if (WARN_ON(rate < 2500000))
return 2500000;
else if (rate == 2500000)
return 2500000;
else if (WARN_ON(rate < 13750000))
return 2500000;
else if (WARN_ON(rate < 25000000))
return 25000000;
else if (rate == 25000000)
return 25000000;
else if (WARN_ON(rate < 75000000))
return 25000000;
else if (WARN_ON(rate < 125000000))
return 125000000;
else if (rate == 125000000)
return 125000000;
if (WARN_ON(req->rate < 2500000))
req->rate = 2500000;
else if (req->rate == 2500000)
req->rate = 2500000;
else if (WARN_ON(req->rate < 13750000))
req->rate = 2500000;
else if (WARN_ON(req->rate < 25000000))
req->rate = 25000000;
else if (req->rate == 25000000)
req->rate = 25000000;
else if (WARN_ON(req->rate < 75000000))
req->rate = 25000000;
else if (WARN_ON(req->rate < 125000000))
req->rate = 125000000;
else if (req->rate == 125000000)
req->rate = 125000000;
else if (WARN_ON(req->rate > 125000000))
req->rate = 125000000;
else
req->rate = 125000000;
WARN_ON(rate > 125000000);
return 125000000;
return 0;
}
static int fu540_macb_tx_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{
rate = fu540_macb_tx_round_rate(hw, rate, &parent_rate);
if (rate != 125000000)
struct clk_rate_request req;
int ret;
clk_hw_init_rate_request(hw, &req, rate);
ret = fu540_macb_tx_determine_rate(hw, &req);
if (ret != 0)
return ret;
if (req.rate != 125000000)
iowrite32(1, mgmt->reg);
else
iowrite32(0, mgmt->reg);
@ -4862,7 +4871,7 @@ static int fu540_macb_tx_set_rate(struct clk_hw *hw, unsigned long rate,
static const struct clk_ops fu540_c000_ops = {
.recalc_rate = fu540_macb_tx_recalc_rate,
.round_rate = fu540_macb_tx_round_rate,
.determine_rate = fu540_macb_tx_determine_rate,
.set_rate = fu540_macb_tx_set_rate,
};