2015-05-07 16:22:42 +00:00
|
|
|
--- a/dev/pci/azalia.c
|
|
|
|
+++ b/dev/pci/azalia.c
|
2019-10-16 09:57:44 +00:00
|
|
|
@@ -492,7 +492,7 @@
|
2015-05-07 16:22:42 +00:00
|
|
|
azalia_t *sc;
|
|
|
|
struct pci_attach_args *pa;
|
|
|
|
pcireg_t v;
|
|
|
|
- uint8_t reg;
|
|
|
|
+ // uint8_t reg;
|
|
|
|
pci_intr_handle_t ih;
|
|
|
|
const char *interrupt_str;
|
|
|
|
|
2019-10-16 09:57:44 +00:00
|
|
|
@@ -518,12 +518,18 @@
|
2015-05-07 16:22:42 +00:00
|
|
|
|
|
|
|
azalia_configure_pci(sc);
|
|
|
|
|
|
|
|
- /* disable MSI, use INTx instead */
|
|
|
|
- if (PCI_VENDOR(sc->pciid) == PCI_VENDOR_INTEL) {
|
|
|
|
- reg = azalia_pci_read(sc->pc, sc->tag, ICH_PCI_MMC);
|
|
|
|
- reg &= ~(ICH_PCI_MMC_ME);
|
|
|
|
- azalia_pci_write(sc->pc, sc->tag, ICH_PCI_MMC, reg);
|
|
|
|
- }
|
|
|
|
+ // This was added in CVS rev 1.168 because certain devices do not
|
|
|
|
+ // support MSIs. For reasons that are not clear yet, this breaks
|
|
|
|
+ // when using the platform_drv on x86 with MSI support and IOMMU
|
|
|
|
+ // enabled. All hw we tested seems to work fine when it is removed,
|
|
|
|
+ // even older kernels, e.g. OKL4, that use legacy IRQs,
|
|
|
|
+ //
|
|
|
|
+ // /* disable MSI, use INTx instead */
|
|
|
|
+ // if (PCI_VENDOR(sc->pciid) == PCI_VENDOR_INTEL) {
|
|
|
|
+ // reg = azalia_pci_read(sc->pc, sc->tag, ICH_PCI_MMC);
|
|
|
|
+ // reg &= ~(ICH_PCI_MMC_ME);
|
|
|
|
+ // azalia_pci_write(sc->pc, sc->tag, ICH_PCI_MMC, reg);
|
|
|
|
+ // }
|
|
|
|
|
2019-10-16 09:57:44 +00:00
|
|
|
/* disable MSI for AMD Summit Ridge/Raven Ridge HD Audio */
|
|
|
|
if (PCI_VENDOR(sc->pciid) == PCI_VENDOR_AMD) {
|
|
|
|
@@ -3973,6 +3979,10 @@
|
|
|
|
azalia_set_blksz(void *v, int mode,
|
|
|
|
struct audio_params *p, struct audio_params *r, unsigned int blksz)
|
|
|
|
{
|
|
|
|
+ // XXX using mult leads to a blksz of 416 in case of a
|
|
|
|
+ // requested blksz of 441 which in return results in distored
|
|
|
|
+ // playback.
|
|
|
|
+#if 0
|
|
|
|
int mult;
|
|
|
|
|
|
|
|
/* must be multiple of 128 bytes */
|
|
|
|
@@ -3981,6 +3991,7 @@
|
|
|
|
blksz -= blksz % mult;
|
|
|
|
if (blksz == 0)
|
|
|
|
blksz = mult;
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
return blksz;
|
|
|
|
}
|