|
@@ -220,7 +220,9 @@ static int dw_pcie_ep_set_msi(struct pci_epc *epc, u8 encode_int)
|
|
|
struct dw_pcie_ep *ep = epc_get_drvdata(epc);
|
|
|
struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
|
|
|
|
|
|
- val = (encode_int << MSI_CAP_MMC_SHIFT);
|
|
|
+ val = dw_pcie_readw_dbi(pci, MSI_MESSAGE_CONTROL);
|
|
|
+ val &= ~MSI_CAP_MMC_MASK;
|
|
|
+ val |= (encode_int << MSI_CAP_MMC_SHIFT) & MSI_CAP_MMC_MASK;
|
|
|
dw_pcie_writew_dbi(pci, MSI_MESSAGE_CONTROL, val);
|
|
|
|
|
|
return 0;
|