Commit c1806a41 authored by Bruno Dal Bo's avatar Bruno Dal Bo Committed by Commit Bot

[usbfs] Refresh endpoints on SetInterface

Change-Id: I69b7908d041c85e0265ec8277887ea00ea5cd463
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2220626
Commit-Queue: Bruno Dal Bo <brunodalbo@google.com>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#773799}
parent d73b7855
......@@ -291,8 +291,12 @@ void UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::SetInterface(
USB_PLOG(DEBUG) << "Failed to set interface " << interface_number
<< " to alternate setting " << alternate_setting;
}
task_runner_->PostTask(FROM_HERE,
base::BindOnce(std::move(callback), rc == 0));
task_runner_->PostTask(
FROM_HERE,
base::BindOnce(
&UsbDeviceHandleUsbfs::SetAlternateInterfaceSettingComplete,
device_handle_, interface_number, alternate_setting, rc == 0,
std::move(callback)));
}
void UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::ResetDevice(
......@@ -763,6 +767,19 @@ void UsbDeviceHandleUsbfs::SetConfigurationComplete(int configuration_value,
std::move(callback).Run(success);
}
void UsbDeviceHandleUsbfs::SetAlternateInterfaceSettingComplete(
int interface_number,
int alternate_setting,
bool success,
ResultCallback callback) {
DCHECK(sequence_checker_.CalledOnValidSequence());
if (success && device_) {
interfaces_[interface_number].alternate_setting = alternate_setting;
RefreshEndpointInfo();
}
std::move(callback).Run(success);
}
void UsbDeviceHandleUsbfs::ReleaseInterfaceComplete(int interface_number,
ResultCallback callback) {
DCHECK(sequence_checker_.CalledOnValidSequence());
......
......@@ -103,6 +103,10 @@ class UsbDeviceHandleUsbfs : public UsbDeviceHandle {
void SetConfigurationComplete(int configuration_value,
bool success,
ResultCallback callback);
void SetAlternateInterfaceSettingComplete(int interface_number,
int alternate_setting,
bool success,
ResultCallback callback);
void ReleaseInterfaceComplete(int interface_number, ResultCallback callback);
void IsochronousTransferInternal(uint8_t endpoint_address,
scoped_refptr<base::RefCountedBytes> buffer,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment