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
4fec06a3
Commit
4fec06a3
authored
Aug 09, 2013
by
John W. Linville
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-john' of
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
parents
5a6e0cf7
05739794
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
32 additions
and
26 deletions
+32
-26
drivers/net/wireless/iwlwifi/dvm/mac80211.c
drivers/net/wireless/iwlwifi/dvm/mac80211.c
+4
-1
drivers/net/wireless/iwlwifi/iwl-prph.h
drivers/net/wireless/iwlwifi/iwl-prph.h
+0
-2
drivers/net/wireless/iwlwifi/mvm/time-event.c
drivers/net/wireless/iwlwifi/mvm/time-event.c
+23
-10
drivers/net/wireless/iwlwifi/pcie/rx.c
drivers/net/wireless/iwlwifi/pcie/rx.c
+0
-8
drivers/net/wireless/iwlwifi/pcie/trans.c
drivers/net/wireless/iwlwifi/pcie/trans.c
+5
-5
No files found.
drivers/net/wireless/iwlwifi/dvm/mac80211.c
View file @
4fec06a3
...
...
@@ -1068,7 +1068,10 @@ void iwl_chswitch_done(struct iwl_priv *priv, bool is_success)
if
(
test_bit
(
STATUS_EXIT_PENDING
,
&
priv
->
status
))
return
;
if
(
test_and_clear_bit
(
STATUS_CHANNEL_SWITCH_PENDING
,
&
priv
->
status
))
if
(
!
test_and_clear_bit
(
STATUS_CHANNEL_SWITCH_PENDING
,
&
priv
->
status
))
return
;
if
(
ctx
->
vif
)
ieee80211_chswitch_done
(
ctx
->
vif
,
is_success
);
}
...
...
drivers/net/wireless/iwlwifi/iwl-prph.h
View file @
4fec06a3
...
...
@@ -97,8 +97,6 @@
#define APMG_PCIDEV_STT_VAL_L1_ACT_DIS (0x00000800)
#define APMG_RTC_INT_STT_RFKILL (0x10000000)
/* Device system time */
#define DEVICE_SYSTEM_TIME_REG 0xA0206C
...
...
drivers/net/wireless/iwlwifi/mvm/time-event.c
View file @
4fec06a3
...
...
@@ -138,6 +138,20 @@ static void iwl_mvm_roc_finished(struct iwl_mvm *mvm)
schedule_work
(
&
mvm
->
roc_done_wk
);
}
static
bool
iwl_mvm_te_check_disconnect
(
struct
iwl_mvm
*
mvm
,
struct
ieee80211_vif
*
vif
,
const
char
*
errmsg
)
{
if
(
vif
->
type
!=
NL80211_IFTYPE_STATION
)
return
false
;
if
(
vif
->
bss_conf
.
assoc
&&
vif
->
bss_conf
.
dtim_period
)
return
false
;
if
(
errmsg
)
IWL_ERR
(
mvm
,
"%s
\n
"
,
errmsg
);
ieee80211_connection_loss
(
vif
);
return
true
;
}
/*
* Handles a FW notification for an event that is known to the driver.
*
...
...
@@ -163,8 +177,13 @@ static void iwl_mvm_te_handle_notif(struct iwl_mvm *mvm,
* P2P Device discoveribility, while there are other higher priority
* events in the system).
*/
WARN_ONCE
(
!
le32_to_cpu
(
notif
->
status
),
"Failed to schedule time event
\n
"
);
if
(
WARN_ONCE
(
!
le32_to_cpu
(
notif
->
status
),
"Failed to schedule time event
\n
"
))
{
if
(
iwl_mvm_te_check_disconnect
(
mvm
,
te_data
->
vif
,
NULL
))
{
iwl_mvm_te_clear_data
(
mvm
,
te_data
);
return
;
}
}
if
(
le32_to_cpu
(
notif
->
action
)
&
TE_NOTIF_HOST_EVENT_END
)
{
IWL_DEBUG_TE
(
mvm
,
...
...
@@ -180,14 +199,8 @@ static void iwl_mvm_te_handle_notif(struct iwl_mvm *mvm,
* By now, we should have finished association
* and know the dtim period.
*/
if
(
te_data
->
vif
->
type
==
NL80211_IFTYPE_STATION
&&
(
!
te_data
->
vif
->
bss_conf
.
assoc
||
!
te_data
->
vif
->
bss_conf
.
dtim_period
))
{
IWL_ERR
(
mvm
,
"No assocation and the time event is over already...
\n
"
);
ieee80211_connection_loss
(
te_data
->
vif
);
}
iwl_mvm_te_check_disconnect
(
mvm
,
te_data
->
vif
,
"No assocation and the time event is over already..."
);
iwl_mvm_te_clear_data
(
mvm
,
te_data
);
}
else
if
(
le32_to_cpu
(
notif
->
action
)
&
TE_NOTIF_HOST_EVENT_START
)
{
te_data
->
running
=
true
;
...
...
drivers/net/wireless/iwlwifi/pcie/rx.c
View file @
4fec06a3
...
...
@@ -888,14 +888,6 @@ irqreturn_t iwl_pcie_irq_handler(int irq, void *dev_id)
iwl_op_mode_hw_rf_kill
(
trans
->
op_mode
,
hw_rfkill
);
if
(
hw_rfkill
)
{
/*
* Clear the interrupt in APMG if the NIC is going down.
* Note that when the NIC exits RFkill (else branch), we
* can't access prph and the NIC will be reset in
* start_hw anyway.
*/
iwl_write_prph
(
trans
,
APMG_RTC_INT_STT_REG
,
APMG_RTC_INT_STT_RFKILL
);
set_bit
(
STATUS_RFKILL
,
&
trans_pcie
->
status
);
if
(
test_and_clear_bit
(
STATUS_HCMD_ACTIVE
,
&
trans_pcie
->
status
))
...
...
drivers/net/wireless/iwlwifi/pcie/trans.c
View file @
4fec06a3
...
...
@@ -1502,16 +1502,16 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
spin_lock_init
(
&
trans_pcie
->
reg_lock
);
init_waitqueue_head
(
&
trans_pcie
->
ucode_write_waitq
);
/* W/A - seems to solve weird behavior. We need to remove this if we
* don't want to stay in L1 all the time. This wastes a lot of power */
pci_disable_link_state
(
pdev
,
PCIE_LINK_STATE_L0S
|
PCIE_LINK_STATE_L1
|
PCIE_LINK_STATE_CLKPM
);
if
(
pci_enable_device
(
pdev
))
{
err
=
-
ENODEV
;
goto
out_no_pci
;
}
/* W/A - seems to solve weird behavior. We need to remove this if we
* don't want to stay in L1 all the time. This wastes a lot of power */
pci_disable_link_state
(
pdev
,
PCIE_LINK_STATE_L0S
|
PCIE_LINK_STATE_L1
|
PCIE_LINK_STATE_CLKPM
);
pci_set_master
(
pdev
);
err
=
pci_set_dma_mask
(
pdev
,
DMA_BIT_MASK
(
36
));
...
...
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