ir-usb.c fix for 2.5.6-pre3
Subsystems (2)
PATCH 1/1 ir-usb.c fix for 2.5.6-pre3
As the irda header files seem to be messed up in 2.5.6-pre3 I've decided to remove the dependency on them from the ir-usb.c driver. So here's a patch against 2.5.6-pre3 that enables the ir-usb.c code to build and work properly.
thanks,
greg k-h
drivers/usb/serial/ir-usb.c +35 -4
@@ -1,8 +1,8 @@/* * USB IR Dongle driver * -* Copyright (C) 2001 Greg Kroah-Hartman ([email protected]) -* Copyright (C) 2002 Gary Brubaker ([email protected]) +* Copyright (C) 2001-2002 Greg Kroah-Hartman ([email protected]) +* Copyright (C) 2002 Gary Brubaker ([email protected]) * * 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
@@ -21,6 +21,11 @@* * See Documentation/usb/usb-serial.txt for more information on using this driver * +* 2002_Mar_07 greg kh +* moved some needed structures and #define values from the +* net/irda/irda-usb.h file into our file, as we don't want to depend on +* that codebase compiling correctly :) +* * 2002_Jan_14 gb * Added module parameter to force specific number of XBOFs. * Added ir_xbof_change().
@@ -56,7 +61,6 @@#include <linux/module.h> #include <linux/spinlock.h> #include <linux/usb.h> -#include <net/irda/irda-usb.h> #ifdef CONFIG_USB_SERIAL_DEBUG static int debug =1 ;
@@ -73,6 +77,33 @@#define DRIVER_AUTHOR "Greg Kroah-Hartman <[email protected]>"#define DRIVER_DESC "USB IR Dongle driver" +/* USB IrDA class spec information */ +#define USB_CLASS_IRDA 0x02 +#define USB_DT_IRDA 0x21 +#define IU_REQ_GET_CLASS_DESC 0x06 +#define SPEED_2400 0x01 +#define SPEED_9600 0x02 +#define SPEED_19200 0x03 +#define SPEED_38400 0x04 +#define SPEED_57600 0x05 +#define SPEED_115200 0x06 +#define SPEED_576000 0x07 +#define SPEED_1152000 0x08 +#define SPEED_4000000 0x09 + +struct irda_class_desc { +u8 bLength; +u8 bDescriptorType; +u16 bcdSpecRevision; +u8 bmDataSize; +u8 bmWindowSize; +u8 bmMinTurnaroundTime; +u16 wBaudRate; +u8 bmAdditionalBOFs; +u8 bIrdaRateSniff; +u8 bMaxUnicastList; +} __attribute__ ((packed)); +/* if overridden by the user, then use their value for the size of the read and * write urbs */ static int buffer_size =0 ;
@@ -158,7 +189,7 @@ ret =usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ),IU_REQ_GET_CLASS_DESC ,USB_DIR_IN |USB_TYPE_CLASS |USB_RECIP_INTERFACE , -0 , ifnum, desc,sizeof (*desc),MSECS_TO_JIFFIES (500 )); +0 , ifnum, desc,sizeof (*desc),HZ );dbg ("%s - ret=%d" , __FUNCTION__, ret);if (ret <sizeof (*desc)) {