Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
d3bd1b4c
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d3bd1b4c
编写于
2月 22, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
28801f35
0bf719df
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
129 addition
and
86 deletion
+129
-86
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+3
-0
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+5
-2
drivers/net/wireless/ath/ath5k/phy.c
drivers/net/wireless/ath/ath5k/phy.c
+88
-55
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/ath9k.h
+0
-6
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c
+0
-8
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/main.c
+0
-8
drivers/net/wireless/p54/p54pci.c
drivers/net/wireless/p54/p54pci.c
+9
-5
drivers/net/wireless/rt2x00/rt2800pci.c
drivers/net/wireless/rt2x00/rt2800pci.c
+8
-0
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2800usb.c
+6
-0
net/bluetooth/rfcomm/tty.c
net/bluetooth/rfcomm/tty.c
+2
-0
net/mac80211/mlme.c
net/mac80211/mlme.c
+6
-0
net/wireless/wext-compat.c
net/wireless/wext-compat.c
+2
-2
未找到文件。
drivers/bluetooth/ath3k.c
浏览文件 @
d3bd1b4c
...
...
@@ -41,6 +41,9 @@ static struct usb_device_id ath3k_table[] = {
/* Atheros AR9285 Malbec with sflash firmware */
{
USB_DEVICE
(
0x03F0
,
0x311D
)
},
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xE02C
)
},
{
}
/* Terminating entry */
};
...
...
drivers/bluetooth/btusb.c
浏览文件 @
d3bd1b4c
...
...
@@ -105,6 +105,9 @@ static struct usb_device_id blacklist_table[] = {
/* Atheros AR9285 Malbec with sflash firmware */
{
USB_DEVICE
(
0x03f0
,
0x311d
),
.
driver_info
=
BTUSB_IGNORE
},
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xe02c
),
.
driver_info
=
BTUSB_IGNORE
},
/* Broadcom BCM2035 */
{
USB_DEVICE
(
0x0a5c
,
0x2035
),
.
driver_info
=
BTUSB_WRONG_SCO_MTU
},
{
USB_DEVICE
(
0x0a5c
,
0x200a
),
.
driver_info
=
BTUSB_WRONG_SCO_MTU
},
...
...
@@ -829,7 +832,7 @@ static void btusb_work(struct work_struct *work)
if
(
hdev
->
conn_hash
.
sco_num
>
0
)
{
if
(
!
test_bit
(
BTUSB_DID_ISO_RESUME
,
&
data
->
flags
))
{
err
=
usb_autopm_get_interface
(
data
->
isoc
);
err
=
usb_autopm_get_interface
(
data
->
isoc
?
data
->
isoc
:
data
->
intf
);
if
(
err
<
0
)
{
clear_bit
(
BTUSB_ISOC_RUNNING
,
&
data
->
flags
);
usb_kill_anchored_urbs
(
&
data
->
isoc_anchor
);
...
...
@@ -858,7 +861,7 @@ static void btusb_work(struct work_struct *work)
__set_isoc_interface
(
hdev
,
0
);
if
(
test_and_clear_bit
(
BTUSB_DID_ISO_RESUME
,
&
data
->
flags
))
usb_autopm_put_interface
(
data
->
isoc
);
usb_autopm_put_interface
(
data
->
isoc
?
data
->
isoc
:
data
->
intf
);
}
}
...
...
drivers/net/wireless/ath/ath5k/phy.c
浏览文件 @
d3bd1b4c
...
...
@@ -282,6 +282,34 @@ int ath5k_hw_phy_disable(struct ath5k_hw *ah)
return
0
;
}
/*
* Wait for synth to settle
*/
static
void
ath5k_hw_wait_for_synth
(
struct
ath5k_hw
*
ah
,
struct
ieee80211_channel
*
channel
)
{
/*
* On 5211+ read activation -> rx delay
* and use it (100ns steps).
*/
if
(
ah
->
ah_version
!=
AR5K_AR5210
)
{
u32
delay
;
delay
=
ath5k_hw_reg_read
(
ah
,
AR5K_PHY_RX_DELAY
)
&
AR5K_PHY_RX_DELAY_M
;
delay
=
(
channel
->
hw_value
&
CHANNEL_CCK
)
?
((
delay
<<
2
)
/
22
)
:
(
delay
/
10
);
if
(
ah
->
ah_bwmode
==
AR5K_BWMODE_10MHZ
)
delay
=
delay
<<
1
;
if
(
ah
->
ah_bwmode
==
AR5K_BWMODE_5MHZ
)
delay
=
delay
<<
2
;
/* XXX: /2 on turbo ? Let's be safe
* for now */
udelay
(
100
+
delay
);
}
else
{
mdelay
(
1
);
}
}
/**********************\
* RF Gain optimization *
...
...
@@ -1253,6 +1281,7 @@ static int ath5k_hw_channel(struct ath5k_hw *ah,
case
AR5K_RF5111
:
ret
=
ath5k_hw_rf5111_channel
(
ah
,
channel
);
break
;
case
AR5K_RF2317
:
case
AR5K_RF2425
:
ret
=
ath5k_hw_rf2425_channel
(
ah
,
channel
);
break
;
...
...
@@ -3237,6 +3266,13 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
/* Failed */
if
(
i
>=
100
)
return
-
EIO
;
/* Set channel and wait for synth */
ret
=
ath5k_hw_channel
(
ah
,
channel
);
if
(
ret
)
return
ret
;
ath5k_hw_wait_for_synth
(
ah
,
channel
);
}
/*
...
...
@@ -3251,13 +3287,53 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
if
(
ret
)
return
ret
;
/* Write OFDM timings on 5212*/
if
(
ah
->
ah_version
==
AR5K_AR5212
&&
channel
->
hw_value
&
CHANNEL_OFDM
)
{
ret
=
ath5k_hw_write_ofdm_timings
(
ah
,
channel
);
if
(
ret
)
return
ret
;
/* Spur info is available only from EEPROM versions
* greater than 5.3, but the EEPROM routines will use
* static values for older versions */
if
(
ah
->
ah_mac_srev
>=
AR5K_SREV_AR5424
)
ath5k_hw_set_spur_mitigation_filter
(
ah
,
channel
);
}
/* If we used fast channel switching
* we are done, release RF bus and
* fire up NF calibration.
*
* Note: Only NF calibration due to
* channel change, not AGC calibration
* since AGC is still running !
*/
if
(
fast
)
{
/*
* Release RF Bus grant
*/
AR5K_REG_DISABLE_BITS
(
ah
,
AR5K_PHY_RFBUS_REQ
,
AR5K_PHY_RFBUS_REQ_REQUEST
);
/*
* Start NF calibration
*/
AR5K_REG_ENABLE_BITS
(
ah
,
AR5K_PHY_AGCCTL
,
AR5K_PHY_AGCCTL_NF
);
return
ret
;
}
/*
* For 5210 we do all initialization using
* initvals, so we don't have to modify
* any settings (5210 also only supports
* a/aturbo modes)
*/
if
(
(
ah
->
ah_version
!=
AR5K_AR5210
)
&&
!
fast
)
{
if
(
ah
->
ah_version
!=
AR5K_AR5210
)
{
/*
* Write initial RF gain settings
...
...
@@ -3276,22 +3352,6 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
if
(
ret
)
return
ret
;
/* Write OFDM timings on 5212*/
if
(
ah
->
ah_version
==
AR5K_AR5212
&&
channel
->
hw_value
&
CHANNEL_OFDM
)
{
ret
=
ath5k_hw_write_ofdm_timings
(
ah
,
channel
);
if
(
ret
)
return
ret
;
/* Spur info is available only from EEPROM versions
* greater than 5.3, but the EEPROM routines will use
* static values for older versions */
if
(
ah
->
ah_mac_srev
>=
AR5K_SREV_AR5424
)
ath5k_hw_set_spur_mitigation_filter
(
ah
,
channel
);
}
/*Enable/disable 802.11b mode on 5111
(enable 2111 frequency converter + CCK)*/
if
(
ah
->
ah_radio
==
AR5K_RF5111
)
{
...
...
@@ -3322,47 +3382,20 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
*/
ath5k_hw_reg_write
(
ah
,
AR5K_PHY_ACT_ENABLE
,
AR5K_PHY_ACT
);
ath5k_hw_wait_for_synth
(
ah
,
channel
);
/*
*
On 5211+ read activation -> rx dela
y
*
and use it.
*
Perform ADC test to see if baseband is read
y
*
Set tx hold and check adc test register
*/
if
(
ah
->
ah_version
!=
AR5K_AR5210
)
{
u32
delay
;
delay
=
ath5k_hw_reg_read
(
ah
,
AR5K_PHY_RX_DELAY
)
&
AR5K_PHY_RX_DELAY_M
;
delay
=
(
channel
->
hw_value
&
CHANNEL_CCK
)
?
((
delay
<<
2
)
/
22
)
:
(
delay
/
10
);
if
(
ah
->
ah_bwmode
==
AR5K_BWMODE_10MHZ
)
delay
=
delay
<<
1
;
if
(
ah
->
ah_bwmode
==
AR5K_BWMODE_5MHZ
)
delay
=
delay
<<
2
;
/* XXX: /2 on turbo ? Let's be safe
* for now */
udelay
(
100
+
delay
);
}
else
{
mdelay
(
1
);
}
if
(
fast
)
/*
* Release RF Bus grant
*/
AR5K_REG_DISABLE_BITS
(
ah
,
AR5K_PHY_RFBUS_REQ
,
AR5K_PHY_RFBUS_REQ_REQUEST
);
else
{
/*
* Perform ADC test to see if baseband is ready
* Set tx hold and check adc test register
*/
phy_tst1
=
ath5k_hw_reg_read
(
ah
,
AR5K_PHY_TST1
);
ath5k_hw_reg_write
(
ah
,
AR5K_PHY_TST1_TXHOLD
,
AR5K_PHY_TST1
);
for
(
i
=
0
;
i
<=
20
;
i
++
)
{
if
(
!
(
ath5k_hw_reg_read
(
ah
,
AR5K_PHY_ADC_TEST
)
&
0x10
))
break
;
udelay
(
200
);
}
ath5k_hw_reg_write
(
ah
,
phy_tst1
,
AR5K_PHY_TST1
);
phy_tst1
=
ath5k_hw_reg_read
(
ah
,
AR5K_PHY_TST1
);
ath5k_hw_reg_write
(
ah
,
AR5K_PHY_TST1_TXHOLD
,
AR5K_PHY_TST1
);
for
(
i
=
0
;
i
<=
20
;
i
++
)
{
if
(
!
(
ath5k_hw_reg_read
(
ah
,
AR5K_PHY_ADC_TEST
)
&
0x10
))
break
;
udelay
(
200
);
}
ath5k_hw_reg_write
(
ah
,
phy_tst1
,
AR5K_PHY_TST1
);
/*
* Start automatic gain control calibration
...
...
drivers/net/wireless/ath/ath9k/ath9k.h
浏览文件 @
d3bd1b4c
...
...
@@ -21,7 +21,6 @@
#include <linux/device.h>
#include <linux/leds.h>
#include <linux/completion.h>
#include <linux/pm_qos_params.h>
#include "debug.h"
#include "common.h"
...
...
@@ -57,8 +56,6 @@ struct ath_node;
#define A_MAX(a, b) ((a) > (b) ? (a) : (b))
#define ATH9K_PM_QOS_DEFAULT_VALUE 55
#define TSF_TO_TU(_h,_l) \
((((u32)(_h)) << 22) | (((u32)(_l)) >> 10))
...
...
@@ -633,8 +630,6 @@ struct ath_softc {
struct
ath_descdma
txsdma
;
struct
ath_ant_comb
ant_comb
;
struct
pm_qos_request_list
pm_qos_req
;
};
struct
ath_wiphy
{
...
...
@@ -666,7 +661,6 @@ static inline void ath_read_cachesize(struct ath_common *common, int *csz)
extern
struct
ieee80211_ops
ath9k_ops
;
extern
int
ath9k_modparam_nohwcrypt
;
extern
int
led_blink
;
extern
int
ath9k_pm_qos_value
;
extern
bool
is_ath9k_unloaded
;
irqreturn_t
ath_isr
(
int
irq
,
void
*
dev
);
...
...
drivers/net/wireless/ath/ath9k/init.c
浏览文件 @
d3bd1b4c
...
...
@@ -41,10 +41,6 @@ static int ath9k_btcoex_enable;
module_param_named
(
btcoex_enable
,
ath9k_btcoex_enable
,
int
,
0444
);
MODULE_PARM_DESC
(
btcoex_enable
,
"Enable wifi-BT coexistence"
);
int
ath9k_pm_qos_value
=
ATH9K_PM_QOS_DEFAULT_VALUE
;
module_param_named
(
pmqos
,
ath9k_pm_qos_value
,
int
,
S_IRUSR
|
S_IRGRP
|
S_IROTH
);
MODULE_PARM_DESC
(
pmqos
,
"User specified PM-QOS value"
);
bool
is_ath9k_unloaded
;
/* We use the hw_value as an index into our private channel structure */
...
...
@@ -762,9 +758,6 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid,
ath_init_leds
(
sc
);
ath_start_rfkill_poll
(
sc
);
pm_qos_add_request
(
&
sc
->
pm_qos_req
,
PM_QOS_CPU_DMA_LATENCY
,
PM_QOS_DEFAULT_VALUE
);
return
0
;
error_world:
...
...
@@ -831,7 +824,6 @@ void ath9k_deinit_device(struct ath_softc *sc)
}
ieee80211_unregister_hw
(
hw
);
pm_qos_remove_request
(
&
sc
->
pm_qos_req
);
ath_rx_cleanup
(
sc
);
ath_tx_cleanup
(
sc
);
ath9k_deinit_softc
(
sc
);
...
...
drivers/net/wireless/ath/ath9k/main.c
浏览文件 @
d3bd1b4c
...
...
@@ -1173,12 +1173,6 @@ static int ath9k_start(struct ieee80211_hw *hw)
ath9k_btcoex_timer_resume
(
sc
);
}
/* User has the option to provide pm-qos value as a module
* parameter rather than using the default value of
* 'ATH9K_PM_QOS_DEFAULT_VALUE'.
*/
pm_qos_update_request
(
&
sc
->
pm_qos_req
,
ath9k_pm_qos_value
);
if
(
ah
->
caps
.
pcie_lcr_extsync_en
&&
common
->
bus_ops
->
extn_synch_en
)
common
->
bus_ops
->
extn_synch_en
(
common
);
...
...
@@ -1345,8 +1339,6 @@ static void ath9k_stop(struct ieee80211_hw *hw)
sc
->
sc_flags
|=
SC_OP_INVALID
;
pm_qos_update_request
(
&
sc
->
pm_qos_req
,
PM_QOS_DEFAULT_VALUE
);
mutex_unlock
(
&
sc
->
mutex
);
ath_dbg
(
common
,
ATH_DBG_CONFIG
,
"Driver halt
\n
"
);
...
...
drivers/net/wireless/p54/p54pci.c
浏览文件 @
d3bd1b4c
...
...
@@ -199,6 +199,7 @@ static void p54p_check_rx_ring(struct ieee80211_hw *dev, u32 *index,
while
(
i
!=
idx
)
{
u16
len
;
struct
sk_buff
*
skb
;
dma_addr_t
dma_addr
;
desc
=
&
ring
[
i
];
len
=
le16_to_cpu
(
desc
->
len
);
skb
=
rx_buf
[
i
];
...
...
@@ -216,17 +217,20 @@ static void p54p_check_rx_ring(struct ieee80211_hw *dev, u32 *index,
len
=
priv
->
common
.
rx_mtu
;
}
dma_addr
=
le32_to_cpu
(
desc
->
host_addr
);
pci_dma_sync_single_for_cpu
(
priv
->
pdev
,
dma_addr
,
priv
->
common
.
rx_mtu
+
32
,
PCI_DMA_FROMDEVICE
);
skb_put
(
skb
,
len
);
if
(
p54_rx
(
dev
,
skb
))
{
pci_unmap_single
(
priv
->
pdev
,
le32_to_cpu
(
desc
->
host_addr
),
priv
->
common
.
rx_mtu
+
32
,
PCI_DMA_FROMDEVICE
);
pci_unmap_single
(
priv
->
pdev
,
dma_addr
,
priv
->
common
.
rx_mtu
+
32
,
PCI_DMA_FROMDEVICE
);
rx_buf
[
i
]
=
NULL
;
desc
->
host_addr
=
0
;
desc
->
host_addr
=
cpu_to_le32
(
0
)
;
}
else
{
skb_trim
(
skb
,
0
);
pci_dma_sync_single_for_device
(
priv
->
pdev
,
dma_addr
,
priv
->
common
.
rx_mtu
+
32
,
PCI_DMA_FROMDEVICE
);
desc
->
len
=
cpu_to_le16
(
priv
->
common
.
rx_mtu
+
32
);
}
...
...
drivers/net/wireless/rt2x00/rt2800pci.c
浏览文件 @
d3bd1b4c
...
...
@@ -652,6 +652,12 @@ static void rt2800pci_fill_rxdone(struct queue_entry *entry,
*/
rxdesc
->
flags
|=
RX_FLAG_IV_STRIPPED
;
/*
* The hardware has already checked the Michael Mic and has
* stripped it from the frame. Signal this to mac80211.
*/
rxdesc
->
flags
|=
RX_FLAG_MMIC_STRIPPED
;
if
(
rxdesc
->
cipher_status
==
RX_CRYPTO_SUCCESS
)
rxdesc
->
flags
|=
RX_FLAG_DECRYPTED
;
else
if
(
rxdesc
->
cipher_status
==
RX_CRYPTO_FAIL_MIC
)
...
...
@@ -1065,6 +1071,8 @@ static DEFINE_PCI_DEVICE_TABLE(rt2800pci_device_table) = {
{
PCI_DEVICE
(
0x1814
,
0x3390
),
PCI_DEVICE_DATA
(
&
rt2800pci_ops
)
},
#endif
#ifdef CONFIG_RT2800PCI_RT35XX
{
PCI_DEVICE
(
0x1432
,
0x7711
),
PCI_DEVICE_DATA
(
&
rt2800pci_ops
)
},
{
PCI_DEVICE
(
0x1432
,
0x7722
),
PCI_DEVICE_DATA
(
&
rt2800pci_ops
)
},
{
PCI_DEVICE
(
0x1814
,
0x3060
),
PCI_DEVICE_DATA
(
&
rt2800pci_ops
)
},
{
PCI_DEVICE
(
0x1814
,
0x3062
),
PCI_DEVICE_DATA
(
&
rt2800pci_ops
)
},
{
PCI_DEVICE
(
0x1814
,
0x3562
),
PCI_DEVICE_DATA
(
&
rt2800pci_ops
)
},
...
...
drivers/net/wireless/rt2x00/rt2800usb.c
浏览文件 @
d3bd1b4c
...
...
@@ -486,6 +486,12 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry,
*/
rxdesc
->
flags
|=
RX_FLAG_IV_STRIPPED
;
/*
* The hardware has already checked the Michael Mic and has
* stripped it from the frame. Signal this to mac80211.
*/
rxdesc
->
flags
|=
RX_FLAG_MMIC_STRIPPED
;
if
(
rxdesc
->
cipher_status
==
RX_CRYPTO_SUCCESS
)
rxdesc
->
flags
|=
RX_FLAG_DECRYPTED
;
else
if
(
rxdesc
->
cipher_status
==
RX_CRYPTO_FAIL_MIC
)
...
...
net/bluetooth/rfcomm/tty.c
浏览文件 @
d3bd1b4c
...
...
@@ -727,7 +727,9 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
break
;
}
tty_unlock
();
schedule
();
tty_lock
();
}
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
&
dev
->
wait
,
&
wait
);
...
...
net/mac80211/mlme.c
浏览文件 @
d3bd1b4c
...
...
@@ -1033,6 +1033,12 @@ void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata,
if
(
is_multicast_ether_addr
(
hdr
->
addr1
))
return
;
/*
* In case we receive frames after disassociation.
*/
if
(
!
sdata
->
u
.
mgd
.
associated
)
return
;
ieee80211_sta_reset_conn_monitor
(
sdata
);
}
...
...
net/wireless/wext-compat.c
浏览文件 @
d3bd1b4c
...
...
@@ -802,11 +802,11 @@ int cfg80211_wext_siwfreq(struct net_device *dev,
return
freq
;
if
(
freq
==
0
)
return
-
EINVAL
;
wdev_lock
(
wdev
);
mutex_lock
(
&
rdev
->
devlist_mtx
);
wdev_lock
(
wdev
);
err
=
cfg80211_set_freq
(
rdev
,
wdev
,
freq
,
NL80211_CHAN_NO_HT
);
mutex_unlock
(
&
rdev
->
devlist_mtx
);
wdev_unlock
(
wdev
);
mutex_unlock
(
&
rdev
->
devlist_mtx
);
return
err
;
default:
return
-
EOPNOTSUPP
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录