The proto(4) driver attaches to any PCI device that has a type 1 header. As such, its probe function returns a priority of "hoover". It only attaches when no other driver exists. Unfortunately, when the proto(4) driver is compiled into the kernel, the entire system become useless, because the PCI bridge drivers do not follow the standard priority scheme. Instead they return a hardcoded -10000. Since this is effectively yielding a lower priority than "hoover", the photo(4) driver gets to be attached instead of the bridge drivers.
There doesn't seem to be a good reason for why -10000 (or any priority lower than "hoover") would make sense in how the priority scheme has been designed.