OMAPDSS: picodlp: use devm_kzalloc for allocating driver data

Use devm_kzalloc instead of kzalloc to allocate driver data for the picodlp
panel driver. This simplifies the driver's probe and remove functions.

Signed-off-by: Archit Taneja <archit@ti.com>
This commit is contained in:
Archit Taneja 2012-11-20 14:23:27 +05:30 committed by Tomi Valkeinen
parent e4dace469f
commit e1b94f1df7
1 changed files with 6 additions and 10 deletions

View File

@ -423,11 +423,11 @@ static int picodlp_panel_probe(struct omap_dss_device *dssdev)
struct picodlp_panel_data *picodlp_pdata = get_panel_data(dssdev); struct picodlp_panel_data *picodlp_pdata = get_panel_data(dssdev);
struct i2c_adapter *adapter; struct i2c_adapter *adapter;
struct i2c_client *picodlp_i2c_client; struct i2c_client *picodlp_i2c_client;
int r = 0, picodlp_adapter_id; int picodlp_adapter_id;
dssdev->panel.timings = pico_ls_timings; dssdev->panel.timings = pico_ls_timings;
picod = kzalloc(sizeof(struct picodlp_data), GFP_KERNEL); picod = devm_kzalloc(&dssdev->dev, sizeof(*picod), GFP_KERNEL);
if (!picod) if (!picod)
return -ENOMEM; return -ENOMEM;
@ -438,25 +438,21 @@ static int picodlp_panel_probe(struct omap_dss_device *dssdev)
adapter = i2c_get_adapter(picodlp_adapter_id); adapter = i2c_get_adapter(picodlp_adapter_id);
if (!adapter) { if (!adapter) {
dev_err(&dssdev->dev, "can't get i2c adapter\n"); dev_err(&dssdev->dev, "can't get i2c adapter\n");
r = -ENODEV; return -ENODEV;
goto err;
} }
picodlp_i2c_client = i2c_new_device(adapter, &picodlp_i2c_board_info); picodlp_i2c_client = i2c_new_device(adapter, &picodlp_i2c_board_info);
if (!picodlp_i2c_client) { if (!picodlp_i2c_client) {
dev_err(&dssdev->dev, "can't add i2c device::" dev_err(&dssdev->dev, "can't add i2c device::"
" picodlp_i2c_client is NULL\n"); " picodlp_i2c_client is NULL\n");
r = -ENODEV; return -ENODEV;
goto err;
} }
picod->picodlp_i2c_client = picodlp_i2c_client; picod->picodlp_i2c_client = picodlp_i2c_client;
dev_set_drvdata(&dssdev->dev, picod); dev_set_drvdata(&dssdev->dev, picod);
return r;
err: return 0;
kfree(picod);
return r;
} }
static void picodlp_panel_remove(struct omap_dss_device *dssdev) static void picodlp_panel_remove(struct omap_dss_device *dssdev)