Re: [PATCH] 2.6.10 Altix : ioc4 serial driver support

From: Patrick Gefre
Date: Wed Dec 22 2004 - 14:56:21 EST


Christoph Hellwig wrote:

So both claim the same PCI ID? In this case you need to creat a small
shim driver that exports a pseudo-bus to the serial and ide driver using
the driver model. You must never return an error from ->probe if you
actually use that particular device.


Has this been done before ? Any example I can use ??



+/* defining this will force the driver to run in polled mode */
+//#define POLLING_FOR_CHARACTERS

Again, what's the need for these conditionals?


Most of these are compile options to use/not use particular things/"features". Some were
used during debugging. It's a small thing, I'll delete.



+/* a table to keep the card names as passed to request_region */
+static struct {
+ char c_name[20];
+} Table_o_cards[IOC4_NUM_CARDS];

Completely superflous. Just pass "ioc4_serial" as argument to request_region.


WHAT ?!?!?!? Then I get nice output that actually identifies each card when I have >1. 8^) Not a big thing, I'll delete.


+
+ switch (type) {
+ case IOC4_SIO_INTR_TYPE:
+ switch (which) {
+ case IOC4_W_IES:
+ writel(val, (void *)&mem->sio_ies_ro);

The second argumnet to writeX (and readX) is actually void __iomem *,
but to see the difference you need to run sparse (from sparse.bkbits.net)
over the driver. Please store all I/O addresses in void __iomem * pointers
in your structures and avoid the cast here and in all the other places.


So then I'd have to declare the end elements as:
void __iomem foo;

They are 32 bit values, so it's OK to assume that void __iomem is 32bits ?

FWIW I did run sparse and it didn't complain about the readX/writeX.....


no need to cast the return value from kmalloc (dito for the other places)


Why is that ? Seems if kmalloc returns a void * and the left side is not, a casting is appropriate ?

-- Pat
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/