From 45003cd5cb4613be8a7a58a615cef4900f391e83 Mon Sep 17 00:00:00 2001 From: Michael Ellerman Date: Thu, 22 Jan 2009 20:54:31 +0000 Subject: [PATCH] --- yaml --- r: 138439 b: refs/heads/master c: 3a51c0cbea947dc9194e18f11661eaa4dbfc5c13 h: refs/heads/master i: 138437: 8c99b8d736e4cdbd4d51cff8f1a4419c3861e20b 138435: e802887419b38d384b8bfd90485f66fd9cb6f5e4 138431: c3df475b850636a833f3e0a10917c251c0a64d60 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/pseries/msi.c | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 5e8758d09930..11058af398b5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e27ed698b88b3387d326e84c0bbe9f83e19c747b +refs/heads/master: 3a51c0cbea947dc9194e18f11661eaa4dbfc5c13 diff --git a/trunk/arch/powerpc/platforms/pseries/msi.c b/trunk/arch/powerpc/platforms/pseries/msi.c index 4af7aa3e2e0f..acf1070d65c0 100644 --- a/trunk/arch/powerpc/platforms/pseries/msi.c +++ b/trunk/arch/powerpc/platforms/pseries/msi.c @@ -132,7 +132,7 @@ static void rtas_teardown_msi_irqs(struct pci_dev *pdev) rtas_disable_msi(pdev); } -static int check_req_msi(struct pci_dev *pdev, int nvec) +static int check_req(struct pci_dev *pdev, int nvec, char *prop_name) { struct device_node *dn; struct pci_dn *pdn; @@ -144,24 +144,34 @@ static int check_req_msi(struct pci_dev *pdev, int nvec) dn = pdn->node; - req_msi = of_get_property(dn, "ibm,req#msi", NULL); + req_msi = of_get_property(dn, prop_name, NULL); if (!req_msi) { - pr_debug("rtas_msi: No ibm,req#msi on %s\n", dn->full_name); + pr_debug("rtas_msi: No %s on %s\n", prop_name, dn->full_name); return -ENOENT; } if (*req_msi < nvec) { - pr_debug("rtas_msi: ibm,req#msi requests < %d MSIs\n", nvec); + pr_debug("rtas_msi: %s requests < %d MSIs\n", prop_name, nvec); return -ENOSPC; } return 0; } +static int check_req_msi(struct pci_dev *pdev, int nvec) +{ + return check_req(pdev, nvec, "ibm,req#msi"); +} + +static int check_req_msix(struct pci_dev *pdev, int nvec) +{ + return check_req(pdev, nvec, "ibm,req#msi-x"); +} + static int rtas_msi_check_device(struct pci_dev *pdev, int nvec, int type) { if (type == PCI_CAP_ID_MSIX) - pr_debug("rtas_msi: MSI-X untested, trying anyway.\n"); + return check_req_msix(pdev, nvec); return check_req_msi(pdev, nvec); }