From f8ab2d3aa3e11a574e57b190881aa06ac2313ae7 Mon Sep 17 00:00:00 2001 From: MCUdude Date: Sat, 5 Aug 2023 21:38:01 +0200 Subject: [PATCH] simplify fuse handling logic --- src/jtagmkI.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/jtagmkI.c b/src/jtagmkI.c index 878a353b..02eced08 100644 --- a/src/jtagmkI.c +++ b/src/jtagmkI.c @@ -880,15 +880,14 @@ static int jtagmkI_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRM paddr = addr & ~(pagesize - 1); paddr_ptr = &PDATA(pgm)->eeprom_pageaddr; cache_ptr = PDATA(pgm)->eeprom_pagecache; - } else if (str_eq(mem->desc, "lfuse")) { + } else if (str_contains(mem->desc, "fuse")) { cmd[1] = MTYPE_FUSE_BITS; - addr = 0; - } else if (str_eq(mem->desc, "hfuse")) { - cmd[1] = MTYPE_FUSE_BITS; - addr = 1; - } else if (str_eq(mem->desc, "efuse")) { - cmd[1] = MTYPE_FUSE_BITS; - addr = 2; + if (str_eq(mem->desc, "lfuse")) + addr = 0; + else if (str_eq(mem->desc, "hfuse")) + addr = 1; + else if (str_eq(mem->desc, "efuse")) + addr = 2; } else if (str_eq(mem->desc, "lock")) { cmd[1] = MTYPE_LOCK_BITS; } else if (str_eq(mem->desc, "calibration")) { @@ -981,18 +980,15 @@ static int jtagmkI_write_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVR need_progmode = 0; need_dummy_read = 1; PDATA(pgm)->eeprom_pageaddr = (unsigned long)-1L; - } else if (str_eq(mem->desc, "lfuse")) { + } else if (str_contains(mem->desc, "fuse")) { cmd[1] = MTYPE_FUSE_BITS; need_dummy_read = 1; - addr = 0; - } else if (str_eq(mem->desc, "hfuse")) { - cmd[1] = MTYPE_FUSE_BITS; - need_dummy_read = 1; - addr = 1; - } else if (str_eq(mem->desc, "efuse")) { - cmd[1] = MTYPE_FUSE_BITS; - need_dummy_read = 1; - addr = 2; + if (str_eq(mem->desc, "lfuse")) + addr = 0; + else if (str_eq(mem->desc, "hfuse")) + addr = 1; + else if (str_eq(mem->desc, "efuse")) + addr = 2; } else if (str_eq(mem->desc, "lock")) { cmd[1] = MTYPE_LOCK_BITS; need_dummy_read = 1;