All of lore.kernel.org
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6.2/7] MMC: mmci: Enable Device Tree support for ux500
Date: Thu, 03 May 2012 16:18:48 +0100	[thread overview]
Message-ID: <4FA2A1D8.3070901@linaro.org> (raw)
In-Reply-To: <20120503151253.GE897@n2100.arm.linux.org.uk>

On 03/05/12 16:12, Russell King - ARM Linux wrote:
> On Thu, May 03, 2012 at 04:03:34PM +0100, Lee Jones wrote:
>> +#ifdef CONFIG_OF
>> +static void mmci_dt_populate_generic_pdata(struct device_node *np,
>> +					struct mmci_platform_data *pdata)
>> +{
>> +	int bus_width = 0;
>> +
>> +	of_property_read_u32(np, "wp-gpios",&pdata->gpio_wp);
>> +	if (!pdata->gpio_wp)
>> +		pdata->gpio_wp = -1;
>> +
>> +	of_property_read_u32(np, "cd-gpios",&pdata->gpio_cd);
>> +	if (!pdata->gpio_cd)
>> +		pdata->gpio_cd = -1;
>> +
>> +	if (of_get_property(np, "cd-inverted", NULL))
>> +		pdata->cd_invert = true;
>> +	else
>> +		pdata->cd_invert = false;
>> +
>> +	of_property_read_u32(np, "max-frequency",&pdata->f_max);
>> +	if (!pdata->f_max)
>> +		pr_warn("%s has no 'max-frequency' property\n", np->full_name);
>> +
>> +	if (of_get_property(np, "mmc-cap-mmc-highspeed", NULL))
>> +		pdata->capabilities |= MMC_CAP_MMC_HIGHSPEED;
>> +	if (of_get_property(np, "mmc-cap-sd-highspeed", NULL))
>> +		pdata->capabilities |= MMC_CAP_SD_HIGHSPEED;
>> +
>> +	of_property_read_u32(np, "bus-width",&bus_width);
>> +	switch (bus_width) {
>> +	case 0 :
>> +		/* No bus-width supplied. */
>> +		break;
>> +	case 4 :
>> +		pdata->capabilities |= MMC_CAP_4_BIT_DATA;
>> +		break;
>> +	case 8 :
>> +		pdata->capabilities |= MMC_CAP_8_BIT_DATA;
>> +		break;
>> +	default :
>> +		pr_warn("%s: Unsupported bus width\n", np->full_name);
>> +	}
>> +}
>> +#endif
>> +
>>   static int __devinit mmci_probe(struct amba_device *dev,
>>   	const struct amba_id *id)
>>   {
>>   	struct mmci_platform_data *plat = dev->dev.platform_data;
>> +	struct device_node *np = dev->dev.of_node;
>>   	struct variant_data *variant = id->data;
>>   	struct mmci_host *host;
>>   	struct mmc_host *mmc;
>> -	int ret;
>> +	int ret, freeplat = 0;
>> +
>> +	/* Must have platform data or Device Tree. */
>> +	if (!plat&&  !np) {
>> +		dev_err(&dev->dev, "No plat data or DT found\n");
>> +		return -EINVAL;
>> +	}
>>
>> -	/* must have platform data */
>>   	if (!plat) {
>> -		ret = -EINVAL;
>> -		goto out;
>> +		plat = kzalloc(sizeof(*plat), GFP_KERNEL);
>
> I think this will leak memory - consider what happens if the driver gets
> bound and unbound from the same device a number of times.
>
> How about using devm_kzalloc() instead, so that when probe fails or the
> driver is unbound, the memory is automatically freed?  No need for that
> freeplat variable either...

Makes sense. Give me a few moments.

>> +		if (!plat)
>> +			return -ENOMEM;
>> +		freeplat = 1;
>>   	}
>>
>> +	if (np)
>> +		mmci_dt_populate_generic_pdata(np, plat);
>> +
>>   	ret = amba_request_regions(dev, DRIVER_NAME);
>>   	if (ret)
>>   		goto out;
>> @@ -1448,6 +1505,9 @@ static int __devinit mmci_probe(struct amba_device *dev,
>>    rel_regions:
>>   	amba_release_regions(dev);
>>    out:
>> +	if (freeplat)
>> +		kfree(plat);
>> +
>>   	return ret;
>>   }
>>
>> --
>> 1.7.9.5


-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2012-05-03 15:18 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-13 14:05 [PATCH 0/7 v2] Next round of DT enablement for ux500/Snowball Lee Jones
2012-04-13 14:05 ` [PATCH 1/7] ARM: ux500: Rename the DT compatible entry for i2c devices on Snowball Lee Jones
2012-04-16  8:34   ` Linus Walleij
2012-04-13 14:05 ` [PATCH 2/7] ARM: ux500: Shorten Snowball's DT compatible gpio entry Lee Jones
2012-04-16  8:36   ` Linus Walleij
2012-04-16  9:00     ` Lee Jones
2012-04-13 14:05 ` [PATCH 3/7] drivers/gpio: gpio-nomadik: Apply Device Tree bindings Lee Jones
2012-04-16  8:40   ` Linus Walleij
2012-05-17 21:33   ` Grant Likely
2012-05-18  7:37     ` Lee Jones
2012-04-13 14:05 ` [PATCH 4/7] drivers/gpio: gpio-nomadik: Provide documentation for " Lee Jones
2012-04-13 14:59   ` Lee Jones
2012-04-16  8:43     ` Linus Walleij
2012-04-13 14:05 ` [PATCH 5/7] ARM: ux500: Rename gpio_keys in the Device Tree file Lee Jones
2012-04-13 14:05 ` [PATCH 6/7] MMC: mmci: Enable Device Tree support for ux500 variants Lee Jones
2012-04-13 14:42   ` Pawel Moll
2012-04-13 14:51     ` Arnd Bergmann
2012-04-13 14:54       ` Lee Jones
2012-04-13 15:05         ` Pawel Moll
2012-04-13 15:16           ` Lee Jones
2012-04-13 15:27             ` Pawel Moll
2012-04-16  8:48   ` Linus Walleij
2012-04-16  9:06     ` Lee Jones
2012-04-16  9:18       ` Linus Walleij
2012-04-16  9:25     ` [PATCH 6.1/7] ARM: ux500: Enable Device Tree support mmci for Snowball Lee Jones
2012-04-16  9:26     ` [PATCH 6.2/7] MMC: mmci: Enable Device Tree support for ux500 Lee Jones
2012-04-25 18:57       ` Russell King - ARM Linux
2012-04-30  8:25         ` Lee Jones
2012-05-03 15:03         ` Lee Jones
2012-05-03 15:12           ` Russell King - ARM Linux
2012-05-03 15:18             ` Lee Jones [this message]
2012-05-03 15:30             ` Lee Jones
2012-05-03 16:30               ` Russell King - ARM Linux
2012-05-03 16:38                 ` Lee Jones
2012-05-03 16:45                   ` Russell King - ARM Linux
2012-05-03 16:59                     ` Lee Jones
2012-05-03 17:13                       ` Mark Brown
2012-05-03 21:21                         ` Lee Jones
2012-05-03 17:09                     ` Chris Ball
2012-05-04 13:18                       ` Lee Jones
2012-05-04 13:26                         ` Chris Ball
2012-05-04 13:39                           ` Lee Jones
2012-05-07 22:00                             ` Paul Gortmaker
2012-05-07 22:00                               ` Paul Gortmaker
2012-05-08 11:19                               ` Lee Jones
2012-05-08 11:19                                 ` Lee Jones
2012-05-08 12:18                                 ` Chris Ball
2012-05-08 12:18                                   ` Chris Ball
2012-05-08 12:59                                   ` Lee Jones
2012-05-08 12:59                                     ` Lee Jones
2012-05-08 14:38                                     ` Chris Ball
2012-05-08 14:38                                       ` Chris Ball
2012-05-08 23:58                                     ` Paul Gortmaker
2012-05-08 23:58                                       ` Paul Gortmaker
2012-05-09  0:29                                       ` Chris Ball
2012-05-09  0:29                                         ` Chris Ball
2012-05-09  0:52                                         ` Paul Gortmaker
2012-05-09  0:52                                           ` Paul Gortmaker
     [not found]                           ` <4FA3DEEF.2010206@linaro.org>
2012-05-04 14:08                             ` Chris Ball
2012-06-04 10:14       ` Russell King - ARM Linux
2012-06-05 10:47         ` Lee Jones
2012-06-05 10:52           ` Russell King - ARM Linux
2012-06-05 12:59             ` Linus Walleij
2012-06-06  8:09               ` Lee Jones
2012-06-11 10:03               ` Lee Jones
2012-06-11 10:34                 ` Linus Walleij
2012-04-13 14:05 ` [PATCH 7/7] MMC: mmci: Add required documentation for Device Tree bindings Lee Jones
2012-04-18 14:31   ` Pawel Moll
2012-04-18 15:01     ` Pawel Moll
2012-04-18 15:12     ` Lee Jones
2012-04-18 15:20       ` Chris Ball
2012-04-18 15:25         ` Lee Jones
2012-04-18 15:20   ` [PATCH 7/7 v2] " Lee Jones
2012-05-17 21:23   ` [PATCH 7/7] " Grant Likely
2012-04-13 14:21 ` [PATCH 0/7 v2] Next round of DT enablement for ux500/Snowball Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FA2A1D8.3070901@linaro.org \
    --to=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.