First of all, MS Surface Pro 4 type cover does not work if boot with upstream kernel. A similar problem is reported at bug #135561, with a patch to enable type cover. But it seems that nobody takes care of that patch. Second, if I boot with type cover attached, it is enumerated as usb 1-7, which takes more than 10 seconds to suspend and more than 5 seconds to resume.
Created attachment 243381 [details] analyze_suspend output with type cover attached
Created attachment 243391 [details] analyze_suspend output without type cover attached As a comparison, this is the analyze_suspend output if I suspend/resume the system without type cover attached.
patch to support surface pro 4 type cover is sent at https://patchwork.kernel.org/patch/9455863/ this patch also fixes the suspend/resume latency issue.
confirmed the problem has been fixed in HID for-next branch.