]> err.no Git - linux-2.6/blobdiff - net/irda/irlan/irlan_client_event.c
Merge branches 'release' and 'gpe-ack' into release
[linux-2.6] / net / irda / irlan / irlan_client_event.c
index ce943b69e9961441b3ef9d541061b585722f1a67..6afcee59e90632b926fd069c10353916693c1335 100644 (file)
@@ -1,5 +1,5 @@
 /*********************************************************************
- *                
+ *
  * Filename:      irlan_client_event.c
  * Version:       0.9
  * Description:   IrLAN client state machine
@@ -8,17 +8,17 @@
  * Created at:    Sun Aug 31 20:14:37 1997
  * Modified at:   Sun Dec 26 21:52:24 1999
  * Modified by:   Dag Brattli <dagb@cs.uit.no>
- * 
- *     Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, 
+ *
+ *     Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>,
  *     All Rights Reserved.
- *     
- *     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 the Free Software Foundation; either version 2 of 
+ *
+ *     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 the Free Software Foundation; either version 2 of
  *     the License, or (at your option) any later version.
  *
- *     Neither Dag Brattli nor University of Tromsø admit liability nor
- *     provide warranty for any of this software. This material is 
+ *     Neither Dag Brattli nor University of Tromsø admit liability nor
+ *     provide warranty for any of this software. This material is
  *     provided "AS-IS" and at no charge.
  *
  ********************************************************************/
 #include <net/irda/irlan_client.h>
 #include <net/irda/irlan_event.h>
 
