X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fsaleae-logic-pro%2Fprotocol.c;h=351032af39ff043f1b0ed764b9f8915fb3b39531;hb=f2bbcc330a6bcb65500b298bec8c40974ed246d4;hp=1d7eba408bb38ddddd36058d9f49fd2fcc4cb32f;hpb=da39089014f845085efdb10acca83f0742b7e9fd;p=libsigrok.git diff --git a/src/hardware/saleae-logic-pro/protocol.c b/src/hardware/saleae-logic-pro/protocol.c index 1d7eba40..351032af 100644 --- a/src/hardware/saleae-logic-pro/protocol.c +++ b/src/hardware/saleae-logic-pro/protocol.c @@ -186,7 +186,6 @@ static int read_regs(const struct sr_dev_inst *sdi, uint8_t cnt) { uint8_t req[33]; - int i; if (cnt < 1 || cnt > 30) return SR_ERR_ARG; @@ -194,10 +193,8 @@ static int read_regs(const struct sr_dev_inst *sdi, req[0] = 0x00; req[1] = COMMAND_READ_REG; req[2] = cnt; - - for (i = 0; i < cnt; i++) { - req[3 + i] = regs[i]; - } + if (cnt) + memcpy(&req[3], regs, cnt); return transact(sdi, req, 3 + cnt, values, cnt); } @@ -217,7 +214,7 @@ static int write_adc(const struct sr_dev_inst *sdi, {REG_ADC_VAL_MSB, value >> 8}, }; - return write_regs(sdi, regs, G_N_ELEMENTS(regs)); + return write_regs(sdi, ARRAY_AND_SIZE(regs)); } static int read_eeprom(const struct sr_dev_inst *sdi, @@ -530,8 +527,6 @@ static int upload_bitstream(const struct sr_dev_inst *sdi, bs_offset += bs_part_size; } - ret = SR_OK; - sr_info("Bitstream upload done."); /* Check a scratch register? */ @@ -564,7 +559,7 @@ static int set_led(const struct sr_dev_inst *sdi, uint8_t r, uint8_t g, uint8_t authenticate(sdi); - return write_regs(sdi, regs, G_N_ELEMENTS(regs)); + return write_regs(sdi, ARRAY_AND_SIZE(regs)); } #endif @@ -788,8 +783,8 @@ SR_PRIV int saleae_logic_pro_prepare(const struct sr_dev_inst *sdi) authenticate(sdi); write_reg(sdi, 0x15, 0x03); - write_regs(sdi, regs_unknown, G_N_ELEMENTS(regs_unknown)); - write_regs(sdi, regs_config, G_N_ELEMENTS(regs_config)); + write_regs(sdi, ARRAY_AND_SIZE(regs_unknown)); + write_regs(sdi, ARRAY_AND_SIZE(regs_config)); transact(sdi, start_req, sizeof(start_req), start_rsp, sizeof(start_rsp));