Re: [PATCH] RM9000 serial driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

Thomas Koeller wrote:

iotype is all about the access method used to access the registers of
the device, be it by byte or word, and it also takes account of any
variance in the addressing of the registers.

It does not refer to features or bugs in any particular implementation.

That's what I assumed, too - it seemed obvious. And it seemed equally
obvious that it is the port type that encodes the the implementation's
peculiarities. Among these are the register offset mapping requirements,
so I assumed these should depend on the port type as well.

Different mapping requirements actually put the device beyond 8250 compatibility, so it seems quite natural they're addressed by the different entity. RM9000 UART is, strictly speaking, *not* 8250 compatible and needs some trickery for the 8250 driver to support it (historically, Alchemy UARTs were driven by the distinct driver, au1x00_uart.c -- however, its code was for the most part copied over from 8250.c).

Now Sergei strongly insist that it's the iotype that should be checked
whenever to get to the hardware type. I still do not quite understand how
that is supposed to work. If I have a PCI device, for example, then the
iotype will always be either UPIO_MEM or UPIO_PORT, so how could I learn
something about the hardware implementation by looking at these values?

I think it's determined by the value of the programming interface register of the PCI device. The values 0 to 6 imply full backward compatibility to 8250 WRT the addressing scheme, IIUC.

Or is the assumption that devices on a standard bus will always be of
a standard type?

   For the PCI bus, it is.

Thomas

WBR, Sergei



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux