diff options
| -rw-r--r-- | tools/bccmd.c | 42 | ||||
| -rw-r--r-- | tools/hciconfig.c | 12 | 
2 files changed, 40 insertions, 14 deletions
| diff --git a/tools/bccmd.c b/tools/bccmd.c index 5e358b01..df39a3df 100644 --- a/tools/bccmd.c +++ b/tools/bccmd.c @@ -95,14 +95,50 @@ static int cmd_clock(int dd, int argc, char *argv[])  	return 0;  } +static int cmd_panicarg(int dd, int argc, char *argv[]) +{ +	uint16_t error = 0; +	int err; + +	err = csr_read_varid_uint16(dd, 5, CSR_VARID_PANIC_ARG, &error); +	if (err < 0) { +		errno = -err; +		return -1; +	} + +	printf("Panic code: 0x%02x (%s)\n", error, +					error < 0x100 ? "valid" : "invalid"); + +	return 0; +} + +static int cmd_faultarg(int dd, int argc, char *argv[]) +{ +	uint16_t error = 0; +	int err; + +	err = csr_read_varid_uint16(dd, 5, CSR_VARID_FAULT_ARG, &error); +	if (err < 0) { +		errno = -err; +		return -1; +	} + +	printf("Fault code: 0x%02x (%s)\n", error, +					error < 0x100 ? "valid" : "invalid"); + +	return 0; +} +  static struct {  	char *str;  	int (*func)(int dd, int argc, char **argv);  	char *arg;  	char *doc;  } commands[] = { -	{ "keylen", cmd_keylen, "<handle>", "Get current crypt key length" }, -	{ "clock",  cmd_clock,  "",         "Get local Bluetooth clock"    }, +	{ "keylen",   cmd_keylen,   "<handle>", "Get current crypt key length" }, +	{ "clock",    cmd_clock,    "",         "Get local Bluetooth clock"    }, +	{ "panicarg", cmd_panicarg, "",         "Get panic code argument"      }, +	{ "faultarg", cmd_faultarg, "",         "Get fault code argument"      },  	{ NULL },  }; @@ -116,7 +152,7 @@ static void usage(void)  	printf("Commands:\n");  		for (i = 0; commands[i].str; i++) -			printf("\t%s\t%-8s\t%s\n", commands[i].str, +			printf("\t%-10s%-8s\t%s\n", commands[i].str,  				commands[i].arg, commands[i].doc);  } diff --git a/tools/hciconfig.c b/tools/hciconfig.c index f6c932e4..4dfb57a7 100644 --- a/tools/hciconfig.c +++ b/tools/hciconfig.c @@ -1173,7 +1173,7 @@ static void print_rev_ericsson(int dd)  static void print_rev_csr(int dd, uint16_t rev)  { -	uint16_t buildid, chipver, chiprev, maxkeylen, mapsco, error; +	uint16_t buildid, chipver, chiprev, maxkeylen, mapsco;  	if (csr_read_varid_uint16(dd, 0, CSR_VARID_BUILDID, &buildid) < 0) {  		printf("\t%s\n", csr_buildidtostr(rev)); @@ -1193,16 +1193,6 @@ static void print_rev_csr(int dd, uint16_t rev)  	if (!csr_read_pskey_uint16(dd, 4, CSR_PSKEY_HOSTIO_MAP_SCO_PCM, &mapsco))  		printf("\tSCO mapping:  %s\n", mapsco ? "PCM" : "HCI"); - -	if (!csr_read_varid_uint16(dd, 5, CSR_VARID_PANIC_ARG, &error)) { -		if (error < 0x0100) -			printf("\tPanic code:   0x%02x\n", error); -	} - -	if (!csr_read_varid_uint16(dd, 6, CSR_VARID_FAULT_ARG, &error)) { -		if (error < 0x0100) -			printf("\tFault code:   0x%02x\n", error); -	}  }  static void print_rev_digianswer(int dd) | 
