Moved initialization code into configure hook

This is to allow the drivers to already communicate with the device
in the configure hook.

Cleaned-up doubled error checks in the process.