mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 00:21:59 +00:00
drm/radeon/kms: add pll quirk for toshiba laptop panel
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>
This commit is contained in:
parent
7c27f87d2b
commit
093972788f
@ -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;
|
||||
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user