lkml.org 
[lkml]   [2020]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH leds v2 37/50] leds: ns2: alloc simple array instead of struct ns2_led_priv
    Date
    Since .remove method is not needed now that we use devres, there is no
    need to remember the number of LEDs in struct ns2_led_priv. Alloc simple
    array of ns2_led_data structs.

    Signed-off-by: Marek Behún <marek.behun@nic.cz>
    Cc: Simon Guinot <simon.guinot@sequanux.org>
    Cc: Simon Guinot <sguinot@lacie.com>
    Cc: Vincent Donnefort <vdonnefort@gmail.com>
    Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    ---
    drivers/leds/leds-ns2.c | 21 +++++++--------------
    1 file changed, 7 insertions(+), 14 deletions(-)

    diff --git a/drivers/leds/leds-ns2.c b/drivers/leds/leds-ns2.c
    index 1a7ef66464b5d..8cd020b340840 100644
    --- a/drivers/leds/leds-ns2.c
    +++ b/drivers/leds/leds-ns2.c
    @@ -334,15 +334,10 @@ static const struct of_device_id of_ns2_leds_match[] = {
    MODULE_DEVICE_TABLE(of, of_ns2_leds_match);
    #endif /* CONFIG_OF_GPIO */

    -struct ns2_led_priv {
    - int num_leds;
    - struct ns2_led_data leds_data[];
    -};
    -
    static int ns2_led_probe(struct platform_device *pdev)
    {
    struct ns2_led_platform_data *pdata = dev_get_platdata(&pdev->dev);
    - struct ns2_led_priv *priv;
    + struct ns2_led_data *leds;
    int i;
    int ret;

    @@ -363,20 +358,18 @@ static int ns2_led_probe(struct platform_device *pdev)
    return -EINVAL;
    #endif /* CONFIG_OF_GPIO */

    - priv = devm_kzalloc(&pdev->dev, struct_size(priv, leds_data, pdata->num_leds), GFP_KERNEL);
    - if (!priv)
    + leds = devm_kzalloc(&pdev->dev, array_size(sizeof(*leds),
    + pdata->num_leds),
    + GFP_KERNEL);
    + if (!leds)
    return -ENOMEM;
    - priv->num_leds = pdata->num_leds;

    - for (i = 0; i < priv->num_leds; i++) {
    - ret = create_ns2_led(pdev, &priv->leds_data[i],
    - &pdata->leds[i]);
    + for (i = 0; i < pdata->num_leds; i++) {
    + ret = create_ns2_led(pdev, &leds[i], &pdata->leds[i]);
    if (ret < 0)
    return ret;
    }

    - platform_set_drvdata(pdev, priv);
    -
    return 0;
    }

    --
    2.26.2
    \
     
     \ /
      Last update: 2020-09-18 00:35    [W:4.103 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site