From bee04bfed9503d4ae3179e37e11ee1e0718d8de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Tue, 22 Jul 2008 00:27:01 +0000 Subject: [PATCH] mmlr + stippi: Hide USB errors better from the upper layers: Only try the "clear feature" command if the error is B_DEV_STALLED. On other errors, the clear feature was likely to fail, as it should only be used on stalled devices. Errors intended to be ignored were thus not ignored because of the "clear feature" failure. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26555 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp | 5 +++-- src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp index f9db269a48..58fe1a3333 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp @@ -133,8 +133,9 @@ KeyboardDevice::_InterpretBuffer() if (IsRemoved()) return B_ERROR; - if (gUSBModule->clear_feature(fInterruptPipe, - USB_FEATURE_ENDPOINT_HALT) != B_OK) + if (fTransferStatus == B_DEV_STALLED + && gUSBModule->clear_feature(fInterruptPipe, + USB_FEATURE_ENDPOINT_HALT) != B_OK) return B_ERROR; return B_OK; diff --git a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp index 8a4a07025c..412b03ef1f 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp @@ -82,8 +82,9 @@ MouseDevice::_InterpretBuffer() if (IsRemoved()) return B_ERROR; - if (gUSBModule->clear_feature(fInterruptPipe, - USB_FEATURE_ENDPOINT_HALT) != B_OK) + if (fTransferStatus == B_DEV_STALLED + && gUSBModule->clear_feature(fInterruptPipe, + USB_FEATURE_ENDPOINT_HALT) != B_OK) return B_ERROR; return B_OK;