aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wimax/i2400m/i2400m.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wimax/i2400m/i2400m.h')
-rw-r--r--drivers/net/wimax/i2400m/i2400m.h36
1 files changed, 9 insertions, 27 deletions
diff --git a/drivers/net/wimax/i2400m/i2400m.h b/drivers/net/wimax/i2400m/i2400m.h
index fa74777fd65f..5eacc653a94d 100644
--- a/drivers/net/wimax/i2400m/i2400m.h
+++ b/drivers/net/wimax/i2400m/i2400m.h
@@ -186,7 +186,7 @@ enum {
186 * struct i2400m_poke_table - Hardware poke table for the Intel 2400m 186 * struct i2400m_poke_table - Hardware poke table for the Intel 2400m
187 * 187 *
188 * This structure will be used to create a device specific poke table 188 * This structure will be used to create a device specific poke table
189 * to put the device in a consistant state at boot time. 189 * to put the device in a consistent state at boot time.
190 * 190 *
191 * @address: The device address to poke 191 * @address: The device address to poke
192 * 192 *
@@ -526,7 +526,7 @@ struct i2400m_barker_db;
526 * 526 *
527 * @barker: barker type that the device uses; this is initialized by 527 * @barker: barker type that the device uses; this is initialized by
528 * i2400m_is_boot_barker() the first time it is called. Then it 528 * i2400m_is_boot_barker() the first time it is called. Then it
529 * won't change during the life cycle of the device and everytime 529 * won't change during the life cycle of the device and every time
530 * a boot barker is received, it is just verified for it being the 530 * a boot barker is received, it is just verified for it being the
531 * same. 531 * same.
532 * 532 *
@@ -632,6 +632,11 @@ struct i2400m {
632 struct work_struct wake_tx_ws; 632 struct work_struct wake_tx_ws;
633 struct sk_buff *wake_tx_skb; 633 struct sk_buff *wake_tx_skb;
634 634
635 struct work_struct reset_ws;
636 const char *reset_reason;
637
638 struct work_struct recovery_ws;
639
635 struct dentry *debugfs_dentry; 640 struct dentry *debugfs_dentry;
636 const char *fw_name; /* name of the current firmware image */ 641 const char *fw_name; /* name of the current firmware image */
637 unsigned long fw_version; /* version of the firmware interface */ 642 unsigned long fw_version; /* version of the firmware interface */
@@ -698,7 +703,7 @@ enum i2400m_bm_cmd_flags {
698 * @I2400M_BRI_MAC_REINIT: We need to reinitialize the boot 703 * @I2400M_BRI_MAC_REINIT: We need to reinitialize the boot
699 * rom after reading the MAC address. This is quite a dirty hack, 704 * rom after reading the MAC address. This is quite a dirty hack,
700 * if you ask me -- the device requires the bootrom to be 705 * if you ask me -- the device requires the bootrom to be
701 * intialized after reading the MAC address. 706 * initialized after reading the MAC address.
702 */ 707 */
703enum i2400m_bri { 708enum i2400m_bri {
704 I2400M_BRI_SOFT = 1 << 1, 709 I2400M_BRI_SOFT = 1 << 1,
@@ -896,42 +901,19 @@ struct device *i2400m_dev(struct i2400m *i2400m)
896 return i2400m->wimax_dev.net_dev->dev.parent; 901 return i2400m->wimax_dev.net_dev->dev.parent;
897} 902}
898 903
899/*
900 * Helper for scheduling simple work functions
901 *
902 * This struct can get any kind of payload attached (normally in the
903 * form of a struct where you pack the stuff you want to pass to the
904 * _work function).
905 */
906struct i2400m_work {
907 struct work_struct ws;
908 struct i2400m *i2400m;
909 size_t pl_size;
910 u8 pl[0];
911};
912
913extern int i2400m_schedule_work(struct i2400m *,
914 void (*)(struct work_struct *), gfp_t,
915 const void *, size_t);
916
917extern int i2400m_msg_check_status(const struct i2400m_l3l4_hdr *, 904extern int i2400m_msg_check_status(const struct i2400m_l3l4_hdr *,
918 char *, size_t); 905 char *, size_t);
919extern int i2400m_msg_size_check(struct i2400m *, 906extern int i2400m_msg_size_check(struct i2400m *,
920 const struct i2400m_l3l4_hdr *, size_t); 907 const struct i2400m_l3l4_hdr *, size_t);
921extern struct sk_buff *i2400m_msg_to_dev(struct i2400m *, const void *, size_t); 908extern struct sk_buff *i2400m_msg_to_dev(struct i2400m *, const void *, size_t);
922extern void i2400m_msg_to_dev_cancel_wait(struct i2400m *, int); 909extern void i2400m_msg_to_dev_cancel_wait(struct i2400m *, int);
923extern void i2400m_msg_ack_hook(struct i2400m *,
924 const struct i2400m_l3l4_hdr *, size_t);
925extern void i2400m_report_hook(struct i2400m *, 910extern void i2400m_report_hook(struct i2400m *,
926 const struct i2400m_l3l4_hdr *, size_t); 911 const struct i2400m_l3l4_hdr *, size_t);
927extern void i2400m_report_hook_work(struct work_struct *); 912extern void i2400m_report_hook_work(struct work_struct *);
928extern int i2400m_cmd_enter_powersave(struct i2400m *); 913extern int i2400m_cmd_enter_powersave(struct i2400m *);
929extern int i2400m_cmd_get_state(struct i2400m *);
930extern int i2400m_cmd_exit_idle(struct i2400m *); 914extern int i2400m_cmd_exit_idle(struct i2400m *);
931extern struct sk_buff *i2400m_get_device_info(struct i2400m *); 915extern struct sk_buff *i2400m_get_device_info(struct i2400m *);
932extern int i2400m_firmware_check(struct i2400m *); 916extern int i2400m_firmware_check(struct i2400m *);
933extern int i2400m_set_init_config(struct i2400m *,
934 const struct i2400m_tlv_hdr **, size_t);
935extern int i2400m_set_idle_timeout(struct i2400m *, unsigned); 917extern int i2400m_set_idle_timeout(struct i2400m *, unsigned);
936 918
937static inline 919static inline
@@ -946,7 +928,7 @@ extern void i2400m_report_tlv_rf_switches_status(
946 struct i2400m *, const struct i2400m_tlv_rf_switches_status *); 928 struct i2400m *, const struct i2400m_tlv_rf_switches_status *);
947 929
948/* 930/*
949 * Helpers for firmware backwards compability 931 * Helpers for firmware backwards compatibility
950 * 932 *
951 * As we aim to support at least the firmware version that was 933 * As we aim to support at least the firmware version that was
952 * released with the previous kernel/driver release, some code will be 934 * released with the previous kernel/driver release, some code will be