[RFC][DOC] writing IDE driver guidelines

From: Bartlomiej Zolnierkiewicz
Date: Sat May 15 2004 - 12:23:25 EST

Feedback is welcomed.

writing IDE driver guidelines

general rules:

- code outside drivers/ide directory shouldn't need to
include <linux/ide.h> if it does something is wrong

- do not believe in popular myth that driver code
can be of less quality than core kernel code

- don't copy without thinking ugly and bogus code
(there is still lot of such in IDE)

- IDE is going into full host driver model
so write host driver for your interface

- host drivers should request/release IO resource
themelves and set hwif->mmio to 2

- remember about ordering issues
(you break device ordering and some machines won't boot)

- use linux-ide@xxxxxxxxxxxxxxx mailing list

new architecture:

- add only what is really necessary to <asm/ide.h>
and put interface specific code into drivers/ide

- ide_init_hwif_ports() is obsolete and dying,
define IDE_ARCH_NO_OBSOLETE_INIT in <asm/ide.h>

- define ide_default_irq(), ide_init_default_irq()
and ide_default_io_base() to (0)

- ide_init_default_hwifs() is gone

architecture specific drivers:

- do not abuse ide_default_irq()/ide_default_io_base() from <asm/ide.h>

- your driver should be in drivers/ide/<your_arch>/<your_driver_name>

- see drivers in drivers/ide/arm and drivers/ide/legacy for examples
(especially m68k and arm specific drivers)

- do not use ide_setup_ports()

PCI drivers:

- no need to split your driver on .c and .h files

- /proc/ide/ interfaces are obsolete

Bartlomiej Zolnierkiewicz (15 May 2004)

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/