~vanvugt/ubuntu/natty/bcmwl/fix-793890

« back to all changes in this revision

Viewing changes to src/src/wl/sys/wl_linux.h

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Milone
  • Date: 2010-02-14 19:58:58 UTC
  • mfrom: (2.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100214195858-yw9z3vstz9kyw5jl
Tags: 5.60.48.36+bdcom-0ubuntu1
* New upstream release (LP: #432780):
  - Support up to linux kernel 2.6.31. 2.6.32 support is there
    also but not tested (although reports from users suggests it
    works fine).
  - Support for hidden networks.
  - Support for rfkill in kernels < 2.6.31.
  - Setting power level via 'iwconfig eth1 txpower X' is now
    operational
  - Add support for 4313.
  - Additional channels in both 2.4 and 5 Ghz bands.
  - Fix issue with tkip group keys that caused the following
    message to repeat often:
    TKIP: RX tkey->key_idx=2 frame keyidx=1 priv=ffff8800cf80e840
  - Fix a continuous assoc/disassoc loop (in Ubuntu 8.04)
    with suspend/resume with WPA2 and wpa_supplicant.
  - Fix bug affecting Ubuntu 8.04 which prevented from pinging when
    Linux STA is IBSS creator with WEP.
  - Fix bug affecting Ubuntu 9.04 which prevented from connecting to
    hidden networks after suspend/resume.
  - Fix bug which prevented the driver from associating to AP with
    when transitioning from AES to TKIP encryption.
* debian/patches/0002-Makefile.patch:
  - Refresh patch.
* debian/patches/0003-DEV_WL_IF.patch,
  0004-broadcom-sta-5.10.91.9-linux-2.6.30.patch,
  0005-NET_DEVICE_OPS.patch,
  0006-broadcom-sta-5.10.91.9-linux-2.6.32.patch:
  - Drop patches as they are now part of the upstream code.
* debian/dkms.conf.in:
  - Remove the lines about the above mentioned patches.
* debian/bcmwl-kernel-source.postinst:
  - Make use of /usr/lib/dkms/common.postinst (LP: #497149).
* Bump compat to 5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
 * wl_linux.c exported functions and definitions
3
3
 *
4
 
 * Copyright 2008, Broadcom Corporation
 
4
 * Copyright (C) 2010, Broadcom Corporation
5
5
 * All Rights Reserved.
6
6
 * 
7
 
 *      Unless you and Broadcom execute a separate written software license
8
 
 * agreement governing use of this software, this software is licensed to you
9
 
 * under the terms of the GNU General Public License version 2, available at
10
 
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html (the "GPL"), with the
11
 
 * following added to such license:
12
 
 *      As a special exception, the copyright holders of this software give you
13
 
 * permission to link this software with independent modules, regardless of the
14
 
 * license terms of these independent modules, and to copy and distribute the
15
 
 * resulting executable under terms of your choice, provided that you also meet,
16
 
 * for each linked independent module, the terms and conditions of the license
17
 
 * of that module. An independent module is a module which is not derived from
18
 
 * this software.
19
 
 *
20
7
 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
21
8
 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
22
9
 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
23
10
 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
24
11
 *
25
 
 * $Id: wl_linux.h,v 1.22.2.3 2009/02/27 02:04:03 Exp $
 
12
 * $Id: wl_linux.h,v 1.27.2.4.4.1 2009/11/18 18:51:21 Exp $
26
13
 */
27
14
 
28
15
#ifndef _wl_linux_h_
58
45
        struct wl_if *next;
59
46
        struct wl_info *wl;             
60
47
        struct net_device *dev;         
61
 
        int type;                       
62
48
        struct wlc_if *wlcif;           
63
 
        struct ether_addr remote;       
64
49
        uint subunit;                   
65
50
        bool dev_registed;              
66
51
} wl_if_t;
67
52
 
 
53
struct rfkill_stuff {
 
54
        struct rfkill *rfkill;
 
55
        char rfkill_name[32];
 
56
        char registered;
 
57
};
 
58
 
68
59
struct wl_info {
69
60
        wlc_pub_t       *pub;           
70
61
        void            *wlc;           
72
63
        struct net_device *dev;         
73
64
        spinlock_t      lock;           
74
65
        spinlock_t      isr_lock;       
75
 
        uint            bustype;        
 
66
        uint            bcm_bustype;    
76
67
        bool            piomode;        
77
68
        void *regsva;                   
78
69
        struct net_device_stats stats;  
79
70
        wl_if_t *if_list;               
80
 
        struct wl_info *next;           
81
71
        atomic_t callbacks;             
82
72
        struct wl_timer *timers;        
83
73
        struct tasklet_struct tasklet;  
85
75
        bool            resched;        
86
76
        uint32          pci_psstate[16];        
87
77
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
 
78
#define NUM_GROUP_KEYS 4
 
79
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
 
80
        struct lib80211_crypto_ops *tkipmodops;
 
81
#else
88
82
        struct ieee80211_crypto_ops *tkipmodops;        
 
83
#endif
89
84
        struct ieee80211_tkip_data  *tkip_ucast_data;
90
 
        struct ieee80211_tkip_data  *tkip_bcast_data;
91
 
#endif
 
85
        struct ieee80211_tkip_data  *tkip_bcast_data[NUM_GROUP_KEYS];
 
86
#endif 
92
87
 
93
88
        uint    stats_id;               
94
89
 
98
93
        struct iw_statistics wstats;
99
94
        int             phy_noise;
100
95
#endif 
101
 
 
 
96
#if defined(WL_CONFIG_RFKILL_INPUT)
 
97
        struct rfkill_stuff wl_rfkill;
 
98
        mbool last_phyind;
 
99
#endif 
102
100
};
103
101
 
104
102
#define WL_LOCK(wl)     spin_lock_bh(&(wl)->lock)