ols: add swap channels feature

Allow channel groups to be swapped. This is useful
for demux at 200mhz with the unbuffered channels.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
This commit is contained in:
Matt Ranostay 2013-08-27 21:19:56 -07:00 committed by Bert Vermeulen
parent de52409982
commit 7b0a57fd1c
4 changed files with 20 additions and 0 deletions

View File

@ -34,6 +34,7 @@ static const int32_t hwcaps[] = {
SR_CONF_LIMIT_SAMPLES, SR_CONF_LIMIT_SAMPLES,
SR_CONF_EXTERNAL_CLOCK, SR_CONF_EXTERNAL_CLOCK,
SR_CONF_PATTERN_MODE, SR_CONF_PATTERN_MODE,
SR_CONF_SWAP,
SR_CONF_RLE, SR_CONF_RLE,
}; };
@ -325,6 +326,17 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
ret = SR_ERR; ret = SR_ERR;
} }
break; break;
case SR_CONF_SWAP:
if (g_variant_get_boolean(data)) {
sr_info("Enabling channel swapping.");
devc->flag_reg |= FLAG_SWAP_PROBES;
} else {
sr_info("Disabling channel swapping.");
devc->flag_reg &= ~FLAG_SWAP_PROBES;
}
ret = SR_OK;
break;
case SR_CONF_RLE: case SR_CONF_RLE:
if (g_variant_get_boolean(data)) { if (g_variant_get_boolean(data)) {
sr_info("Enabling RLE."); sr_info("Enabling RLE.");

View File

@ -75,6 +75,7 @@
#define FLAG_CLOCK_EXTERNAL 0x40 #define FLAG_CLOCK_EXTERNAL 0x40
#define FLAG_CLOCK_INVERTED 0x80 #define FLAG_CLOCK_INVERTED 0x80
#define FLAG_RLE 0x0100 #define FLAG_RLE 0x0100
#define FLAG_SWAP_PROBES 0x0200
#define FLAG_EXTERNAL_TEST_MODE 0x0400 #define FLAG_EXTERNAL_TEST_MODE 0x0400
#define FLAG_INTERNAL_TEST_MODE 0x0800 #define FLAG_INTERNAL_TEST_MODE 0x0800

View File

@ -65,6 +65,8 @@ static struct sr_config_info sr_config_info_data[] = {
"Trigger types", NULL}, "Trigger types", NULL},
{SR_CONF_EXTERNAL_CLOCK, SR_T_BOOL, "external_clock", {SR_CONF_EXTERNAL_CLOCK, SR_T_BOOL, "external_clock",
"External clock mode", NULL}, "External clock mode", NULL},
{SR_CONF_SWAP, SR_T_BOOL, "swap",
"Swap channel order", NULL},
{SR_CONF_RLE, SR_T_BOOL, "rle", {SR_CONF_RLE, SR_T_BOOL, "rle",
"Run Length Encoding", NULL}, "Run Length Encoding", NULL},
{SR_CONF_TRIGGER_SLOPE, SR_T_UINT64, "triggerslope", {SR_CONF_TRIGGER_SLOPE, SR_T_UINT64, "triggerslope",

View File

@ -631,6 +631,11 @@ enum {
/** The devices supports using a external clock. */ /** The devices supports using a external clock. */
SR_CONF_EXTERNAL_CLOCK, SR_CONF_EXTERNAL_CLOCK,
/** The device supports swapping channels. Typical this is between
* buffered and unbuffered channels.
*/
SR_CONF_SWAP,
/** The device supports Run Length Encoding. */ /** The device supports Run Length Encoding. */
SR_CONF_RLE, SR_CONF_RLE,