On Wed, 2009-09-09 at 17:40 +1000, Dave Airlie wrote: 
> From: Dave Airlie <airl...@redhat.com>
> 
> This adds:
> coherent mode: TMDS coherent mode for atom cards.
> scaling mode: LVDS scaler mode
> load detect: DAC load detection, DVI-I, VGA, TV
> tmds pll: legacy TMDS pll selection
> tv standard: TV standard selection.
> 
> TODO: other TV ones? dvi subconnector selection using std prop

I haven't tried the patch nor looked at it in detail, but I stumbled
over two places where ATOM vs. COM BIOS calls seem reversed:


> +     if (property == rdev->mode_info.tmds_pll_property) {
> +             struct radeon_encoder_int_tmds *tmds = NULL;
> +             bool ret = false;
> +             /* need to find digital encoder on connector */
> +             encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS);
> +             if (!encoder)
> +                     return 0;
> +
> +             radeon_encoder = to_radeon_encoder(encoder);
> +
> +             tmds = radeon_encoder->enc_priv;
> +             if (!tmds)
> +                     return 0;
> +
> +             if (val == 0) {
> +                     if (rdev->is_atom_bios) 
> +                             ret = 
> radeon_legacy_get_tmds_info_from_combios(radeon_encoder, tmds);
> +                     else
> +                             ret = 
> radeon_atombios_get_tmds_info(radeon_encoder, tmds);
> +             }
> +             if (val == 1 || ret == false) {
> +                     radeon_legacy_get_tmds_info_from_table(radeon_encoder, 
> tmds);
> +             }
> +             radeon_property_change_mode(&radeon_encoder->base);
> +     }
> +
>       return 0;
>  }
>  

[...]

> +static struct radeon_encoder_int_tmds *radeon_legacy_get_tmds_info(struct 
> radeon_encoder *encoder)
> +{
> +     struct drm_device *dev = encoder->base.dev;
> +     struct radeon_device *rdev = dev->dev_private;
> +     struct radeon_encoder_int_tmds *tmds = NULL;
> +     bool ret;
> +
> +     tmds = kzalloc(sizeof(struct radeon_encoder_int_tmds), GFP_KERNEL);
> +
> +     if (!tmds)
> +             return NULL;
> +
> +     if (rdev->is_atom_bios) 
> +             ret = radeon_legacy_get_tmds_info_from_combios(encoder, tmds);
> +     else
> +             ret = radeon_atombios_get_tmds_info(encoder, tmds);
> +
> +     if (ret == false)
> +             radeon_legacy_get_tmds_info_from_table(encoder, tmds);
> +
> +     return tmds;
> +}

-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to