sysclk-lwla: Fix a regression with (at least) the LWLA1034.

This regression was introduced in f1ba6b4b2c.

Due to how the sysclk-lwla driver does up to 3 open/close operations in
one dev_open() API callback we cannot rely on the sr_dev_open() and
sr_dev_close() wrappers setting the sdi->status variable in this case.

Tested on LWLA1034.
This commit is contained in:
Uwe Hermann 2017-12-24 15:42:27 +01:00
parent 6c1a4cb44c
commit 42d14d9108
1 changed files with 4 additions and 1 deletions

View File

@ -259,6 +259,8 @@ static int dev_open(struct sr_dev_inst *sdi)
/* This delay appears to be necessary for reliable operation. */ /* This delay appears to be necessary for reliable operation. */
g_usleep(30 * 1000); g_usleep(30 * 1000);
sdi->status = SR_ST_ACTIVE;
devc->active_fpga_config = FPGA_NOCONF; devc->active_fpga_config = FPGA_NOCONF;
devc->short_transfer_quirk = FALSE; devc->short_transfer_quirk = FALSE;
devc->state = STATE_IDLE; devc->state = STATE_IDLE;
@ -271,6 +273,7 @@ static int dev_open(struct sr_dev_inst *sdi)
break; break;
/* Rinse and repeat. */ /* Rinse and repeat. */
sdi->status = SR_ST_INACTIVE;
sr_usb_close(usb); sr_usb_close(usb);
} }
@ -306,7 +309,7 @@ static int dev_close(struct sr_dev_inst *sdi)
sr_usb_close(usb); sr_usb_close(usb);
return SR_OK; return ret;
} }
/* Check whether the device options contain a specific key. /* Check whether the device options contain a specific key.