Patchwork [05/10] pci bridge: add helper function for ssvid capability.

login
register
mail settings
Submitter Isaku Yamahata
Date June 17, 2010, 6:15 a.m.
Message ID <16f393b5eebf6fb5182668d32c62dd03cedb02cc.1276755023.git.yamahata@valinux.co.jp>
Download mbox | patch
Permalink /patch/55966/
State New
Headers show

Comments

Isaku Yamahata - June 17, 2010, 6:15 a.m.
helper function to add ssvid capability.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
 hw/pci_bridge.c |   20 ++++++++++++++++++++
 hw/pci_bridge.h |    3 +++
 2 files changed, 23 insertions(+), 0 deletions(-)
Michael S. Tsirkin - June 17, 2010, 10:01 a.m.
On Thu, Jun 17, 2010 at 03:15:47PM +0900, Isaku Yamahata wrote:
> helper function to add ssvid capability.
> 
> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>

But .. this is unused?

> ---
>  hw/pci_bridge.c |   20 ++++++++++++++++++++
>  hw/pci_bridge.h |    3 +++
>  2 files changed, 23 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/pci_bridge.c b/hw/pci_bridge.c
> index 43c21d4..1397a11 100644
> --- a/hw/pci_bridge.c
> +++ b/hw/pci_bridge.c
> @@ -29,6 +29,26 @@
>  
>  #include "pci_bridge.h"
>  
> +/* PCI bridge subsystem vendor ID helper functions */
> +#define PCI_SSVID_SIZEOF        8
> +#define PCI_SSVID_SVID          4
> +#define PCI_SSVID_SSID          6
> +
> +int pci_bridge_ssvid_init(PCIDevice *dev, uint8_t offset,
> +                          uint16_t svid, uint16_t ssid)
> +{
> +    int pos;
> +    pos = pci_add_capability_at_offset(dev, PCI_CAP_ID_SSVID,
> +                                       offset, PCI_SSVID_SIZEOF);
> +    if (pos < 0) {
> +        return pos;
> +    }
> +
> +    pci_set_word(dev->config + pos + PCI_SSVID_SVID, svid);
> +    pci_set_word(dev->config + pos + PCI_SSVID_SSID, ssid);
> +    return pos;
> +}
> +
>  void pci_bridge_write_config(PCIDevice *d,
>                               uint32_t address, uint32_t val, int len)
>  {
> diff --git a/hw/pci_bridge.h b/hw/pci_bridge.h
> index 2747e7f..a1f160b 100644
> --- a/hw/pci_bridge.h
> +++ b/hw/pci_bridge.h
> @@ -23,6 +23,9 @@
>  
>  #include "pci.h"
>  
> +int pci_bridge_ssvid_init(PCIDevice *dev, uint8_t offset,
> +                          uint16_t svid, uint16_t ssid);
> +
>  struct PCIBridge {
>      PCIDevice dev;
>  
> -- 
> 1.6.6.1

Patch

diff --git a/hw/pci_bridge.c b/hw/pci_bridge.c
index 43c21d4..1397a11 100644
--- a/hw/pci_bridge.c
+++ b/hw/pci_bridge.c
@@ -29,6 +29,26 @@ 
 
 #include "pci_bridge.h"
 
+/* PCI bridge subsystem vendor ID helper functions */
+#define PCI_SSVID_SIZEOF        8
+#define PCI_SSVID_SVID          4
+#define PCI_SSVID_SSID          6
+
+int pci_bridge_ssvid_init(PCIDevice *dev, uint8_t offset,
+                          uint16_t svid, uint16_t ssid)
+{
+    int pos;
+    pos = pci_add_capability_at_offset(dev, PCI_CAP_ID_SSVID,
+                                       offset, PCI_SSVID_SIZEOF);
+    if (pos < 0) {
+        return pos;
+    }
+
+    pci_set_word(dev->config + pos + PCI_SSVID_SVID, svid);
+    pci_set_word(dev->config + pos + PCI_SSVID_SSID, ssid);
+    return pos;
+}
+
 void pci_bridge_write_config(PCIDevice *d,
                              uint32_t address, uint32_t val, int len)
 {
diff --git a/hw/pci_bridge.h b/hw/pci_bridge.h
index 2747e7f..a1f160b 100644
--- a/hw/pci_bridge.h
+++ b/hw/pci_bridge.h
@@ -23,6 +23,9 @@ 
 
 #include "pci.h"
 
+int pci_bridge_ssvid_init(PCIDevice *dev, uint8_t offset,
+                          uint16_t svid, uint16_t ssid);
+
 struct PCIBridge {
     PCIDevice dev;