From patchwork Wed Jul 18 06:31:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 945517 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=i2se.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41VnQ51RGZz9s3R for ; Wed, 18 Jul 2018 16:32:45 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730053AbeGRHIz (ORCPT ); Wed, 18 Jul 2018 03:08:55 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:60091 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726258AbeGRHIj (ORCPT ); Wed, 18 Jul 2018 03:08:39 -0400 Received: from stefan-Vostro-260.fritz.box ([109.104.32.110]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0LheU5-1gSEE62hjl-00mu8m; Wed, 18 Jul 2018 08:32:19 +0200 From: Stefan Wahren To: "David S. Miller" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Stefan Wahren Subject: [PATCH 1/3] net: qca_spi: Avoid packet drop during initial sync Date: Wed, 18 Jul 2018 08:31:43 +0200 Message-Id: <1531895505-26971-2-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1531895505-26971-1-git-send-email-stefan.wahren@i2se.com> References: <1531895505-26971-1-git-send-email-stefan.wahren@i2se.com> X-Provags-ID: V03:K1:iWY8HDKD4qxhiarp2oX6kZtiFR33vqvj+JaiXkJXMvXR3FGK9Ti HBRejgMgdsCblwdjoN/db73nbaezUd8wb1GEPJd7IM/0wrcrgQIhgEJcl0l1KhANnE9c6t2 3Kdb4cMZGkZuIhpwdvWxox1K8vrvL0pbUBdk+UWoVBz9Zy8zeE2MA7dF1eCOvx84535TcT2 QjWrC5HcSevJT6c8xeSnA== X-UI-Out-Filterresults: notjunk:1; V01:K0:AKzZbpuezK8=:5u5qO0UlEItxfTedT2eNtF aXNnq+AlZXy8Odj3MbJddsUEUKwzCuDwZe2Xe6MyhWUpJWtLt5SBK92gsTMdmZ2BZeuU3zmdU e2jml/6ektO/ldSmAbYIAH+8UHUN+o4CLd7qvqvRux1UDbxdzh1MpzQ5Fh7oqM+rhEgbfEAn9 LN41ltCdjKh/DW2Z+Dm/DLboAowDvhK1eo37+BZWEpetvV4ukjMX7x+yIO5xOj0KFdHtknlVa 1Dkwg18Wna2iHPxRhG2G21xo4A/fJft+52VaLM05LB/fh/d7fi2fA92xsGEI18CgaztoCTG+I AdKHyUKGxSc1GPFgq+i0/T7Ec6FP6Y65BNp39lryVTqEoSuoFXynACNHw0dIDmgfEc3w6/DqC Dt8nmWlZ8CU5mTskJ1x7zkoQtfXrCmU0bdAHBNAFfNkxvnbwsoWOAbUeKxNcLCZBaBsy95yCJ 8mwtTowR7XB28TK0qP3UKZ+NuWBoOn1qHUScXBpz8wkO/SswWfF+pXKZcF1RavyMV7mWJxYN2 IVeLYNg0u/TDJ6o0HN4KfzfLB2BGcTVh1WWLABZHYghcT3AwSSuf2imulmlw9ovwlA3ISM9tC YCNfYM0YwG7lxGZBspi417ScN9+FLCWxB3G/3MOOf59WigG3YEYF8lZJpXQmEn3QDb7+1BoiH yK0O3Ih5sr8ZYiLtN0CuMGeStmwJH0bp2gcw30CUdqsg+GcaZwr0nQ8mejU4jus4z9c0= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org As long as the synchronization with the QCA7000 isn't finished, we cannot accept packets from the upper layers. So let the SPI thread enable the TX queue after sync and avoid unwanted packet drop. Signed-off-by: Stefan Wahren Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for QCA7000") --- drivers/net/ethernet/qualcomm/qca_spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c index 5803cd6..7db149f 100644 --- a/drivers/net/ethernet/qualcomm/qca_spi.c +++ b/drivers/net/ethernet/qualcomm/qca_spi.c @@ -658,7 +658,7 @@ qcaspi_netdev_open(struct net_device *dev) return ret; } - netif_start_queue(qca->net_dev); + /* SPI thread takes care of TX queue */ return 0; } From patchwork Wed Jul 18 06:31:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 945515 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=i2se.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41VnPp3drGz9s3R for ; Wed, 18 Jul 2018 16:32:30 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729706AbeGRHIj (ORCPT ); Wed, 18 Jul 2018 03:08:39 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:54081 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726245AbeGRHIj (ORCPT ); Wed, 18 Jul 2018 03:08:39 -0400 Received: from stefan-Vostro-260.fritz.box ([109.104.32.110]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0LZvn3-1gKX8A3kGj-00lmcW; Wed, 18 Jul 2018 08:32:20 +0200 From: Stefan Wahren To: "David S. Miller" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Stefan Wahren Subject: [PATCH 2/3] net: qca_spi: Make sure the QCA7000 reset is triggered Date: Wed, 18 Jul 2018 08:31:44 +0200 Message-Id: <1531895505-26971-3-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1531895505-26971-1-git-send-email-stefan.wahren@i2se.com> References: <1531895505-26971-1-git-send-email-stefan.wahren@i2se.com> X-Provags-ID: V03:K1:7pL8SFbjMtCO7yuXtKQfn6UAFngKV1aJcG+QD0iqhHEFj1Mp8xG 7/4QubX88LbwEDf5+G7iK9rfGicnWcDKdM8MhBGMHbc7wCvUYNCrWXTy9RRS1VNViLrFpmf g4kOtkCiH09zFtkF7uPas6xM18bDDHnQaphDEAP7rdpqH15QHF2tO254Cietb3znxWrBq2g rXUmyX0QDMiwVZyo6F3QQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:KrCedn1C9Tw=:yVUMHUNW8eN+7WGnOoAo7A JALonmfNDfI+aa8ClNFEYXm+gzn2U099Gt9cLv4H30SPFML3Q6vI01in6hulbQV5RlIIYnK8U +oqHczkWJ1nSQ2Gj1rD85+VxTTFv4G17ZvncPQWNZNYbMKIfymbGC1ErFjKQqINWIafPxSEs9 exoBWV6EznIs/sXoldPTAuu2nL6j1y5eIprJ0hQ8DVKkDyGpj/O0HeG5LbS+yw6KPolPm37NF otemjviwSwt1v0oEzVlR9QjH/5PfEikBN+1j/0miKt34GMi9mpjcR3HRqrHa70oQIKU1NBwv5 zFrCHLH/yYCuCsndsDvmBC7RGBX/hPVbPUSn7mdzP08T41JT34eiKw6R95mISR8UOLIsl5dfv b3rNIYZfG0DPobawL8hQDtSCwlr1NJupA0u2uF9gTgrLmNo8zPRqZR+p0uJ/kDFgNPuofgjPX AWK7AVJbm0FufUMY3UNfT9w4B/BHKJpMm70azEe/KXrH7mACVammSgZNx9QOjBHoc3ORPsF8S buWKBPUdRzvUwpwx/GKy3Ot6THohCWDBn+iR2+XefZepxgL02FR68HBL0k/8uL2iOqOylt1Bv vNAWW5Q7xqUvO+8ljjf3CuIddtUaiJ8dEgjVsVUZ/Z5MqhSJp7IeM7IcopNm41OzZo1X6CWfN BXrTSm3wMlV14Lkya2jErGp7kzcn9xjw2SGOTzVPyKXjvucl3Qv0XRX/fEI9d9aVZzsU= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In case the SPI thread is not running, a simple reset of sync state won't fix the transmit timeout. We also need to wake up the kernel thread. Signed-off-by: Stefan Wahren Fixes: ed7d42e24eff ("net: qca_spi: fix transmit queue timeout handling") --- drivers/net/ethernet/qualcomm/qca_spi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c index 7db149f..7fa815d 100644 --- a/drivers/net/ethernet/qualcomm/qca_spi.c +++ b/drivers/net/ethernet/qualcomm/qca_spi.c @@ -760,6 +760,9 @@ qcaspi_netdev_tx_timeout(struct net_device *dev) qca->net_dev->stats.tx_errors++; /* Trigger tx queue flush and QCA7000 reset */ qca->sync = QCASPI_SYNC_UNKNOWN; + + if (qca->spi_thread) + wake_up_process(qca->spi_thread); } static int From patchwork Wed Jul 18 06:31:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 945516 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=i2se.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41VnPx3h22z9s3Z for ; Wed, 18 Jul 2018 16:32:37 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728908AbeGRHIj (ORCPT ); Wed, 18 Jul 2018 03:08:39 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:57207 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726166AbeGRHIj (ORCPT ); Wed, 18 Jul 2018 03:08:39 -0400 Received: from stefan-Vostro-260.fritz.box ([109.104.32.110]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0MUEy2-1fWI3a0Ymw-00QxTn; Wed, 18 Jul 2018 08:32:20 +0200 From: Stefan Wahren To: "David S. Miller" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Stefan Wahren Subject: [PATCH 3/3] net: qca_spi: Fix log level if probe fails Date: Wed, 18 Jul 2018 08:31:45 +0200 Message-Id: <1531895505-26971-4-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1531895505-26971-1-git-send-email-stefan.wahren@i2se.com> References: <1531895505-26971-1-git-send-email-stefan.wahren@i2se.com> X-Provags-ID: V03:K1:yKn9e5cbJfk7eo2MEC4fFsBjcqAv8I3D8RvyA5A70nDcNhekrYc rt92yiFWm6diu2LD7yOmZhF0WuinQNUG3eUqLOhiFvEZ6EmnW5a6+77njDQdqWKYn32+aHk k2A3/1kMlbO/QOymrMK7z78mRkIelUZ5HY09+whZaJ+7w5SL87dBTb3smw62Sp9cGU4AGyP v1J7Zym7okFPuBQJOt4PQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:OWFjPRqSxhg=:a83b0TMPWsvZbvEYtuKI3/ gp9sm0BTCtZXIMovuFf4RWhemwiOjK5hg4ifX6bmXsBumi0jF/2V7OqL0o/MHrAci2n3iVPIm D/TaxRKR912DuBVpyays022y9lEMmZyvOQw5k6p5emcWmEyQ+7gN+66Uf0KUPFIzedhm37WXy dEB6UuF1ioUWXFZfj3IiDdCpzrOuCgkN0Ixr1FQgnTLTAY7oX42p1sGZTYqjJIAs5dpqqExm2 BM4V4mzxmPdHX3ztokbFBiBznHYfqjbA4tNL/rCNbLAv9amqqj4tfhXdXRkIRobauyxZZHj1K E78nODxFkPq98S9FT8Hl7mm41RRdJ1waCGXrt5IXG0xKNMqX5fC7TFB3LqbkzVl/qCIVSIU/P zCNr+7D217a7BwF+Q7wiUgVmbbY9qtNc9P1V8fAhOsr05Cj3uvVa97+v57X1vABlzFsBfh6zx tZ5UXlwUv/+bEfUAYZhP2JHLHhvakkQM9P8N6QKfgPxpIMSpX+EU+aTnCb/CBfx0jIvXJNy15 1sVsPNnPTqIuZNlqgHAzDPUdlUDHDOhFY1gB4S2YqTA5KSJ+jdYyQioFQUKsTPtl9SZxuK17V 4ri5kFfCUl2mx87WG7PWgsudIGz5lauMydttPHWK+Mp+QCjbcaXtXD8uSh3YBmLUAxnEcdCPC SpGN8xpAe70/LILD7fWTyyFpDrYn9LbADgGZFvN9nXoTazXZHZ8piJaqPPLSOwK2VoMk= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In cases the probing fails the log level of the messages should be an error. Signed-off-by: Stefan Wahren --- drivers/net/ethernet/qualcomm/qca_spi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c index 7fa815d..206f026 100644 --- a/drivers/net/ethernet/qualcomm/qca_spi.c +++ b/drivers/net/ethernet/qualcomm/qca_spi.c @@ -881,22 +881,22 @@ qca_spi_probe(struct spi_device *spi) if ((qcaspi_clkspeed < QCASPI_CLK_SPEED_MIN) || (qcaspi_clkspeed > QCASPI_CLK_SPEED_MAX)) { - dev_info(&spi->dev, "Invalid clkspeed: %d\n", - qcaspi_clkspeed); + dev_err(&spi->dev, "Invalid clkspeed: %d\n", + qcaspi_clkspeed); return -EINVAL; } if ((qcaspi_burst_len < QCASPI_BURST_LEN_MIN) || (qcaspi_burst_len > QCASPI_BURST_LEN_MAX)) { - dev_info(&spi->dev, "Invalid burst len: %d\n", - qcaspi_burst_len); + dev_err(&spi->dev, "Invalid burst len: %d\n", + qcaspi_burst_len); return -EINVAL; } if ((qcaspi_pluggable < QCASPI_PLUGGABLE_MIN) || (qcaspi_pluggable > QCASPI_PLUGGABLE_MAX)) { - dev_info(&spi->dev, "Invalid pluggable: %d\n", - qcaspi_pluggable); + dev_err(&spi->dev, "Invalid pluggable: %d\n", + qcaspi_pluggable); return -EINVAL; } @@ -958,8 +958,8 @@ qca_spi_probe(struct spi_device *spi) } if (register_netdev(qcaspi_devs)) { - dev_info(&spi->dev, "Unable to register net device %s\n", - qcaspi_devs->name); + dev_err(&spi->dev, "Unable to register net device %s\n", + qcaspi_devs->name); free_netdev(qcaspi_devs); return -EFAULT; }