|
@@ -195,20 +195,14 @@ static int dw_pcie_ep_map_addr(struct pci_epc *epc, phys_addr_t addr,
|
|
|
static int dw_pcie_ep_get_msi(struct pci_epc *epc)
|
|
|
{
|
|
|
int val;
|
|
|
- u32 lower_addr;
|
|
|
- u32 upper_addr;
|
|
|
struct dw_pcie_ep *ep = epc_get_drvdata(epc);
|
|
|
struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
|
|
|
|
|
|
- val = dw_pcie_readb_dbi(pci, MSI_MESSAGE_CONTROL);
|
|
|
- val = (val & MSI_CAP_MME_MASK) >> MSI_CAP_MME_SHIFT;
|
|
|
-
|
|
|
- lower_addr = dw_pcie_readl_dbi(pci, MSI_MESSAGE_ADDR_L32);
|
|
|
- upper_addr = dw_pcie_readl_dbi(pci, MSI_MESSAGE_ADDR_U32);
|
|
|
-
|
|
|
- if (!(lower_addr || upper_addr))
|
|
|
+ val = dw_pcie_readw_dbi(pci, MSI_MESSAGE_CONTROL);
|
|
|
+ if (!(val & MSI_CAP_MSI_EN_MASK))
|
|
|
return -EINVAL;
|
|
|
|
|
|
+ val = (val & MSI_CAP_MME_MASK) >> MSI_CAP_MME_SHIFT;
|
|
|
return val;
|
|
|
}
|
|
|
|