2/11: actisys-sir: dongle api change
PATCH 1/1 2/11: actisys-sir: dongle api change
ir262_dongles-2_actisys-sir.diff :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<Patch from Martin Diehl>
* convert to de-virtualized sirdev helpers
* improve error path during speed change
drivers/net/irda/actisys-sir.c renamed from drivers/net/irda.d6/actisys-sir.c +15 -11
@@ -65,7 +65,7 @@ static int actisys_reset(struct sir_dev/* These are the baudrates supported, in the order available */ /* Note : the 220L doesn't support 38400, but we will fix that below */ -static __u32 baud_rates[] = {9600 ,19200 ,57600 ,115200 ,38400 }; +static unsigned baud_rates[] = {9600 ,19200 ,57600 ,115200 ,38400 };#define MAX_SPEEDS (sizeof(baud_rates)/sizeof(baud_rates[0]))
@@ -118,7 +118,7 @@ static int actisys_open(struct sir_dev * {struct qos_info *qos = &dev->qos; - dev->set_dtr_rts (dev, TRUE, TRUE); +sirdev_set_dtr_rts (dev, TRUE, TRUE);/* Set the speeds we can accept */ qos->baud_rate.bits &=IR_9600 |IR_19200 |IR_38400 |IR_57600 |IR_115200 ;
@@ -130,13 +130,15 @@ static int actisys_open(struct sir_dev * qos->min_turn_time.bits =0x7f ;/* Needs 0.01 ms */ irda_qos_bits_to_value (qos); +/* irda thread waits 50 msec for power settling */ +return 0 ; }static int actisys_close (struct sir_dev *dev) {/* Power off the dongle */ - dev->set_dtr_rts (dev, FALSE, FALSE); +sirdev_set_dtr_rts (dev, FALSE, FALSE);return 0 ; }
@@ -174,23 +176,25 @@ static int actisys_change_speed(struct s* Now, we can set the speed requested. Send RTS pulses until we * reach the target speed */ -for (i=0 ; i<MAX_SPEEDS ; i++) { +for (i =0 ; i <MAX_SPEEDS ; i++) {if (speed == baud_rates[i]) { - dev->speed = baud_rates[i]; + dev->speed = speed;break ; }/* Set RTS low for 10 us */ - dev->set_dtr_rts (dev, TRUE, FALSE); +sirdev_set_dtr_rts (dev, TRUE, FALSE);udelay (MIN_DELAY );/* Set RTS high for 10 us */ - dev->set_dtr_rts (dev, TRUE, TRUE); +sirdev_set_dtr_rts (dev, TRUE, TRUE);udelay (MIN_DELAY ); }/* Check if life is sweet... */ -if (i >=MAX_SPEEDS ) - ret =-1 ;/* This should not happen */ +if (i >=MAX_SPEEDS ) { +actisys_reset (dev); + ret = -EINVAL ;/* This should not happen */ + }/* Basta lavoro, on se casse d'ici... */ return ret;
@@ -221,11 +225,11 @@ static int actisys_change_speed(struct sstatic int actisys_reset (struct sir_dev *dev) {/* Reset the dongle : set DTR low for 10 us */ - dev->set_dtr_rts (dev, FALSE, TRUE); +sirdev_set_dtr_rts (dev, FALSE, TRUE);udelay (MIN_DELAY );/* Go back to normal mode */ - dev->set_dtr_rts (dev, TRUE, TRUE); +sirdev_set_dtr_rts (dev, TRUE, TRUE); dev->speed =9600 ;/* That's the default */