mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 16:36:47 +07:00
usb: dwc2: gadget: Add handler for WkupAlert interrupt
Added interrupt handler for WkupAlert interrupt. This interrupt should initiate Remote Wake up. Acked-by: Minas Harutyunyan <hminas@synopsys.com> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
4abe453750
commit
187c5298a1
@ -245,6 +245,27 @@ int dwc2_hsotg_tx_fifo_total_depth(struct dwc2_hsotg *hsotg)
|
||||
return tx_addr_max - addr;
|
||||
}
|
||||
|
||||
/**
|
||||
* dwc2_gadget_wkup_alert_handler - Handler for WKUP_ALERT interrupt
|
||||
*
|
||||
* @hsotg: Programming view of the DWC_otg controller
|
||||
*
|
||||
*/
|
||||
static void dwc2_gadget_wkup_alert_handler(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
u32 gintsts2;
|
||||
u32 gintmsk2;
|
||||
|
||||
gintsts2 = dwc2_readl(hsotg, GINTSTS2);
|
||||
gintmsk2 = dwc2_readl(hsotg, GINTMSK2);
|
||||
|
||||
if (gintsts2 & GINTSTS2_WKUP_ALERT_INT) {
|
||||
dev_dbg(hsotg->dev, "%s: Wkup_Alert_Int\n", __func__);
|
||||
dwc2_clear_bit(hsotg, GINTSTS2, GINTSTS2_WKUP_ALERT_INT);
|
||||
dwc2_set_bit(hsotg, DCFG, DCTL_RMTWKUPSIG);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* dwc2_hsotg_tx_fifo_average_depth - returns average depth of device mode
|
||||
* TX FIFOs
|
||||
@ -3730,6 +3751,10 @@ static irqreturn_t dwc2_hsotg_irq(int irq, void *pw)
|
||||
if (gintsts & IRQ_RETRY_MASK && --retry_count > 0)
|
||||
goto irq_retry;
|
||||
|
||||
/* Check WKUP_ALERT interrupt*/
|
||||
if (hsotg->params.service_interval)
|
||||
dwc2_gadget_wkup_alert_handler(hsotg);
|
||||
|
||||
spin_unlock(&hsotg->lock);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
Loading…
Reference in New Issue
Block a user