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( ...@@ -291,8 +291,12 @@ void UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::SetInterface(
USB_PLOG(DEBUG) << "Failed to set interface " << interface_number USB_PLOG(DEBUG) << "Failed to set interface " << interface_number
<< " to alternate setting " << alternate_setting; << " to alternate setting " << alternate_setting;
} }
task_runner_->PostTask(FROM_HERE, task_runner_->PostTask(
base::BindOnce(std::move(callback), rc == 0)); FROM_HERE,
base::BindOnce(
&UsbDeviceHandleUsbfs::SetAlternateInterfaceSettingComplete,
device_handle_, interface_number, alternate_setting, rc == 0,
std::move(callback)));
} }
void UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::ResetDevice( void UsbDeviceHandleUsbfs::BlockingTaskRunnerHelper::ResetDevice(
...@@ -763,6 +767,19 @@ void UsbDeviceHandleUsbfs::SetConfigurationComplete(int configuration_value, ...@@ -763,6 +767,19 @@ void UsbDeviceHandleUsbfs::SetConfigurationComplete(int configuration_value,
std::move(callback).Run(success); 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, void UsbDeviceHandleUsbfs::ReleaseInterfaceComplete(int interface_number,
ResultCallback callback) { ResultCallback callback) {
DCHECK(sequence_checker_.CalledOnValidSequence()); DCHECK(sequence_checker_.CalledOnValidSequence());
......
...@@ -103,6 +103,10 @@ class UsbDeviceHandleUsbfs : public UsbDeviceHandle { ...@@ -103,6 +103,10 @@ class UsbDeviceHandleUsbfs : public UsbDeviceHandle {
void SetConfigurationComplete(int configuration_value, void SetConfigurationComplete(int configuration_value,
bool success, bool success,
ResultCallback callback); ResultCallback callback);
void SetAlternateInterfaceSettingComplete(int interface_number,
int alternate_setting,
bool success,
ResultCallback callback);
void ReleaseInterfaceComplete(int interface_number, ResultCallback callback); void ReleaseInterfaceComplete(int interface_number, ResultCallback callback);
void IsochronousTransferInternal(uint8_t endpoint_address, void IsochronousTransferInternal(uint8_t endpoint_address,
scoped_refptr<base::RefCountedBytes> buffer, 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