static int hw_init(struct sr_context *sr_ctx)
{
- struct drv_context *drvc;
-
- if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
- sr_err("Driver context malloc failed.");
- return SR_ERR_MALLOC;
- }
-
- drvc->sr_ctx = sr_ctx;
- di->priv = drvc;
-
- return SR_OK;
+ return std_hw_init(sr_ctx, di, DRIVER_LOG_DOMAIN);
}
static GSList *hw_scan(GSList *options)
(void)options;
drvc = di->priv;
+
devices = NULL;
/* Allocate memory for our private device context. */
devices = g_slist_append(devices, sdi);
drvc->instances = g_slist_append(drvc->instances, sdi);
- sr_spew("Device init successful.");
-
/* Close device. We'll reopen it again when we need it. */
(void) la8_close(devc); /* Log, but ignore errors. */
static GSList *hw_dev_list(void)
{
- struct drv_context *drvc;
-
- drvc = di->priv;
-
- return drvc->instances;
+ return ((struct drv_context *)(di->priv))->instances;
}
static int hw_dev_open(struct sr_dev_inst *sdi)
struct dev_context *devc;
switch (id) {
- case SR_DI_HWCAPS:
- *data = hwcaps;
- break;
- case SR_DI_TRIGGER_TYPES:
- *data = (char *)TRIGGER_TYPES;
- sr_spew("%s: Returning trigger types: %s.", __func__,
- TRIGGER_TYPES);
- break;
case SR_CONF_SAMPLERATE:
if (sdi) {
devc = sdi->priv;
(void)sdi;
switch (key) {
+ case SR_CONF_DEVICE_OPTIONS:
+ *data = hwcaps;
+ break;
case SR_CONF_SAMPLERATE:
fill_supported_samplerates_if_needed();
*data = &samplerates;
break;
+ case SR_CONF_TRIGGER_TYPE:
+ *data = (char *)TRIGGER_TYPE;
+ break;
default:
return SR_ERR_ARG;
}