Re: [PATCH 2/6] device/pci: add cmdmem cap to pci_dev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 3/31/2020 3:04 AM, Greg KH wrote:
On Mon, Mar 30, 2020 at 02:27:00PM -0700, Dave Jiang wrote:
Since the current accelerator devices do not have standard PCIe capability
enumeration for accepting ENQCMDS yet, for now an attribute of pdev->cmdmem has
been added to struct pci_dev.  Currently a PCI quirk must be used for the
devices that have such cap until the PCI cap is standardized. Add a helper
function to provide the check if a device supports the cmdmem capability.

Such capability is expected to be added to PCIe device cap enumeration in
the future.

Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
---
  drivers/base/core.c    |   13 +++++++++++++
  include/linux/device.h |    2 ++
  include/linux/pci.h    |    1 +
  3 files changed, 16 insertions(+)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index dbb0f9130f42..cd9f5b040ed4 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -27,6 +27,7 @@
  #include <linux/netdevice.h>
  #include <linux/sched/signal.h>
  #include <linux/sysfs.h>
+#include <linux/pci.h>
#include "base.h"
  #include "power/power.h"
@@ -3790,3 +3791,15 @@ int device_match_any(struct device *dev, const void *unused)
  	return 1;
  }
  EXPORT_SYMBOL_GPL(device_match_any);
+
+bool device_supports_cmdmem(struct device *dev)
+{
+	struct pci_dev *pdev;
+
+	if (!dev_is_pci(dev))
+		return false;
+
+	pdev = to_pci_dev(dev);
+	return pdev->cmdmem;
+}
+EXPORT_SYMBOL_GPL(device_supports_cmdmem);
Why would a pci-specific function like this be ok to have in the driver
core?  Please keep it in the pci core code instead.

The original thought was to introduce a new arch level memory mapping semantic. If you feel this should be PCI exclusive, should we make the ioremap routines for this memory type pci specific as well?



thanks,

greg k-h



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux