Skip to content

Commit

Permalink
backlight: tdo24m: use devm_ functions
Browse files Browse the repository at this point in the history
The devm_ functions allocate memory that is released when a driver
detaches.  This patch uses devm_kzalloc of these functions.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Jingoo Han authored and Linus Torvalds committed May 29, 2012
1 parent 541f936 commit d073adc
Showing 1 changed file with 6 additions and 15 deletions.
21 changes: 6 additions & 15 deletions drivers/video/backlight/tdo24m.c
Original file line number Diff line number Diff line change
Expand Up @@ -349,19 +349,17 @@ static int __devinit tdo24m_probe(struct spi_device *spi)
if (err)
return err;

lcd = kzalloc(sizeof(struct tdo24m), GFP_KERNEL);
lcd = devm_kzalloc(&spi->dev, sizeof(struct tdo24m), GFP_KERNEL);
if (!lcd)
return -ENOMEM;

lcd->spi_dev = spi;
lcd->power = FB_BLANK_POWERDOWN;
lcd->mode = MODE_VGA; /* default to VGA */

lcd->buf = kmalloc(TDO24M_SPI_BUFF_SIZE, GFP_KERNEL);
if (lcd->buf == NULL) {
kfree(lcd);
lcd->buf = devm_kzalloc(&spi->dev, TDO24M_SPI_BUFF_SIZE, GFP_KERNEL);
if (lcd->buf == NULL)
return -ENOMEM;
}

m = &lcd->msg;
x = &lcd->xfer;
Expand All @@ -383,15 +381,13 @@ static int __devinit tdo24m_probe(struct spi_device *spi)
break;
default:
dev_err(&spi->dev, "Unsupported model");
goto out_free;
return -EINVAL;
}

lcd->lcd_dev = lcd_device_register("tdo24m", &spi->dev,
lcd, &tdo24m_ops);
if (IS_ERR(lcd->lcd_dev)) {
err = PTR_ERR(lcd->lcd_dev);
goto out_free;
}
if (IS_ERR(lcd->lcd_dev))
return PTR_ERR(lcd->lcd_dev);

dev_set_drvdata(&spi->dev, lcd);
err = tdo24m_power(lcd, FB_BLANK_UNBLANK);
Expand All @@ -402,9 +398,6 @@ static int __devinit tdo24m_probe(struct spi_device *spi)

out_unregister:
lcd_device_unregister(lcd->lcd_dev);
out_free:
kfree(lcd->buf);
kfree(lcd);
return err;
}

Expand All @@ -414,8 +407,6 @@ static int __devexit tdo24m_remove(struct spi_device *spi)

tdo24m_power(lcd, FB_BLANK_POWERDOWN);
lcd_device_unregister(lcd->lcd_dev);
kfree(lcd->buf);
kfree(lcd);

return 0;
}
Expand Down

0 comments on commit d073adc

Please sign in to comment.