]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC: r342634 (partial)
authormarius <marius@FreeBSD.org>
Sun, 27 Jan 2019 19:04:28 +0000 (19:04 +0000)
committermarius <marius@FreeBSD.org>
Sun, 27 Jan 2019 19:04:28 +0000 (19:04 +0000)
commit01b48a3ff65b34cf419903ab32e1852a64433620
tree4225b60a20fc3ba11e86fb749c15c50d5f47e029
parent7122efc5a8cc6602cdcf0d120ac1a1539f5907f3
MFC: r342634 (partial)

o Don't allocate resources for SDMA in sdhci(4) if the controller or the
  front-end doesn't support SDMA or the latter implements a platform-
  specific transfer method instead. While at it, factor out allocation
  and freeing of SDMA resources to sdhci_dma_{alloc,free}() in order to
  keep the code more readable when adding support for ADMA variants.

o Base the size of the SDMA bounce buffer on MAXPHYS up to the maximum
  of 512 KiB instead of using a fixed 4-KiB-buffer. With the default
  MAXPHYS of 128 KiB and depending on the controller and medium, this
  reduces the number of SDHCI interrupts by a factor of ~16 to ~32 on
  sequential reads while an increase of throughput of up to ~84 % was
  seen.

  Front-ends for broken controllers that only support an SDMA buffer
  boundary of a specific size may set SDHCI_QUIRK_BROKEN_SDMA_BOUNDARY
  and supply a size via struct sdhci_slot. According to Linux, only -
  unsupported in stable/11 anyway - Qualcomm MSM-type SDHCI controllers
  are affected by this, though.

  Requested by: Shreyank Amartya (unconditional bump to 512 KiB)

o Introduce a SDHCI_DEPEND macro for specifying the dependency of the
  front-end modules on the sdhci(4) one and bump the module version
  of sdhci(4) to 2 via an also newly introduced SDHCI_VERSION in order
  to ensure that all components are in sync WRT struct sdhci_slot.

o In sdhci(4):
  - Make pointers const were applicable, and
  - replace a few device_printf(9) calls with slot_printf() for
    consistency.
sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
sys/arm/nvidia/tegra_sdhci.c
sys/arm/ti/ti_sdhci.c
sys/dev/sdhci/fsl_sdhci.c
sys/dev/sdhci/sdhci.c
sys/dev/sdhci/sdhci.h
sys/dev/sdhci/sdhci_acpi.c
sys/dev/sdhci/sdhci_fdt.c
sys/dev/sdhci/sdhci_pci.c