anchor.diff:             (dma-virt (+ mezzano.supervisor::+physical-map-base+ dma-phys)))
         (setf (hda-corb/rirb/dmap hda) dma-virt
               (hda-corb/rirb/dmap-physical hda) dma-phys))
  +    (mezzano.supervisor:simple-irq-attach (hda-interrupt-handler hda))
       (initialize-corb hda)
       (initialize-rirb hda)
       (let ((dmap-address (logior (+ (hda-corb/rirb/dmap-physical hda) +dmap-offset+)
  
positive.code:                        (setf buffer-offset (truncate buf-len 2)))
                        (t
                         (setf buffer-offset 0)))))
              (sleep 0.01))
        (stream-reset hda (first-output-stream hda)))))
  
  ;; Return a list of all pin widgets.
  
negative.code:   ;; FIXME: Flush old cards first.
    (let* ((bar0 (mezzano.supervisor:pci-io-region device 0 #x3000))
           (hda (make-hda :pci-device device :register-set bar0)))
      (setf (hda-interrupt-latch hda) (mezzano.supervisor:make-latch "HDA IRQ latch"))
      (setf (hda-interrupt-handler hda) (mezzano.supervisor:make-simple-irq (mezzano.supervisor:pci-intr-line device) (hda-interrupt-latch hda)))
      (format t "Found Intel HDA controller at ~S.~%" device)
      (setf (mezzano.supervisor:pci-bus-master-enabled device) t)
      ;; Perform a controller reset by pulsing crst to 0.
  