From 2f69b1202934a7cc22a9b4cad9970cfe2fe2e943 Mon Sep 17 00:00:00 2001 From: rjkm Date: Mon, 28 Jul 2025 23:09:52 +0200 Subject: [PATCH] clean up mci commands --- ddbridge/ddbridge-mci.c | 52 ++++++----------------------------- ddbridge/ddbridge-mci.h | 1 - ddbridge/ddbridge-modulator.c | 6 ++-- 3 files changed, 11 insertions(+), 48 deletions(-) diff --git a/ddbridge/ddbridge-mci.c b/ddbridge/ddbridge-mci.c index ec331f7..be57d98 100644 --- a/ddbridge/ddbridge-mci.c +++ b/ddbridge/ddbridge-mci.c @@ -156,13 +156,10 @@ int ddb_mci_cmd_link(struct ddb_link *link, struct mci_command *command, struct mci_result *result) { - struct mci_result res; int stat; if (!link->mci_ok) return -EFAULT; - if (!result) - result = &res; mutex_lock(&link->mci_lock); stat = ddb_mci_cmd_raw_unlocked(link, (u32 *)command, @@ -181,7 +178,7 @@ int ddb_mci_cmd_link_simple(struct ddb_link *link, u8 command, u8 demod, u8 valu cmd.command = command; cmd.demod = demod; cmd.params8[0] = value; - return ddb_mci_cmd_link(link, &cmd, 0); + return ddb_mci_cmd_link_raw(link, &cmd, 2, NULL, 0); } static void mci_handler(void *priv) @@ -210,16 +207,6 @@ int mci_init(struct ddb_link *link) return result; } -int mci_cmd_val(struct ddb_link *link, uint32_t cmd, uint32_t val) -{ - struct mci_result result; - struct mci_command command; - - command.command_word = cmd; - command.params[0] = val; - return ddb_mci_cmd_link(link, &command, &result); -} - /****************************************************************************/ /****************************************************************************/ @@ -227,32 +214,15 @@ int ddb_mci_cmd(struct mci *state, struct mci_command *command, struct mci_result *result) { - return ddb_mci_cmd_link(state->base->link, command, result); -} - - -static int ddb_mci_cmd_raw(struct mci *state, - struct mci_command *command, u32 command_len, - struct mci_result *result, u32 result_len) -{ - struct ddb_link *link = state->base->link; - int stat; - - mutex_lock(&link->mci_lock); - stat = ddb_mci_cmd_raw_unlocked(link, - (u32 *)command, command_len, - (u32 *)result, result_len); - mutex_unlock(&link->mci_lock); - return stat; + return ddb_mci_cmd_link_raw(state->base->link, command, 0, result, 0); } int ddb_mci_get_status(struct mci *mci, struct mci_result *res) { - struct mci_command cmd; + struct mci_command cmd = + { .command = MCI_CMD_GETSTATUS, .demod = mci->demod}; - cmd.command = MCI_CMD_GETSTATUS; - cmd.demod = mci->demod; - return ddb_mci_cmd_raw(mci, &cmd, 1, res, 1); + return ddb_mci_cmd_link_raw(mci->base->link, &cmd, 1, res, 1); } int ddb_mci_get_snr(struct dvb_frontend *fe) @@ -282,14 +252,10 @@ int ddb_mci_get_strength(struct dvb_frontend *fe) int ddb_mci_get_info(struct mci *mci) { - int stat; - struct mci_command cmd; - - memset(&cmd, 0, sizeof(cmd)); - cmd.command = MCI_CMD_GETSIGNALINFO; - cmd.demod = mci->demod; - stat = ddb_mci_cmd(mci, &cmd, &mci->signal_info); - return stat; + memset(&mci->cmd, 0, sizeof(struct mci_command)); + mci->cmd.command = MCI_CMD_GETSIGNALINFO; + mci->cmd.demod = mci->demod; + return ddb_mci_cmd(mci, &mci->cmd, &mci->signal_info); } /****************************************************************************/ diff --git a/ddbridge/ddbridge-mci.h b/ddbridge/ddbridge-mci.h index 4c57a2b..cfb1a27 100644 --- a/ddbridge/ddbridge-mci.h +++ b/ddbridge/ddbridge-mci.h @@ -1277,7 +1277,6 @@ int ddb_mci_get_info(struct mci *mci); int ddb_mci_get_strength(struct dvb_frontend *fe); void ddb_mci_proc_info(struct mci *mci, struct dtv_frontend_properties *p); int mci_init(struct ddb_link *link); -int mci_cmd_val(struct ddb_link *link, u32 cmd, u32 val); #endif diff --git a/ddbridge/ddbridge-modulator.c b/ddbridge/ddbridge-modulator.c index 44244b0..f84b38f 100644 --- a/ddbridge/ddbridge-modulator.c +++ b/ddbridge/ddbridge-modulator.c @@ -201,7 +201,6 @@ static int mod_set_stream(struct ddb_output *output) u32 stream = output->nr; struct ddb_mod *mod = &dev->mod[output->nr]; struct ddb_link *link = &dev->link[0]; - struct mci_result res; u32 channel; struct mci_command cmd = { .mod_command = MOD_SETUP_STREAM, @@ -234,7 +233,7 @@ static int mod_set_stream(struct ddb_output *output) cmd.mod_channel = channel; cmd.mod_setup_stream.symbol_rate = mod->symbolrate; cmd.mod_setup_stream.qam.modulation = mod->modulation - 1; - return ddb_mci_cmd_link(link, &cmd, &res); + return ddb_mci_cmd_link(link, &cmd, 0); } static int mod_set_symbolrate(struct ddb_mod *mod, u32 srate) @@ -580,7 +579,6 @@ static int mod_set_power(struct ddb *dev) { struct ddb_link *link = &dev->link[0]; struct mod_base *base = &dev->mod_base; - struct mci_result res; struct mci_command cmd = { .mod_command = MOD_SETUP_OUTPUT, .mod_channel = 0, @@ -596,7 +594,7 @@ static int mod_set_power(struct ddb *dev) return -EFAULT; cmd.mod_setup_output.channel_power = 8232 - base->attenuation * 1000 + base->gain * 12; - return ddb_mci_cmd_link(link, &cmd, &res); + return ddb_mci_cmd_link(link, &cmd, 0); } static int mod_set_vga(struct ddb *dev, u32 gain)