提交 04e961fb 编写于 作者: J Jingoo Han 提交者: Linus Torvalds

backlight: lms283gf05: use devm_gpio_request()

The devm_ functions allocate memory that is released when a driver
detaches.  This patch uses devm_gpio_request() for these functions.
Signed-off-by: NJingoo Han <jg1.han@samsung.com>
Acked-by: NMarek Vasut <marek.vasut@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 f5b71941
...@@ -158,29 +158,27 @@ static int __devinit lms283gf05_probe(struct spi_device *spi) ...@@ -158,29 +158,27 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
int ret = 0; int ret = 0;
if (pdata != NULL) { if (pdata != NULL) {
ret = gpio_request(pdata->reset_gpio, "LMS285GF05 RESET"); ret = devm_gpio_request(&spi->dev, pdata->reset_gpio,
"LMS285GF05 RESET");
if (ret) if (ret)
return ret; return ret;
ret = gpio_direction_output(pdata->reset_gpio, ret = gpio_direction_output(pdata->reset_gpio,
!pdata->reset_inverted); !pdata->reset_inverted);
if (ret) if (ret)
goto err; return ret;
} }
st = devm_kzalloc(&spi->dev, sizeof(struct lms283gf05_state), st = devm_kzalloc(&spi->dev, sizeof(struct lms283gf05_state),
GFP_KERNEL); GFP_KERNEL);
if (st == NULL) { if (st == NULL) {
dev_err(&spi->dev, "No memory for device state\n"); dev_err(&spi->dev, "No memory for device state\n");
ret = -ENOMEM; return -ENOMEM;
goto err;
} }
ld = lcd_device_register("lms283gf05", &spi->dev, st, &lms_ops); ld = lcd_device_register("lms283gf05", &spi->dev, st, &lms_ops);
if (IS_ERR(ld)) { if (IS_ERR(ld))
ret = PTR_ERR(ld); return PTR_ERR(ld);
goto err;
}
st->spi = spi; st->spi = spi;
st->ld = ld; st->ld = ld;
...@@ -193,24 +191,14 @@ static int __devinit lms283gf05_probe(struct spi_device *spi) ...@@ -193,24 +191,14 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
lms283gf05_toggle(spi, disp_initseq, ARRAY_SIZE(disp_initseq)); lms283gf05_toggle(spi, disp_initseq, ARRAY_SIZE(disp_initseq));
return 0; return 0;
err:
if (pdata != NULL)
gpio_free(pdata->reset_gpio);
return ret;
} }
static int __devexit lms283gf05_remove(struct spi_device *spi) static int __devexit lms283gf05_remove(struct spi_device *spi)
{ {
struct lms283gf05_state *st = dev_get_drvdata(&spi->dev); struct lms283gf05_state *st = dev_get_drvdata(&spi->dev);
struct lms283gf05_pdata *pdata = st->spi->dev.platform_data;
lcd_device_unregister(st->ld); lcd_device_unregister(st->ld);
if (pdata != NULL)
gpio_free(pdata->reset_gpio);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册