Skip to content

Commit

Permalink
wl12xx: set the irq polarity before loading the fw
Browse files Browse the repository at this point in the history
The polarity should be set before the firmware is loaded
since the firmware touches the same register. Access
of the firmware and driver to the same register will
cause a collision since there is no exclusion scheme.

Signed-off-by: Yoni Divinsky <yoni.divinsky@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
  • Loading branch information
Yoni Divinsky authored and Luciano Coelho committed Jun 5, 2012
1 parent 2e42c20 commit 4a6c789
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions drivers/net/wireless/ti/wl12xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -995,7 +995,7 @@ static int wl12xx_pre_boot(struct wl1271 *wl)

static void wl12xx_pre_upload(struct wl1271 *wl)
{
u32 tmp;
u32 tmp, polarity;

/* write firmware's last address (ie. it's length) to
* ACX_EEPROMLESS_IND_REG */
Expand All @@ -1015,18 +1015,18 @@ static void wl12xx_pre_upload(struct wl1271 *wl)

if (wl->chip.id == CHIP_ID_1283_PG20)
wl12xx_top_reg_write(wl, SDIO_IO_DS, HCI_IO_DS_6MA);
}

static void wl12xx_enable_interrupts(struct wl1271 *wl)
{
u32 polarity;

/* polarity must be set before the firmware is loaded */
polarity = wl12xx_top_reg_read(wl, OCP_REG_POLARITY);

/* We use HIGH polarity, so unset the LOW bit */
polarity &= ~POLARITY_LOW;
wl12xx_top_reg_write(wl, OCP_REG_POLARITY, polarity);

}

static void wl12xx_enable_interrupts(struct wl1271 *wl)
{
wlcore_write_reg(wl, REG_INTERRUPT_MASK, WL1271_ACX_ALL_EVENTS_VECTOR);

wlcore_enable_interrupts(wl);
Expand Down

0 comments on commit 4a6c789

Please sign in to comment.