I have been looking at the sysdevs in present in the kernel and noticed thatsonypi was registering itself as a system device. Surely it is possible tosuspend it with interrupyts enabled, so it better be converted to a platformdevice. I course of convert I also did some additional changes:

01-sonypi-whitespace-fixes.patch - get rid of extra whitespace and convert to the kernel cosing style: ... However, there is one special case, namely functions: they have the opening brace at the beginning of the next line...

03-sonypi-pm-changes.patch - convert sonypi sysdev to platform device, drop old-style PM code since APM does call device_suspend anyway so the new style handlers will be called.

04-sonypi-misc-changes.patch - switch sonypi_misc_read to use wake_event_interruptible instead of a homemade copy, fix small race there, make sure that the device is fully initialized before turning the interrupts on.

05-sonypi-pci_get_device.patch - convert from pci_find_device which is obsolete to pci_get_device.

Warning: I do not have the hardware som while the code is compiles and I ampretty sure it is correct it has not been tested.