bluetooth: hidp_process_hid_control remove unnecessary parameter dealing
According to the bluetooth HID spec v1.0 chapter 7.4.2 "This code requests a major state change in a BT-HID device. A HID_CONTROL request does not generate a HANDSHAKE response." "A HID_CONTROL packet with a parameter of VIRTUAL_CABLE_UNPLUG is the only HID_CONTROL packet a device can send to a host. A host will ignore all other packets." So in the hidp_precess_hid_control function, we just need to deal with the UNLUG packet. Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a26af1e08a
commit
eff001e35a
@ -369,30 +369,13 @@ static inline void hidp_process_hid_control(struct hidp_session *session, unsign
|
||||
{
|
||||
BT_DBG("session %p param 0x%02x", session, param);
|
||||
|
||||
switch (param) {
|
||||
case HIDP_CTRL_NOP:
|
||||
break;
|
||||
|
||||
case HIDP_CTRL_VIRTUAL_CABLE_UNPLUG:
|
||||
if (param == HIDP_CTRL_VIRTUAL_CABLE_UNPLUG) {
|
||||
/* Flush the transmit queues */
|
||||
skb_queue_purge(&session->ctrl_transmit);
|
||||
skb_queue_purge(&session->intr_transmit);
|
||||
|
||||
/* Kill session thread */
|
||||
atomic_inc(&session->terminate);
|
||||
break;
|
||||
|
||||
case HIDP_CTRL_HARD_RESET:
|
||||
case HIDP_CTRL_SOFT_RESET:
|
||||
case HIDP_CTRL_SUSPEND:
|
||||
case HIDP_CTRL_EXIT_SUSPEND:
|
||||
/* FIXME: We have to parse these and return no error */
|
||||
break;
|
||||
|
||||
default:
|
||||
__hidp_send_ctrl_message(session,
|
||||
HIDP_TRANS_HANDSHAKE | HIDP_HSHK_ERR_INVALID_PARAMETER, NULL, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user