Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp766924ybl; Wed, 4 Dec 2019 10:30:29 -0800 (PST) X-Google-Smtp-Source: APXvYqw9oLgcHy9gLv+No1FzggzwhkIb613JlTpfpaO7MudhT+F0TfTX9YP0aCZPuNIfElZNkXbO X-Received: by 2002:aca:dbc6:: with SMTP id s189mr3731452oig.74.1575484229841; Wed, 04 Dec 2019 10:30:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575484229; cv=none; d=google.com; s=arc-20160816; b=Pu+I39FPz1bv+pm4/yO4UUSNowlcYvz+5dvhm2nARswm+BXbldWbGuQJ3zEPi7suiU BhkSjPb76TYru3QbMs7aoQCRZrSLiVD1JihHbvhwQz6t5rZticcVL+j69R8vbCC4BJsb UkWDf6Kt7u0ZwuBD7/7gbSUw3diUfj29R+RQItS0MwthLjPuI3n2scWM6WDhprzlRKLz GS3feyWH+dbCHWAVsLYrtHruatskXPnSA2phMalX/0xIpvvUFme0glg3sZJQdJ9nYfZj Ppcdj5xVFbqZWCPC+vza48zDigx5srPFhrG0Ez5BHaIdeGkXqWS8irTz544/FSvD9piH +kxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=4xsKiBEvVsiQmZuYomFq8n9so1XvooNI5mYshfgbIiw=; b=Nswe6LMUX56lLzEfzh3CBy+ce/rCPf9ntOJxKytJmd0fvJj7fzd8ty/oHBf+aXJ8wM 0iWeNblcLCaNrdybi17A6/rWUnpRJDKm1F0jePm4x07rUhMSLuwJsIUPiz4rE7BmtzgT NinPFQtkmXVpLx4DcEdmthyVz4vkYTFB3pZHMvPay0SHQGGEy94HVyCfuvVZUGZYrq+h i+XEon2xg7HBWyPyHlIp3xHrdTC9bQnc59d6p4DqGeQBRbb2iXqHa6IPaFtJTUUY0UOH EMZKm68C+3J2GO0fxs4InDNi2Y9aNH9fJwdvKE4D9MMB/l/PhJStJ1qmTcUtDWT/bs9k xXAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2VIEOHNi; 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 o129si3665835oib.236.2019.12.04.10.30.17; Wed, 04 Dec 2019 10:30:29 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=2VIEOHNi; 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 S1728526AbfLDR6C (ORCPT + 99 others); Wed, 4 Dec 2019 12:58:02 -0500 Received: from mail.kernel.org ([198.145.29.99]:59714 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728495AbfLDR56 (ORCPT ); Wed, 4 Dec 2019 12:57:58 -0500 Received: from localhost (unknown [217.68.49.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9C83820675; Wed, 4 Dec 2019 17:57:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575482278; bh=WbqjUggnJDh4A988fik+6/iGaJLlVSosFqW9yVNwscw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2VIEOHNieQLJtSNAD1kcNnhRoHnwEhIbdXNfNwlvUfSFMjztikfci8anMi60prYwo eWhuWRxO3a4+CftekiMP4C2HepQnTpUHp+kjCSIXr/Blri4WaduzVGqvXkF53oyOKs RqHCuAcxWH2V4nB4mx/mGUxnxJE/VfRf/7t00rQQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jeroen Hofstee , Stephane Grosjean , Marc Kleine-Budde , Sasha Levin Subject: [PATCH 4.4 05/92] can: peak_usb: report bus recovery as well Date: Wed, 4 Dec 2019 18:49:05 +0100 Message-Id: <20191204174328.702650875@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191204174327.215426506@linuxfoundation.org> References: <20191204174327.215426506@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jeroen Hofstee [ Upstream commit 128a1b87d3ceb2ba449d5aadb222fe22395adeb0 ] While the state changes are reported when the error counters increase and decrease, there is no event when the bus recovers and the error counters decrease again. So add those as well. Change the state going downward to be ERROR_PASSIVE -> ERROR_WARNING -> ERROR_ACTIVE instead of directly to ERROR_ACTIVE again. Signed-off-by: Jeroen Hofstee Cc: Stephane Grosjean Signed-off-by: Marc Kleine-Budde Signed-off-by: Sasha Levin --- drivers/net/can/usb/peak_usb/pcan_usb.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c index e626c2afbbb11..0e1fc6c4360e7 100644 --- a/drivers/net/can/usb/peak_usb/pcan_usb.c +++ b/drivers/net/can/usb/peak_usb/pcan_usb.c @@ -441,8 +441,8 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n, } if ((n & PCAN_USB_ERROR_BUS_LIGHT) == 0) { /* no error (back to active state) */ - mc->pdev->dev.can.state = CAN_STATE_ERROR_ACTIVE; - return 0; + new_state = CAN_STATE_ERROR_ACTIVE; + break; } break; @@ -465,9 +465,9 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n, } if ((n & PCAN_USB_ERROR_BUS_HEAVY) == 0) { - /* no error (back to active state) */ - mc->pdev->dev.can.state = CAN_STATE_ERROR_ACTIVE; - return 0; + /* no error (back to warning state) */ + new_state = CAN_STATE_ERROR_WARNING; + break; } break; @@ -506,6 +506,11 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n, mc->pdev->dev.can.can_stats.error_warning++; break; + case CAN_STATE_ERROR_ACTIVE: + cf->can_id |= CAN_ERR_CRTL; + cf->data[1] = CAN_ERR_CRTL_ACTIVE; + break; + default: /* CAN_STATE_MAX (trick to handle other errors) */ cf->can_id |= CAN_ERR_CRTL; -- 2.20.1