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
此提交包含在:
Karunakar Dasineni
2018-03-30 16:37:21 -07:00
提交者 nshrivas
父節點 9eaa6f099b
當前提交 9ff1ef9798
共有 2 個檔案被更改,包括 5 行新增1 行删除

查看文件

@@ -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 ,