diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-06-20 12:52:10 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-06-25 13:18:01 +0100 |
commit | 797d173a9af12055ba2609293182b616dd673ef4 (patch) | |
tree | 0bc73734fa5e5bb1e57715d448bc7a6da88aba5a /src/i810_wmark.c | |
parent | cd61531a78b9a2cbdd6019199c43258f83e6e2ce (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.c | 313 |
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; -} |