diff options
author | Angel Pons <th3fanbus@gmail.com> | 2022-10-08 15:17:54 +0200 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2022-10-22 00:45:30 +0000 |
commit | e924dc0616adf68fc1505f960b3f9382f0c8f297 (patch) | |
tree | 1d5e81aa6d462b6011896a16089630669a8dd16d | |
parent | 759a0566733b3d8d64de3534140ba05a40bc4bd5 (diff) | |
download | flashrom-e924dc0616adf68fc1505f960b3f9382f0c8f297.tar.gz flashrom-e924dc0616adf68fc1505f960b3f9382f0c8f297.tar.bz2 flashrom-e924dc0616adf68fc1505f960b3f9382f0c8f297.zip |
rayer_spi.c: Get rid of temporary `prog_type` string
Make the `get_params()` function provide a pointer to `struct
rayer_programmer` directly, instead of having a `prog_type` string
passed around three functions.
Change-Id: I83e34382ee9814f224025e21e5099fdab73cee8c
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/68239
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
-rw-r--r-- | rayer_spi.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/rayer_spi.c b/rayer_spi.c index 9be41e76c..27caf2be1 100644 --- a/rayer_spi.c +++ b/rayer_spi.c @@ -254,12 +254,13 @@ static const struct rayer_programmer *find_progtype(const char *prog_type) return prog; } -static int get_params(const struct programmer_cfg *cfg, uint16_t *lpt_iobase, char **prog_type) +static int get_params(const struct programmer_cfg *cfg, uint16_t *lpt_iobase, + const struct rayer_programmer **prog) { /* Pick a default value for the I/O base. */ *lpt_iobase = 0x378; /* no programmer type specified. */ - *prog_type = NULL; + *prog = NULL; /* Non-default port requested? */ char *arg = extract_programmer_param_str(cfg, "iobase"); @@ -289,26 +290,19 @@ static int get_params(const struct programmer_cfg *cfg, uint16_t *lpt_iobase, ch } arg = extract_programmer_param_str(cfg, "type"); - if (arg) { - *prog_type = strdup(arg); - free(arg); - } + *prog = find_progtype(arg); + free(arg); - return 0; + return *prog ? 0 : -1; } static int rayer_spi_init(const struct programmer_cfg *cfg) { + const struct rayer_programmer *prog; struct rayer_pinout *pinout = NULL; uint16_t lpt_iobase; - char *prog_type; - - if (get_params(cfg, &lpt_iobase, &prog_type) < 0) - return 1; - const struct rayer_programmer *prog = find_progtype(prog_type); - free(prog_type); - if (!prog) + if (get_params(cfg, &lpt_iobase, &prog) < 0) return 1; msg_pdbg("Using address 0x%x as I/O base for parallel port access.\n", |