Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
dd503040
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dd503040
编写于
4月 14, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
38a2f372
332704a5
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
39 addition
and
46 deletion
+39
-46
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/hif_usb.c
+2
-2
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.c
+0
-9
drivers/net/wireless/ath/ath9k/mac.c
drivers/net/wireless/ath/ath9k/mac.c
+22
-3
drivers/net/wireless/ath/ath9k/mac.h
drivers/net/wireless/ath/ath9k/mac.h
+1
-1
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/ath/ath9k/recv.c
+3
-3
drivers/net/wireless/iwlegacy/iwl-3945-hw.h
drivers/net/wireless/iwlegacy/iwl-3945-hw.h
+0
-2
drivers/net/wireless/iwlegacy/iwl-4965-hw.h
drivers/net/wireless/iwlegacy/iwl-4965-hw.h
+0
-3
drivers/net/wireless/iwlegacy/iwl-core.c
drivers/net/wireless/iwlegacy/iwl-core.c
+11
-6
drivers/net/wireless/iwlegacy/iwl-eeprom.c
drivers/net/wireless/iwlegacy/iwl-eeprom.c
+0
-7
drivers/net/wireless/iwlegacy/iwl3945-base.c
drivers/net/wireless/iwlegacy/iwl3945-base.c
+0
-4
drivers/net/wireless/iwlegacy/iwl4965-base.c
drivers/net/wireless/iwlegacy/iwl4965-base.c
+0
-6
未找到文件。
drivers/net/wireless/ath/ath9k/hif_usb.c
浏览文件 @
dd503040
...
@@ -1040,7 +1040,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
...
@@ -1040,7 +1040,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
}
}
ret
=
ath9k_htc_hw_init
(
hif_dev
->
htc_handle
,
ret
=
ath9k_htc_hw_init
(
hif_dev
->
htc_handle
,
&
hif_dev
->
udev
->
dev
,
hif_dev
->
device_id
,
&
interface
->
dev
,
hif_dev
->
device_id
,
hif_dev
->
udev
->
product
,
id
->
driver_info
);
hif_dev
->
udev
->
product
,
id
->
driver_info
);
if
(
ret
)
{
if
(
ret
)
{
ret
=
-
EINVAL
;
ret
=
-
EINVAL
;
...
@@ -1158,7 +1158,7 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface)
...
@@ -1158,7 +1158,7 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface)
#endif
#endif
static
struct
usb_driver
ath9k_hif_usb_driver
=
{
static
struct
usb_driver
ath9k_hif_usb_driver
=
{
.
name
=
"ath9k_hif_usb"
,
.
name
=
KBUILD_MODNAME
,
.
probe
=
ath9k_hif_usb_probe
,
.
probe
=
ath9k_hif_usb_probe
,
.
disconnect
=
ath9k_hif_usb_disconnect
,
.
disconnect
=
ath9k_hif_usb_disconnect
,
#ifdef CONFIG_PM
#ifdef CONFIG_PM
...
...
drivers/net/wireless/ath/ath9k/hw.c
浏览文件 @
dd503040
...
@@ -1254,15 +1254,6 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
...
@@ -1254,15 +1254,6 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
ah
->
txchainmask
=
common
->
tx_chainmask
;
ah
->
txchainmask
=
common
->
tx_chainmask
;
ah
->
rxchainmask
=
common
->
rx_chainmask
;
ah
->
rxchainmask
=
common
->
rx_chainmask
;
if
((
common
->
bus_ops
->
ath_bus_type
!=
ATH_USB
)
&&
!
ah
->
chip_fullsleep
)
{
ath9k_hw_abortpcurecv
(
ah
);
if
(
!
ath9k_hw_stopdmarecv
(
ah
))
{
ath_dbg
(
common
,
ATH_DBG_XMIT
,
"Failed to stop receive dma
\n
"
);
bChannelChange
=
false
;
}
}
if
(
!
ath9k_hw_setpower
(
ah
,
ATH9K_PM_AWAKE
))
if
(
!
ath9k_hw_setpower
(
ah
,
ATH9K_PM_AWAKE
))
return
-
EIO
;
return
-
EIO
;
...
...
drivers/net/wireless/ath/ath9k/mac.c
浏览文件 @
dd503040
...
@@ -751,28 +751,47 @@ void ath9k_hw_abortpcurecv(struct ath_hw *ah)
...
@@ -751,28 +751,47 @@ void ath9k_hw_abortpcurecv(struct ath_hw *ah)
}
}
EXPORT_SYMBOL
(
ath9k_hw_abortpcurecv
);
EXPORT_SYMBOL
(
ath9k_hw_abortpcurecv
);
bool
ath9k_hw_stopdmarecv
(
struct
ath_hw
*
ah
)
bool
ath9k_hw_stopdmarecv
(
struct
ath_hw
*
ah
,
bool
*
reset
)
{
{
#define AH_RX_STOP_DMA_TIMEOUT 10000
/* usec */
#define AH_RX_STOP_DMA_TIMEOUT 10000
/* usec */
#define AH_RX_TIME_QUANTUM 100
/* usec */
#define AH_RX_TIME_QUANTUM 100
/* usec */
struct
ath_common
*
common
=
ath9k_hw_common
(
ah
);
struct
ath_common
*
common
=
ath9k_hw_common
(
ah
);
u32
mac_status
,
last_mac_status
=
0
;
int
i
;
int
i
;
/* Enable access to the DMA observation bus */
REG_WRITE
(
ah
,
AR_MACMISC
,
((
AR_MACMISC_DMA_OBS_LINE_8
<<
AR_MACMISC_DMA_OBS_S
)
|
(
AR_MACMISC_MISC_OBS_BUS_1
<<
AR_MACMISC_MISC_OBS_BUS_MSB_S
)));
REG_WRITE
(
ah
,
AR_CR
,
AR_CR_RXD
);
REG_WRITE
(
ah
,
AR_CR
,
AR_CR_RXD
);
/* Wait for rx enable bit to go low */
/* Wait for rx enable bit to go low */
for
(
i
=
AH_RX_STOP_DMA_TIMEOUT
/
AH_TIME_QUANTUM
;
i
!=
0
;
i
--
)
{
for
(
i
=
AH_RX_STOP_DMA_TIMEOUT
/
AH_TIME_QUANTUM
;
i
!=
0
;
i
--
)
{
if
((
REG_READ
(
ah
,
AR_CR
)
&
AR_CR_RXE
)
==
0
)
if
((
REG_READ
(
ah
,
AR_CR
)
&
AR_CR_RXE
)
==
0
)
break
;
break
;
if
(
!
AR_SREV_9300_20_OR_LATER
(
ah
))
{
mac_status
=
REG_READ
(
ah
,
AR_DMADBG_7
)
&
0x7f0
;
if
(
mac_status
==
0x1c0
&&
mac_status
==
last_mac_status
)
{
*
reset
=
true
;
break
;
}
last_mac_status
=
mac_status
;
}
udelay
(
AH_TIME_QUANTUM
);
udelay
(
AH_TIME_QUANTUM
);
}
}
if
(
i
==
0
)
{
if
(
i
==
0
)
{
ath_err
(
common
,
ath_err
(
common
,
"DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x
\n
"
,
"DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x
DMADBG_7=0x%08x
\n
"
,
AH_RX_STOP_DMA_TIMEOUT
/
1000
,
AH_RX_STOP_DMA_TIMEOUT
/
1000
,
REG_READ
(
ah
,
AR_CR
),
REG_READ
(
ah
,
AR_CR
),
REG_READ
(
ah
,
AR_DIAG_SW
));
REG_READ
(
ah
,
AR_DIAG_SW
),
REG_READ
(
ah
,
AR_DMADBG_7
));
return
false
;
return
false
;
}
else
{
}
else
{
return
true
;
return
true
;
...
...
drivers/net/wireless/ath/ath9k/mac.h
浏览文件 @
dd503040
...
@@ -695,7 +695,7 @@ bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set);
...
@@ -695,7 +695,7 @@ bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set);
void
ath9k_hw_putrxbuf
(
struct
ath_hw
*
ah
,
u32
rxdp
);
void
ath9k_hw_putrxbuf
(
struct
ath_hw
*
ah
,
u32
rxdp
);
void
ath9k_hw_startpcureceive
(
struct
ath_hw
*
ah
,
bool
is_scanning
);
void
ath9k_hw_startpcureceive
(
struct
ath_hw
*
ah
,
bool
is_scanning
);
void
ath9k_hw_abortpcurecv
(
struct
ath_hw
*
ah
);
void
ath9k_hw_abortpcurecv
(
struct
ath_hw
*
ah
);
bool
ath9k_hw_stopdmarecv
(
struct
ath_hw
*
ah
);
bool
ath9k_hw_stopdmarecv
(
struct
ath_hw
*
ah
,
bool
*
reset
);
int
ath9k_hw_beaconq_setup
(
struct
ath_hw
*
ah
);
int
ath9k_hw_beaconq_setup
(
struct
ath_hw
*
ah
);
/* Interrupt Handling */
/* Interrupt Handling */
...
...
drivers/net/wireless/ath/ath9k/recv.c
浏览文件 @
dd503040
...
@@ -486,12 +486,12 @@ int ath_startrecv(struct ath_softc *sc)
...
@@ -486,12 +486,12 @@ int ath_startrecv(struct ath_softc *sc)
bool
ath_stoprecv
(
struct
ath_softc
*
sc
)
bool
ath_stoprecv
(
struct
ath_softc
*
sc
)
{
{
struct
ath_hw
*
ah
=
sc
->
sc_ah
;
struct
ath_hw
*
ah
=
sc
->
sc_ah
;
bool
stopped
;
bool
stopped
,
reset
=
false
;
spin_lock_bh
(
&
sc
->
rx
.
rxbuflock
);
spin_lock_bh
(
&
sc
->
rx
.
rxbuflock
);
ath9k_hw_abortpcurecv
(
ah
);
ath9k_hw_abortpcurecv
(
ah
);
ath9k_hw_setrxfilter
(
ah
,
0
);
ath9k_hw_setrxfilter
(
ah
,
0
);
stopped
=
ath9k_hw_stopdmarecv
(
ah
);
stopped
=
ath9k_hw_stopdmarecv
(
ah
,
&
reset
);
if
(
sc
->
sc_ah
->
caps
.
hw_caps
&
ATH9K_HW_CAP_EDMA
)
if
(
sc
->
sc_ah
->
caps
.
hw_caps
&
ATH9K_HW_CAP_EDMA
)
ath_edma_stop_recv
(
sc
);
ath_edma_stop_recv
(
sc
);
...
@@ -506,7 +506,7 @@ bool ath_stoprecv(struct ath_softc *sc)
...
@@ -506,7 +506,7 @@ bool ath_stoprecv(struct ath_softc *sc)
"confusing the DMA engine when we start RX up
\n
"
);
"confusing the DMA engine when we start RX up
\n
"
);
ATH_DBG_WARN_ON_ONCE
(
!
stopped
);
ATH_DBG_WARN_ON_ONCE
(
!
stopped
);
}
}
return
stopped
;
return
stopped
||
reset
;
}
}
void
ath_flushrecv
(
struct
ath_softc
*
sc
)
void
ath_flushrecv
(
struct
ath_softc
*
sc
)
...
...
drivers/net/wireless/iwlegacy/iwl-3945-hw.h
浏览文件 @
dd503040
...
@@ -74,8 +74,6 @@
...
@@ -74,8 +74,6 @@
/* RSSI to dBm */
/* RSSI to dBm */
#define IWL39_RSSI_OFFSET 95
#define IWL39_RSSI_OFFSET 95
#define IWL_DEFAULT_TX_POWER 0x0F
/*
/*
* EEPROM related constants, enums, and structures.
* EEPROM related constants, enums, and structures.
*/
*/
...
...
drivers/net/wireless/iwlegacy/iwl-4965-hw.h
浏览文件 @
dd503040
...
@@ -804,9 +804,6 @@ struct iwl4965_scd_bc_tbl {
...
@@ -804,9 +804,6 @@ struct iwl4965_scd_bc_tbl {
#define IWL4965_DEFAULT_TX_RETRY 15
#define IWL4965_DEFAULT_TX_RETRY 15
/* Limit range of txpower output target to be between these values */
#define IWL4965_TX_POWER_TARGET_POWER_MIN (0)
/* 0 dBm: 1 milliwatt */
/* EEPROM */
/* EEPROM */
#define IWL4965_FIRST_AMPDU_QUEUE 10
#define IWL4965_FIRST_AMPDU_QUEUE 10
...
...
drivers/net/wireless/iwlegacy/iwl-core.c
浏览文件 @
dd503040
...
@@ -160,6 +160,7 @@ int iwl_legacy_init_geos(struct iwl_priv *priv)
...
@@ -160,6 +160,7 @@ int iwl_legacy_init_geos(struct iwl_priv *priv)
struct
ieee80211_channel
*
geo_ch
;
struct
ieee80211_channel
*
geo_ch
;
struct
ieee80211_rate
*
rates
;
struct
ieee80211_rate
*
rates
;
int
i
=
0
;
int
i
=
0
;
s8
max_tx_power
=
0
;
if
(
priv
->
bands
[
IEEE80211_BAND_2GHZ
].
n_bitrates
||
if
(
priv
->
bands
[
IEEE80211_BAND_2GHZ
].
n_bitrates
||
priv
->
bands
[
IEEE80211_BAND_5GHZ
].
n_bitrates
)
{
priv
->
bands
[
IEEE80211_BAND_5GHZ
].
n_bitrates
)
{
...
@@ -235,8 +236,8 @@ int iwl_legacy_init_geos(struct iwl_priv *priv)
...
@@ -235,8 +236,8 @@ int iwl_legacy_init_geos(struct iwl_priv *priv)
geo_ch
->
flags
|=
ch
->
ht40_extension_channel
;
geo_ch
->
flags
|=
ch
->
ht40_extension_channel
;
if
(
ch
->
max_power_avg
>
priv
->
tx_power_device_lmt
)
if
(
ch
->
max_power_avg
>
max_tx_power
)
priv
->
tx_power_device_lmt
=
ch
->
max_power_avg
;
max_tx_power
=
ch
->
max_power_avg
;
}
else
{
}
else
{
geo_ch
->
flags
|=
IEEE80211_CHAN_DISABLED
;
geo_ch
->
flags
|=
IEEE80211_CHAN_DISABLED
;
}
}
...
@@ -249,6 +250,10 @@ int iwl_legacy_init_geos(struct iwl_priv *priv)
...
@@ -249,6 +250,10 @@ int iwl_legacy_init_geos(struct iwl_priv *priv)
geo_ch
->
flags
);
geo_ch
->
flags
);
}
}
priv
->
tx_power_device_lmt
=
max_tx_power
;
priv
->
tx_power_user_lmt
=
max_tx_power
;
priv
->
tx_power_next
=
max_tx_power
;
if
((
priv
->
bands
[
IEEE80211_BAND_5GHZ
].
n_channels
==
0
)
&&
if
((
priv
->
bands
[
IEEE80211_BAND_5GHZ
].
n_channels
==
0
)
&&
priv
->
cfg
->
sku
&
IWL_SKU_A
)
{
priv
->
cfg
->
sku
&
IWL_SKU_A
)
{
IWL_INFO
(
priv
,
"Incorrectly detected BG card as ABG. "
IWL_INFO
(
priv
,
"Incorrectly detected BG card as ABG. "
...
@@ -1124,11 +1129,11 @@ int iwl_legacy_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
...
@@ -1124,11 +1129,11 @@ int iwl_legacy_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
if
(
!
priv
->
cfg
->
ops
->
lib
->
send_tx_power
)
if
(
!
priv
->
cfg
->
ops
->
lib
->
send_tx_power
)
return
-
EOPNOTSUPP
;
return
-
EOPNOTSUPP
;
if
(
tx_power
<
IWL4965_TX_POWER_TARGET_POWER_MIN
)
{
/* 0 dBm mean 1 milliwatt */
if
(
tx_power
<
0
)
{
IWL_WARN
(
priv
,
IWL_WARN
(
priv
,
"Requested user TXPOWER %d below lower limit %d.
\n
"
,
"Requested user TXPOWER %d below 1 mW.
\n
"
,
tx_power
,
tx_power
);
IWL4965_TX_POWER_TARGET_POWER_MIN
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
...
...
drivers/net/wireless/iwlegacy/iwl-eeprom.c
浏览文件 @
dd503040
...
@@ -471,13 +471,6 @@ int iwl_legacy_init_channel_map(struct iwl_priv *priv)
...
@@ -471,13 +471,6 @@ int iwl_legacy_init_channel_map(struct iwl_priv *priv)
flags
&
EEPROM_CHANNEL_RADAR
))
flags
&
EEPROM_CHANNEL_RADAR
))
?
""
:
"not "
);
?
""
:
"not "
);
/* Set the tx_power_user_lmt to the highest power
* supported by any channel */
if
(
eeprom_ch_info
[
ch
].
max_power_avg
>
priv
->
tx_power_user_lmt
)
priv
->
tx_power_user_lmt
=
eeprom_ch_info
[
ch
].
max_power_avg
;
ch_info
++
;
ch_info
++
;
}
}
}
}
...
...
drivers/net/wireless/iwlegacy/iwl3945-base.c
浏览文件 @
dd503040
...
@@ -3825,10 +3825,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv)
...
@@ -3825,10 +3825,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv)
priv
->
force_reset
[
IWL_FW_RESET
].
reset_duration
=
priv
->
force_reset
[
IWL_FW_RESET
].
reset_duration
=
IWL_DELAY_NEXT_FORCE_FW_RELOAD
;
IWL_DELAY_NEXT_FORCE_FW_RELOAD
;
priv
->
tx_power_user_lmt
=
IWL_DEFAULT_TX_POWER
;
priv
->
tx_power_next
=
IWL_DEFAULT_TX_POWER
;
if
(
eeprom
->
version
<
EEPROM_3945_EEPROM_VERSION
)
{
if
(
eeprom
->
version
<
EEPROM_3945_EEPROM_VERSION
)
{
IWL_WARN
(
priv
,
"Unsupported EEPROM version: 0x%04X
\n
"
,
IWL_WARN
(
priv
,
"Unsupported EEPROM version: 0x%04X
\n
"
,
eeprom
->
version
);
eeprom
->
version
);
...
...
drivers/net/wireless/iwlegacy/iwl4965-base.c
浏览文件 @
dd503040
...
@@ -3140,12 +3140,6 @@ static int iwl4965_init_drv(struct iwl_priv *priv)
...
@@ -3140,12 +3140,6 @@ static int iwl4965_init_drv(struct iwl_priv *priv)
iwl_legacy_init_scan_params
(
priv
);
iwl_legacy_init_scan_params
(
priv
);
/* Set the tx_power_user_lmt to the lowest power level
* this value will get overwritten by channel max power avg
* from eeprom */
priv
->
tx_power_user_lmt
=
IWL4965_TX_POWER_TARGET_POWER_MIN
;
priv
->
tx_power_next
=
IWL4965_TX_POWER_TARGET_POWER_MIN
;
ret
=
iwl_legacy_init_channel_map
(
priv
);
ret
=
iwl_legacy_init_channel_map
(
priv
);
if
(
ret
)
{
if
(
ret
)
{
IWL_ERR
(
priv
,
"initializing regulatory failed: %d
\n
"
,
ret
);
IWL_ERR
(
priv
,
"initializing regulatory failed: %d
\n
"
,
ret
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录