Revision: 6347
http://ipcop.svn.sourceforge.net/ipcop/?rev=6347&view=rev
Author: owes
Date: 2012-02-16 21:01:26 +0000 (Thu, 16 Feb 2012)
Log Message:
-----------
Add pulsar patches to be able to build with 3.0 kernel
Modified Paths:
--------------
ipcop/trunk/lfs/pulsar
Added Paths:
-----------
ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.33.patch
ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.37.patch
ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.39.patch
Modified: ipcop/trunk/lfs/pulsar
===================================================================
--- ipcop/trunk/lfs/pulsar 2012-02-16 20:59:27 UTC (rev 6346)
+++ ipcop/trunk/lfs/pulsar 2012-02-16 21:01:26 UTC (rev 6347)
@@ -86,6 +86,9 @@
cd $(DIR_APP) && cp makefile.2.6 Makefile
cd $(DIR_APP) && patch -Np1 -i
$(DIR_PATCHES)/pulsar-4.0.24_kernel_2.6.24.patch
+ cd $(DIR_APP) && patch -Np1 -i
$(DIR_PATCHES)/pulsar-4.0.24_kernel_2.6.33.patch
+ cd $(DIR_APP) && patch -Np1 -i
$(DIR_PATCHES)/pulsar-4.0.24_kernel_2.6.37.patch
+ cd $(DIR_APP) && patch -Np1 -i
$(DIR_PATCHES)/pulsar-4.0.24_kernel_2.6.39.patch
cd $(DIR_APP) && make KDIR=/lib/modules/$(KVER)/build
cd $(DIR_APP) && install -D -m 0644 pulsar_atm.ko
/lib/modules/$(KVER)/extra/pulsar.ko
Added: ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.33.patch
===================================================================
--- ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.33.patch
(rev 0)
+++ ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.33.patch 2012-02-16
21:01:26 UTC (rev 6347)
@@ -0,0 +1,114 @@
+--- a/pulsar.c 2008/09/15 01:18:09 1.21
++++ b/pulsar.c 2010/05/25 18:03:27 1.22
+@@ -1109,19 +1109,16 @@
+
+ /* Get MAC address */ // XXX: Todo
+
+- /* Start training modem */
+-
+ /* Create /proc/pulsar/pulsarX */
+ sprintf(proc_name, "driver/pulsar/pulsar%d", dev_number);
+- pulsar_proc = create_proc_read_entry(proc_name, 0,
NULL,pulsar_read_procmem,NULL);
+- if (pulsar_proc == NULL){ //failed to create proc file, therefore
directory /proc/driver/pulsar doesn't exist
+- pulsar_dir = proc_mkdir("driver/pulsar", NULL); //create the missing
directory
+- pulsar_proc = create_proc_read_entry(proc_name, 0,
NULL,pulsar_read_procmem,NULL); //try to create file again
+- }
+- if ((pulsar_proc == NULL) && (pulsar_dir != NULL)){
+- remove_proc_entry("driver/pulsar",NULL); //still failed, so give up
and remove directory.
++ pulsar_dir = proc_mkdir("driver/pulsar", NULL);
++ if (pulsar_dir) {
++ pulsar_proc = create_proc_read_entry(proc_name, 0, NULL,
pulsar_read_procmem, NULL);
++ if (!pulsar_proc)
++ remove_proc_entry("driver/pulsar",NULL);
+ }
+
++ /* Start training modem */
+ start_training(pmodem);
+ err = 0;
+ goto pulsar_init_exit;
+@@ -1143,6 +1140,9 @@
+ pci_disable_device(pci_dev);
+ pulsar_init_exit_free:
+ pci_set_drvdata(pci_dev, NULL);
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
++ pci_dev_put(pci_dev);
++#endif
+ kfree(txb);
+ kfree(oam_cell);
+ kfree(pmodem->handle);
+@@ -1190,6 +1190,10 @@
+ #endif
+ pci_disable_device(pci_dev);
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++ pci_dev_put(pci_dev);
++#endif
++
+ //sarlib_close(vcc_list);
+
+ /* Remove /proc/driver/pulsar/pulsarX */
+@@ -1211,7 +1215,6 @@
+
+ kfree(pmodem->handle);
+ kfree(pmodem);
+-
+ }
+
+ #ifdef PULSAR_NEWPCISTYLE
+@@ -1245,20 +1248,23 @@
+
+ printk(KERN_INFO "%s: PCI ADSL ATM Driver %s Lib %s loaded\n", PTAG,
VERSION, getlibver());
+
++ printk(KERN_INFO "%s: Searching for card %d\n", PTAG, dev_number);
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++ while ((pci_dev = pci_get_device(VID, DID, pci_dev)) != NULL) {
++#else
+ while ((pci_dev = pci_find_device(VID, DID, pci_dev)) != NULL) {
++#endif
+ if (dev_found == dev_number) // we've found the one were
looking for
+- break;
++ return pulsar_init_one(pci_dev, NULL);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++ pci_dev_put(pci_dev);
++#endif
+ dev_found++;
+ }
+
+- printk(KERN_DEBUG "%s: dev_found = %d, dev_number = %d\n", PTAG,
dev_found, dev_number);
+-
+- if ((pci_dev) && (dev_found == dev_number)) {
+- return pulsar_init_one(pci_dev, NULL);
+- } else {
+- printk(KERN_ERR "%s: No PCI card found\n", PTAG);
+- return -ENODEV;
+- }
++ printk(KERN_ERR "%s: No card found\n", PTAG);
++ return -ENODEV;
+ #endif
+ }
+
+@@ -1268,9 +1274,21 @@
+ pci_unregister_driver(&pulsar_driver);
+ #else
+ struct pci_dev *pci_dev = NULL;
++ int dev_found = 0;
+
+- pci_dev = pci_find_device(VID, DID, pci_dev); // just one device at the
moment
+- pulsar_remove_one(pci_dev);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++ while ((pci_dev = pci_get_device(VID, DID, pci_dev)) != NULL) {
++#else
++ while ((pci_dev = pci_find_device(VID, DID, pci_dev)) != NULL) {
++#endif
++ if (dev_found == dev_number)
++ pulsar_remove_one(pci_dev);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++ else
++ pci_dev_put(pci_dev);
++#endif
++ dev_found++;
++ }
+ #endif
+ printk(KERN_INFO "%s: PCI ADSL ATM Driver %s Lib %s unloaded\n", PTAG,
VERSION, getlibver());
+ }
Added: ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.37.patch
===================================================================
--- ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.37.patch
(rev 0)
+++ ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.37.patch 2012-02-16
21:01:26 UTC (rev 6347)
@@ -0,0 +1,14 @@
+--- a/pulsar.c 2010/05/25 18:03:27 1.22
++++ b/pulsar.c 2011/02/11 19:01:08 1.23
+@@ -1045,7 +1045,11 @@
+ name, pci_dev, pci_dev->irq, membase, memlen);
+
+ /* Register ATM device */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
++ atmdev = atm_dev_register(name, &pci_dev->dev, &pulsar_ops, -1, NULL);
++#else
+ atmdev = atm_dev_register(name, &pulsar_ops, -1, NULL);
++#endif
+ if (!atmdev) {
+ printk(KERN_ERR "%s: Could not register ATM device\n", name);
+ err = -ENODEV;
\ No newline at end of file
Added: ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.39.patch
===================================================================
--- ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.39.patch
(rev 0)
+++ ipcop/trunk/src/patches/pulsar-4.0.24_kernel_2.6.39.patch 2012-02-16
21:01:26 UTC (rev 6347)
@@ -0,0 +1,20 @@
+--- a/pulsar.c 2011/02/11 19:01:08 1.23
++++ b/pulsar.c 2011/05/19 18:15:35 1.24
+@@ -110,10 +110,17 @@
+ static unsigned char *oam_cell = NULL;
+
+ static int retrain_timer;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
++DEFINE_SPINLOCK(oam_lock);
++DEFINE_SPINLOCK(rx_lock);
++DEFINE_SPINLOCK(timer_lock);
++static DEFINE_SPINLOCK(tx_lock);
++#else
+ spinlock_t oam_lock = SPIN_LOCK_UNLOCKED;
+ spinlock_t rx_lock = SPIN_LOCK_UNLOCKED;
+ spinlock_t timer_lock = SPIN_LOCK_UNLOCKED;
+ static spinlock_t tx_lock = SPIN_LOCK_UNLOCKED;
++#endif
+ CBUF_STRUCT rx_cbuf[RX_CBUF_SIZE];
+ int rx_head=0, rx_tail=0;
+ static int tx_dma_count = 0;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Ipcop-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn