diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2017-12-20 20:42:54 -0600 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2017-12-20 20:42:54 -0600 |
commit | 1f4fd28b66cb2db0ef0b4c6373a485279e14abf5 (patch) | |
tree | 5cb5dd329042595567ce6ecc37532933add10b82 | |
parent | 2a574d3a7aa5e7fa09063c819482e701ab1b5173 (diff) |
drm/openchrome: Changing P4M800 Pro IGA1 and IGA2 display FIFO parameters
The display FIFO parameters came from VIA Technologies Chrome IGP open
source DDX device driver. IGA2 parameters were copied from IGA1.
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r-- | drivers/gpu/drm/openchrome/via_crtc.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/drivers/gpu/drm/openchrome/via_crtc.c b/drivers/gpu/drm/openchrome/via_crtc.c index f575c305f640..6ec41dbabec6 100644 --- a/drivers/gpu/drm/openchrome/via_crtc.c +++ b/drivers/gpu/drm/openchrome/via_crtc.c @@ -696,12 +696,18 @@ static void via_iga1_display_fifo_regs(struct drm_device *dev, break; case PCI_DEVICE_ID_VIA_CN700: - iga->display_queue_expire_num = 0; - iga->fifo_high_threshold = 64; - iga->fifo_threshold = 80; - iga->fifo_max_depth = 96; - break; + /* SR17[7:0] */ + iga->fifo_max_depth = 128; + + /* SR16[7], SR16[5:0] */ + iga->fifo_threshold = 32; + /* SR18[7], SR18[5:0] */ + iga->fifo_high_threshold = 56; + + /* SR22[4:0] */ + iga->display_queue_expire_num = 124; + break; /* CX700 */ case PCI_DEVICE_ID_VIA_VT3157: iga->fifo_high_threshold = iga->fifo_threshold = 128; @@ -787,12 +793,6 @@ static void via_iga1_display_fifo_regs(struct drm_device *dev, } } - /* If resolution > 1280x1024, expire length = 64, else - expire length = 128 */ - if ((dev->pdev->device == PCI_DEVICE_ID_VIA_CN700) && - ((mode->hdisplay > 1280) && (mode->vdisplay > 1024))) - iga->display_queue_expire_num = 16; - /* Set IGA1 Display FIFO Depth Select */ reg_value = IGA1_FIFO_DEPTH_SELECT_FORMULA(iga->fifo_max_depth); load_value_to_registers(VGABASE, &iga->fifo_depth, reg_value); @@ -957,12 +957,18 @@ static void via_iga2_display_fifo_regs(struct drm_device *dev, break; case PCI_DEVICE_ID_VIA_CN700: - iga->display_queue_expire_num = 128; - iga->fifo_high_threshold = 32; - iga->fifo_threshold = 80; - iga->fifo_max_depth = 96; - break; + /* CR95[7], CR94[7], CR68[7:4] */ + iga->fifo_max_depth = 128; + + /* CR95[6:4], CR68[3:0] */ + iga->fifo_threshold = 32; + /* CR95[2:0], CR92[3:0] */ + iga->fifo_high_threshold = 56; + + /* CR94[6:0] */ + iga->display_queue_expire_num = 124; + break; /* CX700 */ case PCI_DEVICE_ID_VIA_VT3157: iga->display_queue_expire_num = 128; @@ -1042,12 +1048,6 @@ static void via_iga2_display_fifo_regs(struct drm_device *dev, reg_value = iga->fifo_threshold / 4; load_value_to_registers(VGABASE, &iga->threshold, reg_value); } else { - /* If resolution > 1280x1024, expire length = 64, else - expire length = 128 */ - if ((dev->pdev->device == PCI_DEVICE_ID_VIA_CN700) && - (mode->hdisplay > 1280) && (mode->vdisplay > 1024)) - iga->display_queue_expire_num = 16; - /* Set IGA2 Display FIFO Depth Select */ reg_value = IGA2_FIFO_DEPTH_SELECT_FORMULA(iga->fifo_max_depth); load_value_to_registers(VGABASE, &iga->fifo_depth, reg_value); |