From 2ae4b6b20e2004dccf80d804ae52b073377c2f5b Mon Sep 17 00:00:00 2001 From: Amitoj Kaur Chawla Date: Thu, 22 Oct 2015 04:05:00 +0530 Subject: [PATCH 1/4] firewire: nosy: Replace timeval with timespec64 32 bit systems using 'struct timeval' will break in the year 2038, so we replace the code appropriately. However, this driver is not broken in 2038 since we are using only the microseconds portion of the current time. This patch replaces timeval with timespec64. Signed-off-by: Amitoj Kaur Chawla Reviewed-by: Arnd Bergmann Signed-off-by: Stefan Richter --- drivers/firewire/nosy.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c index 76b2d390f6ec..8a46077129ac 100644 --- a/drivers/firewire/nosy.c +++ b/drivers/firewire/nosy.c @@ -33,6 +33,7 @@ #include /* required for linux/wait.h */ #include #include +#include #include #include #include @@ -413,17 +414,18 @@ static void packet_irq_handler(struct pcilynx *lynx) { struct client *client; - u32 tcode_mask, tcode; + u32 tcode_mask, tcode, timestamp; size_t length; - struct timeval tv; + struct timespec64 ts64; /* FIXME: Also report rcv_speed. */ length = __le32_to_cpu(lynx->rcv_pcl->pcl_status) & 0x00001fff; tcode = __le32_to_cpu(lynx->rcv_buffer[1]) >> 4 & 0xf; - do_gettimeofday(&tv); - lynx->rcv_buffer[0] = (__force __le32)tv.tv_usec; + ktime_get_real_ts64(&ts64); + timestamp = ts64.tv_nsec / NSEC_PER_USEC; + lynx->rcv_buffer[0] = (__force __le32)timestamp; if (length == PHY_PACKET_SIZE) tcode_mask = 1 << TCODE_PHY_PACKET; From a354cf00c71390c46927335fe20b65f38a528b59 Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Sun, 1 Nov 2015 15:52:13 +0100 Subject: [PATCH 2/4] firewire: ohci: propagate return code from soft_reset to probe and resume software_reset() may fail - due to unresponsive chip with -EBUSY (-16), or - due to ejected or unseated card with -ENODEV (-19). Let the PCI probe and resume routines log the actual error code instead of hardwired -EBUSY. Signed-off-by: Stefan Richter --- drivers/firewire/ohci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index c2f5117fd8cb..8bf89267dc25 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c @@ -2278,9 +2278,10 @@ static int ohci_enable(struct fw_card *card, u32 lps, version, irqs; int i, ret; - if (software_reset(ohci)) { + ret = software_reset(ohci); + if (ret < 0) { ohci_err(ohci, "failed to reset ohci card\n"); - return -EBUSY; + return ret; } /* From 5759139469899ea402c5953a8a38dd4f4c345b3c Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Sun, 1 Nov 2015 15:52:51 +0100 Subject: [PATCH 3/4] firewire: ABI documentation: jujuutils were renamed to linux-firewire-utils Signed-off-by: Stefan Richter --- Documentation/ABI/stable/firewire-cdev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/ABI/stable/firewire-cdev b/Documentation/ABI/stable/firewire-cdev index 16d030827368..b55dd3c6aff5 100644 --- a/Documentation/ABI/stable/firewire-cdev +++ b/Documentation/ABI/stable/firewire-cdev @@ -100,4 +100,4 @@ Description: Users: libraw1394 libdc1394 - tools like jujuutils, fwhack, ... + tools like linux-firewire-utils, fwhack, ... From e38e5ce81c3ed79dd48fc1801134e8812558c389 Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Wed, 11 Nov 2015 14:53:27 +0100 Subject: [PATCH 4/4] firewire: ABI documentation: libhinawa uses firewire-cdev Hinawa [https://github.com/takaswie/libhinawa/] is a library for access to IEEE 1394 devices. As a gobject introspection library, it facilitates writing applications in high-level programming languages. Besides generic I/O via /dev/fw* (firewire-cdev ABI), it also supports control of IEEE 1394 audio hardware via ALSA hwdep ABIs which are provided by sound/firewire drivers. Signed-off-by: Stefan Richter --- Documentation/ABI/stable/firewire-cdev | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/ABI/stable/firewire-cdev b/Documentation/ABI/stable/firewire-cdev index b55dd3c6aff5..f72ed653878a 100644 --- a/Documentation/ABI/stable/firewire-cdev +++ b/Documentation/ABI/stable/firewire-cdev @@ -100,4 +100,5 @@ Description: Users: libraw1394 libdc1394 + libhinawa tools like linux-firewire-utils, fwhack, ...