[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/