Initial upload with all the changes/features merged in from sultan-kernel-bruce-linaro