PCI: designware-ep: dw_pcie_ep_set_msi() should only set MMC bits
authorNiklas Cassel <niklas.cassel@axis.com>
Tue, 19 Dec 2017 23:29:23 +0000 (00:29 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 21 Dec 2017 11:09:24 +0000 (11:09 +0000)
commit099a95f3591ade29da52131895a3ba9f92a0e82c
treea6c00c76e3d218edd8545e30c8587b82c1915b19
parent111111a72e677ff13d82d7b26c89a0cd84b32280
PCI: designware-ep: dw_pcie_ep_set_msi() should only set MMC bits

Previously, dw_pcie_ep_set_msi() wrote all bits in the Message Control
register, thus overwriting the PCI_MSI_FLAGS_64BIT bit.
By clearing the PCI_MSI_FLAGS_64BIT bit, we break MSI
on systems where the RC has set a 64 bit MSI address.
Fix dw_pcie_ep_set_msi() so that it only sets MMC bits.

Tested-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Joao Pinto <jpinto@synopsys.com>
drivers/pci/dwc/pcie-designware-ep.c
drivers/pci/dwc/pcie-designware.h