From 08bd483b1977819f067a97c86c3ffa2f17a2dd3c Mon Sep 17 00:00:00 2001 From: rjkm Date: Fri, 22 Aug 2025 14:42:30 +0200 Subject: [PATCH] try using new ARI MCI command --- ddbridge/ddbridge-modulator.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-modulator.c b/ddbridge/ddbridge-modulator.c index f84b38f..471d475 100644 --- a/ddbridge/ddbridge-modulator.c +++ b/ddbridge/ddbridge-modulator.c @@ -1601,9 +1601,26 @@ static int mod3_set_frequency(struct ddb_mod *mod, u32 frequency) return 0; } +static int mod_set_ari(struct ddb_mod *mod, u32 rate) +{ + struct ddb *dev = mod->port->dev; + struct ddb_link *link = &dev->link[0]; + u32 stream = mod->port->nr; + struct mci_command cmd = { + .mod_command = MOD_CLOCK_CORRECTION, + .mod_channel = stream, + .mod_stream = stream, + .params8[0] = MOD_CLOCK_COR_LEGACY_SET, + .params[1] = rate, + }; + printk("ari: %u %04x\n", stream, rate); + return ddb_mci_cmd_link(link, &cmd, 0); +} + static int mod3_set_ari(struct ddb_mod *mod, u32 rate) { - ddbwritel(mod->port->dev, rate, SDR_CHANNEL_ARICW(mod->port->nr)); + if (mod_set_ari(mod, rate)) + ddbwritel(mod->port->dev, rate, SDR_CHANNEL_ARICW(mod->port->nr)); return 0; }