backlight: lms283gf05: use devm_ functions
[sfrench/cifs-2.6.git] / drivers / video / backlight / lms283gf05.c
index 4161f9e3982a2a544120142f100e45afa34b5d2c..a9f2c36966f1ff60fcf0a8873c1d01f93017c500 100644 (file)
@@ -168,7 +168,8 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
                        goto err;
        }
 
-       st = kzalloc(sizeof(struct lms283gf05_state), GFP_KERNEL);
+       st = devm_kzalloc(&spi->dev, sizeof(struct lms283gf05_state),
+                               GFP_KERNEL);
        if (st == NULL) {
                dev_err(&spi->dev, "No memory for device state\n");
                ret = -ENOMEM;
@@ -178,7 +179,7 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
        ld = lcd_device_register("lms283gf05", &spi->dev, st, &lms_ops);
        if (IS_ERR(ld)) {
                ret = PTR_ERR(ld);
-               goto err2;
+               goto err;
        }
 
        st->spi = spi;
@@ -193,8 +194,6 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
 
        return 0;
 
-err2:
-       kfree(st);
 err:
        if (pdata != NULL)
                gpio_free(pdata->reset_gpio);
@@ -212,8 +211,6 @@ static int __devexit lms283gf05_remove(struct spi_device *spi)
        if (pdata != NULL)
                gpio_free(pdata->reset_gpio);
 
-       kfree(st);
-
        return 0;
 }