According to device_main.c, the driver may sleep under a spinlock, and the function call path is: vt6655_suspend (acquire the spinlock) pci_set_power_state __pci_start_power_transition (drivers/pci/pci.c) msleep --> may sleepA possible fix is to replace msleep with mdelay in __pci_start_power_transition in drivers/pci/pci.c.
This bug is found by my static analysis tool and my code review. Thanks, Jia-Ju Bai