Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754175AbaKDOSf (ORCPT ); Tue, 4 Nov 2014 09:18:35 -0500 Received: from mail-wi0-f175.google.com ([209.85.212.175]:63530 "EHLO mail-wi0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754032AbaKDOSc (ORCPT ); Tue, 4 Nov 2014 09:18:32 -0500 From: Grant Likely Subject: Re: [PATCH v6 04/12] misc: at25: Make use of device property API To: "Rafael J. Wysocki" , Linux Kernel Mailing List Cc: ACPI Devel Maling List , Greg Kroah-Hartman , Darren Hart , Mika Westerberg , Aaron Lu , Arnd Bergmann , devicetree@vger.kernel.org, Linus Walleij , Alexandre Courbot , Dmitry Torokhov , Bryan Wu In-Reply-To: <5019278.RtDq7RlWqt@vostro.rjw.lan> References: <13750506.S2yVlRRDa2@vostro.rjw.lan> <5019278.RtDq7RlWqt@vostro.rjw.lan> Date: Tue, 04 Nov 2014 14:18:26 +0000 Message-Id: <20141104141826.36F8AC408F6@trevor.secretlab.ca> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 21 Oct 2014 23:19:56 +0200 , "Rafael J. Wysocki" wrote: > From: Mika Westerberg > > Make use of device property API in this driver so that both DT and ACPI > based systems can use this driver. > > Signed-off-by: Mika Westerberg > Signed-off-by: Rafael J. Wysocki > --- > drivers/misc/eeprom/at25.c | 34 +++++++++++++--------------------- > 1 file changed, 13 insertions(+), 21 deletions(-) > > Index: linux-pm/drivers/misc/eeprom/at25.c > =================================================================== > --- linux-pm.orig/drivers/misc/eeprom/at25.c > +++ linux-pm/drivers/misc/eeprom/at25.c > @@ -18,7 +18,7 @@ > > #include > #include > -#include > +#include > > /* > * NOTE: this is an *EEPROM* driver. The vagaries of product naming > @@ -301,35 +301,33 @@ static ssize_t at25_mem_write(struct mem > > /*-------------------------------------------------------------------------*/ > > -static int at25_np_to_chip(struct device *dev, > - struct device_node *np, > - struct spi_eeprom *chip) > +static int at25_fw_to_chip(struct device *dev, struct spi_eeprom *chip) > { > u32 val; > > memset(chip, 0, sizeof(*chip)); > - strncpy(chip->name, np->name, sizeof(chip->name)); > + strncpy(chip->name, "at25", sizeof(chip->name)); This line changes behaviour of the driver. It's possibly not a problem, but it should be commented on and whether any due diligance has been done to make sure it there isn't anything that depends on it. Otherwise: Acked-by: Grant Likely > > - if (of_property_read_u32(np, "size", &val) == 0 || > - of_property_read_u32(np, "at25,byte-len", &val) == 0) { > + if (device_property_read_u32(dev, "size", &val) == 0 || > + device_property_read_u32(dev, "at25,byte-len", &val) == 0) { > chip->byte_len = val; > } else { > dev_err(dev, "Error: missing \"size\" property\n"); > return -ENODEV; > } > > - if (of_property_read_u32(np, "pagesize", &val) == 0 || > - of_property_read_u32(np, "at25,page-size", &val) == 0) { > + if (device_property_read_u32(dev, "pagesize", &val) == 0 || > + device_property_read_u32(dev, "at25,page-size", &val) == 0) { > chip->page_size = (u16)val; > } else { > dev_err(dev, "Error: missing \"pagesize\" property\n"); > return -ENODEV; > } > > - if (of_property_read_u32(np, "at25,addr-mode", &val) == 0) { > + if (device_property_read_u32(dev, "at25,addr-mode", &val) == 0) { > chip->flags = (u16)val; > } else { > - if (of_property_read_u32(np, "address-width", &val)) { > + if (device_property_read_u32(dev, "address-width", &val)) { > dev_err(dev, > "Error: missing \"address-width\" property\n"); > return -ENODEV; > @@ -350,7 +348,7 @@ static int at25_np_to_chip(struct device > val); > return -ENODEV; > } > - if (of_find_property(np, "read-only", NULL)) > + if (device_property_present(dev, "read-only")) > chip->flags |= EE_READONLY; > } > return 0; > @@ -360,21 +358,15 @@ static int at25_probe(struct spi_device > { > struct at25_data *at25 = NULL; > struct spi_eeprom chip; > - struct device_node *np = spi->dev.of_node; > int err; > int sr; > int addrlen; > > /* Chip description */ > if (!spi->dev.platform_data) { > - if (np) { > - err = at25_np_to_chip(&spi->dev, np, &chip); > - if (err) > - return err; > - } else { > - dev_err(&spi->dev, "Error: no chip description\n"); > - return -ENODEV; > - } > + err = at25_fw_to_chip(&spi->dev, &chip); > + if (err) > + return err; > } else > chip = *(struct spi_eeprom *)spi->dev.platform_data; > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/