I recently bought a new HP Pavilion (dv7t-100 CTO) laptop, and installed Ubuntu Karmic 9.10 on it immediately. Everything seemed to work perfectly out of the box, including the function keys. Only problem is, Suspend and Hibernate definitely did not work. Any attempt to suspend or hibernate would basically corrupt the hard drive, and on the next boot (after a manual fsck), /home was wiped.
The solution was simple. No SMART hard drive tests (incidentally, a short SMART scan said the drives were OK). No drivers or kernel modules in Ubuntu. Simply a BIOS upgrade.
I simply had to download the BIOS update from the HP website, copy them to a USB drive, and boot into Windows to install the update. On next reboot, suspend and hibernate worked perfectly, and no more corrupted hard drives!