mirror of https://gitee.com/openkylin/linux.git
usb: gadget: s3c-hsotg: fix interrupt configuration in dedicated-fifo mode
In dedicated-fifo mode TxFIFOEmpty interrupt should be asserted when TxFIFO for this endpoint is completly empty, so NPTxFEmpLvl and PTxFEmpLvl bits are set in GAHBCFG register. In DIEPMSK register INTknTXFEmpMsk is set, becouse it's needed to indicate FIFO Empty state. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
bd9ef7bf0c
commit
8acc8296f9
|
@ -2304,15 +2304,19 @@ static void s3c_hsotg_core_init(struct s3c_hsotg *hsotg)
|
||||||
GAHBCFG_HBstLen_Incr4,
|
GAHBCFG_HBstLen_Incr4,
|
||||||
hsotg->regs + GAHBCFG);
|
hsotg->regs + GAHBCFG);
|
||||||
else
|
else
|
||||||
writel(GAHBCFG_GlblIntrEn, hsotg->regs + GAHBCFG);
|
writel(((hsotg->dedicated_fifos) ? (GAHBCFG_NPTxFEmpLvl |
|
||||||
|
GAHBCFG_PTxFEmpLvl) : 0) |
|
||||||
|
GAHBCFG_GlblIntrEn,
|
||||||
|
hsotg->regs + GAHBCFG);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enabling INTknTXFEmpMsk here seems to be a big mistake, we end
|
* If INTknTXFEmpMsk is enabled, it's important to disable ep interrupts
|
||||||
* up being flooded with interrupts if the host is polling the
|
* when we have no data to transfer. Otherwise we get being flooded by
|
||||||
* endpoint to try and read data.
|
* interrupts.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
writel(((hsotg->dedicated_fifos) ? DIEPMSK_TxFIFOEmpty : 0) |
|
writel(((hsotg->dedicated_fifos) ? DIEPMSK_TxFIFOEmpty |
|
||||||
|
DIEPMSK_INTknTXFEmpMsk : 0) |
|
||||||
DIEPMSK_EPDisbldMsk | DIEPMSK_XferComplMsk |
|
DIEPMSK_EPDisbldMsk | DIEPMSK_XferComplMsk |
|
||||||
DIEPMSK_TimeOUTMsk | DIEPMSK_AHBErrMsk |
|
DIEPMSK_TimeOUTMsk | DIEPMSK_AHBErrMsk |
|
||||||
DIEPMSK_INTknEPMisMsk,
|
DIEPMSK_INTknEPMisMsk,
|
||||||
|
|
Loading…
Reference in New Issue