From: Jon Smirl Date: Wed, 20 Oct 2004 16:23:42 +0000 (+0000) Subject: Don't release an i2c channel that has not initialized correctly X-Git-Tag: submit/1.0/20121108.012404~1923 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=17ce33835a0b582d87343fab331d80342f268d4d;p=profile%2Fivi%2Flibdrm.git Don't release an i2c channel that has not initialized correctly --- diff --git a/linux-2.6/radeon_i2c.c b/linux-2.6/radeon_i2c.c index df51581..9fdb2b4 100644 --- a/linux-2.6/radeon_i2c.c +++ b/linux-2.6/radeon_i2c.c @@ -122,19 +122,23 @@ int radeon_create_i2c_busses(drm_device_t * dev) dev_priv->i2c[0].ddc_reg = GPIO_MONID; /* Don't return the error from setup. It is not fatal */ /* if the bus can not be initialized */ - setup_i2c_bus(&dev_priv->i2c[0], "monid"); + if (!setup_i2c_bus(&dev_priv->i2c[0], "monid")) + dev_priv->i2c[0].dev = NULL; dev_priv->i2c[1].dev = dev; dev_priv->i2c[1].ddc_reg = GPIO_DVI_DDC; - setup_i2c_bus(&dev_priv->i2c[1], "dvi"); + if (!setup_i2c_bus(&dev_priv->i2c[1], "dvi")) + dev_priv->i2c[1].dev = NULL; dev_priv->i2c[2].dev = dev; dev_priv->i2c[2].ddc_reg = GPIO_VGA_DDC; - setup_i2c_bus(&dev_priv->i2c[2], "vga"); + if (!setup_i2c_bus(&dev_priv->i2c[2], "vga")) + dev_priv->i2c[2].dev = NULL; dev_priv->i2c[3].dev = dev; dev_priv->i2c[3].ddc_reg = GPIO_CRT2_DDC; - setup_i2c_bus(&dev_priv->i2c[3], "crt2"); + if (!setup_i2c_bus(&dev_priv->i2c[3], "crt2")) + dev_priv->i2c[0].dev = NULL; return 0; } diff --git a/linux-core/radeon_i2c.c b/linux-core/radeon_i2c.c index 97770ca..32b68a2 100644 --- a/linux-core/radeon_i2c.c +++ b/linux-core/radeon_i2c.c @@ -121,19 +121,23 @@ int radeon_create_i2c_busses(drm_device_t * dev) dev_priv->i2c[0].ddc_reg = GPIO_MONID; /* Don't return the error from setup. It is not fatal */ /* if the bus can not be initialized */ - setup_i2c_bus(&dev_priv->i2c[0], "monid"); + if (!setup_i2c_bus(&dev_priv->i2c[0], "monid")) + dev_priv->i2c[0].dev = NULL; dev_priv->i2c[1].dev = dev; dev_priv->i2c[1].ddc_reg = GPIO_DVI_DDC; - setup_i2c_bus(&dev_priv->i2c[1], "dvi"); + if (!setup_i2c_bus(&dev_priv->i2c[1], "dvi")) + dev_priv->i2c[1].dev = NULL; dev_priv->i2c[2].dev = dev; dev_priv->i2c[2].ddc_reg = GPIO_VGA_DDC; - setup_i2c_bus(&dev_priv->i2c[2], "vga"); + if (!setup_i2c_bus(&dev_priv->i2c[2], "vga")) + dev_priv->i2c[2].dev = NULL; dev_priv->i2c[3].dev = dev; dev_priv->i2c[3].ddc_reg = GPIO_CRT2_DDC; - setup_i2c_bus(&dev_priv->i2c[3], "crt2"); + if (!setup_i2c_bus(&dev_priv->i2c[3], "crt2")) + dev_priv->i2c[0].dev = NULL; return 0; }