[PATCH] pci: mvebu: avoid changing the SCC bit in the link status register

Russell King - ARM Linux linux at armlinux.org.uk
Sat Mar 25 05:58:59 PDT 2017


Ping.  This _fix_ doesn't seem to have made it in.

On Tue, Jan 17, 2017 at 09:40:52PM +0000, Russell King wrote:
> It seems on later Armada 38x, the slot clock configuration bit is not
> read-only, but can be written.  This means that our RW1C protection
> ends up clearing this bit when the link control register is written.
> 
> Adjust the mask so that we only avoid writing '1' bits to the RW1C
> bits of this register (bits 15 and 14 of the link status) rather than
> masking out all the status register bits.
> 
> Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
> ---
>  drivers/pci/host/pci-mvebu.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c
> index 58f75c098b42..3ed4cb7501bd 100644
> --- a/drivers/pci/host/pci-mvebu.c
> +++ b/drivers/pci/host/pci-mvebu.c
> @@ -827,10 +827,11 @@ static int mvebu_sw_pci_bridge_write(struct mvebu_pcie_port *port,
>  		 * If the mask is 0xffff0000, then we only want to write
>  		 * the link control register, rather than clearing the
>  		 * RW1C bits in the link status register.  Mask out the
> -		 * status register bits.
> +		 * RW1C bits.
>  		 */
>  		if (mask == 0xffff0000)
> -			value &= 0xffff;
> +			value &= ~((PCI_EXP_LNKSTA_LABS |
> +				    PCI_EXP_LNKSTA_LBMS) << 16);
>  
>  		mvebu_writel(port, value, PCIE_CAP_PCIEXP + PCI_EXP_LNKCTL);
>  		break;
> -- 
> 2.7.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list