arm: a37xx: pci: Program the data strobe for config read requests
authorPali Rohár <pali@kernel.org>
Mon, 1 Nov 2021 09:12:51 +0000 (10:12 +0100)
committerStefan Roese <sr@denx.de>
Wed, 3 Nov 2021 05:45:34 +0000 (06:45 +0100)
commit57fa6fb93291cdcabc1c38d874d12257a879f8ee
treed07143c9ac7aa2713233207a936fe59dfda94225
parent62a98f496a0e8b0ffd67320e24834d400e45d841
arm: a37xx: pci: Program the data strobe for config read requests

According to the Armada 3720 Functional Specification Data Strobe applies
for both read and write config requests.

Data strobe bits configure which bytes from the start address should be
returned for read request. Set value 0xf (all 4 bits) into Data Strobe
register to read all four bytes from specified 32-bit config space
register. Same value for Data Strobe register is programmed by Linux
pci-aardvark.c driver for config read requests.

Without this patch pci-aardvark driver sets data strobe register only
during config write operations. So any followup config read operations
could result with just partial datai returned (if previous write operation
was not 32-bit wide). This patch fixes it and ensures that config read
operations always read all bytes from requested register.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
drivers/pci/pci-aardvark.c