aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/caif
diff options
context:
space:
mode:
authorSjur Braendeland <sjur.brandeland@stericsson.com>2010-04-28 04:54:37 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-28 15:55:13 -0400
commit8d545c8f958f5f433c50a00762ce1f231ed56eee (patch)
treef5688212d86c0bc6bf0ba8b02f57fca77de3145e /include/net/caif
parent5b2086567503f9b55136642031ec0067319f58e0 (diff)
caif: Disconnect without waiting for response
Changes: o Function cfcnfg_disconn_adapt_layer is changed to do asynchronous disconnect, not waiting for any response from the modem. Due to this the function cfcnfg_linkdestroy_rsp does nothing anymore. o Because disconnect may take down a connection before a connect response is received the function cfcnfg_linkup_rsp is checking if the client is still waiting for the response, if not a disconnect request is sent to the modem. o cfctrl is no longer keeping track of pending disconnect requests. o Added function cfctrl_cancel_req, which is used for deleting a pending connect request if disconnect is done before connect response is received. o Removed unused function cfctrl_insert_req2 o Added better handling of connect reject from modem. Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/caif')
-rw-r--r--include/net/caif/cfctrl.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h
index dee25b86caa0..997603f2bf4c 100644
--- a/include/net/caif/cfctrl.h
+++ b/include/net/caif/cfctrl.h
@@ -43,8 +43,7 @@ struct cfctrl_rsp {
43 void (*linksetup_rsp)(struct cflayer *layer, u8 linkid, 43 void (*linksetup_rsp)(struct cflayer *layer, u8 linkid,
44 enum cfctrl_srv serv, u8 phyid, 44 enum cfctrl_srv serv, u8 phyid,
45 struct cflayer *adapt_layer); 45 struct cflayer *adapt_layer);
46 void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid, 46 void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid);
47 struct cflayer *client_layer);
48 void (*linkerror_ind)(void); 47 void (*linkerror_ind)(void);
49 void (*enum_rsp)(void); 48 void (*enum_rsp)(void);
50 void (*sleep_rsp)(void); 49 void (*sleep_rsp)(void);
@@ -117,7 +116,7 @@ struct cfctrl {
117}; 116};
118 117
119void cfctrl_enum_req(struct cflayer *cfctrl, u8 physlinkid); 118void cfctrl_enum_req(struct cflayer *cfctrl, u8 physlinkid);
120void cfctrl_linkup_request(struct cflayer *cfctrl, 119int cfctrl_linkup_request(struct cflayer *cfctrl,
121 struct cfctrl_link_param *param, 120 struct cfctrl_link_param *param,
122 struct cflayer *user_layer); 121 struct cflayer *user_layer);
123int cfctrl_linkdown_req(struct cflayer *cfctrl, u8 linkid, 122int cfctrl_linkdown_req(struct cflayer *cfctrl, u8 linkid,
@@ -135,4 +134,6 @@ void cfctrl_insert_req(struct cfctrl *ctrl,
135 struct cfctrl_request_info *req); 134 struct cfctrl_request_info *req);
136struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl, 135struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
137 struct cfctrl_request_info *req); 136 struct cfctrl_request_info *req);
137void cfctrl_cancel_req(struct cflayer *layr, struct cflayer *adap_layer);
138
138#endif /* CFCTRL_H_ */ 139#endif /* CFCTRL_H_ */