android_kernel_oneplus_msm8998/arch/mips/bcm47xx
Tokunori Ikegami 256acf2c0a MIPS: BCM47XX: Enable 74K Core ExternalSync for PCIe erratum
commit 2a027b47dba6b77ab8c8e47b589ae9bbc5ac6175 upstream.

The erratum and workaround are described by BCM5300X-ES300-RDS.pdf as
below.

  R10: PCIe Transactions Periodically Fail

    Description: The BCM5300X PCIe does not maintain transaction ordering.
                 This may cause PCIe transaction failure.
    Fix Comment: Add a dummy PCIe configuration read after a PCIe
                 configuration write to ensure PCIe configuration access
                 ordering. Set ES bit of CP0 configu7 register to enable
                 sync function so that the sync instruction is functional.
    Resolution:  hndpci.c: extpci_write_config()
                 hndmips.c: si_mips_init()
                 mipsinc.h CONF7_ES

This is fixed by the CFE MIPS bcmsi chipset driver also for BCM47XX.
Also the dummy PCIe configuration read is already implemented in the
Linux BCMA driver.

Enable ExternalSync in Config7 when CONFIG_BCMA_DRIVER_PCI_HOSTMODE=y
too so that the sync instruction is externalised.

Signed-off-by: Tokunori Ikegami <ikegami@allied-telesis.co.jp>
Reviewed-by: Paul Burton <paul.burton@mips.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Rafał Miłecki <zajec5@gmail.com>
Cc: linux-mips@linux-mips.org
Cc: stable@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/19461/
Signed-off-by: James Hogan <jhogan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:21:30 +02:00
..
bcm47xx_private.h MIPS: BCM47XX: Fix coding style to match kernel standards 2015-04-01 17:22:10 +02:00
board.c MIPS: BCM47XX: Support Luxul XWR-1750 board 2015-06-21 21:53:53 +02:00
buttons.c MIPS: BCM47XX: Fix button inversion for Asus WL-500W 2017-03-12 06:37:23 +01:00
irq.c MIPS: BCM47XX: Initialize bcma bus later (with mm available) 2014-11-24 07:45:00 +01:00
Kconfig ssb: add Kconfig entry for compiling SoC related code 2015-10-28 21:05:21 +02:00
leds.c MIPS: BCM47XX: Fix LED inversion for WRT54GSv1 2017-11-30 08:37:20 +00:00
Makefile MIPS: BCM47xx: Move NVRAM driver to the drivers/firmware/ 2015-06-21 21:55:33 +02:00
Platform
prom.c MIPS: BCM77xx: Remove legacy __cpuinit{,data} sections that crept in 2015-06-21 21:53:42 +02:00
serial.c MIPS: BCM47XX: Fix coding style to match kernel standards 2015-04-01 17:22:10 +02:00
setup.c MIPS: BCM47XX: Enable 74K Core ExternalSync for PCIe erratum 2018-07-03 11:21:30 +02:00
sprom.c MIPS: BCM47xx: Fetch board info directly in callback function 2015-11-11 08:36:57 +01:00
time.c MIPS: BCM47XX: Fix coding style to match kernel standards 2015-04-01 17:22:10 +02:00
workarounds.c MIPS: BCM47XX: Add new file for device specific workarounds 2014-03-31 18:17:12 +02:00