Stabilized common API.

There was a strange deallocation issue with the input device.
To fix this, we use the devres counterparts and have the deallocated well after they're done being used. I'm still unsure what the problem was but this avoids the issue altogether.