summaryrefslogtreecommitdiffstats
path: root/sys/arm/sa11x0
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-04-01 00:44:20 +0000
committerian <ian@FreeBSD.org>2013-04-01 00:44:20 +0000
commit5b38501da66ed672b34922190744d3b78ac38915 (patch)
tree7e8822165fb7859a3446e9b064f7645e377504e3 /sys/arm/sa11x0
parent720da1df6b6f787228bb96d6f4ea9475a9918504 (diff)
downloadFreeBSD-src-5b38501da66ed672b34922190744d3b78ac38915.zip
FreeBSD-src-5b38501da66ed672b34922190744d3b78ac38915.tar.gz
Fix low-level uart drivers that set their fifo sizes in the softc too late.
uart(4) allocates send and receiver buffers in attach() before it calls the low-level driver's attach routine. Many low-level drivers set the fifo sizes in their attach routine, which is too late. Other drivers set them in the probe() routine, so that they're available when uart(4) allocates buffers. This fixes the ones that were setting the values too late by moving the code to probe().
Diffstat (limited to 'sys/arm/sa11x0')
-rw-r--r--sys/arm/sa11x0/uart_dev_sa1110.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm/sa11x0/uart_dev_sa1110.c b/sys/arm/sa11x0/uart_dev_sa1110.c
index 59a1290..6765cf2 100644
--- a/sys/arm/sa11x0/uart_dev_sa1110.c
+++ b/sys/arm/sa11x0/uart_dev_sa1110.c
@@ -156,6 +156,8 @@ static kobj_method_t sa1110_methods[] = {
int
sa1110_bus_probe(struct uart_softc *sc)
{
+ sc->sc_txfifosz = 3;
+ sc->sc_rxfifosz = 1;
return (0);
}
@@ -164,8 +166,6 @@ sa1110_bus_attach(struct uart_softc *sc)
{
bcopy(&sc->sc_sysdev->bas, &sc->sc_bas, sizeof(sc->sc_bas));
- sc->sc_txfifosz = 3;
- sc->sc_rxfifosz = 1;
sc->sc_hwiflow = 0;
uart_setreg(&sc->sc_bas, SACOM_CR3, CR3_RXE | CR3_TXE | CR3_RIE | CR3_TIE);
return (0);
OpenPOWER on IntegriCloud