Browse Source

bfsb: Expose Clock Bits and Slot to RPC

Luke Dashjr 12 years ago
parent
commit
5808e67d82
4 changed files with 25 additions and 1 deletions
  1. 11 0
      driver-bfsb.c
  2. 11 0
      driver-bitfury.c
  3. 1 0
      driver-bitfury.h
  4. 2 1
      driver-metabank.c

+ 11 - 0
driver-bfsb.c

@@ -170,6 +170,16 @@ static void bfsb_shutdown(struct thr_info *thr)
 	spi_bfsb_select_bank(-1);
 	spi_bfsb_select_bank(-1);
 }
 }
 
 
+static struct api_data *bfsb_api_device_status(struct cgpu_info *cgpu)
+{
+	struct bitfury_device * const bitfury = cgpu->device_data;
+	struct api_data *root = bitfury_api_device_status(cgpu);
+	
+	root = api_add_uint(root, "Slot", &(bitfury->slot), false);
+	
+	return root;
+}
+
 struct device_drv bfsb_drv = {
 struct device_drv bfsb_drv = {
 	.dname = "bfsb",
 	.dname = "bfsb",
 	.name = "BSB",
 	.name = "BSB",
@@ -180,5 +190,6 @@ struct device_drv bfsb_drv = {
 	.poll = bitfury_do_io,
 	.poll = bitfury_do_io,
 	.job_start = bitfury_do_io,
 	.job_start = bitfury_do_io,
 	.job_process_results = bitfury_job_process_results,
 	.job_process_results = bitfury_job_process_results,
+	.get_api_extra_device_status = bfsb_api_device_status,
 	.thread_shutdown = bfsb_shutdown,
 	.thread_shutdown = bfsb_shutdown,
 };
 };

+ 11 - 0
driver-bitfury.c

@@ -540,6 +540,17 @@ int64_t bitfury_job_process_results(struct thr_info *thr, struct work *work, boo
 	return 0xbd000000;
 	return 0xbd000000;
 }
 }
 
 
+struct api_data *bitfury_api_device_status(const struct cgpu_info * const cgpu)
+{
+	const struct bitfury_device * const bitfury = cgpu->device_data;
+	struct api_data *root = NULL;
+	int clock_bits = bitfury->osc6_bits;
+	
+	root = api_add_int(root, "Clock Bits", &clock_bits, true);
+	
+	return root;
+}
+
 struct device_drv bitfury_drv = {
 struct device_drv bitfury_drv = {
 	.dname = "bitfury_gpio",
 	.dname = "bitfury_gpio",
 	.name = "BFY",
 	.name = "BFY",

+ 1 - 0
driver-bitfury.h

@@ -14,6 +14,7 @@ extern int64_t bitfury_scanHash(struct thr_info *);
 extern bool bitfury_job_prepare(struct thr_info *, struct work *, uint64_t max_nonce);
 extern bool bitfury_job_prepare(struct thr_info *, struct work *, uint64_t max_nonce);
 extern void bitfury_do_io(struct thr_info *);
 extern void bitfury_do_io(struct thr_info *);
 extern int64_t bitfury_job_process_results(struct thr_info *, struct work *, bool stopping);
 extern int64_t bitfury_job_process_results(struct thr_info *, struct work *, bool stopping);
+extern struct api_data *bitfury_api_device_status(const struct cgpu_info *);
 
 
 extern void bitfury_shutdown(struct thr_info *);
 extern void bitfury_shutdown(struct thr_info *);
 
 

+ 2 - 1
driver-metabank.c

@@ -185,9 +185,10 @@ static struct api_data *metabank_api_extra_device_status(struct cgpu_info *cgpu)
 	struct api_data *root = NULL;
 	struct api_data *root = NULL;
 	float vc0, vc1;
 	float vc0, vc1;
 	struct bitfury_device * const bitfury = cgpu->device_data;
 	struct bitfury_device * const bitfury = cgpu->device_data;
+	
+	root = bitfury_api_device_status(cgpu);
 
 
 	root = api_add_uint(root, "Slot", &(bitfury->slot), false);
 	root = api_add_uint(root, "Slot", &(bitfury->slot), false);
-	root = api_add_int(root, "Clock Bits", (int*)&bitfury->osc6_bits, false);
 
 
 	vc0 = tm_i2c_getcore0(bitfury->slot);
 	vc0 = tm_i2c_getcore0(bitfury->slot);
 	vc1 = tm_i2c_getcore1(bitfury->slot);
 	vc1 = tm_i2c_getcore1(bitfury->slot);