Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
8715fa28
Commit
8715fa28
authored
Apr 16, 2010
by
Reinette Chatre
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'wireless-2.6' into wireless-next-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-6000.c
parents
a5e944f1
f2fa1b01
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
41 additions
and
15 deletions
+41
-15
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+1
-0
drivers/net/wireless/iwlwifi/iwl-calib.c
drivers/net/wireless/iwlwifi/iwl-calib.c
+12
-0
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.c
+0
-1
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-core.h
+1
-1
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-dev.h
+1
-0
drivers/net/wireless/iwlwifi/iwl-eeprom.h
drivers/net/wireless/iwlwifi/iwl-eeprom.h
+4
-0
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-scan.c
+20
-11
No files found.
drivers/net/wireless/iwlwifi/iwl-6000.c
View file @
8715fa28
...
...
@@ -261,7 +261,7 @@ static struct iwl_lib_ops iwl6000_lib = {
EEPROM_REG_BAND_3_CHANNELS
,
EEPROM_REG_BAND_4_CHANNELS
,
EEPROM_REG_BAND_5_CHANNELS
,
EEPROM_REG_BAND_24_HT40_CHANNELS
,
EEPROM_
6000_
REG_BAND_24_HT40_CHANNELS
,
EEPROM_REG_BAND_52_HT40_CHANNELS
},
.
verify_signature
=
iwlcore_eeprom_verify_signature
,
...
...
@@ -328,7 +328,7 @@ static struct iwl_lib_ops iwl6050_lib = {
EEPROM_REG_BAND_3_CHANNELS
,
EEPROM_REG_BAND_4_CHANNELS
,
EEPROM_REG_BAND_5_CHANNELS
,
EEPROM_REG_BAND_24_HT40_CHANNELS
,
EEPROM_
6000_
REG_BAND_24_HT40_CHANNELS
,
EEPROM_REG_BAND_52_HT40_CHANNELS
},
.
verify_signature
=
iwlcore_eeprom_verify_signature
,
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
View file @
8715fa28
...
...
@@ -3304,6 +3304,7 @@ static void iwl_cancel_deferred_work(struct iwl_priv *priv)
cancel_delayed_work_sync
(
&
priv
->
init_alive_start
);
cancel_delayed_work
(
&
priv
->
scan_check
);
cancel_work_sync
(
&
priv
->
start_internal_scan
);
cancel_delayed_work
(
&
priv
->
alive_start
);
cancel_work_sync
(
&
priv
->
beacon_update
);
del_timer_sync
(
&
priv
->
statistics_periodic
);
...
...
drivers/net/wireless/iwlwifi/iwl-calib.c
View file @
8715fa28
...
...
@@ -807,6 +807,18 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv,
}
}
/*
* The above algorithm sometimes fails when the ucode
* reports 0 for all chains. It's not clear why that
* happens to start with, but it is then causing trouble
* because this can make us enable more chains than the
* hardware really has.
*
* To be safe, simply mask out any chains that we know
* are not on the device.
*/
active_chains
&=
priv
->
hw_params
.
valid_rx_ant
;
num_tx_chains
=
0
;
for
(
i
=
0
;
i
<
NUM_RX_CHAINS
;
i
++
)
{
/* loops on all the bits of
...
...
drivers/net/wireless/iwlwifi/iwl-core.c
View file @
8715fa28
...
...
@@ -2801,7 +2801,6 @@ static void iwl_force_rf_reset(struct iwl_priv *priv)
*/
IWL_DEBUG_INFO
(
priv
,
"perform radio reset.
\n
"
);
iwl_internal_short_hw_scan
(
priv
);
return
;
}
...
...
drivers/net/wireless/iwlwifi/iwl-core.h
View file @
8715fa28
...
...
@@ -502,7 +502,7 @@ void iwl_init_scan_params(struct iwl_priv *priv);
int
iwl_scan_cancel
(
struct
iwl_priv
*
priv
);
int
iwl_scan_cancel_timeout
(
struct
iwl_priv
*
priv
,
unsigned
long
ms
);
int
iwl_mac_hw_scan
(
struct
ieee80211_hw
*
hw
,
struct
cfg80211_scan_request
*
req
);
int
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
);
void
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
);
int
iwl_force_reset
(
struct
iwl_priv
*
priv
,
int
mode
);
u16
iwl_fill_probe_req
(
struct
iwl_priv
*
priv
,
struct
ieee80211_mgmt
*
frame
,
const
u8
*
ie
,
int
ie_len
,
int
left
);
...
...
drivers/net/wireless/iwlwifi/iwl-dev.h
View file @
8715fa28
...
...
@@ -1264,6 +1264,7 @@ struct iwl_priv {
struct
work_struct
tt_work
;
struct
work_struct
ct_enter
;
struct
work_struct
ct_exit
;
struct
work_struct
start_internal_scan
;
struct
tasklet_struct
irq_tasklet
;
...
...
drivers/net/wireless/iwlwifi/iwl-eeprom.h
View file @
8715fa28
...
...
@@ -203,6 +203,10 @@ struct iwl_eeprom_enhanced_txpwr {
#define EEPROM_REG_BAND_52_HT40_CHANNELS ((0x92)\
| INDIRECT_ADDRESS | INDIRECT_REGULATORY)
/* 22 bytes */
/* 6000 regulatory - indirect access */
#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS ((0x80)\
| INDIRECT_ADDRESS | INDIRECT_REGULATORY)
/* 14 bytes */
/* 6000 and up regulatory tx power - indirect access */
/* max. elements per section */
#define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS (8)
...
...
drivers/net/wireless/iwlwifi/iwl-scan.c
View file @
8715fa28
...
...
@@ -469,6 +469,8 @@ EXPORT_SYMBOL(iwl_init_scan_params);
static
int
iwl_scan_initiate
(
struct
iwl_priv
*
priv
)
{
WARN_ON
(
!
mutex_is_locked
(
&
priv
->
mutex
));
IWL_DEBUG_INFO
(
priv
,
"Starting scan...
\n
"
);
set_bit
(
STATUS_SCANNING
,
&
priv
->
status
);
priv
->
is_internal_short_scan
=
false
;
...
...
@@ -546,24 +548,31 @@ EXPORT_SYMBOL(iwl_mac_hw_scan);
* internal short scan, this function should only been called while associated.
* It will reset and tune the radio to prevent possible RF related problem
*/
int
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
)
void
iwl_internal_short_hw_scan
(
struct
iwl_priv
*
priv
)
{
int
ret
=
0
;
queue_work
(
priv
->
workqueue
,
&
priv
->
start_internal_scan
);
}
static
void
iwl_bg_start_internal_scan
(
struct
work_struct
*
work
)
{
struct
iwl_priv
*
priv
=
container_of
(
work
,
struct
iwl_priv
,
start_internal_scan
);
mutex_lock
(
&
priv
->
mutex
);
if
(
!
iwl_is_ready_rf
(
priv
))
{
ret
=
-
EIO
;
IWL_DEBUG_SCAN
(
priv
,
"not ready or exit pending
\n
"
);
goto
out
;
goto
unlock
;
}
if
(
test_bit
(
STATUS_SCANNING
,
&
priv
->
status
))
{
IWL_DEBUG_SCAN
(
priv
,
"Scan already in progress.
\n
"
);
ret
=
-
EAGAIN
;
goto
out
;
goto
unlock
;
}
if
(
test_bit
(
STATUS_SCAN_ABORTING
,
&
priv
->
status
))
{
IWL_DEBUG_SCAN
(
priv
,
"Scan request while abort pending
\n
"
);
ret
=
-
EAGAIN
;
goto
out
;
goto
unlock
;
}
priv
->
scan_bands
=
0
;
...
...
@@ -576,9 +585,8 @@ int iwl_internal_short_hw_scan(struct iwl_priv *priv)
set_bit
(
STATUS_SCANNING
,
&
priv
->
status
);
priv
->
is_internal_short_scan
=
true
;
queue_work
(
priv
->
workqueue
,
&
priv
->
request_scan
);
out:
return
ret
;
unlock:
mutex_unlock
(
&
priv
->
mutex
);
}
#define IWL_SCAN_CHECK_WATCHDOG (7 * HZ)
...
...
@@ -962,6 +970,7 @@ void iwl_setup_scan_deferred_work(struct iwl_priv *priv)
INIT_WORK
(
&
priv
->
scan_completed
,
iwl_bg_scan_completed
);
INIT_WORK
(
&
priv
->
request_scan
,
iwl_bg_request_scan
);
INIT_WORK
(
&
priv
->
abort_scan
,
iwl_bg_abort_scan
);
INIT_WORK
(
&
priv
->
start_internal_scan
,
iwl_bg_start_internal_scan
);
INIT_DELAYED_WORK
(
&
priv
->
scan_check
,
iwl_bg_scan_check
);
}
EXPORT_SYMBOL
(
iwl_setup_scan_deferred_work
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment