1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2 /* Copyright(c) 2007 - 2011 Realtek Corporation. */ 3 4 #ifndef __USB_OPS_H_ 5 #define __USB_OPS_H_ 6 7 #include "osdep_service.h" 8 #include "drv_types.h" 9 #include "osdep_intf.h" 10 11 #define REALTEK_USB_VENQT_READ (USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE) 12 #define REALTEK_USB_VENQT_WRITE (USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE) 13 #define REALTEK_USB_VENQT_CMD_REQ 0x05 14 #define REALTEK_USB_VENQT_CMD_IDX 0x00 15 16 #define ALIGNMENT_UNIT 16 17 #define MAX_VENDOR_REQ_CMD_SIZE 254 /* 8188cu SIE Support */ 18 #define MAX_USB_IO_CTL_SIZE (MAX_VENDOR_REQ_CMD_SIZE + ALIGNMENT_UNIT) 19 20 #include "usb_ops_linux.h" 21 22 /* 23 * Increase and check if the continual_urb_error of this @param dvobjprivei 24 * is larger than MAX_CONTINUAL_URB_ERR 25 * @return true: 26 * @return false: 27 */ rtw_inc_and_chk_continual_urb_error(struct dvobj_priv * dvobj)28static inline int rtw_inc_and_chk_continual_urb_error(struct dvobj_priv *dvobj) 29 { 30 int ret = false; 31 int value; 32 value = atomic_inc_return(&dvobj->continual_urb_error); 33 if (value > MAX_CONTINUAL_URB_ERR) { 34 DBG_88E("[dvobj:%p][ERROR] continual_urb_error:%d > %d\n", 35 dvobj, value, MAX_CONTINUAL_URB_ERR); 36 ret = true; 37 } 38 return ret; 39 } 40 41 /* 42 * Set the continual_urb_error of this @param dvobjprive to 0 43 */ rtw_reset_continual_urb_error(struct dvobj_priv * dvobj)44static inline void rtw_reset_continual_urb_error(struct dvobj_priv *dvobj) 45 { 46 atomic_set(&dvobj->continual_urb_error, 0); 47 } 48 49 #define USB_HIGH_SPEED_BULK_SIZE 512 50 #define USB_FULL_SPEED_BULK_SIZE 64 51 rtw_usb_bulk_size_boundary(struct adapter * padapter,int buf_len)52static inline u8 rtw_usb_bulk_size_boundary(struct adapter *padapter, 53 int buf_len) 54 { 55 u8 rst = true; 56 struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); 57 58 if (pdvobjpriv->ishighspeed) 59 rst = (0 == (buf_len) % USB_HIGH_SPEED_BULK_SIZE) ? 60 true : false; 61 else 62 rst = (0 == (buf_len) % USB_FULL_SPEED_BULK_SIZE) ? 63 true : false; 64 return rst; 65 } 66 67 #endif /* __USB_OPS_H_ */ 68