Hand picked a lot of new sources from LG and kasperhettinga's kernel

Change-Id: Ibb3524e780a2ff0ef81fd668b60e6d28deaec4f9