pxa2xx: fix SSSR TFN logic
Fix SSSR TFN logic: TX FIFO is never filled, so it is always in underrun condition if SSP is enabled. This also avoids a gcc warning with -Wtype-limits. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
1c7242da85
commit
7d1476898f
@ -636,6 +636,7 @@ static void pxa2xx_ssp_fifo_update(PXA2xxSSPState *s)
|
|||||||
{
|
{
|
||||||
s->sssr &= ~(0xf << 12); /* Clear RFL */
|
s->sssr &= ~(0xf << 12); /* Clear RFL */
|
||||||
s->sssr &= ~(0xf << 8); /* Clear TFL */
|
s->sssr &= ~(0xf << 8); /* Clear TFL */
|
||||||
|
s->sssr &= ~SSSR_TFS;
|
||||||
s->sssr &= ~SSSR_TNF;
|
s->sssr &= ~SSSR_TNF;
|
||||||
if (s->enable) {
|
if (s->enable) {
|
||||||
s->sssr |= ((s->rx_level - 1) & 0xf) << 12;
|
s->sssr |= ((s->rx_level - 1) & 0xf) << 12;
|
||||||
@ -643,14 +644,13 @@ static void pxa2xx_ssp_fifo_update(PXA2xxSSPState *s)
|
|||||||
s->sssr |= SSSR_RFS;
|
s->sssr |= SSSR_RFS;
|
||||||
else
|
else
|
||||||
s->sssr &= ~SSSR_RFS;
|
s->sssr &= ~SSSR_RFS;
|
||||||
if (0 <= SSCR1_TFT(s->sscr[1]))
|
|
||||||
s->sssr |= SSSR_TFS;
|
|
||||||
else
|
|
||||||
s->sssr &= ~SSSR_TFS;
|
|
||||||
if (s->rx_level)
|
if (s->rx_level)
|
||||||
s->sssr |= SSSR_RNE;
|
s->sssr |= SSSR_RNE;
|
||||||
else
|
else
|
||||||
s->sssr &= ~SSSR_RNE;
|
s->sssr &= ~SSSR_RNE;
|
||||||
|
/* TX FIFO is never filled, so it is always in underrun
|
||||||
|
condition if SSP is enabled */
|
||||||
|
s->sssr |= SSSR_TFS;
|
||||||
s->sssr |= SSSR_TNF;
|
s->sssr |= SSSR_TNF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user