In the past, user-space drivers were mostly used to make graphics run faster while avoiding the kernel. They increasingly became more important and the kernel is now seen as an obstacle to high server connection capacity. In these conditions, we decided to investigate in what degree the driver can be run in user space and what can be gained from this.
You can read more about the most common solutions for running drivers in the user space here: http://embeddedenea.com/2014/10/31/designing-user-space-device-drivers-in-linux/