summaryrefslogtreecommitdiff
path: root/src/i810_wmark.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-06-20 12:52:10 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-06-25 13:18:01 +0100
commit797d173a9af12055ba2609293182b616dd673ef4 (patch)
tree0bc73734fa5e5bb1e57715d448bc7a6da88aba5a /src/i810_wmark.c
parentcd61531a78b9a2cbdd6019199c43258f83e6e2ce (diff)
i810: Move into a legacy directory.
The driver is still built but is no longer under active development so move it and supporting files to a new directory. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/i810_wmark.c')
-rw-r--r--src/i810_wmark.c313
1 files changed, 0 insertions, 313 deletions
diff --git a/src/i810_wmark.c b/src/i810_wmark.c
deleted file mode 100644
index 71b2a825..00000000
--- a/src/i810_wmark.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Authors:
- * Keith Whitwell <keith@tungstengraphics.com>
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "xf86.h"
-#include "i810.h"
-
-struct wm_info {
- double freq;
- unsigned int wm;
-};
-
-static struct wm_info i810_wm_8_100[] = {
- {0, 0x22003000},
- {25.2, 0x22003000},
- {28.0, 0x22003000},
- {31.5, 0x22003000},
- {36.0, 0x22007000},
- {40.0, 0x22007000},
- {45.0, 0x22007000},
- {49.5, 0x22008000},
- {50.0, 0x22008000},
- {56.3, 0x22008000},
- {65.0, 0x22008000},
- {75.0, 0x22008000},
- {78.8, 0x22008000},
- {80.0, 0x22008000},
- {94.0, 0x22008000},
- {96.0, 0x22107000},
- {99.0, 0x22107000},
- {108.0, 0x22107000},
- {121.0, 0x22107000},
- {128.9, 0x22107000},
- {132.0, 0x22109000},
- {135.0, 0x22109000},
- {157.5, 0x2210b000},
- {162.0, 0x2210b000},
- {175.5, 0x2210b000},
- {189.0, 0x2220e000},
- {202.5, 0x2220e000}
-};
-
-static struct wm_info i810_wm_16_100[] = {
- {0, 0x22004000},
- {25.2, 0x22006000},
- {28.0, 0x22006000},
- {31.5, 0x22007000},
- {36.0, 0x22007000},
- {40.0, 0x22007000},
- {45.0, 0x22007000},
- {49.5, 0x22009000},
- {50.0, 0x22009000},
- {56.3, 0x22108000},
- {65.0, 0x2210e000},
- {75.0, 0x2210e000},
- {78.8, 0x2210e000},
- {80.0, 0x22210000},
- {94.5, 0x22210000},
- {96.0, 0x22210000},
- {99.0, 0x22210000},
- {108.0, 0x22210000},
- {121.0, 0x22210000},
- {128.9, 0x22210000},
- {132.0, 0x22314000},
- {135.0, 0x22314000},
- {157.5, 0x22415000},
- {162.0, 0x22416000},
- {175.5, 0x22416000},
- {189.0, 0x22416000},
- {195.0, 0x22416000},
- {202.5, 0x22416000}
-};
-
-static struct wm_info i810_wm_24_100[] = {
- {0, 0x22006000},
- {25.2, 0x22009000},
- {28.0, 0x22009000},
- {31.5, 0x2200a000},
- {36.0, 0x2210c000},
- {40.0, 0x2210c000},
- {45.0, 0x2210c000},
- {49.5, 0x22111000},
- {50.0, 0x22111000},
- {56.3, 0x22111000},
- {65.0, 0x22214000},
- {75.0, 0x22214000},
- {78.8, 0x22215000},
- {80.0, 0x22216000},
- {94.5, 0x22218000},
- {96.0, 0x22418000},
- {99.0, 0x22418000},
- {108.0, 0x22418000},
- {121.0, 0x22418000},
- {128.9, 0x22419000},
- {132.0, 0x22519000},
- {135.0, 0x4441d000},
- {157.5, 0x44419000},
- {162.0, 0x44419000},
- {175.5, 0x44419000},
- {189.0, 0x44419000},
- {195.0, 0x44419000},
- {202.5, 0x44419000}
-};
-
-#if 0
-/* not used */
-static struct wm_info i810_wm_32_100[] = {
- {0, 0x2210b000},
- {60, 0x22415000}, /* 0x314000 works too */
- {80, 0x22419000} /* 0x518000 works too */
-};
-#endif
-
-static struct wm_info i810_wm_8_133[] = {
- {0, 0x22003000},
- {25.2, 0x22003000},
- {28.0, 0x22003000},
- {31.5, 0x22003000},
- {36.0, 0x22007000},
- {40.0, 0x22007000},
- {45.0, 0x22007000},
- {49.5, 0x22008000},
- {50.0, 0x22008000},
- {56.3, 0x22008000},
- {65.0, 0x22008000},
- {75.0, 0x22008000},
- {78.8, 0x22008000},
- {80.0, 0x22008000},
- {94.0, 0x22008000},
- {96.0, 0x22107000},
- {99.0, 0x22107000},
- {108.0, 0x22107000},
- {121.0, 0x22107000},
- {128.9, 0x22107000},
- {132.0, 0x22109000},
- {135.0, 0x22109000},
- {157.5, 0x2210b000},
- {162.0, 0x2210b000},
- {175.5, 0x2210b000},
- {189.0, 0x2220e000},
- {202.5, 0x2220e000}
-};
-
-static struct wm_info i810_wm_16_133[] = {
- {0, 0x22004000},
- {25.2, 0x22006000},
- {28.0, 0x22006000},
- {31.5, 0x22007000},
- {36.0, 0x22007000},
- {40.0, 0x22007000},
- {45.0, 0x22007000},
- {49.5, 0x22009000},
- {50.0, 0x22009000},
- {56.3, 0x22108000},
- {65.0, 0x2210e000},
- {75.0, 0x2210e000},
- {78.8, 0x2210e000},
- {80.0, 0x22210000},
- {94.5, 0x22210000},
- {96.0, 0x22210000},
- {99.0, 0x22210000},
- {108.0, 0x22210000},
- {121.0, 0x22210000},
- {128.9, 0x22210000},
- {132.0, 0x22314000},
- {135.0, 0x22314000},
- {157.5, 0x22415000},
- {162.0, 0x22416000},
- {175.5, 0x22416000},
- {189.0, 0x22416000},
- {195.0, 0x22416000},
- {202.5, 0x22416000}
-};
-
-static struct wm_info i810_wm_24_133[] = {
- {0, 0x22006000},
- {25.2, 0x22009000},
- {28.0, 0x22009000},
- {31.5, 0x2200a000},
- {36.0, 0x2210c000},
- {40.0, 0x2210c000},
- {45.0, 0x2210c000},
- {49.5, 0x22111000},
- {50.0, 0x22111000},
- {56.3, 0x22111000},
- {65.0, 0x22214000},
- {75.0, 0x22214000},
- {78.8, 0x22215000},
- {80.0, 0x22216000},
- {94.5, 0x22218000},
- {96.0, 0x22418000},
- {99.0, 0x22418000},
- {108.0, 0x22418000},
- {121.0, 0x22418000},
- {128.9, 0x22419000},
- {132.0, 0x22519000},
- {135.0, 0x4441d000},
- {157.5, 0x44419000},
- {162.0, 0x44419000},
- {175.5, 0x44419000},
- {189.0, 0x44419000},
- {195.0, 0x44419000},
- {202.5, 0x44419000}
-};
-
-#define Elements(x) (sizeof(x)/sizeof(*x))
-
-/*
- * I810CalcFIFO --
- *
- * Calculate burst length and FIFO watermark.
- */
-
-unsigned int
-I810CalcWatermark(ScrnInfoPtr pScrn, double freq, Bool dcache)
-{
- I810Ptr pI810 = I810PTR(pScrn);
- struct wm_info *tab;
- int nr;
- int i;
-
- if (pI810->LmFreqSel == 100) {
- switch (pScrn->bitsPerPixel) {
- case 8:
- tab = i810_wm_8_100;
- nr = Elements(i810_wm_8_100);
- break;
- case 16:
- tab = i810_wm_16_100;
- nr = Elements(i810_wm_16_100);
- break;
- case 24:
- tab = i810_wm_24_100;
- nr = Elements(i810_wm_24_100);
- break;
- default:
- return 0;
- }
- } else {
- switch (pScrn->bitsPerPixel) {
- case 8:
- tab = i810_wm_8_133;
- nr = Elements(i810_wm_8_133);
- break;
- case 16:
- tab = i810_wm_16_133;
- nr = Elements(i810_wm_16_133);
- break;
- case 24:
- tab = i810_wm_24_133;
- nr = Elements(i810_wm_24_133);
- break;
- default:
- return 0;
- }
- }
-
- for (i = 0; i < nr && tab[i].freq < freq; i++) ;
-
- if (i == nr)
- i--;
-
- xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 3,
- "chose watermark 0x%x: (tab.freq %.1f)\n",
- tab[i].wm, tab[i].freq);
-
- /* None of these values (sourced from intel) have watermarks for
- * the dcache memory. Fake it for now by using the same watermark
- * for both...
- *
- * Update: this is probably because dcache isn't real useful as
- * framebuffer memory, so intel's drivers don't need watermarks
- * for that memory because they never use it to feed the ramdacs.
- * We do use it in the fallback mode, so keep the watermarks for
- * now.
- */
- if (dcache)
- return (tab[i].wm & ~0xffffff) | ((tab[i].wm >> 12) & 0xfff);
- else
- return tab[i].wm;
-}