Well have you tested this with the current upstream kernel? E.g. 4.1 or a recent rc of 4.2? That's usually the first thing you should to to figure out if newer kernels are already fixed.