X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Finclude%2Fusb.h;h=67a3830f69c3b3618616269d82a1c9e85988027a;hb=195268cae3bb2f462d82dc0178dbca07f0cff706;hp=2098638cf7d6a8d0b01a17535b1b7beaa6f703dd;hpb=6476369c2c6d4ba487408cb5daff8df0480d6b4a;p=carl9170fw.git diff --git a/carlfw/include/usb.h b/carlfw/include/usb.h index 2098638..67a3830 100644 --- a/carlfw/include/usb.h +++ b/carlfw/include/usb.h @@ -6,7 +6,7 @@ * Copyright (c) 2000-2005 ZyDAS Technology Corporation * Copyright (c) 2007-2009 Atheros Communications, Inc. * Copyright 2009 Johannes Berg - * Copyright 2009, 2010 Christian Lamparter + * Copyright 2009-2011 Christian Lamparter * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,8 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * with this program; If not, see . */ #ifndef __CARL9170FW_USB_H @@ -141,6 +140,12 @@ static inline __inline void usb_clear_input_ep_toggle(unsigned int ep) ~AR9170_USB_EP_IN_TOGGLE); } +static inline __inline void usb_clear_input_ep_stall(unsigned int ep) +{ + andl(AR9170_USB_REG_EP_IN_MAX_SIZE_HIGH + (ep << 1), + ~AR9170_USB_EP_IN_STALL); +} + static inline __inline void usb_set_input_ep_toggle(unsigned int ep) { orl(AR9170_USB_REG_EP_IN_MAX_SIZE_HIGH + (ep << 1), @@ -159,6 +164,12 @@ static inline __inline void usb_set_output_ep_toggle(unsigned int ep) AR9170_USB_EP_OUT_TOGGLE); } +static inline __inline void usb_clear_output_ep_stall(unsigned int ep) +{ + andl(AR9170_USB_REG_EP_OUT_MAX_SIZE_HIGH + (ep << 1), + ~AR9170_USB_EP_OUT_STALL); +} + static inline void usb_structure_check(void) { BUILD_BUG_ON(sizeof(struct usb_config_descriptor) != USB_DT_CONFIG_SIZE); @@ -172,6 +183,7 @@ void __noreturn jump_to_bootcode(void); void send_cmd_to_host(const uint8_t len, const uint8_t type, const uint8_t ext, const uint8_t *body); +void usb_reset_eps(void); void usb_init(void); void usb_ep0rx(void); void usb_ep0tx(void);