Fix when setting options and taking VIDPID values.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2024-06-21 22:07:28 +02:00
parent f8480291fe
commit 246ed5cf19
3 changed files with 14 additions and 6 deletions

View File

@@ -169,16 +169,17 @@ void usb_init() {
uint16_t usb_vid = USB_VID, usb_pid = USB_PID;
if (file_has_data(ef_phy)) {
uint8_t *data = file_get_data(ef_phy);
if (file_get_size(ef_phy) >= 4) {
usb_vid = (data[PHY_VID] << 8) | data[PHY_VID+1];
usb_pid = (data[PHY_PID] << 8) | data[PHY_PID+1];
}
uint16_t opts = 0;
if (file_get_size(ef_phy) >= 8) {
uint16_t opts = (data[PHY_OPTS] << 8) | data[PHY_OPTS+1];
opts = (data[PHY_OPTS] << 8) | data[PHY_OPTS+1];
if (opts & PHY_OPT_WCID) {
enable_wcid = true;
}
}
if (file_get_size(ef_phy) >= 4 && opts & PHY_OPT_VPID) {
usb_vid = (data[PHY_VID] << 8) | data[PHY_VID+1];
usb_pid = (data[PHY_PID] << 8) | data[PHY_PID+1];
}
}
desc_device.idVendor = usb_vid;
desc_device.idProduct = usb_pid;