From: Uwe Hermann Date: Fri, 8 Feb 2013 21:18:55 +0000 (+0100) Subject: zeroplus: Cosmetics, small fixes, drop unneeded stuff. X-Git-Tag: dsupstream~272 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=e495a676ebda71cdcc39904ee28174ccba7ce2ae;p=libsigrok.git zeroplus: Cosmetics, small fixes, drop unneeded stuff. --- diff --git a/hardware/zeroplus-logic-cube/api.c b/hardware/zeroplus-logic-cube/api.c index 7fbe25d8..4503e36b 100644 --- a/hardware/zeroplus-logic-cube/api.c +++ b/hardware/zeroplus-logic-cube/api.c @@ -19,44 +19,37 @@ #include "protocol.h" -#define USB_VENDOR 0x0c12 - #define VENDOR_NAME "ZEROPLUS" -#define MODEL_NAME "Logic Cube LAP-C" -#define MODEL_VERSION NULL - -#define NUM_PROBES 16 #define USB_INTERFACE 0 #define USB_CONFIGURATION 1 #define NUM_TRIGGER_STAGES 4 #define TRIGGER_TYPE "01" - #define PACKET_SIZE 2048 /* ?? */ //#define ZP_EXPERIMENTAL -typedef struct { - unsigned short vid; - unsigned short pid; +struct zp_model { + uint16_t vid; + uint16_t pid; char *model_name; unsigned int channels; unsigned int sample_depth; /* In Ksamples/channel */ unsigned int max_sampling_freq; -} model_t; +}; /* * Note -- 16032, 16064 and 16128 *usually* -- but not always -- have the * same 128K sample depth. */ -static model_t zeroplus_models[] = { +static const struct zp_model zeroplus_models[] = { {0x0c12, 0x7009, "LAP-C(16064)", 16, 64, 100}, - {0x0c12, 0x700A, "LAP-C(16128)", 16, 128, 200}, - /* TODO: we don't know anything about these - {0x0c12, 0x700B, "LAP-C(32128)", 32, 128, 200}, - {0x0c12, 0x700C, "LAP-C(321000)", 32, 1024, 200}, - {0x0c12, 0x700D, "LAP-C(322000)", 32, 2048, 200}, + {0x0c12, 0x700a, "LAP-C(16128)", 16, 128, 200}, + /* TODO: We don't know anything about these. + {0x0c12, 0x700b, "LAP-C(32128)", 32, 128, 200}, + {0x0c12, 0x700c, "LAP-C(321000)", 32, 1024, 200}, + {0x0c12, 0x700d, "LAP-C(322000)", 32, 2048, 200}, */ - {0x0c12, 0x700E, "LAP-C(16032)", 16, 32, 100}, + {0x0c12, 0x700e, "LAP-C(16032)", 16, 32, 100}, {0x0c12, 0x7016, "LAP-C(162000)", 16, 2048, 200}, { 0, 0, 0, 0, 0, 0 } }; @@ -65,8 +58,6 @@ static const int hwcaps[] = { SR_CONF_LOGIC_ANALYZER, SR_CONF_SAMPLERATE, SR_CONF_CAPTURE_RATIO, - - /* These are really implemented in the driver, not the hardware. */ SR_CONF_LIMIT_SAMPLES, 0, }; @@ -75,13 +66,12 @@ static const int hwcaps[] = { * ZEROPLUS LAP-C (16032) numbers the 16 probes A0-A7 and B0-B7. * We currently ignore other untested/unsupported devices here. */ -static const char *probe_names[NUM_PROBES + 1] = { +static const char *probe_names[] = { "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", NULL, }; -/* List of struct sr_dev_inst, maintained by dev_open()/dev_close(). */ SR_PRIV struct sr_dev_driver zeroplus_logic_cube_driver_info; static struct sr_dev_driver *di = &zeroplus_logic_cube_driver_info; @@ -252,7 +242,7 @@ static GSList *hw_scan(GSList *options) struct sr_probe *probe; struct drv_context *drvc; struct dev_context *devc; - model_t *prof; + const struct zp_model *prof; struct libusb_device_descriptor des; libusb_device **devlist; GSList *devices; @@ -285,10 +275,10 @@ static GSList *hw_scan(GSList *options) prof = &zeroplus_models[j]; } } - /* Skip if the device was not found */ + /* Skip if the device was not found. */ if (!prof) continue; - sr_info("Found ZEROPLUS model %s.", prof->model_name); + sr_info("Found ZEROPLUS %s.", prof->model_name); /* Register the device with libsigrok. */ if (!(sdi = sr_dev_inst_new(devcnt, SR_ST_INACTIVE, @@ -303,6 +293,7 @@ static GSList *hw_scan(GSList *options) sr_err("Device context malloc failed."); return NULL; } + sdi->priv = devc; devc->num_channels = prof->channels; #ifdef ZP_EXPERIMENTAL @@ -345,11 +336,13 @@ static GSList *hw_dev_list(void) static int hw_dev_open(struct sr_dev_inst *sdi) { struct dev_context *devc; - struct drv_context *drvc = di->priv; + struct drv_context *drvc; libusb_device **devlist, *dev; struct libusb_device_descriptor des; int device_count, ret, i; + drvc = di->priv; + if (!(devc = sdi->priv)) { sr_err("%s: sdi->priv was NULL", __func__); return SR_ERR_ARG; @@ -405,7 +398,7 @@ static int hw_dev_open(struct sr_dev_inst *sdi) return SR_ERR; } - /* Set default configuration after power on */ + /* Set default configuration after power on. */ if (analyzer_read_status(devc->usb->devhdl) == 0) analyzer_configure(devc->usb->devhdl); @@ -513,6 +506,8 @@ static int config_set(int id, const void *value, const struct sr_dev_inst *sdi) default: return SR_ERR; } + + return SR_OK; } static int config_list(int key, const void **data, const struct sr_dev_inst *sdi) @@ -543,8 +538,7 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi, struct sr_datafeed_logic logic; //uint64_t samples_read; int res; - unsigned int packet_num; - unsigned int n; + unsigned int packet_num, n; unsigned char *buf; struct dev_context *devc; @@ -560,7 +554,7 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi, set_triggerbar(devc); - /* push configured settings to device */ + /* Push configured settings to device. */ analyzer_configure(devc->usb->devhdl); analyzer_start(devc->usb->devhdl); diff --git a/hardware/zeroplus-logic-cube/protocol.c b/hardware/zeroplus-logic-cube/protocol.c index 30296da1..92bb32bf 100644 --- a/hardware/zeroplus-logic-cube/protocol.c +++ b/hardware/zeroplus-logic-cube/protocol.c @@ -42,7 +42,7 @@ SR_PRIV int zp_set_samplerate(struct dev_context *devc, uint64_t samplerate) break; if (!zp_supported_samplerates[i] || samplerate > devc->max_samplerate) { - sr_err("Unsupported samplerate."); + sr_err("Unsupported samplerate: %" PRIu64 "Hz.", samplerate); return SR_ERR_ARG; } @@ -68,8 +68,7 @@ SR_PRIV int set_limit_samples(struct dev_context *devc, uint64_t samples) devc->memory_size = MEMORY_SIZE_8K; else if (samples <= 16 * 1024) devc->memory_size = MEMORY_SIZE_64K; - else if (samples <= 32 * 1024 || - devc->max_memory_size <= 32 * 1024) + else if (samples <= 32 * 1024 || devc->max_memory_size <= 32 * 1024) devc->memory_size = MEMORY_SIZE_128K; else devc->memory_size = MEMORY_SIZE_512K; @@ -98,9 +97,7 @@ SR_PRIV int set_capture_ratio(struct dev_context *devc, uint64_t ratio) SR_PRIV void set_triggerbar(struct dev_context *devc) { - unsigned int ramsize; - unsigned int n; - unsigned int triggerbar; + unsigned int ramsize, n, triggerbar; ramsize = get_memory_size(devc->memory_size) / 4; if (devc->trigger) { diff --git a/hardware/zeroplus-logic-cube/protocol.h b/hardware/zeroplus-logic-cube/protocol.h index e2c5d9e3..7e34c5d3 100644 --- a/hardware/zeroplus-logic-cube/protocol.h +++ b/hardware/zeroplus-logic-cube/protocol.h @@ -42,7 +42,7 @@ struct dev_context { uint64_t cur_samplerate; uint64_t max_samplerate; uint64_t limit_samples; - int num_channels; /* TODO: This isn't initialized before it's needed :( */ + int num_channels; int memory_size; unsigned int max_memory_size; //uint8_t probe_mask; @@ -51,8 +51,6 @@ struct dev_context { // uint8_t trigger_buffer[NUM_TRIGGER_STAGES]; int trigger; unsigned int capture_ratio; - - /* TODO: this belongs in the device instance */ struct sr_usb_dev_inst *usb; };