From patchwork Tue May 16 11:09:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 99863 Delivered-To: patch@linaro.org Received: by 10.182.142.97 with SMTP id rv1csp1824957obb; Tue, 16 May 2017 04:10:12 -0700 (PDT) X-Received: by 10.99.123.70 with SMTP id k6mr10983642pgn.135.1494933012486; Tue, 16 May 2017 04:10:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494933012; cv=none; d=google.com; s=arc-20160816; b=LRy8LJC+HjQnjKdoXVsj+wTmwxFd7JaSnfNXFv+G3B2OwfOUXla7oIOt+lsHceNyza 17Y2scJjcihqWDUEJGiHsDhChHnCb8EykMT1qhZP6aeXBk0OUquYFlMfX6NyFCXFYXLE 7iOakhWgtlLD+qq0KMZ5OECA5EG4AIOsTCf4U1yOha9ZBG0KpA3wWSrECi5GwHcUd+kk +J04yV31eQ/BZsXZ7VvJMxl3dtLoPsplsj/aBSxnHtpr1Rnxmng3Vtla0DxUMas9b85H mmiygOm8VRzFZeq+OHxvClHJk1S3odQwuLm/DqAgOwRNeIaZuWd4aqev9ufqR1ji+BPa C5nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=xfphMH6dY/aAi+K6FyU0NegSnBJZBe9c09cMf+oWkqk=; b=swbXLEv7RP39HtKkgQWRqvhpfSJo0rcskNbtf34AIdGUFMdQ8Tk6PDwxRc3903Wetz 4uAuYxIhsKKfGomNQ6fQp/dr8GgMQb4g2Rd8c65crJ65dYlA/1En6uHELd06dsN3NR24 At99sUbVxGsARbmaYqVVrJrI8XxlJJFqjrrxiUMNbe62OMeh/XAcrzW+gNoYURgerGTS oZj3V9dGvN+u1ztQDdpo6tuwezh0EACtkMB5TSdOUjGiRana1CML5PX3n/8Tfk7E9TAG zVY7j+jcj9qD7/PXYKTaSXe9M+WCv0VJdWdDFRk5VmNIdyL3OATBTMzP/33VY5CZg1DS YPeg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o6si8799373pfk.340.2017.05.16.04.10.11; Tue, 16 May 2017 04:10:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752702AbdEPLKE (ORCPT + 25 others); Tue, 16 May 2017 07:10:04 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:54805 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751640AbdEPLJS (ORCPT ); Tue, 16 May 2017 07:09:18 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0MUhql-1dafvI2ev5-00RH8E; Tue, 16 May 2017 13:09:11 +0200 From: Arnd Bergmann To: Srinivas Pandruvada , Jiri Kosina Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de Subject: [PATCH 2/5] HID: intel_ish-hid: clarify locking in client code Date: Tue, 16 May 2017 13:09:04 +0200 Message-Id: <20170516110907.3545799-3-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170516110907.3545799-1-arnd@arndb.de> References: <20170516110907.3545799-1-arnd@arndb.de> X-Provags-ID: V03:K0:MR1ANaxYuK82uXjYA8c6syjz+egSwpMKQiR5lmzAV3I2eD2kuKI UGk9emSByHziwXz0imaj9f39VfRCNOeBUDgOkIE5hBNmY0eLdqhi2seak9bddoo0f6SMYRN Oo+p5krVx51TlPvBY24VJXMIJWVIIJC9XJ258z2Y4Uzofz+giaWY3W9yj6aTyZZSdoo4KEL 6j2kl+CTzq3lsJijn1ipg== X-UI-Out-Filterresults: notjunk:1; V01:K0:TJTr3XxwE0o=:cmBhyZ0bHaOZ8LM1f7AjEz OcK0gKfYBPESP+tY66wCSoqHmBQen5UyYsGECW9uDHl6o5HW/6JQQjZeZop4NbLSxpNxKkH62 MQFnvA9FnoInulJqHD4SSorok9uFms3scPuPOIbZZlIN/KwMM4aiRz3oGIy2VmutvR7qf8G9Y hKOUCXch5YCozVxdS3xb1HglDzdAW7nRyS0gXm+LkHlD8eYhrUAV+5P6s6FTq04D6XafruJGu iw/pgmak6acIp5PeaWBR4UQ7M3AgGb1f4T+ItaWnQEbaxtKAVIWHGuban9HzyrKd8YD8r+WDK IKSoxbGRuhq0WtZ31FQ5oEksUwIJFGpDMhzE1gj0/4IJh9kcSklJh27YbTM/bN1FntRKTnkQ2 xviKEFLNUvvIbEdjTHUYkNjQfvPcRpPU2a1Qw+oe8AbVeQOP3i0usjV/6jojuNX5lwsmyQKIC iE66oOoHXXjhV0eiPiWVOEbrq6GEW4EUlmnePcsS75aWJwMZHmkfqp/84DY4CUaxeZ7ocYU2k jqbHRR51I4zm5fM+KqK1JbV7ck2AcWZSGVYzPMsMNQ7AKLixLnwlKuvTB2ZLanN7RJIsAKN3X HHM/A2T+5JYY+GKKpvL8pnXYnc3yV0QBuS09hY+c62Fqhhz0kffWlhKM9Sicmh174uIuTm+9a Wv7eyG4saFuXr/Pco4x0jv4vwYiaYnRA5tv33Zz1WmOcgHSexuvXibFZm4D+ZwJ45JEo= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I was trying to understand this code while working on a warning fix and the locking made no sense: spin_lock_irqsave() is pointless when run inside of an interrupt handler or nested inside of another spin_lock_irq() or spin_lock_irqsave(). Here it turned out that the comment above the function is wrong, as both recv_ishtp_cl_msg_dma() and recv_ishtp_cl_msg() can in fact be called from a work queue rather than an ISR, so we do have to use the irqsave() version once. This fixes the comments accordingly, removes the misleading 'dev_flags' variable and modifies the inner spinlock to not use 'irqsave'. No functional change is intended, this is just for readability and it slightly simplifies the object code. Signed-off-by: Arnd Bergmann --- drivers/hid/intel-ish-hid/ishtp/client.c | 46 +++++++++++++------------------- 1 file changed, 18 insertions(+), 28 deletions(-) -- 2.9.0 diff --git a/drivers/hid/intel-ish-hid/ishtp/client.c b/drivers/hid/intel-ish-hid/ishtp/client.c index 69c9d43612ec..a4511ac8a87f 100644 --- a/drivers/hid/intel-ish-hid/ishtp/client.c +++ b/drivers/hid/intel-ish-hid/ishtp/client.c @@ -803,7 +803,7 @@ void ishtp_cl_send_msg(struct ishtp_device *dev, struct ishtp_cl *cl) * @ishtp_hdr: Pointer to message header * * Receive and dispatch ISHTP client messages. This function executes in ISR - * context + * or work queue context */ void recv_ishtp_cl_msg(struct ishtp_device *dev, struct ishtp_msg_hdr *ishtp_hdr) @@ -813,7 +813,6 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, struct ishtp_cl_rb *new_rb; unsigned char *buffer = NULL; struct ishtp_cl_rb *complete_rb = NULL; - unsigned long dev_flags; unsigned long flags; int rb_count; @@ -828,9 +827,9 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, goto eoi; } - spin_lock_irqsave(&dev->read_list_spinlock, dev_flags); + spin_lock_irqsave(&dev->read_list_spinlock, flags); if (list_empty(&dev->read_list.list)) { - spin_unlock_irqrestore(&dev->read_list_spinlock, dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); goto eoi; } @@ -845,8 +844,7 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, /* If no Rx buffer is allocated, disband the rb */ if (rb->buffer.size == 0 || rb->buffer.data == NULL) { - spin_unlock_irqrestore(&dev->read_list_spinlock, - dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); dev_err(&cl->device->dev, "Rx buffer is not allocated.\n"); list_del(&rb->list); @@ -862,8 +860,7 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, * back FC, so communication will be stuck anyway) */ if (rb->buffer.size < ishtp_hdr->length + rb->buf_idx) { - spin_unlock_irqrestore(&dev->read_list_spinlock, - dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); dev_err(&cl->device->dev, "message overflow. size %d len %d idx %ld\n", rb->buffer.size, ishtp_hdr->length, @@ -889,14 +886,13 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, * the whole msg arrived, send a new FC, and add a new * rb buffer for the next coming msg */ - spin_lock_irqsave(&cl->free_list_spinlock, flags); + spin_lock(&cl->free_list_spinlock); if (!list_empty(&cl->free_rb_list.list)) { new_rb = list_entry(cl->free_rb_list.list.next, struct ishtp_cl_rb, list); list_del_init(&new_rb->list); - spin_unlock_irqrestore(&cl->free_list_spinlock, - flags); + spin_unlock(&cl->free_list_spinlock); new_rb->cl = cl; new_rb->buf_idx = 0; INIT_LIST_HEAD(&new_rb->list); @@ -905,8 +901,7 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, ishtp_hbm_cl_flow_control_req(dev, cl); } else { - spin_unlock_irqrestore(&cl->free_list_spinlock, - flags); + spin_unlock(&cl->free_list_spinlock); } } /* One more fragment in message (even if this was last) */ @@ -919,7 +914,7 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, break; } - spin_unlock_irqrestore(&dev->read_list_spinlock, dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); /* If it's nobody's message, just read and discard it */ if (!buffer) { uint8_t rd_msg_buf[ISHTP_RD_MSG_BUF_SIZE]; @@ -945,7 +940,7 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, * @hbm: hbm buffer * * Receive and dispatch ISHTP client messages using DMA. This function executes - * in ISR context + * in ISR or work queue context */ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, struct dma_xfer_hbm *hbm) @@ -955,12 +950,11 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, struct ishtp_cl_rb *new_rb; unsigned char *buffer = NULL; struct ishtp_cl_rb *complete_rb = NULL; - unsigned long dev_flags; unsigned long flags; - spin_lock_irqsave(&dev->read_list_spinlock, dev_flags); + spin_lock_irqsave(&dev->read_list_spinlock, flags); if (list_empty(&dev->read_list.list)) { - spin_unlock_irqrestore(&dev->read_list_spinlock, dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); goto eoi; } @@ -975,8 +969,7 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, * If no Rx buffer is allocated, disband the rb */ if (rb->buffer.size == 0 || rb->buffer.data == NULL) { - spin_unlock_irqrestore(&dev->read_list_spinlock, - dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); dev_err(&cl->device->dev, "response buffer is not allocated.\n"); list_del(&rb->list); @@ -992,8 +985,7 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, * back FC, so communication will be stuck anyway) */ if (rb->buffer.size < hbm->msg_length) { - spin_unlock_irqrestore(&dev->read_list_spinlock, - dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); dev_err(&cl->device->dev, "message overflow. size %d len %d idx %ld\n", rb->buffer.size, hbm->msg_length, rb->buf_idx); @@ -1017,14 +1009,13 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, * the whole msg arrived, send a new FC, and add a new * rb buffer for the next coming msg */ - spin_lock_irqsave(&cl->free_list_spinlock, flags); + spin_lock(&cl->free_list_spinlock); if (!list_empty(&cl->free_rb_list.list)) { new_rb = list_entry(cl->free_rb_list.list.next, struct ishtp_cl_rb, list); list_del_init(&new_rb->list); - spin_unlock_irqrestore(&cl->free_list_spinlock, - flags); + spin_unlock(&cl->free_list_spinlock); new_rb->cl = cl; new_rb->buf_idx = 0; INIT_LIST_HEAD(&new_rb->list); @@ -1033,8 +1024,7 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, ishtp_hbm_cl_flow_control_req(dev, cl); } else { - spin_unlock_irqrestore(&cl->free_list_spinlock, - flags); + spin_unlock(&cl->free_list_spinlock); } /* One more fragment in message (this is always last) */ @@ -1047,7 +1037,7 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, break; } - spin_unlock_irqrestore(&dev->read_list_spinlock, dev_flags); + spin_unlock_irqrestore(&dev->read_list_spinlock, flags); /* If it's nobody's message, just read and discard it */ if (!buffer) { dev_err(dev->devc, "Dropped Rx (DMA) msg - no request\n"); From patchwork Tue May 16 11:09:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 99864 Delivered-To: patch@linaro.org Received: by 10.182.142.97 with SMTP id rv1csp1825185obb; Tue, 16 May 2017 04:10:51 -0700 (PDT) X-Received: by 10.84.238.9 with SMTP id u9mr14879055plk.126.1494933051881; Tue, 16 May 2017 04:10:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494933051; cv=none; d=google.com; s=arc-20160816; b=QDStk7Bpyy7iblt8/YowT1jrADVWUMWP8WVHQObtfhCdDDQPPyhb/Tv85pofVxy9Wd rRvof4zEiLBgk+p13itik3lMqBCGUi+8sQM0r00F6yol81cZBw3VtNSrJAHanaySRoij +YH7jqiJoCMCfElzFYCZbGEqYy2dZu95693qtEtb18vYK61/XN/ZaWy10weOPapBal8+ 37yc0YH7EaAo4vxUPQMhFrjwctQdk15IS6cMwEXMgV2USOmKl2r0WaDrvwPpdmlCADVz f3JlA63qU2WG0TJgRUpG51PWnsw5cEe8P9CP8mg0wzF3HXFR6haR5hYZtoteXDVlbISL uWDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=UePsB490kLe7EYGDSa6BDgJWZUlt/UhIA21+WmFnqlI=; b=qU8Yv8+jNylz6ogKQnrRjY0C4QUa3G3WpCVF602nSKtep2j5Eun8d4Ssq1lO8EPjDO aCLt2Lab5nAsQtHnB2bexabeziw2A+8YcpkBLHhFMsL3UHXBgsmgjdcSSa5z5PjYNHnT 3yAj22rK582VxG5v0tjUEJAjCVdZoBiaiFwqRPW9+13GAJgwa0w+YTts3/q2br6/osCf PBJpp6NFGghV70G/yV17kQBnF01kWuo1OmHrnnI+YpnvhSY3o0FTB48AGvVGTDhUmKTt VSbM96hj8c+eJd5uvLrZUDnfmkgUXJrDCg0zhjJ94kHpWhdJw6JcPPbflVCZHvb0QfOx J0iQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q78si13278568pgq.344.2017.05.16.04.10.51; Tue, 16 May 2017 04:10:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752587AbdEPLJ6 (ORCPT + 25 others); Tue, 16 May 2017 07:09:58 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:51936 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751932AbdEPLJT (ORCPT ); Tue, 16 May 2017 07:09:19 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0MEwG2-1dCFJd3nty-00G3m7; Tue, 16 May 2017 13:09:12 +0200 From: Arnd Bergmann To: Srinivas Pandruvada , Jiri Kosina Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de Subject: [PATCH 3/5] HID: intel_ish-hid: convert timespec to ktime_t Date: Tue, 16 May 2017 13:09:05 +0200 Message-Id: <20170516110907.3545799-4-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170516110907.3545799-1-arnd@arndb.de> References: <20170516110907.3545799-1-arnd@arndb.de> X-Provags-ID: V03:K0:pfhl7LhDrEjRxEqX43IlOQEaVz3WJAcfP4A2BG9We3qZi9RXWrL eSpY5ZvZoKn4/Uo0FyaFO6lLPOriEAf+JmLRZxJkKhH7I0DwPzHvu+U8LrSRyfokINV9Ks6 nBsQ1T7WcVH+UFPZ1zDsM+te5Efv4gwEUXMMTTy7moocFvXIzDcRM/p104mu5mH9cqdZQ3I tOEQaEfwTtZ2Oaq+0izWg== X-UI-Out-Filterresults: notjunk:1; V01:K0:Ug0FJjog9PY=:9zICYWReHr98qfVr9xA3fl tQDunzqCRP1Vt2F4iw0b1EU+OMBctgztNec8vHSV8lxctPPeQqR7tgY0vy3ZmsRHtsckGydPc Dbsk6Qw+O2X8SeiTmbZi+JuUaKWr3BngahwdCJe6sO6rqcS++H6MORp+D44F7WP42Ju+z4dxH W5YF+lNxhS1F3BdD3ixIAMBl51BxJ36WACuTtVQ50r49AxRxjd/d564e8mkKCa57e1UUxDy9U MxoLru+XblR0b7Y0xtZzRCFJBw1h7fvPL6o9y1dQOkgd1PIlj7v0AIm2BhwHaIhOq64vT5UQe oFPXBRczFtjlAkZIcNaN2gJTub9cwmMqUny0nqmydr1zkMqUoDB2WGKrku9CN7xQDy/OpFVSC LHea+Q8CsBKX/54j7m5D/+evPtnXbebD5LdojDQgb1/2eN/Wh2Al9d2PG0hFMR9RQoEhhdKK6 tm7AarnimubghqlBUwkpQrtqAehdiudqaLO2ahfZ3nERDSALuXUKoHDrXffULQ5rZRQ9OSU1S FC3qFObtCEk7Zsnt9/1AINAis2qRKygR+TLo9VCsUKcl5uNn5tiyaLuZf2ewraP/jhPMKyxBD oZR/qrgUAz2WdlxDs2eEGVcNuw0U3roH0wc3sx1Zf2YsvFl3A8gYGa0Vbzx1KrZRrsZQJEBpZ zmaakC/5nNQMSmQ0/WifHpA63DmjeSvgafbiwQC+cvXnt8gizRLK1B6sRwCABiuQH5xg= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The internal accounting uses 'timespec' based time stamps, which is slightly inefficient and also problematic once we get to the time_t overflow in 2038. When communicating to the firmware, we even get an open-coded 64-bit division that prevents the code from being build-tested on 32-bit architectures and is inefficient due to the double conversion from 64-bit nanoseconds to seconds+nanoseconds and then microseconds. This changes the code to use ktime_t instead. Signed-off-by: Arnd Bergmann --- drivers/hid/intel-ish-hid/ipc/ipc.c | 15 ++++----------- drivers/hid/intel-ish-hid/ishtp/client.c | 4 ++-- drivers/hid/intel-ish-hid/ishtp/client.h | 6 +++--- drivers/hid/intel-ish-hid/ishtp/hbm.c | 11 ++++------- 4 files changed, 13 insertions(+), 23 deletions(-) -- 2.9.0 diff --git a/drivers/hid/intel-ish-hid/ipc/ipc.c b/drivers/hid/intel-ish-hid/ipc/ipc.c index 842d8416a7a6..9a60ec13cb10 100644 --- a/drivers/hid/intel-ish-hid/ipc/ipc.c +++ b/drivers/hid/intel-ish-hid/ipc/ipc.c @@ -296,17 +296,12 @@ static int write_ipc_from_queue(struct ishtp_device *dev) /* If sending MNG_SYNC_FW_CLOCK, update clock again */ if (IPC_HEADER_GET_PROTOCOL(doorbell_val) == IPC_PROTOCOL_MNG && IPC_HEADER_GET_MNG_CMD(doorbell_val) == MNG_SYNC_FW_CLOCK) { - struct timespec ts_system; - struct timeval tv_utc; - uint64_t usec_system, usec_utc; + uint64_t usec_system, usec_utc; struct ipc_time_update_msg time_update; struct time_sync_format ts_format; - get_monotonic_boottime(&ts_system); - do_gettimeofday(&tv_utc); - usec_system = (timespec_to_ns(&ts_system)) / NSEC_PER_USEC; - usec_utc = (uint64_t)tv_utc.tv_sec * 1000000 + - ((uint32_t)tv_utc.tv_usec); + usec_system = ktime_to_us(ktime_get_boottime()); + usec_utc = ktime_to_us(ktime_get_real()); ts_format.ts1_source = HOST_SYSTEM_TIME_USEC; ts_format.ts2_source = HOST_UTC_TIME_USEC; ts_format.reserved = 0; @@ -575,15 +570,13 @@ static void fw_reset_work_fn(struct work_struct *unused) static void _ish_sync_fw_clock(struct ishtp_device *dev) { static unsigned long prev_sync; - struct timespec ts; uint64_t usec; if (prev_sync && jiffies - prev_sync < 20 * HZ) return; prev_sync = jiffies; - get_monotonic_boottime(&ts); - usec = (timespec_to_ns(&ts)) / NSEC_PER_USEC; + usec = ktime_to_us(ktime_get_boottime()); ipc_send_mng_msg(dev, MNG_SYNC_FW_CLOCK, &usec, sizeof(uint64_t)); } diff --git a/drivers/hid/intel-ish-hid/ishtp/client.c b/drivers/hid/intel-ish-hid/ishtp/client.c index a4511ac8a87f..6cb78c29d111 100644 --- a/drivers/hid/intel-ish-hid/ishtp/client.c +++ b/drivers/hid/intel-ish-hid/ishtp/client.c @@ -925,7 +925,7 @@ void recv_ishtp_cl_msg(struct ishtp_device *dev, } if (complete_rb) { - getnstimeofday(&cl->ts_rx); + cl->ts_rx = ktime_get(); ++cl->recv_msg_cnt_ipc; ishtp_cl_read_complete(complete_rb); } @@ -1045,7 +1045,7 @@ void recv_ishtp_cl_msg_dma(struct ishtp_device *dev, void *msg, } if (complete_rb) { - getnstimeofday(&cl->ts_rx); + cl->ts_rx = ktime_get(); ++cl->recv_msg_cnt_dma; ishtp_cl_read_complete(complete_rb); } diff --git a/drivers/hid/intel-ish-hid/ishtp/client.h b/drivers/hid/intel-ish-hid/ishtp/client.h index 444d069c2ed4..79eade547f5d 100644 --- a/drivers/hid/intel-ish-hid/ishtp/client.h +++ b/drivers/hid/intel-ish-hid/ishtp/client.h @@ -118,9 +118,9 @@ struct ishtp_cl { unsigned int out_flow_ctrl_cnt; /* Rx msg ... out FC timing */ - struct timespec ts_rx; - struct timespec ts_out_fc; - struct timespec ts_max_fc_delay; + ktime_t ts_rx; + ktime_t ts_out_fc; + ktime_t ts_max_fc_delay; void *client_data; }; diff --git a/drivers/hid/intel-ish-hid/ishtp/hbm.c b/drivers/hid/intel-ish-hid/ishtp/hbm.c index b7213608ce43..ae4a69f7f2f4 100644 --- a/drivers/hid/intel-ish-hid/ishtp/hbm.c +++ b/drivers/hid/intel-ish-hid/ishtp/hbm.c @@ -321,13 +321,10 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev, if (!rv) { ++cl->out_flow_ctrl_creds; ++cl->out_flow_ctrl_cnt; - getnstimeofday(&cl->ts_out_fc); - if (cl->ts_rx.tv_sec && cl->ts_rx.tv_nsec) { - struct timespec ts_diff; - - ts_diff = timespec_sub(cl->ts_out_fc, cl->ts_rx); - if (timespec_compare(&ts_diff, &cl->ts_max_fc_delay) - > 0) + cl->ts_out_fc = ktime_get(); + if (cl->ts_rx) { + ktime_t ts_diff = ktime_sub(cl->ts_out_fc, cl->ts_rx); + if (ktime_after(ts_diff, cl->ts_max_fc_delay)) cl->ts_max_fc_delay = ts_diff; } } else { From patchwork Tue May 16 11:09:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 99862 Delivered-To: patch@linaro.org Received: by 10.182.142.97 with SMTP id rv1csp1824950obb; Tue, 16 May 2017 04:10:11 -0700 (PDT) X-Received: by 10.98.211.87 with SMTP id q84mr11544170pfg.126.1494933011415; Tue, 16 May 2017 04:10:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494933011; cv=none; d=google.com; s=arc-20160816; b=lWF9m4j3ZRG5RHIGiGR26m5RNvqkB2tVAzODRLdZqLw9DwTgH/LmVmnCWzdWjC7WoB iG7V68QdHZVdGvY3JJ4SEERbEs0vVU/2/D90EbpzAgoPCvtejTcCUc+C7iR1iuigV0tf 3g1JVFeSOmEW9t3y9ZfSohBUmH6pvH3ThrtQtFVOUPulRQHBwwgMolTWjB9UYdoG5KD7 evc03aUBvkGEStkgmfp0WH1Vi0dodcZimfw65w3fvGqgGQoVTKZuAv5D71v8PbhQD3gT +rI8sFp+niuxeqeTWGXkePuPAz4CJaJpwAc+D6gEq1Q89EO2VJ/k3i6UUMv3djH8bMwj gPVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=G32fC8MOFw8iqzJpE97Eo5DpkSO9ilyKInWMMURLyYE=; b=DZ86WXngWxpvZJyQ88MUzbQ0iC4lbhSUHuerf54Cl+xYkiyE/sRGp8KBh7POrjpfBA xhzvKF817Hq5kbWqIBEZg3koqaM8u9AgrhHSt8e20cqGmnxIaND+ya8f0D3f2U/vQfSM YfHnL4+MDJ92ml1e6ouL4Tcmx76JgljN6SIDB5HvByHeFhtHLGmfUErJRfFOxX28so4P uFqtsmu1wKpFS6MTbYdZiSpRUcGQnngA3iUqkrkayOZSRSlY5iCqt7PTKT86AIxjyjn0 ZgPiyCTJWJyzJRMsXXdrh11u9REVyQDgAEhd+abu/TqA56Na8O3/wMSxHzneHT7FpGvI WJHw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o6si8799373pfk.340.2017.05.16.04.10.11; Tue, 16 May 2017 04:10:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752629AbdEPLKA (ORCPT + 25 others); Tue, 16 May 2017 07:10:00 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:61345 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751795AbdEPLJT (ORCPT ); Tue, 16 May 2017 07:09:19 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0M31zr-1e1zqx0gPH-00sshy; Tue, 16 May 2017 13:09:12 +0200 From: Arnd Bergmann To: Srinivas Pandruvada , Jiri Kosina Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de Subject: [PATCH 4/5] HID: intel_ish-hid: fix format string for size_t Date: Tue, 16 May 2017 13:09:06 +0200 Message-Id: <20170516110907.3545799-5-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170516110907.3545799-1-arnd@arndb.de> References: <20170516110907.3545799-1-arnd@arndb.de> X-Provags-ID: V03:K0:kIUuFZRZHB3bb2t+TIAgLp7LxJoLaZONXsqP3w6gkG1xcdDawOo pXsU35k8XpyIYTjvDD5MvZq39Uq9GTBgez3p7b/rpQuVNz5LtAAyqBkGpZn4ZBxpIVCIt7D pGYGUZ3FCcjC+KNGnXFkHL8uhqmCHBgCurQ0wrN2ITPh8T9x34WYAbK3rWmZkpd+yaaytTQ 04ODBqUoS63dolhLVMfYA== X-UI-Out-Filterresults: notjunk:1; V01:K0:zgVhI/pskC8=:skW9XrcNhEsJe7rg3SqihB rHhMjxpUB8NYOCQuP9E5fCME4vWoW48y6RLnsXGEuR7awnHBPg0Pvj5iO3ar+nZ6cWC98XnUI RsWTQNBIOuuPYsELjG2+ECmR5mAY0ZwT0DPQ0tA/cCKtnLVYZBjUnpfjahM3xltL0DqajCz2/ elWOCInu25jHogfooFvaoMYPANH7L2AS75UoE3XDtvD+XlqnLftg4JfICIW7wIC2HCTafx6bA v89j2x63bkcY/ljAcaGlQHGZWM5FglfoXzAgrCtprxyE+xxyK+Uk/nTfGiEfkv4MicnisLxCa SryaWakCGB2g0qjwlDEc2g6zRRNwWhxBzRJkg1kxowcLwmTW8eMwTgVBfQkbXyjvlGW9auVQG XReJxqXDn0d0WyvynSby7X2A4DVRRjBvL4C7qiqUyT67P1jWGEcfdCVD14ZX3DrVlXwMzH+3f A0OJv8N0qw/aYGoh4pRUXQFgYNNaiC+HAAoTgpUYXmjxXFDBNMsGsadirlmo8eRVU6LtC7zJ9 YuhRmKDqoLQynjgNJtP+c5bk6D7/WQv3DgA+OWZVNIsDNdz6G0aSgfrkgFGhOpzQeWGCfLPqr V6e3XnFiBEILdAqngPh3adX53zW106u6G6wYHSI3l+P2UkG+PQwAOySJIzonq1I7M8T7mBkiA 9ByEXOxZ5IqH1DiwsCPVrtS6ZkaAy2eRsv0H8VHz0kpI0CCi1QM8PKZv2MOyp2I91Fdo= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When building for 32-bit architectures, we get a harmless warning: intel-ish-hid/ishtp-hid-client.c: In function 'process_recv': intel-ish-hid/ishtp-hid-client.c:139:7: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Werror=format=] This changes the format string to print size_t variables using %zu instead. Signed-off-by: Arnd Bergmann --- drivers/hid/intel-ish-hid/ishtp-hid-client.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- 2.9.0 diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c index 5c643d7a07b2..157b44aacdff 100644 --- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c +++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c @@ -136,10 +136,9 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf, if (1 + sizeof(struct device_info) * i >= payload_len) { dev_err(&client_data->cl_device->dev, - "[hid-ish]: [ENUM_DEVICES]: content size %lu is bigger than payload_len %u\n", + "[hid-ish]: [ENUM_DEVICES]: content size %zu is bigger than payload_len %zu\n", 1 + sizeof(struct device_info) - * i, - (unsigned int)payload_len); + * i, payload_len); } if (1 + sizeof(struct device_info) * i >= From patchwork Tue May 16 11:09:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 99860 Delivered-To: patch@linaro.org Received: by 10.182.142.97 with SMTP id rv1csp1824751obb; Tue, 16 May 2017 04:09:39 -0700 (PDT) X-Received: by 10.99.5.3 with SMTP id 3mr10958721pgf.104.1494932979160; Tue, 16 May 2017 04:09:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494932979; cv=none; d=google.com; s=arc-20160816; b=O1XwvLkYuMMAdmyECugybhmO/bj2J3O2t/V87+D9DgWAWl1qX4bNAq9E8uhz6k4tcn xdo/dVUMwa+xgNtLaupZlZd9Dr4jlz2YuMFUzb4y9iS9bnsBVK4gW7UJej54kjutK6J3 bKW8MqpZlWzdZ3oxlVULAulnT2n7bDlGmCly9FrC8SpElNl06o16FvhPIRoYwDVllaek meMkH/P0AsAbN1Ji4RalCvG6kekzhjTfUI9Mvc4l//rOpWpG5dvbmWxilUgyrPs8wXXY KiWA/QjInJp7f8zP2gAIK/q7lRhiwjWk/IdCn5fb4kF2m++0+TusAZEqcYIAIEy/f5Ej yxvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=G0Gf9FOnvdeS1wcZycX4buwSX1DHH+9AcvL5I+hTVb4=; b=bLxFPVjKNyXJXWm0nOtPcYczBL1bHmkxYrWrKuXg78zju1lGIAAYJQY5C2XiwCkO7j DCqhVCzP+FqI34dbh1JfebwFdyTx9rBvIyF8WXePJXp52dctjsay4sfeRo/zLqfKr/5l gkv718CMEEsDzrQQ1TvTWXY5nkOZyw4uA2uv8lCXg5r5mLzozFn4I8euR7tgWnw8IbFP Jd3uGGpEl7dCsP9NyR1tpDphB8OBGF/PASdf1U0XxQPQF5wxSb6yeo9E226skDcV6M1X BVCy4uJDjjXLh9K36MUy6MYtmLQd+3Ny237bMgHgJiVnjfXODkLI725Q0MlDS6jFGDA8 ifeA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j88si13619004pfa.194.2017.05.16.04.09.38; Tue, 16 May 2017 04:09:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752332AbdEPLJY (ORCPT + 25 others); Tue, 16 May 2017 07:09:24 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:51962 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751311AbdEPLJS (ORCPT ); Tue, 16 May 2017 07:09:18 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0Lc3CH-1dtqfd21uX-00jdYy; Tue, 16 May 2017 13:09:12 +0200 From: Arnd Bergmann To: Srinivas Pandruvada , Jiri Kosina Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de Subject: [PATCH 5/5] HID: intel_ish-hid: enable compile testing Date: Tue, 16 May 2017 13:09:07 +0200 Message-Id: <20170516110907.3545799-6-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170516110907.3545799-1-arnd@arndb.de> References: <20170516110907.3545799-1-arnd@arndb.de> X-Provags-ID: V03:K0:DTHUroSzjogmPiOQecj/mcoBLOkCPe5boq28hQw50zsPEVS0MxV h6qqJ+2tMsl1mvQMbU3ojLGNocq/yGGcDNM+/0rNFrrO82NgkFi9IlF6WTlKkwm/j6YHF8k pjRNZ5NgMvKSwv0UFSbyw+WRl7AHq4oD4q0cTw1A+vqKurD15cSL7YI5RxeAvzh1+Na2AI0 i0zjfM5w3IkumYedglNhQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:gKkF0000Im4=:RyjN/bU9sDQeA8bVOsUS6M nh3hBPZhtxbRUaM7m0lm/hZsAIS3g0MTpw+W9aCsA2xgVb0qL8gbrlE3ADj1jOYikR8c/ksGM NpkvnK2PIAK3kYCqgFtblsOLa0bGoy21co0GN8Vynv437mKJG59ryM7HlL57fuMLM0Bx7QQm1 Uc8wKkTIEoM7L466RhfzVlkDzQPzuY6jtwOiC5wq1P36GR6wFU+SKI8yylWfICq78AfoanhGI YhjpfsF2IE9GT/zIPljjYxzQXMV8eNdbxCFPoOElyeg+FT/vwMCexH24zlty8O89/URs3thP0 OE7GVkF+A/26hBb4cEA9YhkDqEsgzRod11qNhr30JTxF90Xyq8PtR77fdPZSz09Lh85Ha0g+k L2JAAflywnoU14sbKkwE6PH2SXOmo23DtuykHUVoQOEY8kCZw1ggiJp9HCZ0jFICvtOyvwdL1 II8LDeZ8bFt3nNTwK8qVzqBXlmUcVJAv3RFa1qNgJwTgZIdX1syYu0xqCBHxPHS9tBYRTOeKo zQNOXjKyQlylTcWjA6vgz4RkDT6Si3bQlGjzz/oLffDI0IPbngy2r7vL9U9/3aSXhOsmx3rI0 3A9LhMgWvGM1s9Ldn1gQzAJfP48JxBxze5YEm097Zg+QKrsbPrM5/cM/+IyXtgb4dtoJQLzaX ZHlPxrDwYxX2q2pULwRXwvu/5BaqISdayezltH1jX2gd7qChLfem/gveyR+c4qnmWfgU= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To increase build coverage, drivers should generally be allowed to build on other architectures even if they are only used on one of them. Signed-off-by: Arnd Bergmann --- drivers/hid/intel-ish-hid/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.9.0 diff --git a/drivers/hid/intel-ish-hid/Kconfig b/drivers/hid/intel-ish-hid/Kconfig index ea065b3684a2..519e4c8b53c4 100644 --- a/drivers/hid/intel-ish-hid/Kconfig +++ b/drivers/hid/intel-ish-hid/Kconfig @@ -1,5 +1,5 @@ menu "Intel ISH HID support" - depends on X86_64 && PCI + depends on (X86_64 || COMPILE_TEST) && PCI config INTEL_ISH_HID tristate "Intel Integrated Sensor Hub"