>From c33d72912856c0c8fc7586170d10a906d7f854be Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexdeuc...@gmail.com> Date: Mon, 8 Feb 2010 14:40:24 -0500 Subject: [PATCH] drm/radeon/kms: more hw i2c fixes
- rs300 doesn't have a pin select bit - r200 has a different pin select setup Signed-off-by: Alex Deucher <alexdeuc...@gmail.com> --- drivers/gpu/drm/radeon/radeon_combios.c | 12 +++++++++++- drivers/gpu/drm/radeon/radeon_i2c.c | 16 +++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index 1d398af..31e4a61 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c @@ -513,6 +513,7 @@ static struct radeon_i2c_bus_rec combios_setup_i2c_bus(struct radeon_device *rde case CHIP_RS100: case CHIP_RV200: case CHIP_RS200: + case CHIP_RS300: switch (ddc_line) { case RADEON_GPIO_DVI_DDC: /* in theory this should be hw capable, @@ -526,8 +527,17 @@ static struct radeon_i2c_bus_rec combios_setup_i2c_bus(struct radeon_device *rde } break; case CHIP_R200: + switch (ddc_line) { + case RADEON_GPIO_DVI_DDC: + case RADEON_GPIO_MONID: + i2c.hw_capable = true; + break; + default: + i2c.hw_capable = false; + break; + } + break; case CHIP_RV250: - case CHIP_RS300: case CHIP_RV280: switch (ddc_line) { case RADEON_GPIO_VGA_DDC: diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c index b715632..272c45d 100644 --- a/drivers/gpu/drm/radeon/radeon_i2c.c +++ b/drivers/gpu/drm/radeon/radeon_i2c.c @@ -228,6 +228,7 @@ static int r100_hw_i2c_xfer(struct i2c_adapter *i2c_adap, case CHIP_RS100: case CHIP_RV200: case CHIP_RS200: + case CHIP_RS300: switch (rec->mask_clk_reg) { case RADEON_GPIO_DVI_DDC: /* no gpio select bit */ @@ -239,8 +240,21 @@ static int r100_hw_i2c_xfer(struct i2c_adapter *i2c_adap, } break; case CHIP_R200: + /* only bit 4 on r200 */ + switch (rec->mask_clk_reg) { + case RADEON_GPIO_DVI_DDC: + reg |= R200_DVI_I2C_PIN_SEL(R200_SEL_DDC1); + break; + case RADEON_GPIO_MONID: + reg |= R200_DVI_I2C_PIN_SEL(R200_SEL_DDC3); + break; + default: + DRM_ERROR("gpio not supported with hw i2c\n"); + ret = -EINVAL; + goto done; + } + break; case CHIP_RV250: - case CHIP_RS300: case CHIP_RV280: /* bits 3 and 4 */ switch (rec->mask_clk_reg) { -- 1.5.6.3
0001-drm-radeon-kms-more-hw-i2c-fixes.patch
Description: application/mbox
------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com
-- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel