From nobody Sat Jul 25 16:44:51 2026 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.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 4B1A03BADBD for ; Wed, 15 Jul 2026 22:00:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784152818; cv=none; b=sts5ebWql4/1LLRdHpprVceBpaJKeygawy1Ira4zgLFj6SnRvaNZ2n9PTHEg+0DNITHZVvMe3XEoM8UpHEX5tht4KRIgW4ij4C/CL1lZAJqItiqZLM+6x1nDy1EUPiPp02HjZAZDrUo5T003tGlJ6UKw39iEHKgfL+xqEPpaldo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784152818; c=relaxed/simple; bh=UU4dpsTC0PZRGa0CHmrIwL30KhYMbi6CTz9EKPkSgHQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=RhjxVE72reESf5a6/6zM366mBUYL2ar0l2p3sMeHCp4dbRrKuNrYBg5Y4BIcujcRs1AJN2mraQzM1/yojViSxmlkh74MHOnG7q1lbBspVfMwrS8ve+The7Dnu5/AVLIutWBFw8QOQ0/uYb9Q3xXFBlXhkbA491i8YxsHWiw+wF0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MwMm4hTR; arc=none smtp.client-ip=209.85.210.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MwMm4hTR" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-8487214ad2bso3701713b3a.1 for ; Wed, 15 Jul 2026 15:00:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784152816; x=1784757616; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Zc6KeHedMYl+AfkLIxoYn3n3735fNfywh4JzrN7WoQc=; b=MwMm4hTRnnZ+kA9T23ug3Wkcyug9e1nvyZiVhlMKC0lcnlGTvGhmtm0NGrAssinJhZ ZZwCT5mxJKzE4SNjdKy3iWxWvljt3qvbkNXOPZ9DROibWt3O5OxK0XlAc7oaJN9ZsjEF aLoaoDb4jTRm7YGk+48OvU6YF8Jd5ou9Nafnr7674zcM+76iNtQN1duPnxc6UldE+F83 S/pg0KQqdH5FrV7gT5Jpc3RlRr1Af8K+0oKWOK1spvId3vNMnzLZ01mfOpAbeO/7ZwP9 Im6WIcKzimuh2iOFrNFudCmv+SGEO+f28y2/WdLj3TE18vnp48w6xj2RCqpYYBvpFdZ5 b8Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784152816; x=1784757616; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Zc6KeHedMYl+AfkLIxoYn3n3735fNfywh4JzrN7WoQc=; b=j5kujnnSUsaWUtIS9K8C2pNWkAcFFqs+gEUoNiM2JsXC5FEvlFK2xsnrgbUap+8Lql Tz/JJgXfUzkfULN2KTW2U7lXmw90ud6CP0NwXCegbHjQ2qjPEIRmBZTWhvocZr0u+ChK rKEKsZiy5a2aPupMp85YYi/Qhs0k6Ypkn7E3+9c/nhCec4XKaGK3YM9kUXYfuQjTdR+x c5HFsRCvHZLLn6I5nlUjTEcEna/dcunZnW4E4zjwD+wzMvs/PR9pPr/Bead8Z2tHJP+Q AdmRmqJZeJFYws2HQKOWsgOc/xI64fYv4pOzuHX/H3Nr7vK7ine1PjHxKQV1FlwpZj2N Bxjw== X-Forwarded-Encrypted: i=1; AHgh+Rr2uCpon1eNEqnPlFM3FgGCP5WJWf7MYhn0m2Du5NGNlZgP9qmdJ8Y2zd2R9oOxzci8VxJorlXCDIclbC0=@vger.kernel.org X-Gm-Message-State: AOJu0YzJ6AadzyypC5gFQRgRPUmsotdjNgxo9DF4pwkxPZ718mz7rEij U0+Z4krVO6uizVguSxHl5jk9Lzg42OWzjo5j3Aj1s/QZkMbr5AbEreAt X-Gm-Gg: AfdE7ckOOmsj1dunwT5jUlofKL7y3SXWmEVcV8X/IbNX8x501A3hRF4LMDWAXwm0KVg GNL5LNfZMeG5HvIE/EbVBh/dfF+at9Yo7rsoKshW4MDA+7eSSJtSHCkDpejkUGl8lKt71vGPQDM fS3mYTO78cE7UxUysGbwV8F0Zs1VgSiVtz3IoZJ1Q3q35cxsQ8HkmQSV/eoDe4J4gX271+KpI/l NTp0C7ddVmru6qo6Hepryel2jIzmjf+NTocH9zfSQTUZVJNCZjB57NqXPAuSt9TNDqd7zHzd4HR 22Ju0dK0n+k85JWDOEegnfDySoftescCc6WOIs3cCu4j/wzWqqC8iUsjEduDcijipDYrM4TC/4B 4tKHA9Q+2eF8F/znfB/R7LWnQGw11hBXQdzmJQNABW/r4vij8uq9JEF5snmuvMeo4Lj/vCLMDS+ 0vajxSrpxJLOsWKuu1NiHj0QWXe3g5IyCO+iOQzUVZ35y65+1FAHxg910xO7adSXf0irj9uuzZ7 P4Q8p5nBUSnmd0OtjtiWnymVmj0rny93ByUTforca/kb0FBA141Lkk= X-Received: by 2002:a05:6a00:4298:b0:845:c5d5:3745 with SMTP id d2e1a72fcca58-8488967051fmr18193223b3a.34.1784152816331; Wed, 15 Jul 2026 15:00:16 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84a4f241d60sm3993953b3a.11.2026.07.15.15.00.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 15:00:14 -0700 (PDT) From: Rosen Penev To: linux-crypto@vger.kernel.org Cc: Herbert Xu , "David S. Miller" , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] crypto: omap-sham: use devm_platform_get_and_ioremap_resource Date: Wed, 15 Jul 2026 15:00:13 -0700 Message-ID: <20260715220013.416122-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 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" Replace the open-coded omap_sham_get_res_of()/omap_sham_get_res_pdev() helpers and the #ifdef CONFIG_OF machinery with the managed devm_platform_get_and_ioremap_resource(), platform_get_irq() and device_get_match_data() helpers. The omap_sham_pdata_omap2 fallback is kept for the non-DT (legacy platform_device) case. This removes the manual resource copy and ioremap, simplifying probe. Assisted-by: opencode:hy3-free Signed-off-by: Rosen Penev --- drivers/crypto/omap-sham.c | 104 +++++++------------------------------ 1 file changed, 18 insertions(+), 86 deletions(-) diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index be1ac640ee59..e8e111bd438a 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c @@ -30,8 +30,6 @@ #include #include #include -#include -#include #include #include #include @@ -1896,79 +1894,8 @@ static const struct of_device_id omap_sham_of_match[= ] =3D { {}, }; MODULE_DEVICE_TABLE(of, omap_sham_of_match); - -static int omap_sham_get_res_of(struct omap_sham_dev *dd, - struct device *dev, struct resource *res) -{ - struct device_node *node =3D dev->of_node; - int err =3D 0; - - dd->pdata =3D of_device_get_match_data(dev); - if (!dd->pdata) { - dev_err(dev, "no compatible OF match\n"); - err =3D -EINVAL; - goto err; - } - - err =3D of_address_to_resource(node, 0, res); - if (err < 0) { - dev_err(dev, "can't translate OF node address\n"); - err =3D -EINVAL; - goto err; - } - - dd->irq =3D irq_of_parse_and_map(node, 0); - if (!dd->irq) { - dev_err(dev, "can't translate OF irq value\n"); - err =3D -EINVAL; - goto err; - } - -err: - return err; -} -#else -static const struct of_device_id omap_sham_of_match[] =3D { - {}, -}; - -static int omap_sham_get_res_of(struct omap_sham_dev *dd, - struct device *dev, struct resource *res) -{ - return -EINVAL; -} #endif =20 -static int omap_sham_get_res_pdev(struct omap_sham_dev *dd, - struct platform_device *pdev, struct resource *res) -{ - struct device *dev =3D &pdev->dev; - struct resource *r; - int err =3D 0; - - /* Get the base address */ - r =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!r) { - dev_err(dev, "no MEM resource info\n"); - err =3D -ENODEV; - goto err; - } - memcpy(res, r, sizeof(*res)); - - /* Get the IRQ */ - dd->irq =3D platform_get_irq(pdev, 0); - if (dd->irq < 0) { - err =3D dd->irq; - goto err; - } - - /* Only OMAP2/3 can be non-DT */ - dd->pdata =3D &omap_sham_pdata_omap2; - -err: - return err; -} - static ssize_t fallback_show(struct device *dev, struct device_attribute *= attr, char *buf) { @@ -2060,11 +1987,20 @@ static int omap_sham_probe(struct platform_device *= pdev) { struct omap_sham_dev *dd; struct device *dev =3D &pdev->dev; - struct resource res; + void __iomem *io_base; + struct resource *res; dma_cap_mask_t mask; - int err, i, j; + int err, i, j, irq; u32 rev; =20 + io_base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); + if (IS_ERR(io_base)) + return PTR_ERR(io_base); + + irq =3D platform_get_irq(pdev, 0); + if (irq < 0) + return irq; + dd =3D devm_kzalloc(dev, sizeof(struct omap_sham_dev), GFP_KERNEL); if (dd =3D=3D NULL) { dev_err(dev, "unable to alloc data struct.\n"); @@ -2078,17 +2014,13 @@ static int omap_sham_probe(struct platform_device *= pdev) INIT_WORK(&dd->done_task, omap_sham_done_task); crypto_init_queue(&dd->queue, OMAP_SHAM_QUEUE_LENGTH); =20 - err =3D (dev->of_node) ? omap_sham_get_res_of(dd, dev, &res) : - omap_sham_get_res_pdev(dd, pdev, &res); - if (err) - goto data_err; + dd->pdata =3D device_get_match_data(dev); + if (!dd->pdata) + dd->pdata =3D &omap_sham_pdata_omap2; =20 - dd->io_base =3D devm_ioremap_resource(dev, &res); - if (IS_ERR(dd->io_base)) { - err =3D PTR_ERR(dd->io_base); - goto data_err; - } - dd->phys_base =3D res.start; + dd->irq =3D irq; + dd->io_base =3D io_base; + dd->phys_base =3D res->start; =20 err =3D devm_request_irq(dev, dd->irq, dd->pdata->intr_hdlr, IRQF_TRIGGER_NONE, dev_name(dev), dd); @@ -2213,7 +2145,7 @@ static struct platform_driver omap_sham_driver =3D { .remove =3D omap_sham_remove, .driver =3D { .name =3D "omap-sham", - .of_match_table =3D omap_sham_of_match, + .of_match_table =3D of_match_ptr(omap_sham_of_match), .dev_groups =3D omap_sham_groups, }, }; --=20 2.55.0