as those CSSU installations out there that already have nicocam can happily pull updates from "cssu-optional" class when next CSSU rev rolls out, while those installing fresh wouldn't automatically include nicocam any more

and since vbus isn't controlled in kernel domain, you have to implement all "auto-speed" in h-e-n or a similar userland app that enables vboost, reads out what kernel found out about peripheral, then removes vbus for long enough to terminate the USBG session, sets speed accordingly and ramps up hostmode incl vboost again

and since kernel is .. well kernel, you lose control of what it actually does regarding vboost and charging and hostmode etc, means you'll have a hard time to recover when any of this stuff doesn't behave with a particular paripheral the way you (the kernel devel who designed all this) thought

you'll have an incredibly hard time to make your kernel compatible with bme, even if you'd do "the right thing" and replace the vboost-enable function already existing in kernel (but empty function, formerly controlled twl4030 chargepump) by something that directly drives bq24150

to detect D+/- short, the 1707 connects one D-line to VBUS via a "pullup" resistor, and enables pulldown resistor on the other D-line. Then it checks if the line with pulldown resistor is pulled up to VBUS level