aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_i2c.c13
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_mode.c7
2 files changed, 13 insertions, 7 deletions
diff --git a/drivers/gpu/drm/mgag200/mgag200_i2c.c b/drivers/gpu/drm/mgag200/mgag200_i2c.c
index ac8e34eef513..31e2c641a781 100644
--- a/drivers/gpu/drm/mgag200/mgag200_i2c.c
+++ b/drivers/gpu/drm/mgag200/mgag200_i2c.c
@@ -120,7 +120,7 @@ struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev)
i2c = kzalloc(sizeof(struct mga_i2c_chan), GFP_KERNEL);
if (!i2c)
- return NULL;
+ return ERR_PTR(-ENOMEM);
i2c->data = data;
i2c->clock = clock;
@@ -142,11 +142,14 @@ struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev)
i2c->bit.getscl = mga_gpio_getscl;
ret = i2c_bit_add_bus(&i2c->adapter);
- if (ret) {
- kfree(i2c);
- i2c = NULL;
- }
+ if (ret)
+ goto err_kfree;
+
return i2c;
+
+err_kfree:
+ kfree(i2c);
+ return ERR_PTR(ret);
}
void mgag200_i2c_destroy(struct mga_i2c_chan *i2c)
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
index 762b9657ae8d..b227891d01ec 100644
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
@@ -849,8 +849,11 @@ static int mgag200_vga_connector_init(struct mga_device *mdev)
int ret;
i2c = mgag200_i2c_create(dev);
- if (!i2c)
- drm_warn(dev, "failed to add DDC bus\n");
+ if (IS_ERR(i2c)) {
+ ret = PTR_ERR(i2c)
+ drm_err(dev, "failed to add DDC bus: %d\n", ret);
+ return ret;
+ }
ret = drm_connector_init_with_ddc(dev, connector,
&mga_vga_connector_funcs,