X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fmicrochip-pickit2%2Fapi.c;h=d8a757283655496d10b9a2c2d26eed2c7c875694;hb=81ceb6a51dd666987fb5c67b83c5ba14d105b301;hp=1fd107b1109fa08ee8c0f4ab00aea47a9fcdfd92;hpb=e760f2cdafae1fe5331435fc17e0e4c1c10643f3;p=libsigrok.git diff --git a/src/hardware/microchip-pickit2/api.c b/src/hardware/microchip-pickit2/api.c index 1fd107b1..d8a75728 100644 --- a/src/hardware/microchip-pickit2/api.c +++ b/src/hardware/microchip-pickit2/api.c @@ -66,7 +66,7 @@ static struct sr_dev_driver microchip_pickit2_driver_info; -static const char *pickit2_channel_names[] = { +static const char *channel_names[] = { "pin4", "pin5", "pin6", }; @@ -159,13 +159,11 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) sdi->connection_id = g_strdup(conn); /* Create the logic channels group. */ - cg = g_malloc0(sizeof(*cg)); - sdi->channel_groups = g_slist_append(NULL, cg); - cg->name = g_strdup("Logic"); - ch_count = ARRAY_SIZE(pickit2_channel_names); + cg = sr_channel_group_new(sdi, "Logic", NULL); + ch_count = ARRAY_SIZE(channel_names); for (ch_idx = 0; ch_idx < ch_count; ch_idx++) { ch = sr_channel_new(sdi, ch_idx, SR_CHANNEL_LOGIC, - TRUE, pickit2_channel_names[ch_idx]); + TRUE, channel_names[ch_idx]); cg->channels = g_slist_append(cg->channels, ch); } @@ -232,6 +230,8 @@ static int dev_close(struct sr_dev_inst *sdi) usb = sdi->conn; devc = sdi->priv; + if (!usb) + return SR_OK; if (!usb->devhdl) return SR_OK;