summaryrefslogtreecommitdiffstats
path: root/drivers/isdn
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-03-19 13:05:34 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-19 13:05:34 -0400
commit1200b6809dfd9d73bc4c7db76d288c35fa4b2ebe (patch)
tree552e03de245cdbd0780ca1215914edc4a26540f7 /drivers/isdn
parent6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f (diff)
parentfe30937b65354c7fec244caebbdaae68e28ca797 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights: 1) Support more Realtek wireless chips, from Jes Sorenson. 2) New BPF types for per-cpu hash and arrap maps, from Alexei Starovoitov. 3) Make several TCP sysctls per-namespace, from Nikolay Borisov. 4) Allow the use of SO_REUSEPORT in order to do per-thread processing of incoming TCP/UDP connections. The muxing can be done using a BPF program which hashes the incoming packet. From Craig Gallek. 5) Add a multiplexer for TCP streams, to provide a messaged based interface. BPF programs can be used to determine the message boundaries. From Tom Herbert. 6) Add 802.1AE MACSEC support, from Sabrina Dubroca. 7) Avoid factorial complexity when taking down an inetdev interface with lots of configured addresses. We were doing things like traversing the entire address less for each address removed, and flushing the entire netfilter conntrack table for every address as well. 8) Add and use SKB bulk free infrastructure, from Jesper Brouer. 9) Allow offloading u32 classifiers to hardware, and implement for ixgbe, from John Fastabend. 10) Allow configuring IRQ coalescing parameters on a per-queue basis, from Kan Liang. 11) Extend ethtool so that larger link mode masks can be supported. From David Decotigny. 12) Introduce devlink, which can be used to configure port link types (ethernet vs Infiniband, etc.), port splitting, and switch device level attributes as a whole. From Jiri Pirko. 13) Hardware offload support for flower classifiers, from Amir Vadai. 14) Add "Local Checksum Offload". Basically, for a tunneled packet the checksum of the outer header is 'constant' (because with the checksum field filled into the inner protocol header, the payload of the outer frame checksums to 'zero'), and we can take advantage of that in various ways. From Edward Cree" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1548 commits) bonding: fix bond_get_stats() net: bcmgenet: fix dma api length mismatch net/mlx4_core: Fix backward compatibility on VFs phy: mdio-thunder: Fix some Kconfig typos lan78xx: add ndo_get_stats64 lan78xx: handle statistics counter rollover RDS: TCP: Remove unused constant RDS: TCP: Add sysctl tunables for sndbuf/rcvbuf on rds-tcp socket net: smc911x: convert pxa dma to dmaengine team: remove duplicate set of flag IFF_MULTICAST bonding: remove duplicate set of flag IFF_MULTICAST net: fix a comment typo ethernet: micrel: fix some error codes ip_tunnels, bpf: define IP_TUNNEL_OPTS_MAX and use it bpf, dst: add and use dst_tclassid helper bpf: make skb->tc_classid also readable net: mvneta: bm: clarify dependencies cls_bpf: reset class and reuse major in da ldmvsw: Checkpatch sunvnet.c and sunvnet_common.c ldmvsw: Add ldmvsw.c driver code ...
Diffstat (limited to 'drivers/isdn')
-rw-r--r--drivers/isdn/hardware/eicon/debug.c4
-rw-r--r--drivers/isdn/hardware/eicon/divamnt.c30
-rw-r--r--drivers/isdn/hardware/mISDN/ipac.h41
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNipac.c2
4 files changed, 29 insertions, 48 deletions
diff --git a/drivers/isdn/hardware/eicon/debug.c b/drivers/isdn/hardware/eicon/debug.c
index b5226af6ddec..576b7b4a3278 100644
--- a/drivers/isdn/hardware/eicon/debug.c
+++ b/drivers/isdn/hardware/eicon/debug.c
@@ -192,8 +192,6 @@ static diva_os_spin_lock_t dbg_q_lock;
192static diva_os_spin_lock_t dbg_adapter_lock; 192static diva_os_spin_lock_t dbg_adapter_lock;
193static int dbg_q_busy; 193static int dbg_q_busy;
194static volatile dword dbg_sequence; 194static volatile dword dbg_sequence;
195static dword start_sec;
196static dword start_usec;
197 195
198/* 196/*
199 INTERFACE: 197 INTERFACE:
@@ -215,8 +213,6 @@ int diva_maint_init(byte *base, unsigned long length, int do_init) {
215 213
216 dbg_base = base; 214 dbg_base = base;
217 215
218 diva_os_get_time(&start_sec, &start_usec);
219
220 *(dword *)base = (dword)DBG_MAGIC; /* Store Magic */ 216 *(dword *)base = (dword)DBG_MAGIC; /* Store Magic */
221 base += sizeof(dword); 217 base += sizeof(dword);
222 length -= sizeof(dword); 218 length -= sizeof(dword);
diff --git a/drivers/isdn/hardware/eicon/divamnt.c b/drivers/isdn/hardware/eicon/divamnt.c
index 48db08d0bb3d..0de29b7b712f 100644
--- a/drivers/isdn/hardware/eicon/divamnt.c
+++ b/drivers/isdn/hardware/eicon/divamnt.c
@@ -45,7 +45,6 @@ char *DRIVERRELEASE_MNT = "2.0";
45 45
46static wait_queue_head_t msgwaitq; 46static wait_queue_head_t msgwaitq;
47static unsigned long opened; 47static unsigned long opened;
48static struct timeval start_time;
49 48
50extern int mntfunc_init(int *, void **, unsigned long); 49extern int mntfunc_init(int *, void **, unsigned long);
51extern void mntfunc_finit(void); 50extern void mntfunc_finit(void);
@@ -88,28 +87,12 @@ int diva_os_copy_from_user(void *os_handle, void *dst, const void __user *src,
88 */ 87 */
89void diva_os_get_time(dword *sec, dword *usec) 88void diva_os_get_time(dword *sec, dword *usec)
90{ 89{
91 struct timeval tv; 90 struct timespec64 time;
92 91
93 do_gettimeofday(&tv); 92 ktime_get_ts64(&time);
94 93
95 if (tv.tv_sec > start_time.tv_sec) { 94 *sec = (dword) time.tv_sec;
96 if (start_time.tv_usec > tv.tv_usec) { 95 *usec = (dword) (time.tv_nsec / NSEC_PER_USEC);
97 tv.tv_sec--;
98 tv.tv_usec += 1000000;
99 }
100 *sec = (dword) (tv.tv_sec - start_time.tv_sec);
101 *usec = (dword) (tv.tv_usec - start_time.tv_usec);
102 } else if (tv.tv_sec == start_time.tv_sec) {
103 *sec = 0;
104 if (start_time.tv_usec < tv.tv_usec) {
105 *usec = (dword) (tv.tv_usec - start_time.tv_usec);
106 } else {
107 *usec = 0;
108 }
109 } else {
110 *sec = (dword) tv.tv_sec;
111 *usec = (dword) tv.tv_usec;
112 }
113} 96}
114 97
115/* 98/*
@@ -213,7 +196,6 @@ static int __init maint_init(void)
213 int ret = 0; 196 int ret = 0;
214 void *buffer = NULL; 197 void *buffer = NULL;
215 198
216 do_gettimeofday(&start_time);
217 init_waitqueue_head(&msgwaitq); 199 init_waitqueue_head(&msgwaitq);
218 200
219 printk(KERN_INFO "%s\n", DRIVERNAME); 201 printk(KERN_INFO "%s\n", DRIVERNAME);
diff --git a/drivers/isdn/hardware/mISDN/ipac.h b/drivers/isdn/hardware/mISDN/ipac.h
index 8121e046b739..720ee72aab6a 100644
--- a/drivers/isdn/hardware/mISDN/ipac.h
+++ b/drivers/isdn/hardware/mISDN/ipac.h
@@ -99,32 +99,32 @@ struct ipac_hw {
99 99
100/* All registers original Siemens Spec */ 100/* All registers original Siemens Spec */
101/* IPAC/ISAC registers */ 101/* IPAC/ISAC registers */
102#define ISAC_MASK 0x20
103#define ISAC_ISTA 0x20 102#define ISAC_ISTA 0x20
104#define ISAC_STAR 0x21 103#define ISAC_MASK 0x20
105#define ISAC_CMDR 0x21 104#define ISAC_CMDR 0x21
105#define ISAC_STAR 0x21
106#define ISAC_MODE 0x22
107#define ISAC_TIMR 0x23
106#define ISAC_EXIR 0x24 108#define ISAC_EXIR 0x24
107#define ISAC_ADF2 0x39 109#define ISAC_RBCL 0x25
110#define ISAC_RSTA 0x27
111#define ISAC_RBCH 0x2A
108#define ISAC_SPCR 0x30 112#define ISAC_SPCR 0x30
109#define ISAC_ADF1 0x38
110#define ISAC_CIR0 0x31 113#define ISAC_CIR0 0x31
111#define ISAC_CIX0 0x31 114#define ISAC_CIX0 0x31
112#define ISAC_CIR1 0x33
113#define ISAC_CIX1 0x33
114#define ISAC_STCR 0x37
115#define ISAC_MODE 0x22
116#define ISAC_RSTA 0x27
117#define ISAC_RBCL 0x25
118#define ISAC_RBCH 0x2A
119#define ISAC_TIMR 0x23
120#define ISAC_SQXR 0x3b
121#define ISAC_SQRR 0x3b
122#define ISAC_MOSR 0x3a
123#define ISAC_MOCR 0x3a
124#define ISAC_MOR0 0x32 115#define ISAC_MOR0 0x32
125#define ISAC_MOX0 0x32 116#define ISAC_MOX0 0x32
117#define ISAC_CIR1 0x33
118#define ISAC_CIX1 0x33
126#define ISAC_MOR1 0x34 119#define ISAC_MOR1 0x34
127#define ISAC_MOX1 0x34 120#define ISAC_MOX1 0x34
121#define ISAC_STCR 0x37
122#define ISAC_ADF1 0x38
123#define ISAC_ADF2 0x39
124#define ISAC_MOCR 0x3a
125#define ISAC_MOSR 0x3a
126#define ISAC_SQRR 0x3b
127#define ISAC_SQXR 0x3b
128 128
129#define ISAC_RBCH_XAC 0x80 129#define ISAC_RBCH_XAC 0x80
130 130
@@ -212,13 +212,14 @@ struct ipac_hw {
212#define ISAC_CMD_DUI 0xF 212#define ISAC_CMD_DUI 0xF
213 213
214/* ISAC/ISACX/IPAC/IPACX L1 indications */ 214/* ISAC/ISACX/IPAC/IPACX L1 indications */
215#define ISAC_IND_RS 0x1
216#define ISAC_IND_PU 0x7
217#define ISAC_IND_DR 0x0 215#define ISAC_IND_DR 0x0
216#define ISAC_IND_RS 0x1
218#define ISAC_IND_SD 0x2 217#define ISAC_IND_SD 0x2
219#define ISAC_IND_DIS 0x3 218#define ISAC_IND_DIS 0x3
220#define ISAC_IND_EI 0x6
221#define ISAC_IND_RSY 0x4 219#define ISAC_IND_RSY 0x4
220#define ISAC_IND_DR6 0x5
221#define ISAC_IND_EI 0x6
222#define ISAC_IND_PU 0x7
222#define ISAC_IND_ARD 0x8 223#define ISAC_IND_ARD 0x8
223#define ISAC_IND_TI 0xA 224#define ISAC_IND_TI 0xA
224#define ISAC_IND_ATI 0xB 225#define ISAC_IND_ATI 0xB
@@ -339,9 +340,9 @@ struct ipac_hw {
339#define ISACX__AUX 0x08 340#define ISACX__AUX 0x08
340#define ISACX__CIC 0x10 341#define ISACX__CIC 0x10
341#define ISACX__ST 0x20 342#define ISACX__ST 0x20
343#define IPACX__ON 0x2C
342#define IPACX__ICB 0x40 344#define IPACX__ICB 0x40
343#define IPACX__ICA 0x80 345#define IPACX__ICA 0x80
344#define IPACX__ON 0x2C
345 346
346/* ISACX/IPACX _CMDRD (W) */ 347/* ISACX/IPACX _CMDRD (W) */
347#define ISACX_CMDRD_XRES 0x01 348#define ISACX_CMDRD_XRES 0x01
diff --git a/drivers/isdn/hardware/mISDN/mISDNipac.c b/drivers/isdn/hardware/mISDN/mISDNipac.c
index cb428b9ee441..aa9b6c3cadc1 100644
--- a/drivers/isdn/hardware/mISDN/mISDNipac.c
+++ b/drivers/isdn/hardware/mISDN/mISDNipac.c
@@ -80,6 +80,7 @@ isac_ph_state_bh(struct dchannel *dch)
80 l1_event(dch->l1, HW_DEACT_CNF); 80 l1_event(dch->l1, HW_DEACT_CNF);
81 break; 81 break;
82 case ISAC_IND_DR: 82 case ISAC_IND_DR:
83 case ISAC_IND_DR6:
83 dch->state = 3; 84 dch->state = 3;
84 l1_event(dch->l1, HW_DEACT_IND); 85 l1_event(dch->l1, HW_DEACT_IND);
85 break; 86 break;
@@ -660,6 +661,7 @@ isac_l1cmd(struct dchannel *dch, u32 cmd)
660 spin_lock_irqsave(isac->hwlock, flags); 661 spin_lock_irqsave(isac->hwlock, flags);
661 if ((isac->state == ISAC_IND_EI) || 662 if ((isac->state == ISAC_IND_EI) ||
662 (isac->state == ISAC_IND_DR) || 663 (isac->state == ISAC_IND_DR) ||
664 (isac->state == ISAC_IND_DR6) ||
663 (isac->state == ISAC_IND_RS)) 665 (isac->state == ISAC_IND_RS))
664 ph_command(isac, ISAC_CMD_TIM); 666 ph_command(isac, ISAC_CMD_TIM);
665 else 667 else