dhd: Kang Decimalman's version of the driver

I tried to cherry-pick from his tree but nothing picked cleanly.
Supposedly fixes wakelocks or something

Change-Id: Ifa0982065316947975fcd1d8005353656ccfe4a5