From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9F46145651 for ; Thu, 29 Feb 2024 20:56:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240165; cv=none; b=etW5spyna7o19qqgWM3iakHs2IGP7MFsvy55IhX4QEAI43uwIDIzHqybZukeH1ELFnJ51iwfRrq9jk2pGzDVQYOOywZCBu9BYgKDk2qz7CMmls/OsdYo/xkndTkmGmiT/93Dgi4ylKAaHMgxtMisI8ihghhGeRCKrzAlAuCq5aA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240165; c=relaxed/simple; bh=58ZSVqSazsVEHoU8qFXXAJJ94ldiaiahFmGNCpA1b2A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=apV0Q6oCgqfuIE50Kte4ES+vhtcaDMHOxPIcm4/1RLyEl/pyVtp0jSh/TngXnrUIXKFV4LHyPICyJKSGFB5mI4Amt4YgwcLQerdi+LliXa7S5fmUqgTeejNX6LUfsrPSFIhmUZBmbUcRiQkHrNSzYw06k/xCyxZ9F4zXKtfW5Bg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=UvrbEA5i; arc=none smtp.client-ip=209.85.166.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="UvrbEA5i" Received: by mail-il1-f173.google.com with SMTP id e9e14a558f8ab-36540b9885cso6289685ab.1 for ; Thu, 29 Feb 2024 12:56:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240161; x=1709844961; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3K7f3RiTowa/EAhWLKI1GEo5jRAquYP1bOnRd1hO3Z4=; b=UvrbEA5iEz7Z3nDmxZ/U1S1OUpBy/DhhvQn1WpBgSeeT/WHxJR+FQaBcOFVgC6x53K QxblbfmMqkaNlXhj6ngPZY+Prt5ziVS5WmvvpVZPiS3aNnsf9mYKSsPKJesFJcxMVARr BzuxAYR2ueM2l+SvmiQN44hadgfENG1JZHGOEvx0JYnxo1tjBF9HqAzeZFGwi2O1odld 8iyJsjLoJWl4We3wGCjbjmIeaclZ8ZHZUeeWj+qMxG04IQwRUDlhqpVvLr2pvY+disrX Fy0EQthAtfXb11KWKwqkTnKB6ugcp5JrhB2rgYcSrLrPqk2xEc/lSzTErTSawkoil24x BWCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240161; x=1709844961; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3K7f3RiTowa/EAhWLKI1GEo5jRAquYP1bOnRd1hO3Z4=; b=QcLVc3B7jd/3uLIq3W/qpi3zs5Q4abZ8KKxRzzS5YAkcoFHTftoLu52tmYHbZdkh1y eqxOeeLDwctbpLDzCKdy2fj6Vq9KhRk+qegvfphDHjjLtgQVbDXhZpcayakiwaSrZNn0 92Vdp02RwuKVh/sVu/8fqH5yhhih8QHTTzgJP3N+hMxRkiU4JHy4Upgcr0eEmf+C0OZl HOKtBH1DoUL9yorM5Cv+foilhNhuQYhFxonYbeNuYCBf8XDcUz9qXH32YlBRa5R6eA/A qCiym/MNxd6BrIZHpl52r/K3zjp8n9BMWUC3TMoUGD2veuy62Pqp1JUM/zyqeNwD2o65 23jw== X-Forwarded-Encrypted: i=1; AJvYcCXAb4gLi8+JjEHmHrbHlwCDz16c4ajs0LhbwDoLOMP2oQTpt9WzeTntGNSByHBSU8go8IOnqB1GNR8pU/m29S+NR9PgR0iH6HSjPy5F X-Gm-Message-State: AOJu0Yz9D5JsmD2cFkbEQEm2B0D0v7rZPHH1IxsRcbJ+W5y88cQ6AzUz 0DWZAn9cNz0MdsbuBvoCTBf9zm3sewPM4osVjK19ZRX8UNZZsljNg7HhM8LTFZ+j1+KaM6jfhnK 7 X-Google-Smtp-Source: AGHT+IEKCJy8er2U/25XopKWelRMq3W5Ar+pFByoKiRgsBU7iDIUhRe2uF9ci9DOl1lDMQm020cB6A== X-Received: by 2002:a05:6e02:12c3:b0:365:3a69:1e20 with SMTP id i3-20020a056e0212c300b003653a691e20mr47922ilm.3.1709240161169; Thu, 29 Feb 2024 12:56:01 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:00 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/7] net: ipa: change ipa_interrupt_config() prototype Date: Thu, 29 Feb 2024 14:55:48 -0600 Message-Id: <20240229205554.86762-2-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Change the return type of ipa_interrupt_config() to be an error code rather than an IPA interrupt structure pointer, and assign the the pointer within that function. Change ipa_interrupt_deconfig() to take the IPA pointer as argument and have it invalidate the ipa->interrupt pointer. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_interrupt.c | 15 ++++++++++----- drivers/net/ipa/ipa_interrupt.h | 10 +++++----- drivers/net/ipa/ipa_main.c | 13 ++++--------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrup= t.c index 4d80bf77a5323..a298d922dd871 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -236,7 +236,7 @@ void ipa_interrupt_simulate_suspend(struct ipa_interrup= t *interrupt) } =20 /* Configure the IPA interrupt framework */ -struct ipa_interrupt *ipa_interrupt_config(struct ipa *ipa) +int ipa_interrupt_config(struct ipa *ipa) { struct device *dev =3D &ipa->pdev->dev; struct ipa_interrupt *interrupt; @@ -254,10 +254,12 @@ struct ipa_interrupt *ipa_interrupt_config(struct ipa= *ipa) =20 interrupt =3D kzalloc(sizeof(*interrupt), GFP_KERNEL); if (!interrupt) - return ERR_PTR(-ENOMEM); + return -ENOMEM; interrupt->ipa =3D ipa; interrupt->irq =3D irq; =20 + ipa->interrupt =3D interrupt; + /* Start with all IPA interrupts disabled */ reg =3D ipa_reg(ipa, IPA_IRQ_EN); iowrite32(0, ipa->reg_virt + reg_offset(reg)); @@ -282,13 +284,16 @@ struct ipa_interrupt *ipa_interrupt_config(struct ipa= *ipa) err_kfree: kfree(interrupt); =20 - return ERR_PTR(ret); + return ret; } =20 /* Inverse of ipa_interrupt_config() */ -void ipa_interrupt_deconfig(struct ipa_interrupt *interrupt) +void ipa_interrupt_deconfig(struct ipa *ipa) { - struct device *dev =3D &interrupt->ipa->pdev->dev; + struct ipa_interrupt *interrupt =3D ipa->interrupt; + struct device *dev =3D &ipa->pdev->dev; + + ipa->interrupt =3D NULL; =20 dev_pm_clear_wake_irq(dev); free_irq(interrupt->irq, interrupt); diff --git a/drivers/net/ipa/ipa_interrupt.h b/drivers/net/ipa/ipa_interrup= t.h index 53e1b71685c75..1947654e3e360 100644 --- a/drivers/net/ipa/ipa_interrupt.h +++ b/drivers/net/ipa/ipa_interrupt.h @@ -76,17 +76,17 @@ void ipa_interrupt_irq_enable(struct ipa *ipa); void ipa_interrupt_irq_disable(struct ipa *ipa); =20 /** - * ipa_interrupt_config() - Configure the IPA interrupt framework + * ipa_interrupt_config() - Configure IPA interrupts * @ipa: IPA pointer * - * Return: Pointer to IPA SMP2P info, or a pointer-coded error + * Return: 0 if successful, or a negative error code */ -struct ipa_interrupt *ipa_interrupt_config(struct ipa *ipa); +int ipa_interrupt_config(struct ipa *ipa); =20 /** * ipa_interrupt_deconfig() - Inverse of ipa_interrupt_config() - * @interrupt: IPA interrupt structure + * @ipa: IPA pointer */ -void ipa_interrupt_deconfig(struct ipa_interrupt *interrupt); +void ipa_interrupt_deconfig(struct ipa *ipa); =20 #endif /* _IPA_INTERRUPT_H_ */ diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 00475fd7a2054..0c6e6719d99e3 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -542,12 +542,9 @@ static int ipa_config(struct ipa *ipa, const struct ip= a_data *data) if (ret) goto err_hardware_deconfig; =20 - ipa->interrupt =3D ipa_interrupt_config(ipa); - if (IS_ERR(ipa->interrupt)) { - ret =3D PTR_ERR(ipa->interrupt); - ipa->interrupt =3D NULL; + ret =3D ipa_interrupt_config(ipa); + if (ret) goto err_mem_deconfig; - } =20 ipa_uc_config(ipa); =20 @@ -572,8 +569,7 @@ static int ipa_config(struct ipa *ipa, const struct ipa= _data *data) ipa_endpoint_deconfig(ipa); err_uc_deconfig: ipa_uc_deconfig(ipa); - ipa_interrupt_deconfig(ipa->interrupt); - ipa->interrupt =3D NULL; + ipa_interrupt_deconfig(ipa); err_mem_deconfig: ipa_mem_deconfig(ipa); err_hardware_deconfig: @@ -591,8 +587,7 @@ static void ipa_deconfig(struct ipa *ipa) ipa_modem_deconfig(ipa); ipa_endpoint_deconfig(ipa); ipa_uc_deconfig(ipa); - ipa_interrupt_deconfig(ipa->interrupt); - ipa->interrupt =3D NULL; + ipa_interrupt_deconfig(ipa); ipa_mem_deconfig(ipa); ipa_hardware_deconfig(ipa); } --=20 2.40.1 From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42CBE144044 for ; Thu, 29 Feb 2024 20:56:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240165; cv=none; b=rBONfnTVDwn/UB1OSnBO1gXKPSNDT0daHH0aPusTA7Qazra/7O7Iyie6U8AFmUra8Kc1GCx8G0iXRhuhbolxNCzJ9sC/5Mdu2FWMp43kW7LnG2RQ3p03jXWbNzI2z2YIjk2AG7XN6Yz9o30YgA5YFSrtALOskisp6Ejeob1OFag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240165; c=relaxed/simple; bh=FDSlKNUB8yAuzsdtIKb1kKDg1IzUCFaxWW4Ug8df6gI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HZqBwQZxbSwwNcMZh6ZMIDYha1U35rap59LXvtW0lLOTHECV3d6J3wXOAv+nIETc14K12BCSXn94U5IrMPd2OKvNOB1Ag5gWQlHCl3Jr+ndpxczJT4nxRi+G6hYuAK1y6Ulv3bArWo039muv5+d+06EUn0dSpdiDVrSoajwq+A8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Xxy4KQYy; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Xxy4KQYy" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-3657dbe2008so6784145ab.1 for ; Thu, 29 Feb 2024 12:56:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240162; x=1709844962; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dFAkZ9ZdIx7DYJ4QiNOc9lo+FzdYYDRog98IZKbIYpw=; b=Xxy4KQYyEODV2aMjoc4wxsIdFRiMne6eVTIyCqq3WKDsTTokDQbkOr+yQePS87Z9v2 nAbBCTPBBnTVLiDL+Lfbef4pMgx9hJ4v8KBu20f8DZkq8Ng9MvV9/Q2Q81WMJRVfS/bp JHtdBwAGoX+3PJQvWOhpeBurYUGVk81MNyR/pQoIeaUdC/f9T09Reqn5xmhbr2pR3d55 ubke961Aw0nVh0sWYyWITmqLrQKxcE8yyjMlBoOFfuyWrCITAyPA1Q8c7Pi9KQGO+P2g ehPScjCy4riHiPRu64gfzoH+BKbgnxRy2RTITWazFMdJftM7x9HnKpVgVZOkMZND0Sy0 lKVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240162; x=1709844962; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dFAkZ9ZdIx7DYJ4QiNOc9lo+FzdYYDRog98IZKbIYpw=; b=gALaY/8XduOKZE0WJSSxmfro5jyd0GvbXo7NZ7jTM40zsJJOVaNnNKCmCz90C+0JgC g6BgtMiOcxPKiqe/rvgvHrKiunEOHtIKnWlKGoehT1Mdm0WIo/4xRrxLt2IspQcP3LWS VP3fujLFf6oIC7werc7ED7D80vCZ5Eq5fRWRdsNmuyxm7OU04Dh52UoJUx7lwsLOxRIX QZk4FQQaxIm82kvicsVD+ttJJN/PlcTRuQv3BktG1uMBQxCmEN25MW50a366igNRxLV3 LDTBpeqmWF/aTtqTPeJqnhZ68oM1l4NvTEQe9cKDS934B3kAhHuTvDcYQiyT35pGEzZm QMoQ== X-Forwarded-Encrypted: i=1; AJvYcCUgHkHTWAAEITyK6MsrprHgfys/Lt7E6IIOr7Dz/v/Tgr+nuug5qGWeh+E5BBzG4N/k+EqfmjbfkQkbgwkNgmyuZlRMH8IpKguGn5Zv X-Gm-Message-State: AOJu0YyVR87rnDmEe/Nsu9/5yEe8X7ipQ0NaojH7S8BOUS54OCg0xNkT 6O8LwgpOYc6zaGMPu7hctGjDT8IdO8fOo1sqNH2qzq3gx9r4HcDVua15I/IF66I= X-Google-Smtp-Source: AGHT+IEKKxW/LV+o0zAsVvesg0GcPXgpiUqdeuj3zxgMS7BJbamqwjIinASTSCOBzwuam5Dt8/Fjtg== X-Received: by 2002:a05:6e02:2148:b0:365:c748:57cf with SMTP id d8-20020a056e02214800b00365c74857cfmr247482ilv.13.1709240162366; Thu, 29 Feb 2024 12:56:02 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:01 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/7] net: ipa: introduce ipa_interrupt_init() Date: Thu, 29 Feb 2024 14:55:49 -0600 Message-Id: <20240229205554.86762-3-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Create a new function ipa_interrupt_init() that is called at probe time to allocate and initialize the IPA interrupt data structure. Create ipa_interrupt_exit() as its inverse. This follows the normal IPA driver pattern of *_init() functions doing things that can be done before access to hardware is required. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_interrupt.c | 50 +++++++++++++++++++++------------ drivers/net/ipa/ipa_interrupt.h | 14 +++++++++ drivers/net/ipa/ipa_main.c | 28 ++++++++++++++---- 3 files changed, 69 insertions(+), 23 deletions(-) diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrup= t.c index a298d922dd871..26e84a5c30bff 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -19,6 +19,7 @@ * time only these three are supported. */ =20 +#include #include #include #include @@ -238,29 +239,15 @@ void ipa_interrupt_simulate_suspend(struct ipa_interr= upt *interrupt) /* Configure the IPA interrupt framework */ int ipa_interrupt_config(struct ipa *ipa) { + struct ipa_interrupt *interrupt =3D ipa->interrupt; struct device *dev =3D &ipa->pdev->dev; - struct ipa_interrupt *interrupt; + unsigned int irq =3D interrupt->irq; const struct reg *reg; - unsigned int irq; int ret; =20 - ret =3D platform_get_irq_byname(ipa->pdev, "ipa"); - if (ret <=3D 0) { - dev_err(dev, "DT error %d getting \"ipa\" IRQ property\n", - ret); - return ERR_PTR(ret ? : -EINVAL); - } - irq =3D ret; - - interrupt =3D kzalloc(sizeof(*interrupt), GFP_KERNEL); - if (!interrupt) - return -ENOMEM; interrupt->ipa =3D ipa; - interrupt->irq =3D irq; =20 - ipa->interrupt =3D interrupt; - - /* Start with all IPA interrupts disabled */ + /* Disable all IPA interrupt types */ reg =3D ipa_reg(ipa, IPA_IRQ_EN); iowrite32(0, ipa->reg_virt + reg_offset(reg)); =20 @@ -277,7 +264,7 @@ int ipa_interrupt_config(struct ipa *ipa) goto err_free_irq; } =20 - return interrupt; + return 0; =20 err_free_irq: free_irq(interrupt->irq, interrupt); @@ -297,5 +284,32 @@ void ipa_interrupt_deconfig(struct ipa *ipa) =20 dev_pm_clear_wake_irq(dev); free_irq(interrupt->irq, interrupt); +} + +/* Initialize the IPA interrupt structure */ +struct ipa_interrupt *ipa_interrupt_init(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct ipa_interrupt *interrupt; + int irq; + + irq =3D platform_get_irq_byname(pdev, "ipa"); + if (irq <=3D 0) { + dev_err(dev, "DT error %d getting \"ipa\" IRQ property\n", irq); + + return ERR_PTR(irq ? : -EINVAL); + } + + interrupt =3D kzalloc(sizeof(*interrupt), GFP_KERNEL); + if (!interrupt) + return ERR_PTR(-ENOMEM); + interrupt->irq =3D irq; + + return interrupt; +} + +/* Inverse of ipa_interrupt_init() */ +void ipa_interrupt_exit(struct ipa_interrupt *interrupt) +{ kfree(interrupt); } diff --git a/drivers/net/ipa/ipa_interrupt.h b/drivers/net/ipa/ipa_interrup= t.h index 1947654e3e360..f3f4f4330a597 100644 --- a/drivers/net/ipa/ipa_interrupt.h +++ b/drivers/net/ipa/ipa_interrupt.h @@ -89,4 +89,18 @@ int ipa_interrupt_config(struct ipa *ipa); */ void ipa_interrupt_deconfig(struct ipa *ipa); =20 +/** + * ipa_interrupt_init() - Initialize the IPA interrupt structure + * @pdev: IPA platform device pointer + * + * Return: Pointer to an IPA interrupt structure, or a pointer-coded error + */ +struct ipa_interrupt *ipa_interrupt_init(struct platform_device *pdev); + +/** + * ipa_interrupt_exit() - Inverse of ipa_interrupt_init() + * @interrupt: IPA interrupt structure + */ +void ipa_interrupt_exit(struct ipa_interrupt *interrupt); + #endif /* _IPA_INTERRUPT_H_ */ diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 0c6e6719d99e3..6cf5c1280aa4e 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -803,6 +803,7 @@ static enum ipa_firmware_loader ipa_firmware_loader(str= uct device *dev) static int ipa_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; + struct ipa_interrupt *interrupt; enum ipa_firmware_loader loader; const struct ipa_data *data; struct ipa_power *power; @@ -834,12 +835,21 @@ static int ipa_probe(struct platform_device *pdev) if (loader =3D=3D IPA_LOADER_DEFER) return -EPROBE_DEFER; =20 - /* The clock and interconnects might not be ready when we're - * probed, so might return -EPROBE_DEFER. + /* The IPA interrupt might not be ready when we're probed, so this + * might return -EPROBE_DEFER. + */ + interrupt =3D ipa_interrupt_init(pdev); + if (IS_ERR(interrupt)) + return PTR_ERR(interrupt); + + /* The clock and interconnects might not be ready when we're probed, + * so this might return -EPROBE_DEFER. */ power =3D ipa_power_init(dev, data->power_data); - if (IS_ERR(power)) - return PTR_ERR(power); + if (IS_ERR(power)) { + ret =3D PTR_ERR(power); + goto err_interrupt_exit; + } =20 /* No more EPROBE_DEFER. Allocate and initialize the IPA structure */ ipa =3D kzalloc(sizeof(*ipa), GFP_KERNEL); @@ -850,6 +860,7 @@ static int ipa_probe(struct platform_device *pdev) =20 ipa->pdev =3D pdev; dev_set_drvdata(dev, ipa); + ipa->interrupt =3D interrupt; ipa->power =3D power; ipa->version =3D data->version; ipa->modem_route_count =3D data->modem_route_count; @@ -934,6 +945,8 @@ static int ipa_probe(struct platform_device *pdev) kfree(ipa); err_power_exit: ipa_power_exit(power); +err_interrupt_exit: + ipa_interrupt_exit(interrupt); =20 return ret; } @@ -941,10 +954,14 @@ static int ipa_probe(struct platform_device *pdev) static void ipa_remove(struct platform_device *pdev) { struct ipa *ipa =3D dev_get_drvdata(&pdev->dev); - struct ipa_power *power =3D ipa->power; struct device *dev =3D &pdev->dev; + struct ipa_interrupt *interrupt; + struct ipa_power *power; int ret; =20 + power =3D ipa->power; + interrupt =3D ipa->interrupt; + /* Prevent the modem from triggering a call to ipa_setup(). This * also ensures a modem-initiated setup that's underway completes. */ @@ -986,6 +1003,7 @@ static void ipa_remove(struct platform_device *pdev) ipa_reg_exit(ipa); kfree(ipa); ipa_power_exit(power); + ipa_interrupt_exit(interrupt); =20 dev_info(dev, "IPA driver removed"); } --=20 2.40.1 From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EB0E145673 for ; Thu, 29 Feb 2024 20:56:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240165; cv=none; b=I9BWoqf57nEaE0cXqZ87Ha1obbgcpkwlgTH9lhJ53HIu1IYuuKoUuf6/RWfqDPDDmsgcnQYzA5BFVHER+hJeJge74qdnWPbHebhT9w9LOFL3ywXIcLJen7/X6w8Z/o6fXcqhuXKMv5njqqEfM/buOxk1JF4xuq54y2DZH6HWSoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240165; c=relaxed/simple; bh=XwGOf1MLWzPXiuaGkXStpdLvB4FPo5vk4nLwFw1ga6k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qkHGM7dW9zWeLvZiMe4EFxD81RYhU17RkSPNYuhnYsmQ3No5nP4J28AYcWeOqy8E0O8Blp6bz+6Ad+DaLRi/h++eXjjQWYGfroLgZse8aXNBL1CEgegOQqnlJtZlGxQpoPCksWlS2LhjAwcie+cUdwyMGsqV7eR26wlA8urFyMM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=vZvrrRto; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="vZvrrRto" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-365169e0938so4008725ab.0 for ; Thu, 29 Feb 2024 12:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240163; x=1709844963; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TGWJjaxvrYhNIssQekJJrsQHyV2VIpv1G8S6HOh3hAI=; b=vZvrrRtoJ0d9uTr6s3Pb/ceg1M0WUShdeXro7vTkFOuyMhhCxWOBFuU2vqDIMYMbx6 1p10cO8/kLLuKXEdFnXVzAQIlPL6RG436NEt/5Rwbr6MQgNhyR3nYpzdNPA8aEqS9GX/ L7nWkkoY259bDUvFZxZtQVuJandsi1M9vCy/fr3uNBCtIbHjWxU23ABTel1RfWDhjfb3 jYBkqSKnZiscII1i+2l9mZuhkrlbZAF2MkyGc9PjB7a8Pobb6dbuz+pXcUyxA/8NIZCM G/p0Svhvp4q7v78mMdfpipj/SuQyTGlWoexXe9A2Pov9eniDYEG1ujo5gizx2vS8T8Qr JCeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240163; x=1709844963; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TGWJjaxvrYhNIssQekJJrsQHyV2VIpv1G8S6HOh3hAI=; b=uAZ2nXzTSLw28GMBVbb8cmIcfbO6DVEFpXcegp41DvFyozTsCi39N4/20l4hjK0WwI YK4aySTMBPo2DBooTPbnBOPTzTokEd6wuXcidGERupxys0yx62GDaiVlv1xvTRWcp4cL WW6DsLu1avG6YXN69rNuSOrUeDo/V4aIZvKLuU+jw2SbLYhFoVzqqoGAuu3sKMWxADlW C9/ZmszovLmADK6JpSTB3SGMuRW7XRzttlAMBPwOmgBDF4X3UyW4I5wqmCp/8oiufoAr wtw6PYhPTFV3LvAxwtw2odGiK8n1yNbepEur3KoLx8gFEOGhpJ0KJfwoFhjLRNPle4HR Bd0w== X-Forwarded-Encrypted: i=1; AJvYcCWWuydNOq5d2JStWVeRu20mKAiblon1/v8swcikuZ8ocnAYE5Qnkcw62MGJsI4aBdszEiUJVWs+ChC9RYp19BJB2k4rZ0RCObm1KJ7M X-Gm-Message-State: AOJu0YwYzYZ5H2RKv1WvyWxE46mORIc9EVtN5Vg6Lqw25dgopDFQM1R5 6k1yRv3GDvkFgMeTOTN0PSlo+ovD14DpTs4UIkNYKwYxgl5ArKNqYQTjZOwAnfI= X-Google-Smtp-Source: AGHT+IFiZEOjl8Eg1h5669qLC0O7+SdSht2D0xZWN6IxWmQVMl7eENwv3Y4e2KBM5sTVa/64RKullw== X-Received: by 2002:a05:6e02:2195:b0:365:1c5:7a5a with SMTP id j21-20020a056e02219500b0036501c57a5amr24688ila.4.1709240163486; Thu, 29 Feb 2024 12:56:03 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:03 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/7] net: ipa: pass a platform device to ipa_reg_init() Date: Thu, 29 Feb 2024 14:55:50 -0600 Message-Id: <20240229205554.86762-4-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than using the platform device pointer field in the IPA pointer, pass a platform device pointer to ipa_reg_init(). Use that pointer throughout that function. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_main.c | 2 +- drivers/net/ipa/ipa_reg.c | 8 ++++---- drivers/net/ipa/ipa_reg.h | 4 +++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 6cf5c1280aa4e..5c9c1b0ef8de5 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -866,7 +866,7 @@ static int ipa_probe(struct platform_device *pdev) ipa->modem_route_count =3D data->modem_route_count; init_completion(&ipa->completion); =20 - ret =3D ipa_reg_init(ipa); + ret =3D ipa_reg_init(ipa, pdev); if (ret) goto err_kfree_ipa; =20 diff --git a/drivers/net/ipa/ipa_reg.c b/drivers/net/ipa/ipa_reg.c index 6a3203ae6f1ef..98625956e0bb4 100644 --- a/drivers/net/ipa/ipa_reg.c +++ b/drivers/net/ipa/ipa_reg.c @@ -4,6 +4,7 @@ * Copyright (C) 2019-2023 Linaro Ltd. */ =20 +#include #include =20 #include "ipa.h" @@ -132,9 +133,9 @@ static const struct regs *ipa_regs(enum ipa_version ver= sion) } } =20 -int ipa_reg_init(struct ipa *ipa) +int ipa_reg_init(struct ipa *ipa, struct platform_device *pdev) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D &pdev->dev; const struct regs *regs; struct resource *res; =20 @@ -146,8 +147,7 @@ int ipa_reg_init(struct ipa *ipa) return -EINVAL; =20 /* Setup IPA register memory */ - res =3D platform_get_resource_byname(ipa->pdev, IORESOURCE_MEM, - "ipa-reg"); + res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "ipa-reg"); if (!res) { dev_err(dev, "DT error getting \"ipa-reg\" memory property\n"); return -ENODEV; diff --git a/drivers/net/ipa/ipa_reg.h b/drivers/net/ipa/ipa_reg.h index 2998f115f12c7..62c62495b7968 100644 --- a/drivers/net/ipa/ipa_reg.h +++ b/drivers/net/ipa/ipa_reg.h @@ -12,6 +12,8 @@ #include "ipa_version.h" #include "reg.h" =20 +struct platform_device; + struct ipa; =20 /** @@ -643,7 +645,7 @@ extern const struct regs ipa_regs_v5_5; =20 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id); =20 -int ipa_reg_init(struct ipa *ipa); +int ipa_reg_init(struct ipa *ipa, struct platform_device *pdev); void ipa_reg_exit(struct ipa *ipa); =20 #endif /* _IPA_REG_H_ */ --=20 2.40.1 From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F60114E2E5 for ; Thu, 29 Feb 2024 20:56:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240167; cv=none; b=lbLxD1cHyw+AaLJLSqu9pJ9xjIyCmlivXOrvx4MxLRyl9tfXGXWJRQob6pEG+WDBY7W2b2cxnhEP0igvD6LHizjSjkfkRZuOx4V0v2jjCou09/yjH+L9QrbZ3/NcYsMRcvjspHcPghEG/OCc8z1OfvtHn7FLXqpCuYpiM1qLzZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240167; c=relaxed/simple; bh=C4WEfnReplN0gQTzXkMZmEt442ImK4xT7st2F/By4dE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=A9h41shf5x1KstoNzXCVTODCxTfhVNVn8+wN19brIqne1yJioqyB4WOGcVuWgmWDWl54l65J0l87VVMRnj3H1oJmxLx2vs9ARbcogMX3HRk4NDDG62jPf93yEU6XWA2l7KA8YbE+aKbBEJMg1meeaRM3o27L7EBPmpFxwDLru+A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=EcAC3g3K; arc=none smtp.client-ip=209.85.166.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EcAC3g3K" Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-365138d9635so5124675ab.3 for ; Thu, 29 Feb 2024 12:56:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240164; x=1709844964; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c1od9Mf5e1UrqV2FcK9CW+GpeCIGbA7ZM3UP+zHhMOk=; b=EcAC3g3K7UEfy8rRSHSminWF2HHkpjr+QZ8gdSZkyo4dOiAEgCTR71Z9iCyeNMrgHh SJd1Ug6h3092vIIb4qUy5UnmQqQ/3VLYAWfZmK/hYpS1fW2/lY7Y01T1E4S8LKzymQlZ +m7RBbdSbtEJ0JVHqm3O9/URC2MRKMhZbQGN2jzb0I2GxEA41RHKpMS+oVyplNQQMdUz mH4KkqRbPZMdayG1u98nyg4pnflNLUuGzB1xymzMU3OhMY03QMpjGBfIJiPltFlXj21D o6TCtJ7uCMxjU0h6pD2xJbRLJXTYX/fmx8d3wkzvfsaYkEpqMOkuvXH0PA2U/bTGLjoy MvjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240164; x=1709844964; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c1od9Mf5e1UrqV2FcK9CW+GpeCIGbA7ZM3UP+zHhMOk=; b=rulm5lSG2aRtVBcMNNrw/8KAVgq4q9nHeszPUn4NEwm7OOX3iAsfuoAx3CnZeO63+k 0zngpS8LzQKRW/rMU9yBzlCkjg/RespRDO5api2Hx2jYeWAXlWWF4aTZPXyCTjJ6gFq1 JvU1Unr73BhCpX99wtM99J7Koy+nBsi3pQaBeEYSwIyikqhoRvXsEIcE2KY2VxvPwCg0 IbX/xXsyHpypoxFAxbCcd8oiibcHTD2XGyP7x3svKhlkdSKuHP33ZjUynLEE/QFac+hF NgOs7HvqWBaQ2bYZoKL6zbpaEmQLZTsrYXaKCTbJEyrvAtTXAKN/W9zIgLfiU/QSafgt dzDQ== X-Forwarded-Encrypted: i=1; AJvYcCXjv9AcxUcX8YWn+DwBBai3P45Hei/cymyrS/JxbzH5PdZgwnyVPZaBGB141iJwV8Udu/Sf/dOSIDkDuaKPx88CckmiDGJKTuyJI+fk X-Gm-Message-State: AOJu0Yywpwcq4SkRQaMoMkl+bUByOd7H0eLzK6dPlDEFL9QCIoTkZyCQ q/2JWMwu5kkQ4k30hk2NhMPqzttzxmLTe0RHcDZKcNJtxgSvvFtC5iav0VbuMOU= X-Google-Smtp-Source: AGHT+IGE8nNFn9cjihJfZQrMAXfbTxMQwRrViN8h+ZxBefjhLisKo+axRUJv//pEuVTxKMmHSs3yTg== X-Received: by 2002:a05:6e02:1c09:b0:365:c6ae:c40e with SMTP id l9-20020a056e021c0900b00365c6aec40emr318786ilh.0.1709240164615; Thu, 29 Feb 2024 12:56:04 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:04 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/7] net: ipa: pass a platform device to ipa_mem_init() Date: Thu, 29 Feb 2024 14:55:51 -0600 Message-Id: <20240229205554.86762-5-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than using the platform device pointer field in the IPA pointer, pass a platform device pointer to ipa_mem_init(). Use that pointer throughout that function. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_main.c | 2 +- drivers/net/ipa/ipa_mem.c | 13 +++++++------ drivers/net/ipa/ipa_mem.h | 5 ++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 5c9c1b0ef8de5..17ee075370ce6 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -870,7 +870,7 @@ static int ipa_probe(struct platform_device *pdev) if (ret) goto err_kfree_ipa; =20 - ret =3D ipa_mem_init(ipa, data->mem_data); + ret =3D ipa_mem_init(ipa, pdev, data->mem_data); if (ret) goto err_reg_exit; =20 diff --git a/drivers/net/ipa/ipa_mem.c b/drivers/net/ipa/ipa_mem.c index 694960537ecda..d7df7d340221d 100644 --- a/drivers/net/ipa/ipa_mem.c +++ b/drivers/net/ipa/ipa_mem.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include =20 @@ -75,9 +76,9 @@ ipa_mem_zero_region_add(struct gsi_trans *trans, enum ipa= _mem_id mem_id) int ipa_mem_setup(struct ipa *ipa) { dma_addr_t addr =3D ipa->zero_addr; - const struct reg *reg; const struct ipa_mem *mem; struct gsi_trans *trans; + const struct reg *reg; u32 offset; u16 size; u32 val; @@ -615,9 +616,10 @@ static void ipa_smem_exit(struct ipa *ipa) } =20 /* Perform memory region-related initialization */ -int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data) +int ipa_mem_init(struct ipa *ipa, struct platform_device *pdev, + const struct ipa_mem_data *mem_data) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D &pdev->dev; struct resource *res; int ret; =20 @@ -634,14 +636,13 @@ int ipa_mem_init(struct ipa *ipa, const struct ipa_me= m_data *mem_data) if (!ipa_table_mem_valid(ipa, true)) return -EINVAL; =20 - ret =3D dma_set_mask_and_coherent(&ipa->pdev->dev, DMA_BIT_MASK(64)); + ret =3D dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)); if (ret) { dev_err(dev, "error %d setting DMA mask\n", ret); return ret; } =20 - res =3D platform_get_resource_byname(ipa->pdev, IORESOURCE_MEM, - "ipa-shared"); + res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "ipa-shared"); if (!res) { dev_err(dev, "DT error getting \"ipa-shared\" memory property\n"); diff --git a/drivers/net/ipa/ipa_mem.h b/drivers/net/ipa/ipa_mem.h index 868e9c20e8c41..28aad00a151da 100644 --- a/drivers/net/ipa/ipa_mem.h +++ b/drivers/net/ipa/ipa_mem.h @@ -6,6 +6,8 @@ #ifndef _IPA_MEM_H_ #define _IPA_MEM_H_ =20 +struct platform_device; + struct ipa; struct ipa_mem_data; =20 @@ -100,7 +102,8 @@ int ipa_mem_setup(struct ipa *ipa); /* No ipa_mem_teard= own() needed */ =20 int ipa_mem_zero_modem(struct ipa *ipa); =20 -int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data); +int ipa_mem_init(struct ipa *ipa, struct platform_device *pdev, + const struct ipa_mem_data *mem_data); void ipa_mem_exit(struct ipa *ipa); =20 #endif /* _IPA_MEM_H_ */ --=20 2.40.1 From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 607A6145675 for ; Thu, 29 Feb 2024 20:56:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240169; cv=none; b=BGoe+x0N6AtciOC5exkRk8unl7MlinQGF42nfgLgNkGzlyZcNdFq8lV0ZlPgq/w+WUE/ERB1FeQ8L3dmk5tykJHeH5y/K1Azi6IevmrRkR6fSFVJt6RQcRQ7fwnmQfXFB5q5rM0D7EsGzdBAMPvYQhdIHNZfd6dsHN73oyS/bx0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240169; c=relaxed/simple; bh=Am0NKmlCwgLy7Njo99K+o5i4CrEnaQkPIJSAd0GcvZg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hqDaCv+kUmxWSuxa0lPyzmzXWEXwDpvPw5AwP01hVjatQdR4BvCVvtCAkX0ZEgFv/vCGPWJ5uQHiIYtVm8f/y90Q7yuFL0FsVCXNhFlKJ02mzApn7nBVeUcgenYkfKVtWl9xrrUJ5tYK2ZupOb1Mx8JKKmXYOsq21uy7VVPJ1Js= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=p5XNv89M; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="p5XNv89M" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-364f791a428so7239975ab.3 for ; Thu, 29 Feb 2024 12:56:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240165; x=1709844965; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5D+lwpw4B4CqzaxbOzMn85Ig/zR5F9N9xKtP1WaY0I4=; b=p5XNv89Mx3GinPIQt7BOa5mzCvf/PZDTGIBL5xIWL8fCGRJ5YGPK1rvoFth/QbJ3gD zGPZRSN+xiGDhiGCUotcbnxzs0fqH4qgxgjOY4aO8nfH5HYSTDuUTwC/apU1QoVcy4CC rCMJa2gYWvL6XKKCItvU8a2kB5rfioMzBb9zjs+3jXspSAyXnU8sy7de2jDM94OfkA11 a56iRAYvu0c69qRfZRgWIwDLaPKi/d4lFPrI9pDkFW3fjMujDqjBajQzBUEx4lLFc9fL kcK5EOSHHr5WxKm7qUgiHg0lFjniHUtBe9bbPNxdN6eep7LCssmU1YYl1c+PzrNU8cv3 pp0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240165; x=1709844965; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5D+lwpw4B4CqzaxbOzMn85Ig/zR5F9N9xKtP1WaY0I4=; b=G10WbXZHcBib8+Ts7GCLgCxLBWScy+7t1qZazMHSusMkfztMZbkyPGSO0vLBDrQVXQ vmxMUNtk1xIMypLwH8MAgk1rRI6mVhC+sNkrH29uyvAQ8sBG4XKPVnGaavfl6fyLvP6n X4oeuSQbq2CmJV0VlyVp1vGsXfVHepqC9nYp74OUoweakQ8kvM38HCn5TbeeX2bZLhUp RI4CPKX0c0psny50+svLKN9uWL28SQo41UdiUzPftI8ytAQHuhJVSXft0zOlWI2tBFeZ K4uMvIrq4w9Nbj9fQqtMOsuQ8y3lbG9nmiTWlZ/dW9Xp5ulMF4oNg17yOVHCtlhp5sgV ABiw== X-Forwarded-Encrypted: i=1; AJvYcCXzm2stm0WNSJ/5dpxwd7KXqhuXbHuqtGaHlLDfA3ReSU/Z6hFnUAaYAeeJEwaMohbMPF0oAvfYKHfeovi9l8K/tPhMBb5meYlzZsFn X-Gm-Message-State: AOJu0Yweo4sNZ+lNlnMpBIPynRZMJK9UsgflwmxxNs3Jn644XNhnE6HC X0uYaEq4ZX7YIUjCTmc1Z4S816Jc1VpxWfAiVidDDcnDDesF9kXvXniciONK8jE= X-Google-Smtp-Source: AGHT+IGcOfVrDqhNCWn1fNLEGXylxBZpA2oid/ypDYM6J5i+Mj7J0q56fj66lxK0j1ZvfW//1Sz22w== X-Received: by 2002:a05:6e02:b29:b0:365:4e45:658f with SMTP id e9-20020a056e020b2900b003654e45658fmr193247ilu.22.1709240165712; Thu, 29 Feb 2024 12:56:05 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:05 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 5/7] net: ipa: pass a platform device to ipa_smp2p_irq_init() Date: Thu, 29 Feb 2024 14:55:52 -0600 Message-Id: <20240229205554.86762-6-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than using the platform device pointer field in the IPA pointer, pass a platform device pointer to ipa_smp2p_irq_init(). Use that pointer throughout that function (without assuming it's the same as the IPA platform device pointer). Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_smp2p.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c index 5620dc271fac3..8c4497dfe5afd 100644 --- a/drivers/net/ipa/ipa_smp2p.c +++ b/drivers/net/ipa/ipa_smp2p.c @@ -5,7 +5,7 @@ */ =20 #include -#include +#include #include #include #include @@ -179,14 +179,15 @@ static irqreturn_t ipa_smp2p_modem_setup_ready_isr(in= t irq, void *dev_id) } =20 /* Initialize SMP2P interrupts */ -static int ipa_smp2p_irq_init(struct ipa_smp2p *smp2p, const char *name, - irq_handler_t handler) +static int ipa_smp2p_irq_init(struct ipa_smp2p *smp2p, + struct platform_device *pdev, + const char *name, irq_handler_t handler) { - struct device *dev =3D &smp2p->ipa->pdev->dev; + struct device *dev =3D &pdev->dev; unsigned int irq; int ret; =20 - ret =3D platform_get_irq_byname(smp2p->ipa->pdev, name); + ret =3D platform_get_irq_byname(pdev, name); if (ret <=3D 0) return ret ? : -EINVAL; irq =3D ret; @@ -261,7 +262,7 @@ int ipa_smp2p_init(struct ipa *ipa, bool modem_init) /* We have enough information saved to handle notifications */ ipa->smp2p =3D smp2p; =20 - ret =3D ipa_smp2p_irq_init(smp2p, "ipa-clock-query", + ret =3D ipa_smp2p_irq_init(smp2p, smp2p->ipa->pdev, "ipa-clock-query", ipa_smp2p_modem_clk_query_isr); if (ret < 0) goto err_null_smp2p; @@ -273,7 +274,8 @@ int ipa_smp2p_init(struct ipa *ipa, bool modem_init) =20 if (modem_init) { /* Result will be non-zero (negative for error) */ - ret =3D ipa_smp2p_irq_init(smp2p, "ipa-setup-ready", + ret =3D ipa_smp2p_irq_init(smp2p, smp2p->ipa->pdev, + "ipa-setup-ready", ipa_smp2p_modem_setup_ready_isr); if (ret < 0) goto err_notifier_unregister; --=20 2.40.1 From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B72351504CF for ; Thu, 29 Feb 2024 20:56:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240169; cv=none; b=X9IFr2Mb6VmIutJoLe64a9e5etZW1PcKAgQ90VljkudibirIZvXpXlVQEuANixGrjMHUrBitej7AWb1bsZLPyAQKudEMuOaX62P90zIyf1yy2WiJXq9R4bdwdO0PP+4Z3Wej2k+5uA0DIlmD38gvN7iDVLnqR4PHlqhYI6UZ+00= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240169; c=relaxed/simple; bh=pEDv/5wU7sbtDhxVNH7M10AUlaZ8vBb6MddBYxdRtUM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Uyp9aS+DgjMlK+qz1FH+V/tsZaaDfHjsKMiVlKgIFqdDt3zasPylNIp9ofDs/p0HCuhBIm72IZ2t8dQTJq2Eo0hZR7xfuAJlzfZYS5S3loJvrjS/iWTvSd8dCmHjhoo7UW+kPL9ND365uM3giJVQUrArDqlucfHAN14LzVLlM3k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ekaKm67M; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ekaKm67M" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-3652731b2b7so5527245ab.2 for ; Thu, 29 Feb 2024 12:56:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240167; x=1709844967; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CjF4i+Vy6ouwx0EOaBtId9vglat4HShUeD3p4ZJNnXY=; b=ekaKm67MDgpRP+zqMVGclf8BvL5mRHjOCL1hVtgTLbSqrFnwSFMF95aFhxVQeXSG6r lNGpTDUWTSEPe1h57ofgJ6lMXvupykY93P+LykycGFngjkBj58IYMGR5K2of2V935WOk 2mX5m6eRG3ijtkNWIFzLAgbUEswoxJD8P+a4QYwIQ4Bk9s7kqTgWr2m65ASbcR1S2S+J qR3ukvXGkdc/bHUHBvzbmPLzXDV4hei7ll8YZQ1QlQv95XEIIT6/wVzjGAJEaTYekStl p+IBOcCR21wh3tpSWB0GuioW/JgJicrP+UZkPo8A3RKTcGQGGLUiQ00F4WXuMcumtekR xbfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240167; x=1709844967; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CjF4i+Vy6ouwx0EOaBtId9vglat4HShUeD3p4ZJNnXY=; b=M+tR3rpSY6oCnAwYW9bMDpnvZ8rPJl70ojIyc9iWqtfNe9sYtLYfIz1wIUZVHbVcUm Jnj7LHS7+gbXMMpPOvyd52MTMOWnfiTQ7RL3vAes+UFT5/i1I7MhvTf87h32A0jKzraJ tTOrbXxTe++lQk3z1rxDNXCXXdYU1t7SWrEHQbbwq0H05o0C6psXPSaUOTRvXt67fUMd 7VPSwkwr3PuFUNZzD5gHFnDDn2tCVscOy8Z5caZf11HQJ5jGe99HyhlhHUwtOwfx85zo 6qtWgWUgQAVr74ErnpXsh33hCy1pKtjuDrlsK/SvafkC00VYoWg/C8vJQczuAUNkSB4n AVYQ== X-Forwarded-Encrypted: i=1; AJvYcCUXm4jbdqrseNTdZeNGAa1RK12bSqN+/b70NsgZfvaRKUKmi2sJCGZn4G7fAqxPp7lCGRcDUBI4ACVFv5erRpd2PxFQUa3FM1kglpKb X-Gm-Message-State: AOJu0YxVsSW+QJmzvbwE4a231CdKHCTkrftKmrqh/l9CjXNW02cpoduG PS9aFZbPkioHMUcM35xuhAN7T23Ovv8Du3r6ga73Rh0VnGtkM8pZYgrRtfVxMDlEy24feE+4MnZ f X-Google-Smtp-Source: AGHT+IGdoKi6C+rA0byjO8nOJp/Q/Gcboxib0igBCpb/NWRQoPu1yXNvKq1oWZfIq0U8OfZgk0wHfg== X-Received: by 2002:a92:c264:0:b0:365:4b91:7cf9 with SMTP id h4-20020a92c264000000b003654b917cf9mr172420ild.26.1709240166902; Thu, 29 Feb 2024 12:56:06 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:06 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 6/7] net: ipa: pass a platform device to ipa_smp2p_init() Date: Thu, 29 Feb 2024 14:55:53 -0600 Message-Id: <20240229205554.86762-7-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than using the platform device pointer field in the IPA pointer, pass a platform device pointer to ipa_smp2p_init(). Use that pointer throughout that function. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_main.c | 2 +- drivers/net/ipa/ipa_smp2p.c | 10 +++++----- drivers/net/ipa/ipa_smp2p.h | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 17ee075370ce6..3125aec88e6e1 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -888,7 +888,7 @@ static int ipa_probe(struct platform_device *pdev) if (ret) goto err_endpoint_exit; =20 - ret =3D ipa_smp2p_init(ipa, loader =3D=3D IPA_LOADER_MODEM); + ret =3D ipa_smp2p_init(ipa, pdev, loader =3D=3D IPA_LOADER_MODEM); if (ret) goto err_table_exit; =20 diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c index 8c4497dfe5afd..831268551d9a7 100644 --- a/drivers/net/ipa/ipa_smp2p.c +++ b/drivers/net/ipa/ipa_smp2p.c @@ -220,10 +220,11 @@ static void ipa_smp2p_power_release(struct ipa *ipa) } =20 /* Initialize the IPA SMP2P subsystem */ -int ipa_smp2p_init(struct ipa *ipa, bool modem_init) +int +ipa_smp2p_init(struct ipa *ipa, struct platform_device *pdev, bool modem_i= nit) { struct qcom_smem_state *enabled_state; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D &pdev->dev; struct qcom_smem_state *valid_state; struct ipa_smp2p *smp2p; u32 enabled_bit; @@ -262,7 +263,7 @@ int ipa_smp2p_init(struct ipa *ipa, bool modem_init) /* We have enough information saved to handle notifications */ ipa->smp2p =3D smp2p; =20 - ret =3D ipa_smp2p_irq_init(smp2p, smp2p->ipa->pdev, "ipa-clock-query", + ret =3D ipa_smp2p_irq_init(smp2p, pdev, "ipa-clock-query", ipa_smp2p_modem_clk_query_isr); if (ret < 0) goto err_null_smp2p; @@ -274,8 +275,7 @@ int ipa_smp2p_init(struct ipa *ipa, bool modem_init) =20 if (modem_init) { /* Result will be non-zero (negative for error) */ - ret =3D ipa_smp2p_irq_init(smp2p, smp2p->ipa->pdev, - "ipa-setup-ready", + ret =3D ipa_smp2p_irq_init(smp2p, pdev, "ipa-setup-ready", ipa_smp2p_modem_setup_ready_isr); if (ret < 0) goto err_notifier_unregister; diff --git a/drivers/net/ipa/ipa_smp2p.h b/drivers/net/ipa/ipa_smp2p.h index 9b969b03d1a4b..2a3d8eefb13bb 100644 --- a/drivers/net/ipa/ipa_smp2p.h +++ b/drivers/net/ipa/ipa_smp2p.h @@ -8,17 +8,20 @@ =20 #include =20 +struct platform_device; + struct ipa; =20 /** * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem * @ipa: IPA pointer + * @pdev: Platform device pointer * @modem_init: Whether the modem is responsible for GSI initialization * * Return: 0 if successful, or a negative error code - * */ -int ipa_smp2p_init(struct ipa *ipa, bool modem_init); +int ipa_smp2p_init(struct ipa *ipa, struct platform_device *pdev, + bool modem_init); =20 /** * ipa_smp2p_exit() - Inverse of ipa_smp2p_init() --=20 2.40.1 From nobody Sun Feb 8 10:50:10 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F03E3151749 for ; Thu, 29 Feb 2024 20:56:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240171; cv=none; b=sT1M5UYElTuxrPoqXIQ+oJ+IRdBIDDIanK6CpIdc1HofsQx6O3reixqIYWTAQ1kbs8RyU75jjhIgztaqJBbpAJE6mqWuDl8aMIvzHFZZHy8a0NCOmWbOHIfQMgM7EbKDA/lc6rTlIxMwmhKqZvrQtdkZv8KCJR5j3VjA6yZS+rs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709240171; c=relaxed/simple; bh=NJMD1D8DtUbTJfW8WvWP43Xac2N4idS4oxVaL8+0qfg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CLMaTGuAHXs/R7IH+2LS/p6Rfotn2nruRXAREgd1ZHq2j0dkIeN2me1Sb7r3xo+9apNwOLVotA0WjLq4jHTOCKcCDHJcWkG8hbTwtc43HpHtjQQmYjzXeNd/z7/3+Hb2+OqO88deiDsuiZYmBQpHaM+ep9HROPhZYu+zTYc79gs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=jNCkLwFf; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="jNCkLwFf" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-365169e0938so4009005ab.0 for ; Thu, 29 Feb 2024 12:56:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709240168; x=1709844968; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WENhthIwgjxjWI15i8GwNwNFwMFy0Kn8nH7EdPDCVlI=; b=jNCkLwFfoT6ridM0JM//dt4CmR1fLfJaWp2/Kpmoa7g1MrB6+dY7G/UB51ji62t+F1 nQZtFsJ6PVBMJyXpKmG3QZChhtTt6CAsjjdjuGJkdEqz/NuhBT8Y0Oet0yE8BCWPtFel GzEQf525fL7LoCcPXIAOHuJPIqgjp+o+pKIAklgQQq+jp/wKXk4H9TzhOrPIzd3wqksw YLVE9mwYjrf90KDCTOXRNhP+qlOY+xb1qr88Q8o/nmS/wFWjI/0jAsO2e2Q8+txIjnp9 u/sVhFCy67QyXT8+SwxW2cLSBv+zmF0WyihZdyNZI+SBlRw3gRmKbl4Ste3Vpq8zal3S XOxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709240168; x=1709844968; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WENhthIwgjxjWI15i8GwNwNFwMFy0Kn8nH7EdPDCVlI=; b=WevU81qf+L7MdOHPEYsfBuALrz5OX+VJ29V6fas5bWgDe/7MlDWXGMF5QppzqCOKcU ve32QN46nNRPL4hH2crAod7Cl+DD/dmSMhBV0VtUOYjQQYfe3tB1RYdMnaMACgRE/WKv QvoIZlKAVR3QggKhruBvTipt3CoXJMTopgFN7VEOrinQcJXbMohpSoaZluuai/WmTVpF 1ZW24IVwEQa5WsgHGPhharENxb1hfY6s/ZtRuByvgk39RhvhD3K7UQJiHAolOt/nWpVw Kb9L+mbTbcWkW28HoWGHGZx+l+iNC36X+UOqqm0H7ogK6yyOKW5OOpOAsURhtVBAbj/O PJxg== X-Forwarded-Encrypted: i=1; AJvYcCXfRRy4TIellq5AXC7RKRX6S9IfCU8gfvlif4q0dykVSU5Kzv8NQXK1lKMaP/qs9YdkNxZKD5yh+68QyagjqOL4DEm1a/McTD/8PmtL X-Gm-Message-State: AOJu0YxA5K0wrrLWiswlwykOO3RFIZnQyqg10JAcGOw5akM5I/ynVOj0 zpOZd7W5N39HWRitjaynwlPGFRvR9YZR31yf0lwnV+84XgtK7cJk9Aop4fUlH8M= X-Google-Smtp-Source: AGHT+IGln3DWb1UK6ZMyV1p4mNExy/Fs8AYIbgVGqJLn9MlS1VH+jGk9cPXGdWKhP/QBJY6bM1REnw== X-Received: by 2002:a05:6e02:1d15:b0:365:42d0:2da6 with SMTP id i21-20020a056e021d1500b0036542d02da6mr20548ila.5.1709240168046; Thu, 29 Feb 2024 12:56:08 -0800 (PST) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id h14-20020a056e020d4e00b003658fbcf55dsm521551ilj.72.2024.02.29.12.56.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 12:56:07 -0800 (PST) From: Alex Elder To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: mka@chromium.org, andersson@kernel.org, quic_cpratapa@quicinc.com, quic_avuyyuru@quicinc.com, quic_jponduru@quicinc.com, quic_subashab@quicinc.com, elder@kernel.org, netdev@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 7/7] net: ipa: don't save the platform device Date: Thu, 29 Feb 2024 14:55:54 -0600 Message-Id: <20240229205554.86762-8-elder@linaro.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240229205554.86762-1-elder@linaro.org> References: <20240229205554.86762-1-elder@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The IPA platform device is now only used as the structure containing the IPA device structure. Replace the platform device pointer with a pointer to the device structure. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa.h | 5 ++--- drivers/net/ipa/ipa_cmd.c | 6 +++--- drivers/net/ipa/ipa_endpoint.c | 29 ++++++++++++++--------------- drivers/net/ipa/ipa_interrupt.c | 7 +++---- drivers/net/ipa/ipa_main.c | 13 ++++++++----- drivers/net/ipa/ipa_mem.c | 24 +++++++++++------------- drivers/net/ipa/ipa_modem.c | 14 +++++++------- drivers/net/ipa/ipa_power.c | 4 ++-- drivers/net/ipa/ipa_qmi.c | 10 +++++----- drivers/net/ipa/ipa_smp2p.c | 13 ++++++------- drivers/net/ipa/ipa_table.c | 18 ++++++++---------- drivers/net/ipa/ipa_uc.c | 9 ++++----- 12 files changed, 73 insertions(+), 79 deletions(-) diff --git a/drivers/net/ipa/ipa.h b/drivers/net/ipa/ipa.h index f3355e040a9e1..334cd62cf2866 100644 --- a/drivers/net/ipa/ipa.h +++ b/drivers/net/ipa/ipa.h @@ -21,7 +21,6 @@ struct clk; struct icc_path; struct net_device; -struct platform_device; =20 struct ipa_power; struct ipa_smp2p; @@ -31,7 +30,7 @@ struct ipa_interrupt; * struct ipa - IPA information * @gsi: Embedded GSI structure * @version: IPA hardware version - * @pdev: Platform device + * @dev: IPA device pointer * @completion: Used to signal pipeline clear transfer complete * @nb: Notifier block used for remoteproc SSR * @notifier: Remoteproc SSR notifier @@ -79,7 +78,7 @@ struct ipa_interrupt; struct ipa { struct gsi gsi; enum ipa_version version; - struct platform_device *pdev; + struct device *dev; struct completion completion; struct notifier_block nb; void *notifier; diff --git a/drivers/net/ipa/ipa_cmd.c b/drivers/net/ipa/ipa_cmd.c index f1419fbd776c3..39219963dbb3f 100644 --- a/drivers/net/ipa/ipa_cmd.c +++ b/drivers/net/ipa/ipa_cmd.c @@ -174,7 +174,7 @@ bool ipa_cmd_table_init_valid(struct ipa *ipa, const st= ruct ipa_mem *mem, u32 offset_max =3D field_max(IP_FLTRT_FLAGS_NHASH_ADDR_FMASK); u32 size_max =3D field_max(IP_FLTRT_FLAGS_NHASH_SIZE_FMASK); const char *table =3D route ? "route" : "filter"; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; u32 size; =20 size =3D route ? ipa->route_count : ipa->filter_count + 1; @@ -204,7 +204,7 @@ bool ipa_cmd_table_init_valid(struct ipa *ipa, const st= ruct ipa_mem *mem, /* Validate the memory region that holds headers */ static bool ipa_cmd_header_init_local_valid(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; const struct ipa_mem *mem; u32 offset_max; u32 size_max; @@ -256,7 +256,7 @@ static bool ipa_cmd_register_write_offset_valid(struct = ipa *ipa, const char *name, u32 offset) { struct ipa_cmd_register_write *payload; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; u32 offset_max; u32 bit_count; =20 diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c index afa1d56d9095c..dd490941615e2 100644 --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -233,8 +233,8 @@ static bool ipa_endpoint_data_valid_one(struct ipa *ipa= , u32 count, const struct ipa_gsi_endpoint_data *data) { const struct ipa_gsi_endpoint_data *other_data; - struct device *dev =3D &ipa->pdev->dev; enum ipa_endpoint_name other_name; + struct device *dev =3D ipa->dev; =20 if (ipa_gsi_endpoint_data_empty(data)) return true; @@ -388,7 +388,7 @@ static u32 ipa_endpoint_max(struct ipa *ipa, u32 count, const struct ipa_gsi_endpoint_data *data) { const struct ipa_gsi_endpoint_data *dp =3D data; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; enum ipa_endpoint_name name; u32 max; =20 @@ -606,7 +606,7 @@ int ipa_endpoint_modem_exception_reset_all(struct ipa *= ipa) count =3D ipa->modem_tx_count + ipa_cmd_pipeline_clear_count(); trans =3D ipa_cmd_trans_alloc(ipa, count); if (!trans) { - dev_err(&ipa->pdev->dev, + dev_err(ipa->dev, "no transaction to reset modem exception endpoints\n"); return -EBUSY; } @@ -1498,8 +1498,7 @@ ipa_endpoint_status_tag_valid(struct ipa_endpoint *en= dpoint, const void *data) if (endpoint_id =3D=3D command_endpoint->endpoint_id) { complete(&ipa->completion); } else { - dev_err(&ipa->pdev->dev, - "unexpected tagged packet from endpoint %u\n", + dev_err(ipa->dev, "unexpected tagged packet from endpoint %u\n", endpoint_id); } =20 @@ -1536,6 +1535,7 @@ static void ipa_endpoint_status_parse(struct ipa_endp= oint *endpoint, void *data =3D page_address(page) + NET_SKB_PAD; u32 unused =3D buffer_size - total_len; struct ipa *ipa =3D endpoint->ipa; + struct device *dev =3D ipa->dev; u32 resid =3D total_len; =20 while (resid) { @@ -1544,7 +1544,7 @@ static void ipa_endpoint_status_parse(struct ipa_endp= oint *endpoint, u32 len; =20 if (resid < IPA_STATUS_SIZE) { - dev_err(&endpoint->ipa->pdev->dev, + dev_err(dev, "short message (%u bytes < %zu byte status)\n", resid, IPA_STATUS_SIZE); break; @@ -1666,8 +1666,8 @@ void ipa_endpoint_default_route_clear(struct ipa *ipa) */ static int ipa_endpoint_reset_rx_aggr(struct ipa_endpoint *endpoint) { - struct device *dev =3D &endpoint->ipa->pdev->dev; struct ipa *ipa =3D endpoint->ipa; + struct device *dev =3D ipa->dev; struct gsi *gsi =3D &ipa->gsi; bool suspended =3D false; dma_addr_t addr; @@ -1769,7 +1769,7 @@ static void ipa_endpoint_reset(struct ipa_endpoint *e= ndpoint) gsi_channel_reset(&ipa->gsi, channel_id, true); =20 if (ret) - dev_err(&ipa->pdev->dev, + dev_err(ipa->dev, "error %d resetting channel %u for endpoint %u\n", ret, endpoint->channel_id, endpoint->endpoint_id); } @@ -1817,7 +1817,7 @@ int ipa_endpoint_enable_one(struct ipa_endpoint *endp= oint) =20 ret =3D gsi_channel_start(gsi, endpoint->channel_id); if (ret) { - dev_err(&ipa->pdev->dev, + dev_err(ipa->dev, "error %d starting %cX channel %u for endpoint %u\n", ret, endpoint->toward_ipa ? 'T' : 'R', endpoint->channel_id, endpoint_id); @@ -1854,14 +1854,13 @@ void ipa_endpoint_disable_one(struct ipa_endpoint *= endpoint) /* Note that if stop fails, the channel's state is not well-defined */ ret =3D gsi_channel_stop(gsi, endpoint->channel_id); if (ret) - dev_err(&ipa->pdev->dev, - "error %d attempting to stop endpoint %u\n", ret, - endpoint_id); + dev_err(ipa->dev, "error %d attempting to stop endpoint %u\n", + ret, endpoint_id); } =20 void ipa_endpoint_suspend_one(struct ipa_endpoint *endpoint) { - struct device *dev =3D &endpoint->ipa->pdev->dev; + struct device *dev =3D endpoint->ipa->dev; struct gsi *gsi =3D &endpoint->ipa->gsi; int ret; =20 @@ -1881,7 +1880,7 @@ void ipa_endpoint_suspend_one(struct ipa_endpoint *en= dpoint) =20 void ipa_endpoint_resume_one(struct ipa_endpoint *endpoint) { - struct device *dev =3D &endpoint->ipa->pdev->dev; + struct device *dev =3D endpoint->ipa->dev; struct gsi *gsi =3D &endpoint->ipa->gsi; int ret; =20 @@ -1983,7 +1982,7 @@ void ipa_endpoint_deconfig(struct ipa *ipa) =20 int ipa_endpoint_config(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; const struct reg *reg; u32 endpoint_id; u32 hw_limit; diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrup= t.c index 26e84a5c30bff..aea69b94cf613 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -110,14 +110,13 @@ static irqreturn_t ipa_isr_thread(int irq, void *dev_= id) struct ipa_interrupt *interrupt =3D dev_id; struct ipa *ipa =3D interrupt->ipa; u32 enabled =3D interrupt->enabled; + struct device *dev =3D ipa->dev; const struct reg *reg; - struct device *dev; u32 pending; u32 offset; u32 mask; int ret; =20 - dev =3D &ipa->pdev->dev; ret =3D pm_runtime_get_sync(dev); if (WARN_ON(ret < 0)) goto out_power_put; @@ -240,8 +239,8 @@ void ipa_interrupt_simulate_suspend(struct ipa_interrup= t *interrupt) int ipa_interrupt_config(struct ipa *ipa) { struct ipa_interrupt *interrupt =3D ipa->interrupt; - struct device *dev =3D &ipa->pdev->dev; unsigned int irq =3D interrupt->irq; + struct device *dev =3D ipa->dev; const struct reg *reg; int ret; =20 @@ -278,7 +277,7 @@ int ipa_interrupt_config(struct ipa *ipa) void ipa_interrupt_deconfig(struct ipa *ipa) { struct ipa_interrupt *interrupt =3D ipa->interrupt; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 ipa->interrupt =3D NULL; =20 diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 3125aec88e6e1..57b241417e8cd 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -114,7 +113,7 @@ int ipa_setup(struct ipa *ipa) { struct ipa_endpoint *exception_endpoint; struct ipa_endpoint *command_endpoint; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; int ret; =20 ret =3D gsi_setup(&ipa->gsi); @@ -858,7 +857,7 @@ static int ipa_probe(struct platform_device *pdev) goto err_power_exit; } =20 - ipa->pdev =3D pdev; + ipa->dev =3D dev; dev_set_drvdata(dev, ipa); ipa->interrupt =3D interrupt; ipa->power =3D power; @@ -953,12 +952,16 @@ static int ipa_probe(struct platform_device *pdev) =20 static void ipa_remove(struct platform_device *pdev) { - struct ipa *ipa =3D dev_get_drvdata(&pdev->dev); - struct device *dev =3D &pdev->dev; struct ipa_interrupt *interrupt; struct ipa_power *power; + struct device *dev; + struct ipa *ipa; int ret; =20 + ipa =3D dev_get_drvdata(&pdev->dev); + dev =3D ipa->dev; + WARN_ON(dev !=3D &pdev->dev); + power =3D ipa->power; interrupt =3D ipa->interrupt; =20 diff --git a/drivers/net/ipa/ipa_mem.c b/drivers/net/ipa/ipa_mem.c index d7df7d340221d..709f061ede617 100644 --- a/drivers/net/ipa/ipa_mem.c +++ b/drivers/net/ipa/ipa_mem.c @@ -88,7 +88,7 @@ int ipa_mem_setup(struct ipa *ipa) */ trans =3D ipa_cmd_trans_alloc(ipa, 4); if (!trans) { - dev_err(&ipa->pdev->dev, "no transaction for memory setup\n"); + dev_err(ipa->dev, "no transaction for memory setup\n"); return -EBUSY; } =20 @@ -218,8 +218,8 @@ static bool ipa_mem_id_required(struct ipa *ipa, enum i= pa_mem_id mem_id) =20 static bool ipa_mem_valid_one(struct ipa *ipa, const struct ipa_mem *mem) { - struct device *dev =3D &ipa->pdev->dev; enum ipa_mem_id mem_id =3D mem->id; + struct device *dev =3D ipa->dev; u16 size_multiple; =20 /* Make sure the memory region is valid for this version of IPA */ @@ -255,7 +255,7 @@ static bool ipa_mem_valid_one(struct ipa *ipa, const st= ruct ipa_mem *mem) static bool ipa_mem_valid(struct ipa *ipa, const struct ipa_mem_data *mem_= data) { DECLARE_BITMAP(regions, IPA_MEM_COUNT) =3D { }; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; enum ipa_mem_id mem_id; u32 i; =20 @@ -291,7 +291,7 @@ static bool ipa_mem_valid(struct ipa *ipa, const struct= ipa_mem_data *mem_data) /* Do all memory regions fit within the IPA local memory? */ static bool ipa_mem_size_valid(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; u32 limit =3D ipa->mem_size; u32 i; =20 @@ -318,7 +318,7 @@ static bool ipa_mem_size_valid(struct ipa *ipa) */ int ipa_mem_config(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; const struct ipa_mem *mem; const struct reg *reg; dma_addr_t addr; @@ -394,7 +394,7 @@ int ipa_mem_config(struct ipa *ipa) /* Inverse of ipa_mem_config() */ void ipa_mem_deconfig(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 dma_free_coherent(dev, ipa->zero_size, ipa->zero_virt, ipa->zero_addr); ipa->zero_size =3D 0; @@ -421,8 +421,7 @@ int ipa_mem_zero_modem(struct ipa *ipa) */ trans =3D ipa_cmd_trans_alloc(ipa, 3); if (!trans) { - dev_err(&ipa->pdev->dev, - "no transaction to zero modem memory\n"); + dev_err(ipa->dev, "no transaction to zero modem memory\n"); return -EBUSY; } =20 @@ -453,7 +452,7 @@ int ipa_mem_zero_modem(struct ipa *ipa) */ static int ipa_imem_init(struct ipa *ipa, unsigned long addr, size_t size) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; struct iommu_domain *domain; unsigned long iova; phys_addr_t phys; @@ -486,13 +485,12 @@ static int ipa_imem_init(struct ipa *ipa, unsigned lo= ng addr, size_t size) =20 static void ipa_imem_exit(struct ipa *ipa) { + struct device *dev =3D ipa->dev; struct iommu_domain *domain; - struct device *dev; =20 if (!ipa->imem_size) return; =20 - dev =3D &ipa->pdev->dev; domain =3D iommu_get_domain_for_dev(dev); if (domain) { size_t size; @@ -528,7 +526,7 @@ static void ipa_imem_exit(struct ipa *ipa) */ static int ipa_smem_init(struct ipa *ipa, u32 item, size_t size) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; struct iommu_domain *domain; unsigned long iova; phys_addr_t phys; @@ -595,7 +593,7 @@ static int ipa_smem_init(struct ipa *ipa, u32 item, siz= e_t size) =20 static void ipa_smem_exit(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; struct iommu_domain *domain; =20 domain =3D iommu_get_domain_for_dev(dev); diff --git a/drivers/net/ipa/ipa_modem.c b/drivers/net/ipa/ipa_modem.c index 1d1be92fbebcb..c27ca3f27f7d4 100644 --- a/drivers/net/ipa/ipa_modem.c +++ b/drivers/net/ipa/ipa_modem.c @@ -58,7 +58,7 @@ static int ipa_open(struct net_device *netdev) struct device *dev; int ret; =20 - dev =3D &ipa->pdev->dev; + dev =3D ipa->dev; ret =3D pm_runtime_get_sync(dev); if (ret < 0) goto err_power_put; @@ -94,7 +94,7 @@ static int ipa_stop(struct net_device *netdev) struct device *dev; int ret; =20 - dev =3D &ipa->pdev->dev; + dev =3D ipa->dev; ret =3D pm_runtime_get_sync(dev); if (ret < 0) goto out_power_put; @@ -158,7 +158,7 @@ ipa_start_xmit(struct sk_buff *skb, struct net_device *= netdev) */ netif_stop_queue(netdev); =20 - dev =3D &ipa->pdev->dev; + dev =3D ipa->dev; ret =3D pm_runtime_get(dev); if (ret < 1) { /* If a resume won't happen, just drop the packet */ @@ -322,7 +322,7 @@ int ipa_modem_start(struct ipa *ipa) goto out_set_state; } =20 - SET_NETDEV_DEV(netdev, &ipa->pdev->dev); + SET_NETDEV_DEV(netdev, ipa->dev); priv =3D netdev_priv(netdev); priv->ipa =3D ipa; priv->tx =3D ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]; @@ -396,7 +396,7 @@ int ipa_modem_stop(struct ipa *ipa) /* Treat a "clean" modem stop the same as a crash */ static void ipa_modem_crashed(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; int ret; =20 /* Prevent the modem from triggering a call to ipa_setup() */ @@ -443,7 +443,7 @@ static int ipa_modem_notify(struct notifier_block *nb, = unsigned long action, { struct ipa *ipa =3D container_of(nb, struct ipa, nb); struct qcom_ssr_notify_data *notify_data =3D data; - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 switch (action) { case QCOM_SSR_BEFORE_POWERUP: @@ -492,7 +492,7 @@ int ipa_modem_config(struct ipa *ipa) =20 void ipa_modem_deconfig(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; int ret; =20 ret =3D qcom_unregister_ssr_notifier(ipa->notifier, &ipa->nb); diff --git a/drivers/net/ipa/ipa_power.c b/drivers/net/ipa/ipa_power.c index 0f635b8356bfb..41ca7ef5e20fc 100644 --- a/drivers/net/ipa/ipa_power.c +++ b/drivers/net/ipa/ipa_power.c @@ -238,7 +238,7 @@ int ipa_power_setup(struct ipa *ipa) =20 ipa_interrupt_enable(ipa, IPA_IRQ_TX_SUSPEND); =20 - ret =3D device_init_wakeup(&ipa->pdev->dev, true); + ret =3D device_init_wakeup(ipa->dev, true); if (ret) ipa_interrupt_disable(ipa, IPA_IRQ_TX_SUSPEND); =20 @@ -247,7 +247,7 @@ int ipa_power_setup(struct ipa *ipa) =20 void ipa_power_teardown(struct ipa *ipa) { - (void)device_init_wakeup(&ipa->pdev->dev, false); + (void)device_init_wakeup(ipa->dev, false); ipa_interrupt_disable(ipa, IPA_IRQ_TX_SUSPEND); } =20 diff --git a/drivers/net/ipa/ipa_qmi.c b/drivers/net/ipa/ipa_qmi.c index f70f0a1d1cdac..65c40e207802a 100644 --- a/drivers/net/ipa/ipa_qmi.c +++ b/drivers/net/ipa/ipa_qmi.c @@ -96,7 +96,7 @@ static void ipa_server_init_complete(struct ipa_qmi *ipa_= qmi) IPA_QMI_INIT_COMPLETE_IND_SZ, ipa_init_complete_ind_ei, &ind); if (ret) - dev_err(&ipa->pdev->dev, + dev_err(ipa->dev, "error %d sending init complete indication\n", ret); else ipa_qmi->indication_sent =3D true; @@ -148,7 +148,7 @@ static void ipa_qmi_ready(struct ipa_qmi *ipa_qmi) ipa =3D container_of(ipa_qmi, struct ipa, qmi); ret =3D ipa_modem_start(ipa); if (ret) - dev_err(&ipa->pdev->dev, "error %d starting modem\n", ret); + dev_err(ipa->dev, "error %d starting modem\n", ret); } =20 /* All QMI clients from the modem node are gone (modem shut down or crashe= d). */ @@ -199,7 +199,7 @@ static void ipa_server_indication_register(struct qmi_h= andle *qmi, ipa_qmi->indication_requested =3D true; ipa_qmi_ready(ipa_qmi); /* We might be ready now */ } else { - dev_err(&ipa->pdev->dev, + dev_err(ipa->dev, "error %d sending register indication response\n", ret); } } @@ -228,7 +228,7 @@ static void ipa_server_driver_init_complete(struct qmi_= handle *qmi, ipa_qmi->uc_ready =3D true; ipa_qmi_ready(ipa_qmi); /* We might be ready now */ } else { - dev_err(&ipa->pdev->dev, + dev_err(ipa->dev, "error %d sending init complete response\n", ret); } } @@ -417,7 +417,7 @@ static void ipa_client_init_driver_work(struct work_str= uct *work) qmi =3D &ipa_qmi->client_handle; =20 ipa =3D container_of(ipa_qmi, struct ipa, qmi); - dev =3D &ipa->pdev->dev; + dev =3D ipa->dev; =20 ret =3D qmi_txn_init(qmi, &txn, NULL, NULL); if (ret < 0) { diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c index 831268551d9a7..aeccce9fab727 100644 --- a/drivers/net/ipa/ipa_smp2p.c +++ b/drivers/net/ipa/ipa_smp2p.c @@ -84,15 +84,13 @@ struct ipa_smp2p { */ static void ipa_smp2p_notify(struct ipa_smp2p *smp2p) { - struct device *dev; u32 value; u32 mask; =20 if (smp2p->notified) return; =20 - dev =3D &smp2p->ipa->pdev->dev; - smp2p->power_on =3D pm_runtime_get_if_active(dev, true) > 0; + smp2p->power_on =3D pm_runtime_get_if_active(smp2p->ipa->dev, true) > 0; =20 /* Signal whether the IPA power is enabled */ mask =3D BIT(smp2p->enabled_bit); @@ -152,15 +150,16 @@ static void ipa_smp2p_panic_notifier_unregister(struc= t ipa_smp2p *smp2p) static irqreturn_t ipa_smp2p_modem_setup_ready_isr(int irq, void *dev_id) { struct ipa_smp2p *smp2p =3D dev_id; + struct ipa *ipa =3D smp2p->ipa; struct device *dev; int ret; =20 /* Ignore any (spurious) interrupts received after the first */ - if (smp2p->ipa->setup_complete) + if (ipa->setup_complete) return IRQ_HANDLED; =20 /* Power needs to be active for setup */ - dev =3D &smp2p->ipa->pdev->dev; + dev =3D ipa->dev; ret =3D pm_runtime_get_sync(dev); if (ret < 0) { dev_err(dev, "error %d getting power for setup\n", ret); @@ -168,7 +167,7 @@ static irqreturn_t ipa_smp2p_modem_setup_ready_isr(int = irq, void *dev_id) } =20 /* An error here won't cause driver shutdown, so warn if one occurs */ - ret =3D ipa_setup(smp2p->ipa); + ret =3D ipa_setup(ipa); WARN(ret !=3D 0, "error %d from ipa_setup()\n", ret); =20 out_power_put: @@ -209,7 +208,7 @@ static void ipa_smp2p_irq_exit(struct ipa_smp2p *smp2p,= u32 irq) /* Drop the power reference if it was taken in ipa_smp2p_notify() */ static void ipa_smp2p_power_release(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 if (!ipa->smp2p->power_on) return; diff --git a/drivers/net/ipa/ipa_table.c b/drivers/net/ipa/ipa_table.c index 7b637bb8b41c8..a24ac11b8893d 100644 --- a/drivers/net/ipa/ipa_table.c +++ b/drivers/net/ipa/ipa_table.c @@ -163,7 +163,7 @@ ipa_table_mem(struct ipa *ipa, bool filter, bool hashed= , bool ipv6) =20 bool ipa_filtered_valid(struct ipa *ipa, u64 filtered) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; u32 count; =20 if (!filtered) { @@ -236,8 +236,7 @@ ipa_filter_reset_table(struct ipa *ipa, bool hashed, bo= ol ipv6, bool modem) =20 trans =3D ipa_cmd_trans_alloc(ipa, hweight64(ep_mask)); if (!trans) { - dev_err(&ipa->pdev->dev, - "no transaction for %s filter reset\n", + dev_err(ipa->dev, "no transaction for %s filter reset\n", modem ? "modem" : "AP"); return -EBUSY; } @@ -298,8 +297,7 @@ static int ipa_route_reset(struct ipa *ipa, bool modem) =20 trans =3D ipa_cmd_trans_alloc(ipa, hash_support ? 4 : 2); if (!trans) { - dev_err(&ipa->pdev->dev, - "no transaction for %s route reset\n", + dev_err(ipa->dev, "no transaction for %s route reset\n", modem ? "modem" : "AP"); return -EBUSY; } @@ -327,7 +325,7 @@ static int ipa_route_reset(struct ipa *ipa, bool modem) =20 void ipa_table_reset(struct ipa *ipa, bool modem) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; const char *ee_name; int ret; =20 @@ -356,7 +354,7 @@ int ipa_table_hash_flush(struct ipa *ipa) =20 trans =3D ipa_cmd_trans_alloc(ipa, 1); if (!trans) { - dev_err(&ipa->pdev->dev, "no transaction for hash flush\n"); + dev_err(ipa->dev, "no transaction for hash flush\n"); return -EBUSY; } =20 @@ -469,7 +467,7 @@ int ipa_table_setup(struct ipa *ipa) */ trans =3D ipa_cmd_trans_alloc(ipa, 8); if (!trans) { - dev_err(&ipa->pdev->dev, "no transaction for table setup\n"); + dev_err(ipa->dev, "no transaction for table setup\n"); return -EBUSY; } =20 @@ -713,7 +711,7 @@ bool ipa_table_mem_valid(struct ipa *ipa, bool filter) */ int ipa_table_init(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; dma_addr_t addr; __le64 le_addr; __le64 *virt; @@ -763,7 +761,7 @@ int ipa_table_init(struct ipa *ipa) void ipa_table_exit(struct ipa *ipa) { u32 count =3D max_t(u32, 1 + ipa->filter_count, ipa->route_count); - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; size_t size; =20 size =3D IPA_ZERO_RULE_SIZE + (1 + count) * sizeof(__le64); diff --git a/drivers/net/ipa/ipa_uc.c b/drivers/net/ipa/ipa_uc.c index 7eaa0b4ebed92..bfd5dc6dab432 100644 --- a/drivers/net/ipa/ipa_uc.c +++ b/drivers/net/ipa/ipa_uc.c @@ -127,7 +127,7 @@ static struct ipa_uc_mem_area *ipa_uc_shared(struct ipa= *ipa) static void ipa_uc_event_handler(struct ipa *ipa) { struct ipa_uc_mem_area *shared =3D ipa_uc_shared(ipa); - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 if (shared->event =3D=3D IPA_UC_EVENT_ERROR) dev_err(dev, "microcontroller error event\n"); @@ -141,7 +141,7 @@ static void ipa_uc_event_handler(struct ipa *ipa) static void ipa_uc_response_hdlr(struct ipa *ipa) { struct ipa_uc_mem_area *shared =3D ipa_uc_shared(ipa); - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 /* An INIT_COMPLETED response message is sent to the AP by the * microcontroller when it is operational. Other than this, the AP @@ -191,7 +191,7 @@ void ipa_uc_config(struct ipa *ipa) /* Inverse of ipa_uc_config() */ void ipa_uc_deconfig(struct ipa *ipa) { - struct device *dev =3D &ipa->pdev->dev; + struct device *dev =3D ipa->dev; =20 ipa_interrupt_disable(ipa, IPA_IRQ_UC_1); ipa_interrupt_disable(ipa, IPA_IRQ_UC_0); @@ -208,8 +208,8 @@ void ipa_uc_deconfig(struct ipa *ipa) /* Take a proxy power reference for the microcontroller */ void ipa_uc_power(struct ipa *ipa) { + struct device *dev =3D ipa->dev; static bool already; - struct device *dev; int ret; =20 if (already) @@ -217,7 +217,6 @@ void ipa_uc_power(struct ipa *ipa) already =3D true; /* Only do this on first boot */ =20 /* This power reference dropped in ipa_uc_response_hdlr() above */ - dev =3D &ipa->pdev->dev; ret =3D pm_runtime_get_sync(dev); if (ret < 0) { pm_runtime_put_noidle(dev); --=20 2.40.1