I don't know what exactly happening. I made some changes as per this Ubuntu Forum thread.
Then I checked the suspend log, which shows:
Running hook /etc/pm/sleep.d/20_custom-ehci_hcd suspend suspend:
/etc/pm/sleep.d/20_custom-ehci_hcd: 21: /etc/pm/sleep.d/20_custom-ehci_hcd: cannot create /sys/bus/pci/drivers/ehci_hcd/unbind: Directory nonexistent
/etc/pm/sleep.d/20_custom-ehci_hcd: 21: /etc/pm/sleep.d/20_custom-ehci_hcd: cannot create /sys/bus/pci/drivers/ehci_hcd/unbind: Directory nonexistent
/etc/pm/sleep.d/20_custom-ehci_hcd suspend suspend: Returned exit code 2.
Thu Aug 20 19:59:44 IST 2015: Inhibit found, will not perform suspend
Thu Aug 20 19:59:44 IST 2015: Running hooks for resume
Running hook /etc/pm/sleep.d/10_unattended-upgrades-hibernate resume suspend:
/etc/pm/sleep.d/10_unattended-upgrades-hibernate resume suspend: success.
I then just deleted /etc/pm/sleep.d/20_custom-ehci_hcd
. Now it works perfectly.
Someone please explain the reason for this behaviour.