Surface Pro 3 Type Cover from Ubuntu Forums

Surface Pro 3 Type Cover that works with Ubuntu (and possibly Arch) from this thread.  Both trackpad and keyboard work after compiling my own kernel.
http://ubuntuforums.org/showthread.php?t=2231207&page=2&s=44910e0c56047e4f93dfd9fea58121ef
This is the first time I'm submitting a pull request to the linux kernel, please point out any mistakes if I made any.