Okay, you inspired me to look at the code again. There's probably a lot more to this-- I'm not certain the generic Intel HDA code is set up to accomodate HDMI, but certainly if you wanted to make the attempt with the currently available stuff you would need to add to the alsa-kernel/sound/pci/hda/hda_intel.c source code:
old:
/* PCI IDs */
static struct pci_device_id azx_ids[] = {
/* ICH 6..10 */
{ PCI_DEVICE(0x8086, 0x2668), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x27d8), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x269a), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x284b), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x2911), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x293e), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x293f), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x3a3e), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x3a6e), .driver_data = AZX_DRIVER_ICH },
new
/* PCI IDs */
static struct pci_device_id azx_ids[] = {
/* ICH 6..10 */
{ PCI_DEVICE(0x8086, 0x2668), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x27d8), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x269a), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x284b), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x2911), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x293e), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x293f), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x3a3e), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x3a6e), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x2802), .driver_data = AZX_DRIVER_ICH },
{ PCI_DEVICE(0x8086, 0x2803), .driver_data = AZX_DRIVER_ICH },
This will at least tell the ALSA driver to use the Intel driver when it encounters the HDMI audio codec. Beyond that... it might be some work. I'm not clear from my brief look at the source whether it will properly create a PCM device on Intel HDMI. I notice that for other HDMI audio devices there are specific patches for the hardware.