- Keep the base address in struct uart_bas for sab82532 and z8530 modules.
- Remove buggy uart_cpu_busaddr() function.
This commit is contained in:
parent
34c875bc30
commit
c423dba334
@ -36,6 +36,7 @@
|
||||
* other timing related computations.
|
||||
*/
|
||||
struct uart_bas {
|
||||
bus_addr_t iobase;
|
||||
bus_space_tag_t bst;
|
||||
bus_space_handle_t bsh;
|
||||
u_int regshft;
|
||||
|
@ -267,6 +267,7 @@ uart_bus_probe(device_t dev, int regshft, int rclk, int rid)
|
||||
* accordingly. In general, you don't want to permanently disrupt
|
||||
* console I/O.
|
||||
*/
|
||||
sc->sc_bas.iobase = rman_get_start(sc->sc_rres);
|
||||
sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres);
|
||||
sc->sc_bas.bst = rman_get_bustag(sc->sc_rres);
|
||||
sc->sc_bas.regshft = regshft;
|
||||
|
@ -67,7 +67,6 @@ struct uart_devinfo {
|
||||
void *cookie; /* Type dependent use. */
|
||||
};
|
||||
|
||||
bus_addr_t uart_cpu_busaddr(struct uart_bas *);
|
||||
int uart_cpu_eqres(struct uart_bas *, struct uart_bas *);
|
||||
int uart_cpu_getdev(int, struct uart_devinfo *);
|
||||
|
||||
|
@ -39,13 +39,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/uart/uart.h>
|
||||
#include <dev/uart/uart_cpu.h>
|
||||
|
||||
bus_addr_t
|
||||
uart_cpu_busaddr(struct uart_bas *bas)
|
||||
{
|
||||
|
||||
return (bas->bsh);
|
||||
}
|
||||
|
||||
int
|
||||
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
|
||||
{
|
||||
@ -65,6 +58,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
return (ENXIO);
|
||||
boothowto |= RB_SERIAL;
|
||||
di->ops = uart_ns8250_ops;
|
||||
di->bas.iobase = 0x3f8;
|
||||
di->bas.bst = busspace_isa_io;
|
||||
if (bus_space_map(di->bas.bst, 0x3f8, 8, 0, &di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
@ -102,6 +96,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
* only have ns8250 and successors on alpha.
|
||||
*/
|
||||
di->ops = uart_ns8250_ops;
|
||||
di->bas.iobase = ivar;
|
||||
di->bas.bst = busspace_isa_io;
|
||||
if (bus_space_map(di->bas.bst, ivar, 8, 0, &di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
|
@ -36,13 +36,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/uart/uart.h>
|
||||
#include <dev/uart/uart_cpu.h>
|
||||
|
||||
bus_addr_t
|
||||
uart_cpu_busaddr(struct uart_bas *bas)
|
||||
{
|
||||
|
||||
return (bas->bsh);
|
||||
}
|
||||
|
||||
int
|
||||
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
|
||||
{
|
||||
@ -82,6 +75,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
* ns8250 and successors on i386.
|
||||
*/
|
||||
di->ops = uart_ns8250_ops;
|
||||
di->bas.iobase = ivar;
|
||||
di->bas.bst = AMD64_BUS_SPACE_IO;
|
||||
if (bus_space_map(di->bas.bst, ivar, 8, 0, &di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
|
@ -36,13 +36,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/uart/uart.h>
|
||||
#include <dev/uart/uart_cpu.h>
|
||||
|
||||
bus_addr_t
|
||||
uart_cpu_busaddr(struct uart_bas *bas)
|
||||
{
|
||||
|
||||
return (bas->bsh);
|
||||
}
|
||||
|
||||
int
|
||||
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
|
||||
{
|
||||
@ -82,6 +75,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
* ns8250 and successors on i386.
|
||||
*/
|
||||
di->ops = uart_ns8250_ops;
|
||||
di->bas.iobase = ivar;
|
||||
di->bas.bst = I386_BUS_SPACE_IO;
|
||||
if (bus_space_map(di->bas.bst, ivar, 8, 0, &di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
|
@ -44,13 +44,6 @@ static int dig64_to_uart_parity[] = {
|
||||
UART_PARITY_ODD, UART_PARITY_MARK, UART_PARITY_SPACE
|
||||
};
|
||||
|
||||
bus_addr_t
|
||||
uart_cpu_busaddr(struct uart_bas *bas)
|
||||
{
|
||||
|
||||
return (bas->bsh);
|
||||
}
|
||||
|
||||
int
|
||||
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
|
||||
{
|
||||
@ -82,13 +75,13 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
continue;
|
||||
|
||||
di->ops = uart_ns8250_ops;
|
||||
di->bas.iobase = (ent->address.addr_high << 32) +
|
||||
ent->address.addr_low;
|
||||
di->bas.bst = IA64_BUS_SPACE_IO;
|
||||
di->bas.bst = (ent->address.addr_space == 0)
|
||||
? IA64_BUS_SPACE_MEM : IA64_BUS_SPACE_IO;
|
||||
if (bus_space_map(di->bas.bst,
|
||||
(ent->address.addr_high << 32) +
|
||||
ent->address.addr_low,
|
||||
8, 0, &di->bas.bsh) != 0)
|
||||
if (bus_space_map(di->bas.bst, di->bas.iobase, 8, 0,
|
||||
&di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
di->bas.regshft = 0;
|
||||
di->bas.rclk = ent->pclock << 4;
|
||||
@ -131,6 +124,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
* ns8250 and successors on i386.
|
||||
*/
|
||||
di->ops = uart_ns8250_ops;
|
||||
di->bas.iobase = ivar;
|
||||
di->bas.bst = IA64_BUS_SPACE_IO;
|
||||
if (bus_space_map(di->bas.bst, ivar, 8, 0, &di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
|
@ -36,13 +36,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/uart/uart.h>
|
||||
#include <dev/uart/uart_cpu.h>
|
||||
|
||||
bus_addr_t
|
||||
uart_cpu_busaddr(struct uart_bas *bas)
|
||||
{
|
||||
|
||||
return (bas->bsh->bsh_base);
|
||||
}
|
||||
|
||||
int
|
||||
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
|
||||
{
|
||||
@ -87,6 +80,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
di->ops = uart_ns8250_ops;
|
||||
else
|
||||
di->ops = uart_i8251_ops;
|
||||
di->bas.iobase = ivar;
|
||||
di->bas.bst = I386_BUS_SPACE_IO;
|
||||
if (bus_space_map(di->bas.bst, ivar, 8, 0, &di->bas.bsh) != 0)
|
||||
return (ENXIO);
|
||||
|
@ -58,13 +58,6 @@ uart_cpu_channel(char *dev)
|
||||
return (alias[len - 1] - 'a');
|
||||
}
|
||||
|
||||
bus_addr_t
|
||||
uart_cpu_busaddr(struct uart_bas *bas)
|
||||
{
|
||||
|
||||
return (bas->bsh);
|
||||
}
|
||||
|
||||
int
|
||||
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
|
||||
{
|
||||
@ -143,6 +136,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
|
||||
return (ENXIO);
|
||||
|
||||
/* Fill in the device info. */
|
||||
di->bas.iobase = addr;
|
||||
di->bas.bst = &bst_store[devtype];
|
||||
di->bas.bsh = sparc64_fake_bustag(space, addr, di->bas.bst);
|
||||
|
||||
|
@ -42,8 +42,8 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#define DEFAULT_RCLK 29491200
|
||||
|
||||
#define IS_CHANNEL_A(bas) ((uart_cpu_busaddr(bas) & 0x40) == 0x00)
|
||||
#define IS_CHANNEL_B(bas) ((uart_cpu_busaddr(bas) & 0x40) == 0x40)
|
||||
#define IS_CHANNEL_A(bas) (((bas)->iobase & 0x40) == 0x00)
|
||||
#define IS_CHANNEL_B(bas) (((bas)->iobase & 0x40) == 0x40)
|
||||
|
||||
/*
|
||||
* NOTE: To allow us to read the baudrate divisor from the chip, we
|
||||
|
@ -42,8 +42,8 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#define DEFAULT_RCLK 307200
|
||||
|
||||
#define IS_CHANNEL_A(bas) ((uart_cpu_busaddr(bas) & 7) != 0)
|
||||
#define IS_CHANNEL_B(bas) ((uart_cpu_busaddr(bas) & 7) == 0)
|
||||
#define IS_CHANNEL_A(bas) (((bas)->iobase & 7) != 0)
|
||||
#define IS_CHANNEL_B(bas) (((bas)->iobase & 7) == 0)
|
||||
|
||||
/* Multiplexed I/O. */
|
||||
static __inline void
|
||||
|
Loading…
x
Reference in New Issue
Block a user