3 ms·
The lack of a stable kernel API may be part of it but I think the main reason drivers don't get into the mainline kernel is that they are written as big hacks:
by dmm 11y ago
The lack of a stable kernel API may be part of it but I think the main reason drivers don't get into the mainline kernel is that they are written as big hacks: hard coding values and not following standard kernel practices.
Check out the wondermedia wm8850 sources on github:
https://github.com/wondermedia/wm8850 https://github.com/wondermedia/wm8850
Instead of using a device tree the drivers expects memory address to be passed to the uboot command line and other venders just hardcode the addresses, making you modify the sources to run the driver on a different device
- joezydeco 11y agoDevicetree. Ugh. On one project I attempted to move the kernel from 3.0.35 to 3.10 and even that was a huge pile of problems, asking vendors to bring their drivers up to speed. Some did, some didn't. It wasn't worth the trouble so off we went, shipping with 3.0.35.
- digi_owl 11y agoWell i think it is the closest ARM has to PCI enumeration right now. Best i recall, Intel started Moblin (that later merged with Maemo to from Meego) because their mobile Atom SoC didn't provide PCI enumeration. Thus MS was reluctant to provide a Windows version for it, as Windows was highly reliant on just that for hardware management.
- david-given 11y agoDidn't Open Firmware solve all these problems years ago? I'm pretty sure I remember operating systems being able to use Open Firmware to query option ROMs for driver details in a scalable (and machine independent!) way, way back in the 1990s. It's always saddened me that Open Firmware never got picked up for IA. They went for EFI instead...
- digi_owl 11y agoBest i can tell, devicetree originated with Open Firmware.