Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752176AbbH1JMg (ORCPT ); Fri, 28 Aug 2015 05:12:36 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:37266 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751652AbbH1JMc (ORCPT ); Fri, 28 Aug 2015 05:12:32 -0400 From: Milo Kim To: , CC: Milo Kim , Dmitry Torokhov , Felipe Balbi , Greg Kroah-Hartman , Lee Jones , Rob Herring , Samuel Ortiz , Tony Lindgren , Subject: [RFC 4/4] usb: musb: use of_dev_get_platdata() Date: Fri, 28 Aug 2015 18:12:08 +0900 Message-ID: <1440753128-3288-5-git-send-email-milo.kim@ti.com> X-Mailer: git-send-email 1.9.5.msysgit.0 In-Reply-To: <1440753128-3288-4-git-send-email-milo.kim@ti.com> References: <1440753128-3288-1-git-send-email-milo.kim@ti.com> <1440753128-3288-2-git-send-email-milo.kim@ti.com> <1440753128-3288-3-git-send-email-milo.kim@ti.com> <1440753128-3288-4-git-send-email-milo.kim@ti.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3072 Lines: 106 'of_dev_get_platdata()' makes if-statements simple. Cc: Dmitry Torokhov Cc: Felipe Balbi Cc: Grant Likely Cc: Greg Kroah-Hartman Cc: Lee Jones Cc: Rob Herring Cc: Samuel Ortiz Cc: Tony Lindgren Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Milo Kim --- drivers/usb/musb/ux500.c | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/drivers/usb/musb/ux500.c b/drivers/usb/musb/ux500.c index 39168fe..851cf4a 100644 --- a/drivers/usb/musb/ux500.c +++ b/drivers/usb/musb/ux500.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -200,21 +201,16 @@ static const struct musb_platform_ops ux500_ops = { .set_vbus = ux500_musb_set_vbus, }; -static struct musb_hdrc_platform_data * -ux500_of_probe(struct platform_device *pdev, struct device_node *np) +static int ux500_of_probe(struct device *dev, void *data, void *priv) { - struct musb_hdrc_platform_data *pdata; + struct musb_hdrc_platform_data *pdata = data; const char *mode; int strlen; - pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); - if (!pdata) - return NULL; - - mode = of_get_property(np, "dr_mode", &strlen); + mode = of_get_property(dev->of_node, "dr_mode", &strlen); if (!mode) { - dev_err(&pdev->dev, "No 'dr_mode' property found\n"); - return NULL; + dev_err(dev, "No 'dr_mode' property found\n"); + return -EINVAL; } if (strlen > 0) { @@ -226,31 +222,27 @@ ux500_of_probe(struct platform_device *pdev, struct device_node *np) pdata->mode = MUSB_PERIPHERAL; } - return pdata; + return 0; } static int ux500_probe(struct platform_device *pdev) { struct resource musb_resources[2]; - struct musb_hdrc_platform_data *pdata = dev_get_platdata(&pdev->dev); - struct device_node *np = pdev->dev.of_node; + struct musb_hdrc_platform_data *pdata; struct platform_device *musb; struct ux500_glue *glue; struct clk *clk; int ret = -ENOMEM; - if (!pdata) { - if (np) { - pdata = ux500_of_probe(pdev, np); - if (!pdata) - goto err0; + pdata = of_dev_get_platdata(&pdev->dev, sizeof(*pdata), + ux500_of_probe, NULL); + if (IS_ERR(pdata)) + return PTR_ERR(pdata); - pdev->dev.platform_data = pdata; - } else { - dev_err(&pdev->dev, "no pdata or device tree found\n"); - goto err0; - } - } + if (!pdata) + goto err0; + + pdev->dev.platform_data = pdata; glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL); if (!glue) -- 1.9.1 -- 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/