|
@@ -1753,16 +1753,15 @@ static int ath10k_pci_ce_init(struct ath10k *ar)
|
|
static void ath10k_pci_fw_interrupt_handler(struct ath10k *ar)
|
|
static void ath10k_pci_fw_interrupt_handler(struct ath10k *ar)
|
|
{
|
|
{
|
|
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
|
|
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
|
|
- u32 fw_indicator_address, fw_indicator;
|
|
|
|
|
|
+ u32 fw_indicator;
|
|
|
|
|
|
ath10k_pci_wake(ar);
|
|
ath10k_pci_wake(ar);
|
|
|
|
|
|
- fw_indicator_address = ar_pci->fw_indicator_address;
|
|
|
|
- fw_indicator = ath10k_pci_read32(ar, fw_indicator_address);
|
|
|
|
|
|
+ fw_indicator = ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS);
|
|
|
|
|
|
if (fw_indicator & FW_IND_EVENT_PENDING) {
|
|
if (fw_indicator & FW_IND_EVENT_PENDING) {
|
|
/* ACK: clear Target-side pending event */
|
|
/* ACK: clear Target-side pending event */
|
|
- ath10k_pci_write32(ar, fw_indicator_address,
|
|
|
|
|
|
+ ath10k_pci_write32(ar, FW_INDICATOR_ADDRESS,
|
|
fw_indicator & ~FW_IND_EVENT_PENDING);
|
|
fw_indicator & ~FW_IND_EVENT_PENDING);
|
|
|
|
|
|
if (ar_pci->started) {
|
|
if (ar_pci->started) {
|
|
@@ -1781,7 +1780,6 @@ static void ath10k_pci_fw_interrupt_handler(struct ath10k *ar)
|
|
|
|
|
|
static int ath10k_pci_warm_reset(struct ath10k *ar)
|
|
static int ath10k_pci_warm_reset(struct ath10k *ar)
|
|
{
|
|
{
|
|
- struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
|
|
|
|
int ret = 0;
|
|
int ret = 0;
|
|
u32 val;
|
|
u32 val;
|
|
|
|
|
|
@@ -1813,7 +1811,7 @@ static int ath10k_pci_warm_reset(struct ath10k *ar)
|
|
msleep(100);
|
|
msleep(100);
|
|
|
|
|
|
/* clear fw indicator */
|
|
/* clear fw indicator */
|
|
- ath10k_pci_write32(ar, ar_pci->fw_indicator_address, 0);
|
|
|
|
|
|
+ ath10k_pci_write32(ar, FW_INDICATOR_ADDRESS, 0);
|
|
|
|
|
|
/* clear target LF timer interrupts */
|
|
/* clear target LF timer interrupts */
|
|
val = ath10k_pci_read32(ar, RTC_SOC_BASE_ADDRESS +
|
|
val = ath10k_pci_read32(ar, RTC_SOC_BASE_ADDRESS +
|
|
@@ -2154,7 +2152,6 @@ static irqreturn_t ath10k_pci_interrupt_handler(int irq, void *arg)
|
|
static void ath10k_pci_early_irq_tasklet(unsigned long data)
|
|
static void ath10k_pci_early_irq_tasklet(unsigned long data)
|
|
{
|
|
{
|
|
struct ath10k *ar = (struct ath10k *)data;
|
|
struct ath10k *ar = (struct ath10k *)data;
|
|
- struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
|
|
|
|
u32 fw_ind;
|
|
u32 fw_ind;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
@@ -2165,9 +2162,9 @@ static void ath10k_pci_early_irq_tasklet(unsigned long data)
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- fw_ind = ath10k_pci_read32(ar, ar_pci->fw_indicator_address);
|
|
|
|
|
|
+ fw_ind = ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS);
|
|
if (fw_ind & FW_IND_EVENT_PENDING) {
|
|
if (fw_ind & FW_IND_EVENT_PENDING) {
|
|
- ath10k_pci_write32(ar, ar_pci->fw_indicator_address,
|
|
|
|
|
|
+ ath10k_pci_write32(ar, FW_INDICATOR_ADDRESS,
|
|
fw_ind & ~FW_IND_EVENT_PENDING);
|
|
fw_ind & ~FW_IND_EVENT_PENDING);
|
|
|
|
|
|
/* Some structures are unavailable during early boot or at
|
|
/* Some structures are unavailable during early boot or at
|
|
@@ -2544,7 +2541,6 @@ static int ath10k_pci_probe(struct pci_dev *pdev,
|
|
}
|
|
}
|
|
|
|
|
|
ar_pci->ar = ar;
|
|
ar_pci->ar = ar;
|
|
- ar_pci->fw_indicator_address = FW_INDICATOR_ADDRESS;
|
|
|
|
atomic_set(&ar_pci->keep_awake_count, 0);
|
|
atomic_set(&ar_pci->keep_awake_count, 0);
|
|
|
|
|
|
pci_set_drvdata(pdev, ar);
|
|
pci_set_drvdata(pdev, ar);
|