From patchwork Mon Jun 29 21:37:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 192022 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp3246742ilg; Mon, 29 Jun 2020 14:38:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhOwYmFDo6jlrdZbgbfVs04l+iMkNNR1x3XQauMVu2AFJ1ANSXVJmKwTvWn11TZNhsbDQJ X-Received: by 2002:aa7:d8cf:: with SMTP id k15mr19212056eds.250.1593466702559; Mon, 29 Jun 2020 14:38:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593466702; cv=none; d=google.com; s=arc-20160816; b=HDcCa6Tfo2f9aQKIxQwuYiF7LZ9TOlUmihTOOFvX8BApjR2QQdwURYGySxZLzcRxdj 7n+cxiviykuIeViPEKLGVmsOIMGsEkmZqxcOXJZzhNjwoAcXkeK/jQLZ9YRgo5WKvzIP eFENvSqt7XXP5CX9wKSB/SnU35r5kq7miVKEIuZ+ocq61nv6TOSWq334e3ie3Qa3BNkB TIHYR47qqwvqLlC+zfZWmIiSIICry8Iv3Ryrawtgc4cfCItj7XOlF1Ulp2DC9Pv9LPKf L0CkLcSxz75qwBU+5OQZKVpWVc1IdIPHoqn1rIHpigmCkaINwuRFkYPkpH8gTXahLASR hsZQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3I76P37Yz2wf4pLUPaNpx3FXvV0p8jPdg/DBK+vqw3Q=; b=xJPiUt+L3ixYKrs5O4bv62eRDny53UV5nW36zT6z7DU9Ol9gkNsf5DDlUJmRZ04Uz0 wLUNfdrjkqSPc2FVpyHgB7kx1I0z3iZLoVLtdK8JvxLSV3euFLbqxAPjaXkt4eFWVK// qqKz3e6KFGDLkQpWDB1VCxGa+QYOD0DfEepekJn5zwX+NCBDG2IPoYDOAiNxI9cGfpIV PEWtWA2bzgNqWEvYCSZHwaM4Op/0aCSQC9+eO1wRcHNAukdMwDEXnhOJen4+E3Q24Sj+ 9oZwIjtz+OT/MSuX+TromFU47C0HF/jBeo6aPpdhe1VjCyZGpiGnkdv0VUFGyWTS5HY5 gAnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="GZWd/qtl"; spf=pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w9si465590edr.171.2020.06.29.14.38.22; Mon, 29 Jun 2020 14:38:22 -0700 (PDT) Received-SPF: pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="GZWd/qtl"; spf=pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729582AbgF2ViV (ORCPT + 9 others); Mon, 29 Jun 2020 17:38:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731547AbgF2Vho (ORCPT ); Mon, 29 Jun 2020 17:37:44 -0400 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C261C03E97B for ; Mon, 29 Jun 2020 14:37:44 -0700 (PDT) Received: by mail-io1-xd43.google.com with SMTP id e64so13885339iof.12 for ; Mon, 29 Jun 2020 14:37:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3I76P37Yz2wf4pLUPaNpx3FXvV0p8jPdg/DBK+vqw3Q=; b=GZWd/qtlc+92FjMe/OMEp2bIn0RAaMb+EeHyk6vppCzb085oe1L6NG+NgY0/Vz8ybB ZVXyWeltVBqIzzAOme9mNQjf+d8a0Q7PcjtfiKXNSXqG+AE62c09mGCnYaz7k91QPJBz 0uAY7NtwK6oTExqGJYYguVLlODHcdsXrag/TiriZuwAA/ty+FTsYEG6eBWkIQCqdpHsj RDpL9IMB4aUb3XRz3XZdO2ZlvY/udBEUmD55/5iw8mhaQm+Id7o9zu+HaNq2AAG5bLpB 5rUPu2mUbTWW+G6p3nJNLqSdWilR5KI1cq/eMtXBGbUpeIQuSI+z0kRuGbYHQypeSwyR swdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3I76P37Yz2wf4pLUPaNpx3FXvV0p8jPdg/DBK+vqw3Q=; b=JyK+L1a7vNxsmFfSYriLb7pvA2u6uMF24Ca2FrbNwkTxdE7oHUR+HPJ0vzrYz4kE1O twQpWQHNqz5VeKyP8Pf+MW6cIXrB0JoSdv3lhsdQxUVgLbsrmGX1Ep8HRmWJP8mzNSMO QyekAPhhIEgO2pwIa6xIgXpsR42xuOHLvHGsee9nCXrIlSP4ZY1TkWAjuKGhsElW0pBN Jrw2IQxLWJE0sez18vqQ7Hn6SeqOrtJqe23Pd3JbMat37jX5Ws8Q7vXXR8hDJLSebYlN 3KhU1io2hiEPQeHEDznjXXhJ6kJu3lX6hl66v2aBi/hAYJP2RcLteLwoPedzSUcTAx2q wfnQ== X-Gm-Message-State: AOAM530PAuDPrrsBIYrPcckbX9uwYRoGnVezP4AJKTiSgs6TGBEHZn6P l73FMnC8WZGmM9cx3lbB0Tc4Tg== X-Received: by 2002:a05:6638:2601:: with SMTP id m1mr9163980jat.43.1593466663340; Mon, 29 Jun 2020 14:37:43 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id u6sm571353ilg.32.2020.06.29.14.37.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2020 14:37:42 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: evgreen@chromium.org, subashab@codeaurora.org, cpratapa@codeaurora.org, bjorn.andersson@linaro.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/3] net: ipa: always report GSI state errors Date: Mon, 29 Jun 2020 16:37:36 -0500 Message-Id: <20200629213738.1180618-2-elder@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629213738.1180618-1-elder@linaro.org> References: <20200629213738.1180618-1-elder@linaro.org> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We check the state of an event ring or channel both before and after any GSI command issued that will change that state. In most--but not all--cases, if the state is something different than expected we report an error message. Add error messages where missing, so that all unexpected states provide information about what went wrong. Drop the parentheses around the state value shown in all cases. Signed-off-by: Alex Elder --- drivers/net/ipa/gsi.c | 54 ++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 24 deletions(-) -- 2.25.1 diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c index 55226b264e3c..7e4e54ee09b1 100644 --- a/drivers/net/ipa/gsi.c +++ b/drivers/net/ipa/gsi.c @@ -358,13 +358,15 @@ static int gsi_evt_ring_alloc_command(struct gsi *gsi, u32 evt_ring_id) /* Get initial event ring state */ evt_ring->state = gsi_evt_ring_state(gsi, evt_ring_id); - - if (evt_ring->state != GSI_EVT_RING_STATE_NOT_ALLOCATED) + if (evt_ring->state != GSI_EVT_RING_STATE_NOT_ALLOCATED) { + dev_err(gsi->dev, "bad event ring state %u before alloc\n", + evt_ring->state); return -EINVAL; + } ret = evt_ring_command(gsi, evt_ring_id, GSI_EVT_ALLOCATE); if (!ret && evt_ring->state != GSI_EVT_RING_STATE_ALLOCATED) { - dev_err(gsi->dev, "bad event ring state (%u) after alloc\n", + dev_err(gsi->dev, "bad event ring state %u after alloc\n", evt_ring->state); ret = -EIO; } @@ -381,14 +383,14 @@ static void gsi_evt_ring_reset_command(struct gsi *gsi, u32 evt_ring_id) if (state != GSI_EVT_RING_STATE_ALLOCATED && state != GSI_EVT_RING_STATE_ERROR) { - dev_err(gsi->dev, "bad event ring state (%u) before reset\n", + dev_err(gsi->dev, "bad event ring state %u before reset\n", evt_ring->state); return; } ret = evt_ring_command(gsi, evt_ring_id, GSI_EVT_RESET); if (!ret && evt_ring->state != GSI_EVT_RING_STATE_ALLOCATED) - dev_err(gsi->dev, "bad event ring state (%u) after reset\n", + dev_err(gsi->dev, "bad event ring state %u after reset\n", evt_ring->state); } @@ -399,14 +401,14 @@ static void gsi_evt_ring_de_alloc_command(struct gsi *gsi, u32 evt_ring_id) int ret; if (evt_ring->state != GSI_EVT_RING_STATE_ALLOCATED) { - dev_err(gsi->dev, "bad event ring state (%u) before dealloc\n", + dev_err(gsi->dev, "bad event ring state %u before dealloc\n", evt_ring->state); return; } ret = evt_ring_command(gsi, evt_ring_id, GSI_EVT_DE_ALLOC); if (!ret && evt_ring->state != GSI_EVT_RING_STATE_NOT_ALLOCATED) - dev_err(gsi->dev, "bad event ring state (%u) after dealloc\n", + dev_err(gsi->dev, "bad event ring state %u after dealloc\n", evt_ring->state); } @@ -448,21 +450,23 @@ gsi_channel_command(struct gsi_channel *channel, enum gsi_ch_cmd_opcode opcode) static int gsi_channel_alloc_command(struct gsi *gsi, u32 channel_id) { struct gsi_channel *channel = &gsi->channel[channel_id]; + struct device *dev = gsi->dev; enum gsi_channel_state state; int ret; /* Get initial channel state */ state = gsi_channel_state(channel); - if (state != GSI_CHANNEL_STATE_NOT_ALLOCATED) + if (state != GSI_CHANNEL_STATE_NOT_ALLOCATED) { + dev_err(dev, "bad channel state %u before alloc\n", state); return -EINVAL; + } ret = gsi_channel_command(channel, GSI_CH_ALLOCATE); /* Channel state will normally have been updated */ state = gsi_channel_state(channel); if (!ret && state != GSI_CHANNEL_STATE_ALLOCATED) { - dev_err(gsi->dev, "bad channel state (%u) after alloc\n", - state); + dev_err(dev, "bad channel state %u after alloc\n", state); ret = -EIO; } @@ -472,21 +476,23 @@ static int gsi_channel_alloc_command(struct gsi *gsi, u32 channel_id) /* Start an ALLOCATED channel */ static int gsi_channel_start_command(struct gsi_channel *channel) { + struct device *dev = channel->gsi->dev; enum gsi_channel_state state; int ret; state = gsi_channel_state(channel); if (state != GSI_CHANNEL_STATE_ALLOCATED && - state != GSI_CHANNEL_STATE_STOPPED) + state != GSI_CHANNEL_STATE_STOPPED) { + dev_err(dev, "bad channel state %u before start\n", state); return -EINVAL; + } ret = gsi_channel_command(channel, GSI_CH_START); /* Channel state will normally have been updated */ state = gsi_channel_state(channel); if (!ret && state != GSI_CHANNEL_STATE_STARTED) { - dev_err(channel->gsi->dev, - "bad channel state (%u) after start\n", state); + dev_err(dev, "bad channel state %u after start\n", state); ret = -EIO; } @@ -496,13 +502,16 @@ static int gsi_channel_start_command(struct gsi_channel *channel) /* Stop a GSI channel in STARTED state */ static int gsi_channel_stop_command(struct gsi_channel *channel) { + struct device *dev = channel->gsi->dev; enum gsi_channel_state state; int ret; state = gsi_channel_state(channel); if (state != GSI_CHANNEL_STATE_STARTED && - state != GSI_CHANNEL_STATE_STOP_IN_PROC) + state != GSI_CHANNEL_STATE_STOP_IN_PROC) { + dev_err(dev, "bad channel state %u before stop\n", state); return -EINVAL; + } ret = gsi_channel_command(channel, GSI_CH_STOP); @@ -515,8 +524,7 @@ static int gsi_channel_stop_command(struct gsi_channel *channel) if (state == GSI_CHANNEL_STATE_STOP_IN_PROC) return -EAGAIN; - dev_err(channel->gsi->dev, - "bad channel state (%u) after stop\n", state); + dev_err(dev, "bad channel state %u after stop\n", state); return -EIO; } @@ -524,6 +532,7 @@ static int gsi_channel_stop_command(struct gsi_channel *channel) /* Reset a GSI channel in ALLOCATED or ERROR state. */ static void gsi_channel_reset_command(struct gsi_channel *channel) { + struct device *dev = channel->gsi->dev; enum gsi_channel_state state; int ret; @@ -532,8 +541,7 @@ static void gsi_channel_reset_command(struct gsi_channel *channel) state = gsi_channel_state(channel); if (state != GSI_CHANNEL_STATE_STOPPED && state != GSI_CHANNEL_STATE_ERROR) { - dev_err(channel->gsi->dev, - "bad channel state (%u) before reset\n", state); + dev_err(dev, "bad channel state %u before reset\n", state); return; } @@ -542,21 +550,20 @@ static void gsi_channel_reset_command(struct gsi_channel *channel) /* Channel state will normally have been updated */ state = gsi_channel_state(channel); if (!ret && state != GSI_CHANNEL_STATE_ALLOCATED) - dev_err(channel->gsi->dev, - "bad channel state (%u) after reset\n", state); + dev_err(dev, "bad channel state %u after reset\n", state); } /* Deallocate an ALLOCATED GSI channel */ static void gsi_channel_de_alloc_command(struct gsi *gsi, u32 channel_id) { struct gsi_channel *channel = &gsi->channel[channel_id]; + struct device *dev = gsi->dev; enum gsi_channel_state state; int ret; state = gsi_channel_state(channel); if (state != GSI_CHANNEL_STATE_ALLOCATED) { - dev_err(gsi->dev, - "bad channel state (%u) before dealloc\n", state); + dev_err(dev, "bad channel state %u before dealloc\n", state); return; } @@ -565,8 +572,7 @@ static void gsi_channel_de_alloc_command(struct gsi *gsi, u32 channel_id) /* Channel state will normally have been updated */ state = gsi_channel_state(channel); if (!ret && state != GSI_CHANNEL_STATE_NOT_ALLOCATED) - dev_err(gsi->dev, - "bad channel state (%u) after dealloc\n", state); + dev_err(dev, "bad channel state %u after dealloc\n", state); } /* Ring an event ring doorbell, reporting the last entry processed by the AP. From patchwork Mon Jun 29 21:37:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 192020 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp3246620ilg; Mon, 29 Jun 2020 14:38:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/Y/D5nB6/g7dyaaeWpAhjMS++wXy1JpsH0o2mDqFcDuSrewb+n3gx1dY7MOAuWfr/XLJT X-Received: by 2002:aa7:dd05:: with SMTP id i5mr20057757edv.283.1593466688117; Mon, 29 Jun 2020 14:38:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593466688; cv=none; d=google.com; s=arc-20160816; b=AoylQLO5Q6yazItYFnF8ix35vm/MviKLRQFPxhUVajGx1lwWbDN7/jBMsLHg9l2uWm LJHID0YnIArgEqGkEeoiFxJZnTaDLmR9wKpnNGDdZ68uObp/VdlOx1C3qFGNSqH6ndZX L0uT69ipZAE/GsPhAgbi4LX2d4lxAu8SBjWgICiEI+9JWg7UPwo1qQdjpgGFkk8046u9 wk1ryo/eNY/X7Joj00e4SM6PbDnXo07zUp6+HxUh9QKAircDTuWeRIoiBuBjRaCE+Fyy jQOs4PGAUPTxlis3DBz9BOFHBIE098trkvsA9zcg0R02mUWan4xIAsmUFio3glDaRc0I ehuw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Af+/9CSUqiL8+Q2/NBMEqVxoFlpAKXhf/eB3TWyxOp0=; b=sahdWuPcFFLeuoIVEydgkvnyCSG71NHwcVOkJoXNcT5W4T6mx3GXulT/oE+lgLx8Ym XLspdBCzSYsJNwSPyod0fGJ4h4rnVB+txASZJ9Jb9k60GfUzOg5YV+mR36HPhVK+8s6W x7nX1RF5Y5YyD6GAqgvEpC+NurAD0nz2fys/VoiP1kql3e+4vF9/2Wp/tasP6lLMpr01 xzAGYf65JDsxQmgHnxG9feTd+y2DtqrvS6kkNFluTEolQn22ojZUfHHEBdTy4P3j8nHB thjVkChU7hN7o1tWgsxIiu06sNBLhqmyXTrXNmzHSxGfXRLIWHJgHgrnq+yayXKsPvuQ MfkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=zGsVB1+M; spf=pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l24si527293ejp.69.2020.06.29.14.38.07; Mon, 29 Jun 2020 14:38:08 -0700 (PDT) Received-SPF: pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=zGsVB1+M; spf=pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732374AbgF2ViF (ORCPT + 9 others); Mon, 29 Jun 2020 17:38:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388613AbgF2Vhp (ORCPT ); Mon, 29 Jun 2020 17:37:45 -0400 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2617DC08C5DB for ; Mon, 29 Jun 2020 14:37:45 -0700 (PDT) Received: by mail-io1-xd41.google.com with SMTP id i4so18783703iov.11 for ; Mon, 29 Jun 2020 14:37:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Af+/9CSUqiL8+Q2/NBMEqVxoFlpAKXhf/eB3TWyxOp0=; b=zGsVB1+MMLrSD2Ry7w7m2IEZ22N2/s30BIJKpqZjygc3KdGr8QFP4dNKGUpJ0ICZn/ g2a6IMaHNbXSBpTyPGc/RZokJhWkFcmkJ2nDuZ29kxJHOfYE/QNpUyZOSMQ6HZ8dU4JX ZuwFBHpqk8thm4EBpD/QQYXOGonGXYxvUiCNiPphEDBRHChTpHiJAA7Sqigb/MhdFXnj iPvkwv/YlsEnUYfzP+k3kwuHEOdW0z27+Zgm8VIbBEch1xCRcDIpsDDm32pmXk9JbtWL eUWPEZkgIPvR6KV+DEp3jvkYhX1mkRPBLyg7F6XhepV6aerCg1oGlR4FMQyZf1rNppPU VwuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Af+/9CSUqiL8+Q2/NBMEqVxoFlpAKXhf/eB3TWyxOp0=; b=JsHHyqk6J7FNb/TE/SegfkJCweCYby932SUQMIwNqyybFDm6FEvBFv8g5Rss1VJo/Z vI3JpiQfYJV8uduZuF090JOwaNEnKrQ+dfbKmSRuB0gGuX/vt/OTBYVeAODz/hg4wVjG tqS+wQas7BWGOGojuR7cq1Ig8jiG167EWX2wWfJHNYGd0Kua/MLKdTqn9uQb5QiKpW6V 9EOsX1I6xvDqBSgdcPnCLFgz9DnbBZAOrvNJB8saJMGRDmkPI4Y0YrW/TWLbTX1XYRaB tyhx5Ms50tv4f53cHi4pX20C7qjuCX04Bu7i0tmN/LUwHvQdDhTUZQ7+HCB+IUJA95Ml 3IbA== X-Gm-Message-State: AOAM531NpaFdfEoV3XsqviWMCHN3+9OffjMKgzJ1JGRaRiyypkE35fO2 5qpBIj4na3M20f5sMRyJSihvnQ== X-Received: by 2002:a05:6602:2d89:: with SMTP id k9mr18775417iow.41.1593466664460; Mon, 29 Jun 2020 14:37:44 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id u6sm571353ilg.32.2020.06.29.14.37.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2020 14:37:44 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: evgreen@chromium.org, subashab@codeaurora.org, cpratapa@codeaurora.org, bjorn.andersson@linaro.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/3] net: ipa: standarize more GSI error messages Date: Mon, 29 Jun 2020 16:37:37 -0500 Message-Id: <20200629213738.1180618-3-elder@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629213738.1180618-1-elder@linaro.org> References: <20200629213738.1180618-1-elder@linaro.org> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Make minor updates to error messages reported in "gsi.c": - Use local variables to reduce multi-line function calls - Don't use parentheses in messages - Do some slight rewording in a few cases Signed-off-by: Alex Elder --- drivers/net/ipa/gsi.c | 57 ++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 28 deletions(-) -- 2.25.1 diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c index 7e4e54ee09b1..f8d5b8d86335 100644 --- a/drivers/net/ipa/gsi.c +++ b/drivers/net/ipa/gsi.c @@ -336,6 +336,7 @@ static int evt_ring_command(struct gsi *gsi, u32 evt_ring_id, { struct gsi_evt_ring *evt_ring = &gsi->evt_ring[evt_ring_id]; struct completion *completion = &evt_ring->completion; + struct device *dev = gsi->dev; u32 val; val = u32_encode_bits(evt_ring_id, EV_CHID_FMASK); @@ -344,8 +345,8 @@ static int evt_ring_command(struct gsi *gsi, u32 evt_ring_id, if (gsi_command(gsi, GSI_EV_CH_CMD_OFFSET, val, completion)) return 0; /* Success! */ - dev_err(gsi->dev, "GSI command %u to event ring %u timed out " - "(state is %u)\n", opcode, evt_ring_id, evt_ring->state); + dev_err(dev, "GSI command %u for event ring %u timed out, state %u\n", + opcode, evt_ring_id, evt_ring->state); return -ETIMEDOUT; } @@ -431,6 +432,7 @@ gsi_channel_command(struct gsi_channel *channel, enum gsi_ch_cmd_opcode opcode) struct completion *completion = &channel->completion; u32 channel_id = gsi_channel_id(channel); struct gsi *gsi = channel->gsi; + struct device *dev = gsi->dev; u32 val; val = u32_encode_bits(channel_id, CH_CHID_FMASK); @@ -439,8 +441,7 @@ gsi_channel_command(struct gsi_channel *channel, enum gsi_ch_cmd_opcode opcode) if (gsi_command(gsi, GSI_CH_CMD_OFFSET, val, completion)) return 0; /* Success! */ - dev_err(gsi->dev, - "GSI command %u to channel %u timed out (state is %u)\n", + dev_err(dev, "GSI command %u for channel %u timed out, state %u\n", opcode, channel_id, gsi_channel_state(channel)); return -ETIMEDOUT; @@ -1154,8 +1155,8 @@ static irqreturn_t gsi_isr(int irq, void *dev_id) break; default: dev_err(gsi->dev, - "%s: unrecognized type 0x%08x\n", - __func__, gsi_intr); + "unrecognized interrupt type 0x%08x\n", + gsi_intr); break; } } while (intr_mask); @@ -1259,7 +1260,7 @@ static int gsi_ring_alloc(struct gsi *gsi, struct gsi_ring *ring, u32 count) if (ring->virt && addr % size) { dma_free_coherent(dev, size, ring->virt, ring->addr); dev_err(dev, "unable to alloc 0x%zx-aligned ring buffer\n", - size); + size); return -EINVAL; /* Not a good error value, but distinct */ } else if (!ring->virt) { return -ENOMEM; @@ -1650,12 +1651,13 @@ static void gsi_channel_teardown(struct gsi *gsi) /* Setup function for GSI. GSI firmware must be loaded and initialized */ int gsi_setup(struct gsi *gsi, bool legacy) { + struct device *dev = gsi->dev; u32 val; /* Here is where we first touch the GSI hardware */ val = ioread32(gsi->virt + GSI_GSI_STATUS_OFFSET); if (!(val & ENABLED_FMASK)) { - dev_err(gsi->dev, "GSI has not been enabled\n"); + dev_err(dev, "GSI has not been enabled\n"); return -EIO; } @@ -1663,24 +1665,24 @@ int gsi_setup(struct gsi *gsi, bool legacy) gsi->channel_count = u32_get_bits(val, NUM_CH_PER_EE_FMASK); if (!gsi->channel_count) { - dev_err(gsi->dev, "GSI reports zero channels supported\n"); + dev_err(dev, "GSI reports zero channels supported\n"); return -EINVAL; } if (gsi->channel_count > GSI_CHANNEL_COUNT_MAX) { - dev_warn(gsi->dev, - "limiting to %u channels (hardware supports %u)\n", + dev_warn(dev, + "limiting to %u channels; hardware supports %u\n", GSI_CHANNEL_COUNT_MAX, gsi->channel_count); gsi->channel_count = GSI_CHANNEL_COUNT_MAX; } gsi->evt_ring_count = u32_get_bits(val, NUM_EV_PER_EE_FMASK); if (!gsi->evt_ring_count) { - dev_err(gsi->dev, "GSI reports zero event rings supported\n"); + dev_err(dev, "GSI reports zero event rings supported\n"); return -EINVAL; } if (gsi->evt_ring_count > GSI_EVT_RING_COUNT_MAX) { - dev_warn(gsi->dev, - "limiting to %u event rings (hardware supports %u)\n", + dev_warn(dev, + "limiting to %u event rings; hardware supports %u\n", GSI_EVT_RING_COUNT_MAX, gsi->evt_ring_count); gsi->evt_ring_count = GSI_EVT_RING_COUNT_MAX; } @@ -1766,19 +1768,19 @@ static bool gsi_channel_data_valid(struct gsi *gsi, /* Make sure channel ids are in the range driver supports */ if (channel_id >= GSI_CHANNEL_COUNT_MAX) { - dev_err(dev, "bad channel id %u (must be less than %u)\n", + dev_err(dev, "bad channel id %u; must be less than %u\n", channel_id, GSI_CHANNEL_COUNT_MAX); return false; } if (data->ee_id != GSI_EE_AP && data->ee_id != GSI_EE_MODEM) { - dev_err(dev, "bad EE id %u (AP or modem)\n", data->ee_id); + dev_err(dev, "bad EE id %u; not AP or modem\n", data->ee_id); return false; } if (!data->channel.tlv_count || data->channel.tlv_count > GSI_TLV_MAX) { - dev_err(dev, "channel %u bad tlv_count %u (must be 1..%u)\n", + dev_err(dev, "channel %u bad tlv_count %u; must be 1..%u\n", channel_id, data->channel.tlv_count, GSI_TLV_MAX); return false; } @@ -1796,13 +1798,13 @@ static bool gsi_channel_data_valid(struct gsi *gsi, } if (!is_power_of_2(data->channel.tre_count)) { - dev_err(dev, "channel %u bad tre_count %u (not power of 2)\n", + dev_err(dev, "channel %u bad tre_count %u; not power of 2\n", channel_id, data->channel.tre_count); return false; } if (!is_power_of_2(data->channel.event_count)) { - dev_err(dev, "channel %u bad event_count %u (not power of 2)\n", + dev_err(dev, "channel %u bad event_count %u; not power of 2\n", channel_id, data->channel.event_count); return false; } @@ -1956,6 +1958,7 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, bool prefetch, u32 count, const struct ipa_gsi_endpoint_data *data, bool modem_alloc) { + struct device *dev = &pdev->dev; struct resource *res; resource_size_t size; unsigned int irq; @@ -1963,7 +1966,7 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, bool prefetch, gsi_validate_build(); - gsi->dev = &pdev->dev; + gsi->dev = dev; /* The GSI layer performs NAPI on all endpoints. NAPI requires a * network device structure, but the GSI layer does not have one, @@ -1974,43 +1977,41 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, bool prefetch, /* Get the GSI IRQ and request for it to wake the system */ ret = platform_get_irq_byname(pdev, "gsi"); if (ret <= 0) { - dev_err(gsi->dev, - "DT error %d getting \"gsi\" IRQ property\n", ret); + dev_err(dev, "DT error %d getting \"gsi\" IRQ property\n", ret); return ret ? : -EINVAL; } irq = ret; ret = request_irq(irq, gsi_isr, 0, "gsi", gsi); if (ret) { - dev_err(gsi->dev, "error %d requesting \"gsi\" IRQ\n", ret); + dev_err(dev, "error %d requesting \"gsi\" IRQ\n", ret); return ret; } gsi->irq = irq; ret = enable_irq_wake(gsi->irq); if (ret) - dev_warn(gsi->dev, "error %d enabling gsi wake irq\n", ret); + dev_warn(dev, "error %d enabling gsi wake irq\n", ret); gsi->irq_wake_enabled = !ret; /* Get GSI memory range and map it */ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gsi"); if (!res) { - dev_err(gsi->dev, - "DT error getting \"gsi\" memory property\n"); + dev_err(dev, "DT error getting \"gsi\" memory property\n"); ret = -ENODEV; goto err_disable_irq_wake; } size = resource_size(res); if (res->start > U32_MAX || size > U32_MAX - res->start) { - dev_err(gsi->dev, "DT memory resource \"gsi\" out of range\n"); + dev_err(dev, "DT memory resource \"gsi\" out of range\n"); ret = -EINVAL; goto err_disable_irq_wake; } gsi->virt = ioremap(res->start, size); if (!gsi->virt) { - dev_err(gsi->dev, "unable to remap \"gsi\" memory\n"); + dev_err(dev, "unable to remap \"gsi\" memory\n"); ret = -ENOMEM; goto err_disable_irq_wake; } From patchwork Mon Jun 29 21:37:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 192021 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp3246693ilg; Mon, 29 Jun 2020 14:38:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy39Q46KACGbBYuZJU4VWNs8weW3/d1ozf1ZTjKM4tiwLI6Vg2/Iznyc+rrk6Gs1DI9pESb X-Received: by 2002:a05:6402:c83:: with SMTP id cm3mr20372052edb.307.1593466698171; Mon, 29 Jun 2020 14:38:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593466698; cv=none; d=google.com; s=arc-20160816; b=GjFh6KeuMAn0U7mqF/GyYKsbzdeEgGloIosjukJx7bnDJsls0hXZZkJpgGKs6IbGNj BPv+wyP1Cw26+NQ6BO9YFXnF4jdgIdejaAn36pWyDqgpL0txRodvx3Adgcj4RWykafwY fGuKjvOse9yXXx1wxV05K+59cL5zPDmqJdKwipIPEbJxjnhQOC7mmxVH4fZURuD21D8g E1LpPgCrjH74Ztjoh2cvCHVV17PEADObsgSeItAx3syOTJhTYu3GkoFOz9T0anXQXU4E WJslVasJcQX9MhXeMhv8mIQeBAr02B1Ndzvd4/os4rUOFhha7PaDLoc3hoEBatn5m7ki lpYw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=eLTQ/BXwwpfHpVShbhLkZS+cPuKECaCCqq8B2X4LXh4=; b=v+IdbCTq/GeaJVW86AZf/+Yf1H6dlPNka6+G/u1Ti9gpecrssSduYhYa8rDBF9Un/Q /T+SqKz/pcnvzg8r+uuYV5fAQ6C/RSxSAK2Zmh4JEChIxIEOI/fajr8voLWcTFjpqOoo n2Zbhjlr3TYOhC0ifPSA+YuPg9YfYN4vCiqpnfQysvgtmzlHp3D0WHd7UHGnbEr6om2U rDq0rNywKF8OGPBb+QwfJ+7uZo3VEzud218JgQwmAqwT+vHc1hJxGfh5J0paAglIp8i8 lXQOq2xFgwfkTCNH1tUsrg7PzfopzyAhnfxVVQ9CZk15iD+wmXKg9+ti7jjW97uR4fHd vgAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ejhcrD4Y; spf=pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w9si465590edr.171.2020.06.29.14.38.18; Mon, 29 Jun 2020 14:38:18 -0700 (PDT) Received-SPF: pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ejhcrD4Y; spf=pass (google.com: domain of netdev-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731070AbgF2ViC (ORCPT + 9 others); Mon, 29 Jun 2020 17:38:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389634AbgF2Vhq (ORCPT ); Mon, 29 Jun 2020 17:37:46 -0400 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36735C061755 for ; Mon, 29 Jun 2020 14:37:46 -0700 (PDT) Received: by mail-io1-xd44.google.com with SMTP id c16so18803844ioi.9 for ; Mon, 29 Jun 2020 14:37:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eLTQ/BXwwpfHpVShbhLkZS+cPuKECaCCqq8B2X4LXh4=; b=ejhcrD4Y89kBPVJsFpjT/RoUICQrZFfy643iMMYadxxh7gcn8SjEwassGmdFdFqEbi tKyy5z7sC9594m9pJDVbfu9kIGgUewkXyPt+UGhiaB7miUhvFjF6/C0NEccVDOJScyco yJdb/WJREk3+LhhHnUe2u80siBc1lRe7O2EzoW4fu0X9sPvPn9asBTb+dC75LeU9vUR5 K5wDGd45/297qxbyqqHv4yYGX70ZfvIRLWRddqMVgMcTQ1eOGmfIHP7VaKOWxAF30B4Q yRoBD81nT2teZO3GsVnL9U+ynfwztL4Xzn8IeL/yKciha8neTxsLgiTV8aQbaJCfb/hq 58IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eLTQ/BXwwpfHpVShbhLkZS+cPuKECaCCqq8B2X4LXh4=; b=jhuBJi2NocCxfKX0kVeAqEbibHCHiSVNMDX/OiNed+ny7tKwYZY33dQFil7DaqLj4U uglKB3ufp0/C/MQN5LZrXIZu23B7mbelv33qOx0s6MbSQ/0SNWfFWI5WIp2i0hp04YNI tzhvq5a3DgjDAExpMreWtymVEwYONF0S4sUXWaJje+VVqY+weyY46LZDERYSQXUhhxnQ UmbkfWgrDjiBv668k+NDLCr8VWNXtjoxfaOBXASNE/AAIJ6Ohbr9N8zN43WwvitfSYtC 80LyMH1yBbr5/dIStDhH7ZmYyAGD7CISrsetz2KUk2UZ4IIr//Up+zH8nG+jYdFjUPKD 67iw== X-Gm-Message-State: AOAM530n2mSat24sn8vP/Bz/1Z1PMbbLU/6komNsZ/zq+AQPQVrUSbX8 ZtaUXQnmO2uzyDsMUnc7pSF1uA== X-Received: by 2002:a05:6602:22c5:: with SMTP id e5mr19273885ioe.9.1593466665582; Mon, 29 Jun 2020 14:37:45 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id u6sm571353ilg.32.2020.06.29.14.37.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2020 14:37:45 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: evgreen@chromium.org, subashab@codeaurora.org, cpratapa@codeaurora.org, bjorn.andersson@linaro.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/3] net: ipa: kill IPA_MEM_UC_OFFSET Date: Mon, 29 Jun 2020 16:37:38 -0500 Message-Id: <20200629213738.1180618-4-elder@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629213738.1180618-1-elder@linaro.org> References: <20200629213738.1180618-1-elder@linaro.org> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The microcontroller shared memory area is at the beginning of the IPA resident memory. IPA_MEM_UC_OFFSET was defined as the offset within that region where it's found, but it's 0, and it's never actually used. Just get rid of the definition, and move some of the description it had to be above the definition of the ipa_uc_mem_area structure. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_uc.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) -- 2.25.1 diff --git a/drivers/net/ipa/ipa_uc.c b/drivers/net/ipa/ipa_uc.c index a1f8db00d55a..9f9980ec2ed3 100644 --- a/drivers/net/ipa/ipa_uc.c +++ b/drivers/net/ipa/ipa_uc.c @@ -35,12 +35,6 @@ */ /* Supports hardware interface version 0x2000 */ -/* Offset relative to the base of the IPA shared address space of the - * shared region used for communication with the microcontroller. The - * region is 128 bytes in size, but only the first 40 bytes are used. - */ -#define IPA_MEM_UC_OFFSET 0x0000 - /* Delay to allow a the microcontroller to save state when crashing */ #define IPA_SEND_DELAY 100 /* microseconds */ @@ -60,6 +54,10 @@ * @hw_state: state of hardware (including error type information) * @warning_counter: counter of non-fatal hardware errors * @interface_version: hardware-reported interface version + * + * A shared memory area at the base of IPA resident memory is used for + * communication with the microcontroller. The region is 128 bytes in + * size, but only the first 40 bytes (structured this way) are used. */ struct ipa_uc_mem_area { u8 command; /* enum ipa_uc_command */