- /* Definitely using the OLS protocol, check if it supports
- * the metadata command.
+ /*
+ * Create common data structures (sdi, devc) here in the common
+ * code path. These further get filled in either from metadata
+ * which is gathered from the device, or from open coded generic
+ * fallback data which is kept in the driver source code.
+ */
+ sdi = g_malloc0(sizeof(*sdi));
+ sdi->status = SR_ST_INACTIVE;
+ sdi->inst_type = SR_INST_SERIAL;
+ sdi->conn = serial;
+ sdi->connection_id = g_strdup(serial->port);
+ devc = g_malloc0(sizeof(*devc));
+ sdi->priv = devc;
+ devc->trigger_at_smpl = OLS_NO_TRIGGER;
+ devc->channel_names = sr_parse_probe_names(probe_names,
+ ols_channel_names, ARRAY_SIZE(ols_channel_names),
+ ARRAY_SIZE(ols_channel_names), &ch_max);
+
+ /*
+ * Definitely using the OLS protocol, check if it supports
+ * the metadata command. Otherwise assign generic values.
+ * Create as many sigrok channels as was determined when
+ * the device was probed.