From patchwork Sat Oct 1 19:07:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 9359393 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A00D860757 for ; Sat, 1 Oct 2016 19:08:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8D482288CF for ; Sat, 1 Oct 2016 19:08:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8090C28A42; Sat, 1 Oct 2016 19:08:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E195288CF for ; Sat, 1 Oct 2016 19:08:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751263AbcJATIR (ORCPT ); Sat, 1 Oct 2016 15:08:17 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33029 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750949AbcJATIQ (ORCPT ); Sat, 1 Oct 2016 15:08:16 -0400 Received: by mail-wm0-f68.google.com with SMTP id p138so8214906wmb.0 for ; Sat, 01 Oct 2016 12:08:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=hwWVE2rk+ifEXb7R65Iywl7bl50duECfhq1Ld4fqe/Q=; b=u4CdGjhDifoynXSQ75ktvVgErAk/h6ChVP/xPTzv3R1snyd+U1gRTHEKCFj3P5qi3O SL5a2Qg+YOZWrn1qrVQ1W2QclevPnf2S6H/x5iUHKLUe3fv6qUPh6pnxn5OKp+mP/8nR M3QOhkbLEb8+xzzzY73hdTXzU/H0KIpV+kM2OuGlPlfssgUyM/4ACr9P6FinlnNf45PL vyVtzCJ+rgTyc0jDJrOM4U8reLcxki0BYxkv5k0i+IyHhxi2G87eN4W0WHJT/oNELnWT FdtgbzfCRkzergnkQf0FuEjGpzJ4By5lmpbGTk4YvLRp8YPX4AixB6q/dPHYBnOsTQ9q eElA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=hwWVE2rk+ifEXb7R65Iywl7bl50duECfhq1Ld4fqe/Q=; b=VP0FQ221MnGMxHWpK3dLuxX0/X6FcidSIVDv7vGRB+ZUuHh+E4kmyzU9w4rVNFTN7y nf4si1RsJzWpbD1o/ROc4avHd7WHS2O1dvAK/ZLBjeGkkXIV3e83ltj+u7C5ygMBf9Bq K0bsNHuL1HAc2kmVN17CUeqiiHFOjDu4nc4RMo1Ce4i8m6hmY35ZyR6M1pvAAI5v2F7H koEy20d9Tiltmbgu5o4y2abbOq2+xTznkrE7p14sNzMrDKPbvGz5/ojBCg0Gbw7/V++H U+emwXOZ5PyoOkElXqdJL1pjGt+qb7fPJZsg2VR8jyNsmW9GR380dLTHH5Mz1HgtpoNk ih3w== X-Gm-Message-State: AA6/9RmreeJPo5PEv0wn/lsfF4PrNjDsCammuTb93BO/WHKlOvrjwsqwNyoyXnScqC/1Mw== X-Received: by 10.28.71.205 with SMTP id m74mr2913363wmi.47.1475348894867; Sat, 01 Oct 2016 12:08:14 -0700 (PDT) Received: from ?IPv6:2003:62:5f1b:3000:951e:39d0:4a9:15a1? (p200300625F1B3000951E39D004A915A1.dip0.t-ipconnect.de. [2003:62:5f1b:3000:951e:39d0:4a9:15a1]) by smtp.googlemail.com with ESMTPSA id gg10sm25961811wjd.4.2016.10.01.12.08.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 01 Oct 2016 12:08:14 -0700 (PDT) Subject: [PATCH v2] spi: fsl-espi: replace of_get_property with of_property_read_u32 To: Mark Brown References: <1d67ce99-42ea-c816-da35-e64575cca8ff@web.de> Cc: "linux-spi@vger.kernel.org" From: Heiner Kallweit Message-ID: <35013230-4ec5-d8ce-6383-00ba684dea7c@gmail.com> Date: Sat, 1 Oct 2016 21:07:52 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP of_property_read_u32 is better here than generic of_get_property: - implicit endianness conversion if needed - implicit checking of size of property Signed-off-by: Heiner Kallweit --- v2: - improved commit message --- drivers/spi/spi-fsl-espi.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c index 7451585..1f97cce 100644 --- a/drivers/spi/spi-fsl-espi.c +++ b/drivers/spi/spi-fsl-espi.c @@ -545,9 +545,8 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem, struct spi_master *master; struct mpc8xxx_spi *mpc8xxx_spi; struct device_node *nc; - const __be32 *prop; - u32 regval, csmode; - int i, len, ret; + u32 regval, csmode, cs, prop; + int ret; master = spi_alloc_master(dev, sizeof(struct mpc8xxx_spi)); if (!master) @@ -599,29 +598,29 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem, /* Init eSPI CS mode register */ for_each_available_child_of_node(master->dev.of_node, nc) { /* get chip select */ - prop = of_get_property(nc, "reg", &len); - if (!prop || len < sizeof(*prop)) - continue; - i = be32_to_cpup(prop); - if (i < 0 || i >= pdata->max_chipselect) + ret = of_property_read_u32(nc, "reg", &cs); + if (ret || cs >= pdata->max_chipselect) continue; csmode = CSMODE_INIT_VAL; + /* check if CSBEF is set in device tree */ - prop = of_get_property(nc, "fsl,csbef", &len); - if (prop && len >= sizeof(*prop)) { + ret = of_property_read_u32(nc, "fsl,csbef", &prop); + if (!ret) { csmode &= ~(CSMODE_BEF(0xf)); - csmode |= CSMODE_BEF(be32_to_cpup(prop)); + csmode |= CSMODE_BEF(prop); } + /* check if CSAFT is set in device tree */ - prop = of_get_property(nc, "fsl,csaft", &len); - if (prop && len >= sizeof(*prop)) { + ret = of_property_read_u32(nc, "fsl,csaft", &prop); + if (!ret) { csmode &= ~(CSMODE_AFT(0xf)); - csmode |= CSMODE_AFT(be32_to_cpup(prop)); + csmode |= CSMODE_AFT(prop); } - fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODEx(i), csmode); - dev_info(dev, "cs=%d, init_csmode=0x%x\n", i, csmode); + fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODEx(cs), csmode); + + dev_info(dev, "cs=%u, init_csmode=0x%x\n", cs, csmode); } /* Enable SPI interface */ @@ -660,16 +659,16 @@ static int of_fsl_espi_get_chipselects(struct device *dev) { struct device_node *np = dev->of_node; struct fsl_spi_platform_data *pdata = dev_get_platdata(dev); - const u32 *prop; - int len; + u32 num_cs; + int ret; - prop = of_get_property(np, "fsl,espi-num-chipselects", &len); - if (!prop || len < sizeof(*prop)) { + ret = of_property_read_u32(np, "fsl,espi-num-chipselects", &num_cs); + if (ret) { dev_err(dev, "No 'fsl,espi-num-chipselects' property\n"); return -EINVAL; } - pdata->max_chipselect = *prop; + pdata->max_chipselect = num_cs; pdata->cs_control = NULL; return 0;