[svn-commits] mattf: branch 1.2 r1856 - /branches/1.2/wct4xxp/base.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Thu Jan 18 16:57:27 MST 2007


Author: mattf
Date: Thu Jan 18 17:57:26 2007
New Revision: 1856

URL: http://svn.digium.com/view/zaptel?view=rev&rev=1856
Log:
Merged revisions 1812 and 1854 back from trunk.

Modified:
    branches/1.2/wct4xxp/base.c

Modified: branches/1.2/wct4xxp/base.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/wct4xxp/base.c?view=diff&rev=1856&r1=1855&r2=1856
==============================================================================
--- branches/1.2/wct4xxp/base.c (original)
+++ branches/1.2/wct4xxp/base.c Thu Jan 18 17:57:26 2007
@@ -401,11 +401,17 @@
 #define MAX_TDM_CHAN 32
 #define MAX_DTMF_DET 16
 
+static inline unsigned int __t4_pci_in(struct t4 *wc, const unsigned int addr)
+{
+	unsigned int res = readl(&wc->membase[addr]);
+	return res;
+}
+
 static inline void __t4_pci_out(struct t4 *wc, const unsigned int addr, const unsigned int value)
 {
 	unsigned int tmp;
-	wc->membase[addr] = cpu_to_le32(value);
-	tmp = le32_to_cpu(wc->membase[WC_VERSION]);
+	writel(value, &wc->membase[addr]);
+	tmp = __t4_pci_in(wc, WC_VERSION);
 	if ((tmp & 0xffff0000) != 0xc01a0000)
 		printk("TE4XXP: Version Synchronization Error!\n");
 #if 0
@@ -414,11 +420,6 @@
 		(addr != WC_GPIO) && (addr != WC_INTR))
 		printk("Tried to load %08x into %08x, but got %08x instead\n", value, addr, tmp);
 #endif		
-}
-
-static inline unsigned int __t4_pci_in(struct t4 *wc, const unsigned int addr)
-{
-	return le32_to_cpu(wc->membase[addr]);
 }
 
 static inline void __t4_gpio_set(struct t4 *wc, unsigned bits, unsigned int val)
@@ -2417,9 +2418,6 @@
 	inirq = 1;
 	/* Make sure it's really for us */
 	status = t4_pci_in(wc, WC_INTR);
-#if 1
-	t4_pci_out(wc, WC_INTR, status & 0x00000008);
-#endif
 
 	/* Ignore if it's not for us */
 	if (!(status & 0x7)) {
@@ -2429,6 +2427,11 @@
 		return;
 #endif		
 	}
+
+#ifdef ENABLE_WORKQUEUES
+	t4_pci_out(wc, WC_INTR, status & 0x00000008);
+#endif
+
 	if (!wc->spansstarted) {
 		printk("Not prepped yet!\n");
 #ifdef LINUX26



More information about the svn-commits mailing list