X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fgenericdmm%2Fapi.c;h=2dab4b876a89be44787f0621c83dc95640217348;hb=f8c617cf4c6b649d3456f1ca7082f6cfb6dac76d;hp=5bcf11dd39437670eb46758d629005df77afa22c;hpb=f1a14ea7ab390e3d873631eaf0f0f915031b8e6f;p=libsigrok.git diff --git a/hardware/genericdmm/api.c b/hardware/genericdmm/api.c index 5bcf11dd..2dab4b87 100644 --- a/hardware/genericdmm/api.c +++ b/hardware/genericdmm/api.c @@ -150,7 +150,7 @@ static GSList *connect_usb(const char *conn) devcnt = g_slist_length(gdi->instances); if (!(sdi = sr_dev_inst_new(devcnt, SR_ST_ACTIVE, - "Generic DMM", NULL, NULL))) { + NULL, NULL, NULL))) { sr_err("genericdmm: sr_dev_inst_new returned NULL."); return NULL; } @@ -233,6 +233,7 @@ static GSList *hw_scan(GSList *options) GSList *l, *ldef, *defopts, *newopts, *devices; struct sr_hwopt *opt, *defopt; struct dev_profile *pr, *profile; + struct sr_dev_inst *sdi; const char *model; /* Separate model from the options list. */ @@ -247,7 +248,7 @@ static GSList *hw_scan(GSList *options) newopts = g_slist_append(newopts, opt); } if (!model) { - sr_err("Need a model to scan for."); + /* This driver only works when a model is specified. */ return NULL; } @@ -305,9 +306,20 @@ static GSList *hw_scan(GSList *options) if (devices) { /* TODO: need to fix up sdi->index fields */ - /* Add a copy of these new devices to the driver instances. */ - for (l = devices; l; l = l->next) + for (l = devices; l; l = l->next) { + /* The default connection-based scanner doesn't really + * know about profiles, so it never filled in the vendor + * or model. Do that now. + */ + sdi = l->data; + sdi->driver = gdi; + if (!sdi->vendor) + sdi->vendor = g_strdup(profile->vendor); + if (!sdi->model) + sdi->model = g_strdup(profile->model); + /* Add a copy of these new devices to the driver instances. */ gdi->instances = g_slist_append(gdi->instances, l->data); + } } return devices;