Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Sep 2009 19:59:48 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/sound/pci t4dwave.c
Message-ID:  <200909252000.n8PK04il067030@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
marius      2009-09-25 19:59:48 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/dev/sound/pci    t4dwave.c 
  Log:
  SVN rev 197503 on 2009-09-25 19:59:48Z by marius
  
  MFC: r197401
  
  - According to Linux, the ALi M5451 can do 31-bit DMA instead of just
    30-bit like the reset of the controllers supported by this driver.
    Actually ALi M5451 can be setup up to generate 32-bit addresses by
    setting the 31st bit via the accompanying ISA bridge, which allows
    it to work in sparc64 machines whose IOMMU require at least 32-bit
    DMA. Even though other architectures would also benefit from 32-bit
    DMA, enabling this bit is limited to sparc64 as bus_dma(9) doesn't
    generally guarantee that a low address of BUS_SPACE_MAXADDR_32BIT
    results in a buffer in the 32-bit range.
  - According to Tatsuo YOKOGAWA's ali(4), the the DMA transfer size of
    ALi M5451 is fixed to 64k and in fact using the default size of 4k
    causes the chip to overrun the mapping, triggering uncorrectable
    DMA errors on sparc64.
  - The 4DWAVE DX and NX require the recording buffer to be 8-byte
    aligned so adjust the bus_dma_tag_create(9) accordingly.
  - Unlike the rest of the controllers supported by this driver, the
    ALi M5451 only has 32 hardware channels instead of 64 so limit the
    loop in tr_intr() accordingly. [1]
  
  Submitted by:   yongari [1]
  Reviewed by:    yongari (superset of what is committed)
  
  Revision  Changes    Path
  1.53.2.2  +78 -18    src/sys/dev/sound/pci/t4dwave.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909252000.n8PK04il067030>