qcacmn: Disable CE6 interrupts for Hawkeye
CE6 is used for autonomous HIF_memcpy by FW, but interrupts are coming to host since there is no separate HW control to turn off host interrupts. Avoid requesting these interrupts. Change-Id: I7b09b7c6e39d37e111e6e7a4292f605b3fb602e0
此提交包含在:
@@ -575,7 +575,8 @@ static struct CE_attr host_ce_config_wlan_qca8074[] = {
|
||||
/* target -> host PKTLOG */
|
||||
{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},
|
||||
/* Target autonomous HIF_memcpy */
|
||||
{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
|
||||
{ /* CE6 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, 0,
|
||||
0, 0, NULL,},
|
||||
/* host->target WMI (mac1) */
|
||||
{ /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
|
||||
/* Target to uMC */
|
||||
|
@@ -252,11 +252,14 @@ int hif_ahb_configure_irq(struct hif_pci_softc *sc)
|
||||
struct hif_softc *scn = HIF_GET_SOFTC(sc);
|
||||
struct platform_device *pdev = (struct platform_device *)sc->pdev;
|
||||
struct HIF_CE_state *hif_state = HIF_GET_CE_STATE(scn);
|
||||
struct CE_attr *host_ce_conf = hif_state->host_ce_config;
|
||||
int irq = 0;
|
||||
int i;
|
||||
|
||||
/* configure per CE interrupts */
|
||||
for (i = 0; i < scn->ce_count; i++) {
|
||||
if (host_ce_conf[i].flags & CE_ATTR_DISABLE_INTR)
|
||||
continue;
|
||||
irq = platform_get_irq_byname(pdev, ic_irqname[HIF_IC_CE0_IRQ_OFFSET + i]);
|
||||
ic_irqnum[HIF_IC_CE0_IRQ_OFFSET + i] = irq;
|
||||
ret = request_irq(irq ,
|
||||
|
新增問題並參考
封鎖使用者