From de7eafc05f1a830af3f722671d02a31bfc1b1f9c Mon Sep 17 00:00:00 2001
From: "Suren A. Chilingaryan" <csa@dside.dyndns.org>
Date: Sun, 13 Feb 2011 03:08:00 +0100
Subject: Support Device ID of IPE camera

---
 driver/base.c   | 6 ++++++
 driver/base.h   | 1 +
 driver/common.h | 3 +++
 3 files changed, 10 insertions(+)

diff --git a/driver/base.c b/driver/base.c
index ae77966..c740856 100644
--- a/driver/base.c
+++ b/driver/base.c
@@ -345,6 +345,12 @@ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_devi
                 /* It is a PCI-E Xilinx ML605 evaluation board */
 		mod_info("Found ML605 board at %s\n", dev_name(&pdev->dev));
 	}
+	else if ((id->vendor == PCIE_XILINX_VENDOR_ID) &&
+		(id->device == PCIE_IPECAMERA_DEVICE_ID))
+	{
+                /* It is a PCI-E IPECamera based on Xilinx ML605 evaluation board */
+		mod_info("Found IPE Camera at %s\n", dev_name(&pdev->dev));
+	}
 	else
 	{
 		/* It is something else */
diff --git a/driver/base.h b/driver/base.h
index c0dacd0..c8787c9 100644
--- a/driver/base.h
+++ b/driver/base.h
@@ -52,6 +52,7 @@ static const __devinitdata struct pci_device_id pcidriver_ids[] = {
 	{ PCI_DEVICE( PCIXPG4_VENDOR_ID , PCIXPG4_DEVICE_ID ) },		// PCI-X PROGRAPE 4
 	{ PCI_DEVICE( PCI64PG4_VENDOR_ID , PCI64PG4_DEVICE_ID ) },		// PCI-64 PROGRAPE 4
 	{ PCI_DEVICE( PCIE_XILINX_VENDOR_ID, PCIE_ML605_DEVICE_ID ) },          // PCI-E Xilinx ML605
+	{ PCI_DEVICE( PCIE_XILINX_VENDOR_ID, PCIE_IPECAMERA_DEVICE_ID ) },      // PCI-E IPE Camera
 	{0,0,0,0},
 };
 
diff --git a/driver/common.h b/driver/common.h
index f386b49..c3f86a3 100644
--- a/driver/common.h
+++ b/driver/common.h
@@ -87,6 +87,9 @@ typedef struct  {
 #define PCIE_XILINX_VENDOR_ID 0x10ee
 #define PCIE_ML605_DEVICE_ID 0x04a0
 
+/* Identifies the PCI-E IPE Camera */
+#define PCIE_IPECAMERA_DEVICE_ID 0x6018
+
 /*************************************************************************/
 /* Some nice defines that make code more readable */
 /* This is to print nice info in the log */
-- 
cgit v1.2.3