Commit ef5ba4af authored by David S. Miller's avatar David S. Miller

Merge branch 'irda-next'

Chunyan Zhang says:

====================
irda: Use ktime_t instead of timeval

This patch-set removed all uses of timeval and used ktime_t instead if
needed, since 32-bit time types will break in the year 2038.

This patch-set also used the ktime_xxx functions accordingly.
e.g.
* Used ktime_get to get the current time instead of do_gettimeofday.
* And, used ktime_us_delta to get the elapsed time directly.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents f3cd7a26 497ec1f2
...@@ -1462,17 +1462,12 @@ static netdev_tx_t ali_ircc_fir_hard_xmit(struct sk_buff *skb, ...@@ -1462,17 +1462,12 @@ static netdev_tx_t ali_ircc_fir_hard_xmit(struct sk_buff *skb,
if (mtt) if (mtt)
{ {
/* Check how much time we have used already */ /* Check how much time we have used already */
do_gettimeofday(&self->now); diff = ktime_us_delta(ktime_get(), self->stamp);
diff = self->now.tv_usec - self->stamp.tv_usec;
/* self->stamp is set from ali_ircc_dma_receive_complete() */ /* self->stamp is set from ali_ircc_dma_receive_complete() */
pr_debug("%s(), ******* diff = %d *******\n", pr_debug("%s(), ******* diff = %d *******\n",
__func__, diff); __func__, diff);
if (diff < 0)
diff += 1000000;
/* Check if the mtt is larger than the time we have /* Check if the mtt is larger than the time we have
* already used by all the protocol processing * already used by all the protocol processing
*/ */
...@@ -1884,7 +1879,7 @@ static int ali_ircc_dma_receive_complete(struct ali_ircc_cb *self) ...@@ -1884,7 +1879,7 @@ static int ali_ircc_dma_receive_complete(struct ali_ircc_cb *self)
* reduce the min turn time a bit since we will know * reduce the min turn time a bit since we will know
* how much time we have used for protocol processing * how much time we have used for protocol processing
*/ */
do_gettimeofday(&self->stamp); self->stamp = ktime_get();
skb = dev_alloc_skb(len+1); skb = dev_alloc_skb(len+1);
if (skb == NULL) if (skb == NULL)
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#ifndef ALI_IRCC_H #ifndef ALI_IRCC_H
#define ALI_IRCC_H #define ALI_IRCC_H
#include <linux/time.h> #include <linux/ktime.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/pm.h> #include <linux/pm.h>
...@@ -209,8 +209,7 @@ struct ali_ircc_cb { ...@@ -209,8 +209,7 @@ struct ali_ircc_cb {
unsigned char rcvFramesOverflow; unsigned char rcvFramesOverflow;
struct timeval stamp; ktime_t stamp;
struct timeval now;
spinlock_t lock; /* For serializing operations */ spinlock_t lock; /* For serializing operations */
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/time.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/ioport.h> #include <linux/ioport.h>
...@@ -163,8 +162,6 @@ struct au1k_private { ...@@ -163,8 +162,6 @@ struct au1k_private {
iobuff_t rx_buff; iobuff_t rx_buff;
struct net_device *netdev; struct net_device *netdev;
struct timeval stamp;
struct timeval now;
struct qos_info qos; struct qos_info qos;
struct irlap_cb *irlap; struct irlap_cb *irlap;
......
...@@ -495,18 +495,12 @@ static netdev_tx_t irda_usb_hard_xmit(struct sk_buff *skb, ...@@ -495,18 +495,12 @@ static netdev_tx_t irda_usb_hard_xmit(struct sk_buff *skb,
mtt = irda_get_mtt(skb); mtt = irda_get_mtt(skb);
if (mtt) { if (mtt) {
int diff; int diff;
do_gettimeofday(&self->now); diff = ktime_us_delta(ktime_get(), self->stamp);
diff = self->now.tv_usec - self->stamp.tv_usec;
#ifdef IU_USB_MIN_RTT #ifdef IU_USB_MIN_RTT
/* Factor in USB delays -> Get rid of udelay() that /* Factor in USB delays -> Get rid of udelay() that
* would be lost in the noise - Jean II */ * would be lost in the noise - Jean II */
diff += IU_USB_MIN_RTT; diff += IU_USB_MIN_RTT;
#endif /* IU_USB_MIN_RTT */ #endif /* IU_USB_MIN_RTT */
/* If the usec counter did wraparound, the diff will
* go negative (tv_usec is a long), so we need to
* correct it by one second. Jean II */
if (diff < 0)
diff += 1000000;
/* Check if the mtt is larger than the time we have /* Check if the mtt is larger than the time we have
* already used by all the protocol processing * already used by all the protocol processing
...@@ -869,7 +863,7 @@ static void irda_usb_receive(struct urb *urb) ...@@ -869,7 +863,7 @@ static void irda_usb_receive(struct urb *urb)
* reduce the min turn time a bit since we will know * reduce the min turn time a bit since we will know
* how much time we have used for protocol processing * how much time we have used for protocol processing
*/ */
do_gettimeofday(&self->stamp); self->stamp = ktime_get();
/* Check if we need to copy the data to a new skb or not. /* Check if we need to copy the data to a new skb or not.
* For most frames, we use ZeroCopy and pass the already * For most frames, we use ZeroCopy and pass the already
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
* *
*****************************************************************************/ *****************************************************************************/
#include <linux/time.h> #include <linux/ktime.h>
#include <net/irda/irda.h> #include <net/irda/irda.h>
#include <net/irda/irda_device.h> /* struct irlap_cb */ #include <net/irda/irda_device.h> /* struct irlap_cb */
...@@ -157,8 +157,7 @@ struct irda_usb_cb { ...@@ -157,8 +157,7 @@ struct irda_usb_cb {
char *speed_buff; /* Buffer for speed changes */ char *speed_buff; /* Buffer for speed changes */
char *tx_buff; char *tx_buff;
struct timeval stamp; ktime_t stamp;
struct timeval now;
spinlock_t lock; /* For serializing Tx operations */ spinlock_t lock; /* For serializing Tx operations */
......
...@@ -114,7 +114,6 @@ struct kingsun_cb { ...@@ -114,7 +114,6 @@ struct kingsun_cb {
(usually 8) */ (usually 8) */
iobuff_t rx_buff; /* receive unwrap state machine */ iobuff_t rx_buff; /* receive unwrap state machine */
struct timeval rx_time;
spinlock_t lock; spinlock_t lock;
int receiving; int receiving;
...@@ -235,7 +234,6 @@ static void kingsun_rcv_irq(struct urb *urb) ...@@ -235,7 +234,6 @@ static void kingsun_rcv_irq(struct urb *urb)
&kingsun->netdev->stats, &kingsun->netdev->stats,
&kingsun->rx_buff, bytes[i]); &kingsun->rx_buff, bytes[i]);
} }
do_gettimeofday(&kingsun->rx_time);
kingsun->receiving = kingsun->receiving =
(kingsun->rx_buff.state != OUTSIDE_FRAME) (kingsun->rx_buff.state != OUTSIDE_FRAME)
? 1 : 0; ? 1 : 0;
...@@ -273,7 +271,6 @@ static int kingsun_net_open(struct net_device *netdev) ...@@ -273,7 +271,6 @@ static int kingsun_net_open(struct net_device *netdev)
skb_reserve(kingsun->rx_buff.skb, 1); skb_reserve(kingsun->rx_buff.skb, 1);
kingsun->rx_buff.head = kingsun->rx_buff.skb->data; kingsun->rx_buff.head = kingsun->rx_buff.skb->data;
do_gettimeofday(&kingsun->rx_time);
kingsun->rx_urb = usb_alloc_urb(0, GFP_KERNEL); kingsun->rx_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!kingsun->rx_urb) if (!kingsun->rx_urb)
......
...@@ -187,7 +187,6 @@ struct ks959_cb { ...@@ -187,7 +187,6 @@ struct ks959_cb {
__u8 *rx_buf; __u8 *rx_buf;
__u8 rx_variable_xormask; __u8 rx_variable_xormask;
iobuff_t rx_unwrap_buff; iobuff_t rx_unwrap_buff;
struct timeval rx_time;
struct usb_ctrlrequest *speed_setuprequest; struct usb_ctrlrequest *speed_setuprequest;
struct urb *speed_urb; struct urb *speed_urb;
...@@ -476,7 +475,6 @@ static void ks959_rcv_irq(struct urb *urb) ...@@ -476,7 +475,6 @@ static void ks959_rcv_irq(struct urb *urb)
bytes[i]); bytes[i]);
} }
} }
do_gettimeofday(&kingsun->rx_time);
kingsun->receiving = kingsun->receiving =
(kingsun->rx_unwrap_buff.state != OUTSIDE_FRAME) ? 1 : 0; (kingsun->rx_unwrap_buff.state != OUTSIDE_FRAME) ? 1 : 0;
} }
...@@ -514,7 +512,6 @@ static int ks959_net_open(struct net_device *netdev) ...@@ -514,7 +512,6 @@ static int ks959_net_open(struct net_device *netdev)
skb_reserve(kingsun->rx_unwrap_buff.skb, 1); skb_reserve(kingsun->rx_unwrap_buff.skb, 1);
kingsun->rx_unwrap_buff.head = kingsun->rx_unwrap_buff.skb->data; kingsun->rx_unwrap_buff.head = kingsun->rx_unwrap_buff.skb->data;
do_gettimeofday(&kingsun->rx_time);
kingsun->rx_urb = usb_alloc_urb(0, GFP_KERNEL); kingsun->rx_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!kingsun->rx_urb) if (!kingsun->rx_urb)
......
...@@ -722,7 +722,6 @@ static int mcs_net_open(struct net_device *netdev) ...@@ -722,7 +722,6 @@ static int mcs_net_open(struct net_device *netdev)
skb_reserve(mcs->rx_buff.skb, 1); skb_reserve(mcs->rx_buff.skb, 1);
mcs->rx_buff.head = mcs->rx_buff.skb->data; mcs->rx_buff.head = mcs->rx_buff.skb->data;
do_gettimeofday(&mcs->rx_time);
/* /*
* Now that everything should be initialized properly, * Now that everything should be initialized properly,
...@@ -799,7 +798,6 @@ static void mcs_receive_irq(struct urb *urb) ...@@ -799,7 +798,6 @@ static void mcs_receive_irq(struct urb *urb)
mcs_unwrap_fir(mcs, urb->transfer_buffer, mcs_unwrap_fir(mcs, urb->transfer_buffer,
urb->actual_length); urb->actual_length);
} }
do_gettimeofday(&mcs->rx_time);
} }
ret = usb_submit_urb(urb, GFP_ATOMIC); ret = usb_submit_urb(urb, GFP_ATOMIC);
......
...@@ -116,7 +116,6 @@ struct mcs_cb { ...@@ -116,7 +116,6 @@ struct mcs_cb {
__u8 *fifo_status; __u8 *fifo_status;
iobuff_t rx_buff; /* receive unwrap state machine */ iobuff_t rx_buff; /* receive unwrap state machine */
struct timeval rx_time;
spinlock_t lock; spinlock_t lock;
int receiving; int receiving;
......
...@@ -1501,10 +1501,7 @@ static netdev_tx_t nsc_ircc_hard_xmit_fir(struct sk_buff *skb, ...@@ -1501,10 +1501,7 @@ static netdev_tx_t nsc_ircc_hard_xmit_fir(struct sk_buff *skb,
mtt = irda_get_mtt(skb); mtt = irda_get_mtt(skb);
if (mtt) { if (mtt) {
/* Check how much time we have used already */ /* Check how much time we have used already */
do_gettimeofday(&self->now); diff = ktime_us_delta(ktime_get(), self->stamp);
diff = self->now.tv_usec - self->stamp.tv_usec;
if (diff < 0)
diff += 1000000;
/* Check if the mtt is larger than the time we have /* Check if the mtt is larger than the time we have
* already used by all the protocol processing * already used by all the protocol processing
...@@ -1867,7 +1864,7 @@ static int nsc_ircc_dma_receive_complete(struct nsc_ircc_cb *self, int iobase) ...@@ -1867,7 +1864,7 @@ static int nsc_ircc_dma_receive_complete(struct nsc_ircc_cb *self, int iobase)
* reduce the min turn time a bit since we will know * reduce the min turn time a bit since we will know
* how much time we have used for protocol processing * how much time we have used for protocol processing
*/ */
do_gettimeofday(&self->stamp); self->stamp = ktime_get();
skb = dev_alloc_skb(len+1); skb = dev_alloc_skb(len+1);
if (skb == NULL) { if (skb == NULL) {
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#ifndef NSC_IRCC_H #ifndef NSC_IRCC_H
#define NSC_IRCC_H #define NSC_IRCC_H
#include <linux/time.h> #include <linux/ktime.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/pm.h> #include <linux/pm.h>
...@@ -263,8 +263,7 @@ struct nsc_ircc_cb { ...@@ -263,8 +263,7 @@ struct nsc_ircc_cb {
__u8 ier; /* Interrupt enable register */ __u8 ier; /* Interrupt enable register */
struct timeval stamp; ktime_t stamp;
struct timeval now;
spinlock_t lock; /* For serializing operations */ spinlock_t lock; /* For serializing operations */
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/ktime.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
...@@ -174,7 +175,7 @@ struct stir_cb { ...@@ -174,7 +175,7 @@ struct stir_cb {
__u8 *fifo_status; __u8 *fifo_status;
iobuff_t rx_buff; /* receive unwrap state machine */ iobuff_t rx_buff; /* receive unwrap state machine */
struct timeval rx_time; ktime_t rx_time;
int receiving; int receiving;
struct urb *rx_urb; struct urb *rx_urb;
}; };
...@@ -650,15 +651,12 @@ static int fifo_txwait(struct stir_cb *stir, int space) ...@@ -650,15 +651,12 @@ static int fifo_txwait(struct stir_cb *stir, int space)
static void turnaround_delay(const struct stir_cb *stir, long us) static void turnaround_delay(const struct stir_cb *stir, long us)
{ {
long ticks; long ticks;
struct timeval now;
if (us <= 0) if (us <= 0)
return; return;
do_gettimeofday(&now); us -= ktime_us_delta(ktime_get(), stir->rx_time);
if (now.tv_sec - stir->rx_time.tv_sec > 0)
us -= USEC_PER_SEC;
us -= now.tv_usec - stir->rx_time.tv_usec;
if (us < 10) if (us < 10)
return; return;
...@@ -823,8 +821,8 @@ static void stir_rcv_irq(struct urb *urb) ...@@ -823,8 +821,8 @@ static void stir_rcv_irq(struct urb *urb)
pr_debug("receive %d\n", urb->actual_length); pr_debug("receive %d\n", urb->actual_length);
unwrap_chars(stir, urb->transfer_buffer, unwrap_chars(stir, urb->transfer_buffer,
urb->actual_length); urb->actual_length);
do_gettimeofday(&stir->rx_time); stir->rx_time = ktime_get();
} }
/* kernel thread is stopping receiver don't resubmit */ /* kernel thread is stopping receiver don't resubmit */
...@@ -876,7 +874,7 @@ static int stir_net_open(struct net_device *netdev) ...@@ -876,7 +874,7 @@ static int stir_net_open(struct net_device *netdev)
skb_reserve(stir->rx_buff.skb, 1); skb_reserve(stir->rx_buff.skb, 1);
stir->rx_buff.head = stir->rx_buff.skb->data; stir->rx_buff.head = stir->rx_buff.skb->data;
do_gettimeofday(&stir->rx_time); stir->rx_time = ktime_get();
stir->rx_urb = usb_alloc_urb(0, GFP_KERNEL); stir->rx_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!stir->rx_urb) if (!stir->rx_urb)
......
...@@ -29,7 +29,6 @@ this program; if not, see <http://www.gnu.org/licenses/>. ...@@ -29,7 +29,6 @@ this program; if not, see <http://www.gnu.org/licenses/>.
********************************************************************/ ********************************************************************/
#ifndef via_IRCC_H #ifndef via_IRCC_H
#define via_IRCC_H #define via_IRCC_H
#include <linux/time.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/pm.h> #include <linux/pm.h>
#include <linux/types.h> #include <linux/types.h>
...@@ -106,9 +105,6 @@ struct via_ircc_cb { ...@@ -106,9 +105,6 @@ struct via_ircc_cb {
__u8 ier; /* Interrupt enable register */ __u8 ier; /* Interrupt enable register */
struct timeval stamp;
struct timeval now;
spinlock_t lock; /* For serializing operations */ spinlock_t lock; /* For serializing operations */
__u32 flags; /* Interface flags */ __u32 flags; /* Interface flags */
......
...@@ -33,6 +33,7 @@ MODULE_LICENSE("GPL"); ...@@ -33,6 +33,7 @@ MODULE_LICENSE("GPL");
/********************************************************/ /********************************************************/
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/ktime.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/pci.h> #include <linux/pci.h>
...@@ -40,9 +41,9 @@ MODULE_LICENSE("GPL"); ...@@ -40,9 +41,9 @@ MODULE_LICENSE("GPL");
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/time.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/math64.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
...@@ -180,8 +181,7 @@ static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev) ...@@ -180,8 +181,7 @@ static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev)
vlsi_irda_dev_t *idev = netdev_priv(ndev); vlsi_irda_dev_t *idev = netdev_priv(ndev);
u8 byte; u8 byte;
u16 word; u16 word;
unsigned delta1, delta2; s32 sec, usec;
struct timeval now;
unsigned iobase = ndev->base_addr; unsigned iobase = ndev->base_addr;
seq_printf(seq, "\n%s link state: %s / %s / %s / %s\n", ndev->name, seq_printf(seq, "\n%s link state: %s / %s / %s / %s\n", ndev->name,
...@@ -277,17 +277,9 @@ static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev) ...@@ -277,17 +277,9 @@ static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev)
seq_printf(seq, "\nsw-state:\n"); seq_printf(seq, "\nsw-state:\n");
seq_printf(seq, "IrPHY setup: %d baud - %s encoding\n", idev->baud, seq_printf(seq, "IrPHY setup: %d baud - %s encoding\n", idev->baud,
(idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR")); (idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR"));
do_gettimeofday(&now); sec = div_s64_rem(ktime_us_delta(ktime_get(), idev->last_rx),
if (now.tv_usec >= idev->last_rx.tv_usec) { USEC_PER_SEC, &usec);
delta2 = now.tv_usec - idev->last_rx.tv_usec; seq_printf(seq, "last rx: %ul.%06u sec\n", sec, usec);
delta1 = 0;
}
else {
delta2 = 1000000 + now.tv_usec - idev->last_rx.tv_usec;
delta1 = 1;
}
seq_printf(seq, "last rx: %lu.%06u sec\n",
now.tv_sec - idev->last_rx.tv_sec - delta1, delta2);
seq_printf(seq, "RX: packets=%lu / bytes=%lu / errors=%lu / dropped=%lu", seq_printf(seq, "RX: packets=%lu / bytes=%lu / errors=%lu / dropped=%lu",
ndev->stats.rx_packets, ndev->stats.rx_bytes, ndev->stats.rx_errors, ndev->stats.rx_packets, ndev->stats.rx_bytes, ndev->stats.rx_errors,
...@@ -661,7 +653,7 @@ static void vlsi_rx_interrupt(struct net_device *ndev) ...@@ -661,7 +653,7 @@ static void vlsi_rx_interrupt(struct net_device *ndev)
} }
} }
do_gettimeofday(&idev->last_rx); /* remember "now" for later mtt delay */ idev->last_rx = ktime_get(); /* remember "now" for later mtt delay */
vlsi_fill_rx(r); vlsi_fill_rx(r);
...@@ -858,9 +850,8 @@ static netdev_tx_t vlsi_hard_start_xmit(struct sk_buff *skb, ...@@ -858,9 +850,8 @@ static netdev_tx_t vlsi_hard_start_xmit(struct sk_buff *skb,
unsigned iobase = ndev->base_addr; unsigned iobase = ndev->base_addr;
u8 status; u8 status;
u16 config; u16 config;
int mtt; int mtt, diff;
int len, speed; int len, speed;
struct timeval now, ready;
char *msg = NULL; char *msg = NULL;
speed = irda_get_next_speed(skb); speed = irda_get_next_speed(skb);
...@@ -940,21 +931,10 @@ static netdev_tx_t vlsi_hard_start_xmit(struct sk_buff *skb, ...@@ -940,21 +931,10 @@ static netdev_tx_t vlsi_hard_start_xmit(struct sk_buff *skb,
spin_unlock_irqrestore(&idev->lock, flags); spin_unlock_irqrestore(&idev->lock, flags);
if ((mtt = irda_get_mtt(skb)) > 0) { if ((mtt = irda_get_mtt(skb)) > 0) {
diff = ktime_us_delta(ktime_get(), idev->last_rx);
ready.tv_usec = idev->last_rx.tv_usec + mtt; if (mtt > diff)
ready.tv_sec = idev->last_rx.tv_sec; udelay(mtt - diff);
if (ready.tv_usec >= 1000000) {
ready.tv_usec -= 1000000;
ready.tv_sec++; /* IrLAP 1.1: mtt always < 1 sec */
}
for(;;) {
do_gettimeofday(&now);
if (now.tv_sec > ready.tv_sec ||
(now.tv_sec==ready.tv_sec && now.tv_usec>=ready.tv_usec))
break;
udelay(100);
/* must not sleep here - called under netif_tx_lock! */ /* must not sleep here - called under netif_tx_lock! */
}
} }
/* tx buffer already owned by CPU due to pci_dma_sync_single_for_cpu() /* tx buffer already owned by CPU due to pci_dma_sync_single_for_cpu()
...@@ -1333,7 +1313,7 @@ static int vlsi_start_hw(vlsi_irda_dev_t *idev) ...@@ -1333,7 +1313,7 @@ static int vlsi_start_hw(vlsi_irda_dev_t *idev)
vlsi_fill_rx(idev->rx_ring); vlsi_fill_rx(idev->rx_ring);
do_gettimeofday(&idev->last_rx); /* first mtt may start from now on */ idev->last_rx = ktime_get(); /* first mtt may start from now on */
outw(0, iobase+VLSI_PIO_PROMPT); /* kick hw state machine */ outw(0, iobase+VLSI_PIO_PROMPT); /* kick hw state machine */
...@@ -1520,7 +1500,7 @@ static int vlsi_open(struct net_device *ndev) ...@@ -1520,7 +1500,7 @@ static int vlsi_open(struct net_device *ndev)
if (!idev->irlap) if (!idev->irlap)
goto errout_free_ring; goto errout_free_ring;
do_gettimeofday(&idev->last_rx); /* first mtt may start from now on */ idev->last_rx = ktime_get(); /* first mtt may start from now on */
idev->new_baud = 9600; /* start with IrPHY using 9600(SIR) mode */ idev->new_baud = 9600; /* start with IrPHY using 9600(SIR) mode */
......
...@@ -723,7 +723,7 @@ typedef struct vlsi_irda_dev { ...@@ -723,7 +723,7 @@ typedef struct vlsi_irda_dev {
void *virtaddr; void *virtaddr;
struct vlsi_ring *tx_ring, *rx_ring; struct vlsi_ring *tx_ring, *rx_ring;
struct timeval last_rx; ktime_t last_rx;
spinlock_t lock; spinlock_t lock;
struct mutex mtx; struct mutex mtx;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment