Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp3892303pxb; Wed, 13 Oct 2021 15:31:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6d9/u5gIKWoS1ivGXVw4wMvsmAIWsLJISgHSwuSZhFpk+Y91hGRx5CoQgYWDgFcWbzyHE X-Received: by 2002:a17:902:c409:b0:13f:1a43:c5c with SMTP id k9-20020a170902c40900b0013f1a430c5cmr1745886plk.40.1634164289650; Wed, 13 Oct 2021 15:31:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634164289; cv=none; d=google.com; s=arc-20160816; b=hImYYdbfdL+XcVfjTGLHA74vAYxZskPmnwb5XLVKLvG35xyD8YZlFR7xFMqSu8z5HI CHioxLGc6yxGgz3S2hE8NMtOzxzMY+c2pN34fBas2mdZ2mJllZcwfYgQLMWwZauC2yuk 7A5mu49L47EQDONdedLOcPvtprcfA0BKnKJsYOOoARn0Tk+1cjfGyLQlOAgM67fV5VVW RSiH8KY0MGQfiGSB33HLr6mTiKToTfQ2q5huKqaKb5VL2ZpqWWXkyiEbIpCXdiGxJow8 vtR4DYswCL3/xm5jdSbZAzMAQwaHIQd3Cf/pcPHw6ecfoMp10RxDWXrgYVyMNdNKVZnq 6dSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=X4CJTc4Njf69DLLQxOgBO1lHglpI/hl2yPlJRwuWzH4=; b=rV9a4lOF38Qo0NJsU1Sdfagi8dq8k4Es9PxuP39BBDL+UIQaccSaLMsRphtQV9FvmD pCIlkXFSfBPKyJHM/h866rROPLNs75tuK8k9oNH7jhryENPOceRA6gGgpmgEzTpJff2Q M5vC0WAJ+e21+et6/l07W5YleiupTuC0nvJ47+ybssHgwRlmSfx/ysGaHPgx7h9Waj53 njDRZ69Fj7ckcLhBWxonGkCpddw2BclVogiOxH/CU5HhY3JY8f2Xqo8NiA/YUTfk3WFs qJO+F5Yj1jOxfZ1o7z3F/It8n92P2/BV98hbcEGplu9zNvmMkoFUMLXSa20g8V0quYa8 pZDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ieee.org header.s=google header.b=GKNXrKfu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=ieee.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w18si1159798pjg.88.2021.10.13.15.31.09; Wed, 13 Oct 2021 15:31:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@ieee.org header.s=google header.b=GKNXrKfu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=ieee.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231452AbhJMWbv (ORCPT + 99 others); Wed, 13 Oct 2021 18:31:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231411AbhJMWbq (ORCPT ); Wed, 13 Oct 2021 18:31:46 -0400 Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D031CC061746 for ; Wed, 13 Oct 2021 15:29:41 -0700 (PDT) Received: by mail-io1-xd2e.google.com with SMTP id r134so1479212iod.11 for ; Wed, 13 Oct 2021 15:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ieee.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=X4CJTc4Njf69DLLQxOgBO1lHglpI/hl2yPlJRwuWzH4=; b=GKNXrKfuutVxuw9BjFqKaV934w9FytkIThSKVWyp/OMlCbcFvbUphnoAl+jCqxvwq4 NZFVtsYW+mWlrMxCf7Egoy12fy8Cywke0DDRdMgUxzi3QLRrZgL0plDrg3aFxjtZHbOw y5Km8Ms3y3EHGaLEtvlWG9+//KWMdm+cVEQQA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=X4CJTc4Njf69DLLQxOgBO1lHglpI/hl2yPlJRwuWzH4=; b=OUJntMv2ftuZrfRUZQSrC1YYMtH9+m5Q3u99But/QGkiMvTR8B+PtsrIeityT4Kr3Q /+S+YzWXRJ0JRekfjsuKFjbEG+j7R0nuw7bc+iLWdjGINDMsSDIopiMpnzDB5GPnysvN hnO+KgidZvmU5mZvhcsoUgt00Z/sRlSiZn1xjYtxNMwbhARJFXTjr1i2pysS2mDvOEVb Dv+MRhMLB27qDGrHFPBIsv0veDqN99PEbZPACvGRYwYk0fpUqYivwNvxBsDI1Vpa+f+X 0zLSkcOh/c3Jjw/5oQOVOBSscUE861hnlZ9juuGYKxVSUeVJaS8QEcCndvayGJbmteaV luEg== X-Gm-Message-State: AOAM533i1Bvjhq8B/T7zaW2TREiy/sb8j+ANKZQX3LLCHRkNHcY5BU3+ RAnSdNz3XujtVYCCWkjH2UumsA== X-Received: by 2002:a05:6638:37a7:: with SMTP id w39mr1510508jal.19.1634164181311; Wed, 13 Oct 2021 15:29:41 -0700 (PDT) Received: from [172.22.22.4] (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.googlemail.com with ESMTPSA id v63sm369660ioe.17.2021.10.13.15.29.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Oct 2021 15:29:40 -0700 (PDT) Subject: Re: [RFC PATCH 05/17] net: ipa: Check interrupts for availability To: Sireesh Kodali , phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, elder@kernel.org Cc: Vladimir Lypak , "David S. Miller" , Jakub Kicinski References: <20210920030811.57273-1-sireeshkodali1@gmail.com> <20210920030811.57273-6-sireeshkodali1@gmail.com> From: Alex Elder Message-ID: <445bb258-c07c-349c-e482-78b7b560e0eb@ieee.org> Date: Wed, 13 Oct 2021 17:29:39 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210920030811.57273-6-sireeshkodali1@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 9/19/21 10:07 PM, Sireesh Kodali wrote: > From: Vladimir Lypak > > Make ipa_interrupt_add/ipa_interrupt_remove no-operation if requested > interrupt is not supported by IPA hardware. > > Signed-off-by: Vladimir Lypak > Signed-off-by: Sireesh Kodali I'm not sure why this is important. Callers shouldn't add an interrupt type that isn't supported by the hardware. The check here would be for sanity. And there's no point in checking in the interrupt remove function, the only interrupts removed will have already been added. Anyway, maybe I'll see you're adding support for these IPA interrupt types later on? -Alex > --- > drivers/net/ipa/ipa_interrupt.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c > index b35170a93b0f..94708a23a597 100644 > --- a/drivers/net/ipa/ipa_interrupt.c > +++ b/drivers/net/ipa/ipa_interrupt.c > @@ -48,6 +48,25 @@ static bool ipa_interrupt_uc(struct ipa_interrupt *interrupt, u32 irq_id) > return irq_id == IPA_IRQ_UC_0 || irq_id == IPA_IRQ_UC_1; > } > > +static bool ipa_interrupt_check_fixup(enum ipa_irq_id *irq_id, enum ipa_version version) > +{ > + switch (*irq_id) { > + case IPA_IRQ_EOT_COAL: > + return version < IPA_VERSION_3_5; > + case IPA_IRQ_DCMP: > + return version < IPA_VERSION_4_5; > + case IPA_IRQ_TLV_LEN_MIN_DSM: > + return version >= IPA_VERSION_4_5; > + default: > + break; > + } > + > + if (*irq_id >= IPA_IRQ_DRBIP_PKT_EXCEED_MAX_SIZE_EN) > + return version >= IPA_VERSION_4_9; > + > + return true; > +} > + > /* Process a particular interrupt type that has been received */ > static void ipa_interrupt_process(struct ipa_interrupt *interrupt, u32 irq_id) > { > @@ -191,6 +210,9 @@ void ipa_interrupt_add(struct ipa_interrupt *interrupt, > struct ipa *ipa = interrupt->ipa; > u32 offset; > > + if (!ipa_interrupt_check_fixup(&ipa_irq, ipa->version)) > + return; > + > WARN_ON(ipa_irq >= IPA_IRQ_COUNT); > > interrupt->handler[ipa_irq] = handler; > @@ -208,6 +230,9 @@ ipa_interrupt_remove(struct ipa_interrupt *interrupt, enum ipa_irq_id ipa_irq) > struct ipa *ipa = interrupt->ipa; > u32 offset; > > + if (!ipa_interrupt_check_fixup(&ipa_irq, ipa->version)) > + return; > + > WARN_ON(ipa_irq >= IPA_IRQ_COUNT); > > /* Update the IPA interrupt mask to disable it */ >