xref: /dragonfly/sys/bus/u4b/usb_debug.h (revision 141a761f)
1*141a761fSMarkus Pfeiffer /* $FreeBSD: head/sys/dev/usb/usb_debug.h 250205 2013-05-03 10:13:29Z hselasky $ */
212bd3c8bSSascha Wildner /*-
312bd3c8bSSascha Wildner  * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
412bd3c8bSSascha Wildner  *
512bd3c8bSSascha Wildner  * Redistribution and use in source and binary forms, with or without
612bd3c8bSSascha Wildner  * modification, are permitted provided that the following conditions
712bd3c8bSSascha Wildner  * are met:
812bd3c8bSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
912bd3c8bSSascha Wildner  *    notice, this list of conditions and the following disclaimer.
1012bd3c8bSSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
1112bd3c8bSSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
1212bd3c8bSSascha Wildner  *    documentation and/or other materials provided with the distribution.
1312bd3c8bSSascha Wildner  *
1412bd3c8bSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1512bd3c8bSSascha Wildner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1612bd3c8bSSascha Wildner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1712bd3c8bSSascha Wildner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1812bd3c8bSSascha Wildner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1912bd3c8bSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2012bd3c8bSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2112bd3c8bSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2212bd3c8bSSascha Wildner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2312bd3c8bSSascha Wildner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2412bd3c8bSSascha Wildner  * SUCH DAMAGE.
2512bd3c8bSSascha Wildner  */
2612bd3c8bSSascha Wildner 
2712bd3c8bSSascha Wildner /* This file contains various factored out debug macros. */
2812bd3c8bSSascha Wildner 
2912bd3c8bSSascha Wildner #ifndef _USB_DEBUG_H_
3012bd3c8bSSascha Wildner #define	_USB_DEBUG_H_
3112bd3c8bSSascha Wildner 
3212bd3c8bSSascha Wildner /* Declare global USB debug variable. */
3312bd3c8bSSascha Wildner extern int usb_debug;
3412bd3c8bSSascha Wildner 
3512bd3c8bSSascha Wildner /* Check if USB debugging is enabled. */
3612bd3c8bSSascha Wildner #ifdef USB_DEBUG_VAR
3712bd3c8bSSascha Wildner #ifdef USB_DEBUG
3812bd3c8bSSascha Wildner #define	DPRINTFN(n,fmt,...) do {		\
3912bd3c8bSSascha Wildner   if ((USB_DEBUG_VAR) >= (n)) {			\
40722d05c3SSascha Wildner     kprintf("%s: " fmt,				\
417fd4e1a1SSascha Wildner 	   __func__,## __VA_ARGS__);	\
4212bd3c8bSSascha Wildner   }						\
4312bd3c8bSSascha Wildner } while (0)
4412bd3c8bSSascha Wildner #define	DPRINTF(...)	DPRINTFN(1, __VA_ARGS__)
4512bd3c8bSSascha Wildner #else
4612bd3c8bSSascha Wildner #define	DPRINTF(...) do { } while (0)
4712bd3c8bSSascha Wildner #define	DPRINTFN(...) do { } while (0)
4812bd3c8bSSascha Wildner #endif
4912bd3c8bSSascha Wildner #endif
5012bd3c8bSSascha Wildner 
5112bd3c8bSSascha Wildner struct usb_interface;
5212bd3c8bSSascha Wildner struct usb_device;
5312bd3c8bSSascha Wildner struct usb_endpoint;
5412bd3c8bSSascha Wildner struct usb_xfer;
5512bd3c8bSSascha Wildner 
5612bd3c8bSSascha Wildner void	usb_dump_iface(struct usb_interface *iface);
5712bd3c8bSSascha Wildner void	usb_dump_device(struct usb_device *udev);
5812bd3c8bSSascha Wildner void	usb_dump_queue(struct usb_endpoint *ep);
5912bd3c8bSSascha Wildner void	usb_dump_endpoint(struct usb_endpoint *ep);
6012bd3c8bSSascha Wildner void	usb_dump_xfer(struct usb_xfer *xfer);
6112bd3c8bSSascha Wildner 
625e41ab93SMarkus Pfeiffer #ifdef USB_DEBUG
635e41ab93SMarkus Pfeiffer extern unsigned int usb_port_reset_delay;
645e41ab93SMarkus Pfeiffer extern unsigned int usb_port_root_reset_delay;
655e41ab93SMarkus Pfeiffer extern unsigned int usb_port_reset_recovery;
665e41ab93SMarkus Pfeiffer extern unsigned int usb_port_powerup_delay;
675e41ab93SMarkus Pfeiffer extern unsigned int usb_port_resume_delay;
685e41ab93SMarkus Pfeiffer extern unsigned int usb_set_address_settle;
695e41ab93SMarkus Pfeiffer extern unsigned int usb_resume_delay;
705e41ab93SMarkus Pfeiffer extern unsigned int usb_resume_wait;
715e41ab93SMarkus Pfeiffer extern unsigned int usb_resume_recovery;
725e41ab93SMarkus Pfeiffer extern unsigned int usb_extra_power_up_time;
735e41ab93SMarkus Pfeiffer #else
745e41ab93SMarkus Pfeiffer #define usb_port_reset_delay		USB_PORT_RESET_DELAY
755e41ab93SMarkus Pfeiffer #define usb_port_root_reset_delay	USB_PORT_ROOT_RESET_DELAY
765e41ab93SMarkus Pfeiffer #define usb_port_reset_recovery		USB_PORT_RESET_RECOVERY
775e41ab93SMarkus Pfeiffer #define usb_port_powerup_delay		USB_PORT_POWERUP_DELAY
785e41ab93SMarkus Pfeiffer #define usb_port_resume_delay		USB_PORT_RESUME_DELAY
795e41ab93SMarkus Pfeiffer #define usb_set_address_settle		USB_SET_ADDRESS_SETTLE
805e41ab93SMarkus Pfeiffer #define usb_resume_delay		USB_RESUME_DELAY
815e41ab93SMarkus Pfeiffer #define usb_resume_wait			USB_RESUME_WAIT
825e41ab93SMarkus Pfeiffer #define usb_resume_recovery		USB_RESUME_RECOVERY
835e41ab93SMarkus Pfeiffer #define usb_extra_power_up_time		USB_EXTRA_POWER_UP_TIME
845e41ab93SMarkus Pfeiffer #endif
855e41ab93SMarkus Pfeiffer 
8612bd3c8bSSascha Wildner #endif					/* _USB_DEBUG_H_ */
87