-static int irlan_client_state_idle (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_idle (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_conn (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_conn (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_info (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_info (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_media(struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_media(struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_open (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_open (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_wait (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_wait (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_arb  (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_arb  (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_data (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_data (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_close(struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_close(struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
-static int irlan_client_state_sync (struct irlan_cb *self, IRLAN_EVENT event, 
+static int irlan_client_state_sync (struct irlan_cb *self, IRLAN_EVENT event,
                                    struct sk_buff *skb);
 
 static int (*state[])(struct irlan_cb *, IRLAN_EVENT event, struct sk_buff *) =
-{ 
+{
        irlan_client_state_idle,
        irlan_client_state_query,
        irlan_client_state_conn,
@@ -74,8 +74,8 @@ static int (*state[])(struct irlan_cb *, IRLAN_EVENT event, struct sk_buff *) =
        irlan_client_state_sync
 };
 
-void irlan_do_client_event(struct irlan_cb *self, IRLAN_EVENT event, 
-                          struct sk_buff *skb) 
+void irlan_do_client_event(struct irlan_cb *self, IRLAN_EVENT event,
+                          struct sk_buff *skb)
 {
        IRDA_ASSERT(self != NULL, return;);
        IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;);
@@ -89,14 +89,14 @@ void irlan_do_client_event(struct irlan_cb *self, IRLAN_EVENT event,
  *    IDLE, We are waiting for an indication that there is a provider
  *    available.
  */
-static int irlan_client_state_idle(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_idle(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
 
        IRDA_ASSERT(self != NULL, return -1;);
        IRDA_ASSERT(self->magic == IRLAN_MAGIC, return -1;);
-       
+
        switch (event) {
        case IRLAN_DISCOVERY_INDICATION:
                if (self->client.iriap) {
@@ -104,7 +104,7 @@ static int irlan_client_state_idle(struct irlan_cb *self, IRLAN_EVENT event,
                                     __FUNCTION__);
                        return -EBUSY;
                }
-               
+
                self->client.iriap = iriap_open(LSAP_ANY, IAS_CLIENT, self,
                                                irlan_client_get_value_confirm);
                /* Get some values from peer IAS */
@@ -120,7 +120,7 @@ static int irlan_client_state_idle(struct irlan_cb *self, IRLAN_EVENT event,
                IRDA_DEBUG(4, "%s(), Unknown event %d\n", __FUNCTION__ , event);
                break;
        }
-       if (skb) 
+       if (skb)
                dev_kfree_skb(skb);
 
        return 0;
@@ -133,23 +133,23 @@ static int irlan_client_state_idle(struct irlan_cb *self, IRLAN_EVENT event,
  *    to provider, just waiting for the confirm.
  *
  */
-static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event, 
-                                   struct sk_buff *skb) 
+static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event,
+                                   struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
 
        IRDA_ASSERT(self != NULL, return -1;);
        IRDA_ASSERT(self->magic == IRLAN_MAGIC, return -1;);
-       
+
        switch(event) {
        case IRLAN_IAS_PROVIDER_AVAIL:
                IRDA_ASSERT(self->dtsap_sel_ctrl != 0, return -1;);
 
                self->client.open_retries = 0;
-               
-               irttp_connect_request(self->client.tsap_ctrl, 
-                                     self->dtsap_sel_ctrl, 
-                                     self->saddr, self->daddr, NULL, 
+
+               irttp_connect_request(self->client.tsap_ctrl,
+                                     self->dtsap_sel_ctrl,
+                                     self->saddr, self->daddr, NULL,
                                      IRLAN_MTU, NULL);
                irlan_next_client_state(self, IRLAN_CONN);
                break;
@@ -158,7 +158,7 @@ static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event,
                irlan_next_client_state(self, IRLAN_IDLE);
 
                /* Give the client a kick! */
-               if ((self->provider.access_type == ACCESS_PEER) && 
+               if ((self->provider.access_type == ACCESS_PEER) &&
                    (self->provider.state != IRLAN_IDLE))
                        irlan_client_wakeup(self, self->saddr, self->daddr);
                break;
@@ -175,7 +175,7 @@ static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
@@ -186,13 +186,13 @@ static int irlan_client_state_query(struct irlan_cb *self, IRLAN_EVENT event,
  *    commands yet.
  *
  */
-static int irlan_client_state_conn(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_conn(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
-       
+
        IRDA_ASSERT(self != NULL, return -1;);
-       
+
        switch (event) {
        case IRLAN_CONNECT_COMPLETE:
                /* Send getinfo cmd */
@@ -212,7 +212,7 @@ static int irlan_client_state_conn(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
@@ -221,24 +221,24 @@ static int irlan_client_state_conn(struct irlan_cb *self, IRLAN_EVENT event,
  *
  *    INFO, We have issued a GetInfo command and is awaiting a reply.
  */
-static int irlan_client_state_info(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_info(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
 
        IRDA_ASSERT(self != NULL, return -1;);
-       
+
        switch (event) {
        case IRLAN_DATA_INDICATION:
                IRDA_ASSERT(skb != NULL, return -1;);
-       
+
                irlan_client_parse_response(self, skb);
-               
+
                irlan_next_client_state(self, IRLAN_MEDIA);
-               
+
                irlan_get_media_char(self);
                break;
-               
+
        case IRLAN_LMP_DISCONNECT:
        case IRLAN_LAP_DISCONNECT:
                irlan_next_client_state(self, IRLAN_IDLE);
@@ -252,7 +252,7 @@ static int irlan_client_state_info(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
@@ -263,11 +263,11 @@ static int irlan_client_state_info(struct irlan_cb *self, IRLAN_EVENT event,
  *    reply.
  *
  */
-static int irlan_client_state_media(struct irlan_cb *self, IRLAN_EVENT event, 
-                                   struct sk_buff *skb) 
+static int irlan_client_state_media(struct irlan_cb *self, IRLAN_EVENT event,
+                                   struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
-       
+
        IRDA_ASSERT(self != NULL, return -1;);
 
        switch(event) {
@@ -289,7 +289,7 @@ static int irlan_client_state_media(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
@@ -300,47 +300,47 @@ static int irlan_client_state_media(struct irlan_cb *self, IRLAN_EVENT event,
  *    reply
  *
  */
-static int irlan_client_state_open(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_open(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        struct qos_info qos;
 
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
-       
+
        IRDA_ASSERT(self != NULL, return -1;);
 
        switch(event) {
        case IRLAN_DATA_INDICATION:
                irlan_client_parse_response(self, skb);
-               
+
                /*
-                *  Check if we have got the remote TSAP for data 
+                *  Check if we have got the remote TSAP for data
                 *  communications
                 */
-               IRDA_ASSERT(self->dtsap_sel_data != 0, return -1;);
+               IRDA_ASSERT(self->dtsap_sel_data != 0, return -1;);
 
                /* Check which access type we are dealing with */
                switch (self->client.access_type) {
                case ACCESS_PEER:
                    if (self->provider.state == IRLAN_OPEN) {
-                           
+
                            irlan_next_client_state(self, IRLAN_ARB);
-                           irlan_do_client_event(self, IRLAN_CHECK_CON_ARB, 
+                           irlan_do_client_event(self, IRLAN_CHECK_CON_ARB,
                                                  NULL);
                    } else {
-                       
+
                            irlan_next_client_state(self, IRLAN_WAIT);
                    }
                    break;
                case ACCESS_DIRECT:
                case ACCESS_HOSTED:
                        qos.link_disc_time.bits = 0x01; /* 3 secs */
-                       
-                       irttp_connect_request(self->tsap_data, 
-                                             self->dtsap_sel_data, 
-                                             self->saddr, self->daddr, &qos, 
+
+                       irttp_connect_request(self->tsap_data,
+                                             self->dtsap_sel_data,
+                                             self->saddr, self->daddr, &qos,
                                              IRLAN_MTU, NULL);
-                       
+
                        irlan_next_client_state(self, IRLAN_DATA);
                        break;
                default:
@@ -359,7 +359,7 @@ static int irlan_client_state_open(struct irlan_cb *self, IRLAN_EVENT event,
                IRDA_DEBUG(2, "%s(), Unknown event %d\n", __FUNCTION__ , event);
                break;
        }
-       
+
        if (skb)
                dev_kfree_skb(skb);
 
@@ -373,13 +373,13 @@ static int irlan_client_state_open(struct irlan_cb *self, IRLAN_EVENT event,
  *    provider OPEN state.
  *
  */
-static int irlan_client_state_wait(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_wait(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
-       
+
        IRDA_ASSERT(self != NULL, return -1;);
-       
+
        switch(event) {
        case IRLAN_PROVIDER_SIGNAL:
                irlan_next_client_state(self, IRLAN_ARB);
@@ -398,36 +398,36 @@ static int irlan_client_state_wait(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
-static int irlan_client_state_arb(struct irlan_cb *self, IRLAN_EVENT event, 
-                                 struct sk_buff *skb) 
+static int irlan_client_state_arb(struct irlan_cb *self, IRLAN_EVENT event,
+                                 struct sk_buff *skb)
 {
        struct qos_info qos;
 
        IRDA_DEBUG(2, "%s()\n", __FUNCTION__ );
 
        IRDA_ASSERT(self != NULL, return -1;);
-       
+
        switch(event) {
        case IRLAN_CHECK_CON_ARB:
                if (self->client.recv_arb_val == self->provider.send_arb_val) {
                        irlan_next_client_state(self, IRLAN_CLOSE);
                        irlan_close_data_channel(self);
-               } else if (self->client.recv_arb_val < 
-                          self->provider.send_arb_val) 
+               } else if (self->client.recv_arb_val <
+                          self->provider.send_arb_val)
                {
                        qos.link_disc_time.bits = 0x01; /* 3 secs */
 
                        irlan_next_client_state(self, IRLAN_DATA);
-                       irttp_connect_request(self->tsap_data, 
-                                             self->dtsap_sel_data, 
-                                             self->saddr, self->daddr, &qos, 
+                       irttp_connect_request(self->tsap_data,
+                                             self->dtsap_sel_data,
+                                             self->saddr, self->daddr, &qos,
                                              IRLAN_MTU, NULL);
                } else if (self->client.recv_arb_val >
-                          self->provider.send_arb_val) 
+                          self->provider.send_arb_val)
                {
                        IRDA_DEBUG(2, "%s(), lost the battle :-(\n", __FUNCTION__ );
                }
@@ -448,7 +448,7 @@ static int irlan_client_state_arb(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
@@ -459,8 +459,8 @@ static int irlan_client_state_arb(struct irlan_cb *self, IRLAN_EVENT event,
  *    the local and remote machines.
  *
  */
-static int irlan_client_state_data(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_data(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        IRDA_DEBUG(4, "%s()\n", __FUNCTION__ );
 
@@ -470,7 +470,7 @@ static int irlan_client_state_data(struct irlan_cb *self, IRLAN_EVENT event,
        switch(event) {
        case IRLAN_DATA_INDICATION:
                irlan_client_parse_response(self, skb);
-               break;          
+               break;
        case IRLAN_LMP_DISCONNECT: /* FALLTHROUGH */
        case IRLAN_LAP_DISCONNECT:
                irlan_next_client_state(self, IRLAN_IDLE);
@@ -481,18 +481,18 @@ static int irlan_client_state_data(struct irlan_cb *self, IRLAN_EVENT event,
        }
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }
 
 /*
  * Function irlan_client_state_close (self, event, skb, info)
  *
- *    
+ *
  *
  */
-static int irlan_client_state_close(struct irlan_cb *self, IRLAN_EVENT event, 
-                                   struct sk_buff *skb) 
+static int irlan_client_state_close(struct irlan_cb *self, IRLAN_EVENT event,
+                                   struct sk_buff *skb)
 {
        IRDA_DEBUG(2, "%s()\n", __FUNCTION__ );
 
@@ -505,17 +505,17 @@ static int irlan_client_state_close(struct irlan_cb *self, IRLAN_EVENT event,
 /*
  * Function irlan_client_state_sync (self, event, skb, info)
  *
- *    
+ *
  *
  */
-static int irlan_client_state_sync(struct irlan_cb *self, IRLAN_EVENT event, 
-                                  struct sk_buff *skb) 
+static int irlan_client_state_sync(struct irlan_cb *self, IRLAN_EVENT event,
+                                  struct sk_buff *skb)
 {
        IRDA_DEBUG(2, "%s()\n", __FUNCTION__ );
-       
+
        if (skb)
                dev_kfree_skb(skb);
-       
+
        return 0;
 }