/* Byte.Bit 00.1 - Status change: The controller or headset has connected/disconnected Bits 01.7 and 01.6 are valid 01.7 - Controller present 01.6 - Headset present 01.1 - Pad state (Bytes 4+) valid  */
static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data)
/* Byte.Bit 00.1 - Status change: The controller or headset has connected/disconnected Bits 01.7 and 01.6 are valid 01.7 - Controller present 01.6 - Headset present 01.1 - Pad state (Bytes 4+) valid  */
static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data)
{
	if (data[0] & 0x08) {
		if (data[1] & 0x80) {
			xpad->pad_present = 1;
			usb_submit_urb(xpad->bulk_out, GFP_ATOMIC);
		} else
			xpad->pad_present = 0;
	}
	if (!(data[1] & 0x1))
		return;
	xpad360_process_packet(xpad, cmd, &data[4]);
}