Skip to content

Commit

Permalink
drm/radeon/kms: add pll quirk for toshiba laptop panel
Browse files Browse the repository at this point in the history
The panel on the Toshiba A300-1BU laptop does not like the
PLL dividers selected by the avivo pll algo, but works fine
using the older method.  Add a quirk to handle it.

Should fix fdo bug 26358.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
  • Loading branch information
Alex Deucher authored and Dave Airlie committed Feb 8, 2010
1 parent 7c27f87 commit 0939727
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/gpu/drm/radeon/radeon_atombios.c
Original file line number Diff line number Diff line change
Expand Up @@ -1073,6 +1073,21 @@ static struct radeon_atom_ss *radeon_atombios_get_ss_info(struct
return ss;
}

static void radeon_atom_apply_lvds_quirks(struct drm_device *dev,
struct radeon_encoder_atom_dig *lvds)
{

/* Toshiba A300-1BU laptop panel doesn't like new pll divider algo */
if ((dev->pdev->device == 0x95c4) &&
(dev->pdev->subsystem_vendor == 0x1179) &&
(dev->pdev->subsystem_device == 0xff50)) {
if ((lvds->native_mode.hdisplay == 1280) &&
(lvds->native_mode.vdisplay == 800))
lvds->pll_algo = PLL_ALGO_LEGACY;
}

}

union lvds_info {
struct _ATOM_LVDS_INFO info;
struct _ATOM_LVDS_INFO_V12 info_12;
Expand Down Expand Up @@ -1151,6 +1166,9 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
} else
lvds->pll_algo = PLL_ALGO_LEGACY;

/* LVDS quirks */
radeon_atom_apply_lvds_quirks(dev, lvds);

encoder->native_mode = lvds->native_mode;
}
return lvds;
Expand Down

0 comments on commit 0939727

Please sign in to comment.