radeon_hd: Don't pass old pixel clock to encoder
* pll_set can make pixel clock adjustments. * Anything after pll_set should use encoder pll to ensure adjustments are picked up.
This commit is contained in:
parent
d8ac7e28ee
commit
5e87e39562
|
@ -282,12 +282,16 @@ encoder_apply_quirks(uint8 crtcID)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
encoder_mode_set(uint8 id, uint32 pixelClock)
|
encoder_mode_set(uint8 crtcID)
|
||||||
{
|
{
|
||||||
TRACE("%s\n", __func__);
|
TRACE("%s\n", __func__);
|
||||||
radeon_shared_info &info = *gInfo->shared_info;
|
radeon_shared_info &info = *gInfo->shared_info;
|
||||||
uint32 connectorIndex = gDisplay[id]->connectorIndex;
|
uint32 connectorIndex = gDisplay[crtcID]->connectorIndex;
|
||||||
uint16 encoderFlags = gConnector[connectorIndex]->encoder.flags;
|
uint16 encoderFlags = gConnector[connectorIndex]->encoder.flags;
|
||||||
|
pll_info* pll = &gConnector[connectorIndex]->encoder.pll;
|
||||||
|
|
||||||
|
// Adjusted pixel clock (*NOT* original mode pixel clock)
|
||||||
|
uint32 pixelClock = pll->pixelClock;
|
||||||
|
|
||||||
switch (gConnector[connectorIndex]->encoder.objectID) {
|
switch (gConnector[connectorIndex]->encoder.objectID) {
|
||||||
case ENCODER_OBJECT_ID_INTERNAL_DAC1:
|
case ENCODER_OBJECT_ID_INTERNAL_DAC1:
|
||||||
|
@ -367,7 +371,7 @@ encoder_mode_set(uint8 id, uint32 pixelClock)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
encoder_apply_quirks(id);
|
encoder_apply_quirks(crtcID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ void encoder_assign_crtc(uint8 crtcID);
|
||||||
uint32 encoder_pick_dig(uint32 connectorIndex);
|
uint32 encoder_pick_dig(uint32 connectorIndex);
|
||||||
|
|
||||||
void encoder_apply_quirks(uint8 crtcID);
|
void encoder_apply_quirks(uint8 crtcID);
|
||||||
void encoder_mode_set(uint8 id, uint32 pixelClock);
|
void encoder_mode_set(uint8 crtcID);
|
||||||
status_t encoder_analog_setup(uint32 connectorIndex,
|
status_t encoder_analog_setup(uint32 connectorIndex,
|
||||||
uint32 pixelClock, int command);
|
uint32 pixelClock, int command);
|
||||||
status_t encoder_digital_setup(uint32 connectorIndex,
|
status_t encoder_digital_setup(uint32 connectorIndex,
|
||||||
|
|
|
@ -193,7 +193,7 @@ radeon_set_display_mode(display_mode* mode)
|
||||||
display_crtc_scale(id, mode);
|
display_crtc_scale(id, mode);
|
||||||
|
|
||||||
// *** encoder mode set
|
// *** encoder mode set
|
||||||
encoder_mode_set(id, mode->timing.pixel_clock);
|
encoder_mode_set(id);
|
||||||
|
|
||||||
// *** CRT controler commit
|
// *** CRT controler commit
|
||||||
display_crtc_dpms(id, B_DPMS_ON);
|
display_crtc_dpms(id, B_DPMS_ON);
|
||||||
|
|
Loading…
Reference in New Issue