Video on HDMI is supported by -ati, -nvidia and -intel drivers.
HDMI sound is a different matter. The sound data is carried over the same wire as video in the various video blanking intervals. So the video driver has to communicate with the audio driver about the current video mode and so on.
You may re-direct audio output signal to HDMI output by configuring with the Pulse Audio GUI:
Since many HDMI graphics provide multiple HDMI interfaces, you may need to test each HDMI interface to use the correct one.
You may also re-direct audio output signal to HDMI by ALSA driver. Many application provides GUI interface to configure using ALSA driver.
A set of patches is available for -intel to enable HDMI audio output for HDMI monitors. It also requires a corresponding ALSA patch. Details are at: http://lists.freedesktop.org/archives/xorg/2008-November/040034.html
TV configuration for HDMI video
If you're lucky, HDMI video will "just work" for your television. However, like with monitors, many TV models produce bad EDID and need quirked modelines. Unfortunately TV's don't get nearly as much testing on Linux as monitors do, so the quirk database for them is not as fully fleshed out. So you may find yourself running across modeline issues with TVs more often than you'd expect.
Start by checking the EDID information being supplied by the TV for accuracy, using either xrandr --verbose or get-edid | parse-edid while the computer is connected to the HDMI port.
If you have an HDMI-capable monitor, try hooking it up to your computer's HDMI port and verify you get a picture. If that works, then try hooking up the TV at a low resolution (e.g. 720p) and experiment with different modelines to find one the TV supports. Modelines can be generated using cvt or similar tools. See man xrandr for details on adding and testing modelines in your xsession.
Sometimes TV's report different modes over HDMI than they do over DVI. If your television has a separate DVI port, you can try connecting to that (try replacing the HDMI->HDMI cable with an HDMI->DVI cable, with the DVI end hooked to the TV, and HDMI on the computer). If you're able to get a valid signal there, take note of its modeline and try that with the HDMI->HDMI connection. Over DVI, the TV sometimes will report a non-interlaced native resolution the video driver can handle.
Once you've found a modeline that works,
Section "Device" ... Option "monitor-TMDS-1" "MonitorTMDS1" Option "IgnoreEDID" "true" EndSection Section "Monitor" Identifier "MonitorTMDS1" ... Modeline "1920x1080@60hz" 148.352 1920 1960 2016 2200 1080 1082 1088 1125 +hsync +vsync Option "IgnoreEDID" "true" Option "PreferredMode" "1920x1080@60hz" EndSection