switch2: Move initialization after reading calibration

This removes the need to wait for initialization to finish
This commit is contained in:
Vicki Pfau
2025-10-10 17:11:03 -07:00
committed by Sam Lantinga
parent 70bfdd013a
commit ef99341691

View File

@@ -376,17 +376,6 @@ static bool HIDAPI_DriverSwitch2_InitUSB(SDL_HIDAPI_Device *device)
};
unsigned char calibration_data[0x50] = {0};
for (int i = 0; init_sequence[i].size; i++) {
res = SendBulkData(ctx, init_sequence[i].data, init_sequence[i].size);
if (res < 0) {
return SDL_SetError("Couldn't send initialization data: %d\n", res);
}
RecvBulkData(ctx, calibration_data, 0x40);
}
// Wait for initialization to complete
SDL_Delay(1);
flash_read_command[12] = 0x80;
res = SendBulkData(ctx, flash_read_command, sizeof(flash_read_command));
if (res < 0) {
@@ -458,6 +447,14 @@ static bool HIDAPI_DriverSwitch2_InitUSB(SDL_HIDAPI_Device *device)
}
}
for (int i = 0; init_sequence[i].size; i++) {
res = SendBulkData(ctx, init_sequence[i].data, init_sequence[i].size);
if (res < 0) {
return SDL_SetError("Couldn't send initialization data: %d\n", res);
}
RecvBulkData(ctx, calibration_data, 0x40);
}
return true;
}