What does it take to support a piece of hardware? It takes to abide by whatever underlying industry standard is.
Back in 2007, we bought a Motorola Z6 ROKR, and it wasn't supported as a storage device at the time. After googling the matter, it appeared it misbehaved during handshake with the host, violating USB protocol, and needed a "quirk" (specifically, its product id needed to be listed in appropriate header; this was already done in the next kernel version).
If Motorola had run the phone through proper QA procedure, it wouldn't have broken the standard, and no drivers would be necessary *at all*.