Skip to content
Snippets Groups Projects
  • This contributor prefers not to receive mails's avatar
    57fa6fb9
    arm: a37xx: pci: Program the data strobe for config read requests · 57fa6fb9
    This contributor prefers not to receive mails authored and Stefan Roese's avatar Stefan Roese committed
    
    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: default avatarPali Rohár <pali@kernel.org>
    Reviewed-by: default avatarStefan Roese <sr@denx.de>
    57fa6fb9
    History
    arm: a37xx: pci: Program the data strobe for config read requests
    This contributor prefers not to receive mails authored and Stefan Roese's avatar Stefan Roese committed
    
    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: default avatarPali Rohár <pali@kernel.org>
    Reviewed-by: default avatarStefan Roese <sr@denx.de>