summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-11-21Move back ztv with geode driverGaetan Nadon
Now we have a clean separation between CPP flags and C Flags Only the C Flags apply to both geode and ztv driver, however it is not worth doing a per target compilation. Should some flags become mutually exclusive and if we want to have both target in the same makefile, add the incompatible flag on the appropriate target, example: geode_drv_la_CFLAGS = $(AM_CFLAGS) -newCFlag and/or geode_drv_la_CPPFLAGS = $(AM_CPPFLAGS) -newCPPFlag Note that both AM_CFLAGS and AM_CPPFLAGS are picked-up by both geode and ztv driver target. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Separate compiler from pre-processor optionsGaetan Nadon
Clean-up what goes in AM_CFLAGS and AM_CPPFLAGS Use more descriptive names such that comments are not needed. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Detect 32bit support on 64bit OS and compile with -m32 if foundGaetan Nadon
For gcc compiler only at the moment. The configuration reports if support is found or not, e.g.: checking if gcc supports the -m32 Intel/AMD option... yes The configuration C test relies on #include unistd.h which includes features.h which includes gnu/stubs.h which includes gnu/stubs-32.h which is missing on 64 bit system without the 32 bit library support. Tested on x86_64 AMD64 CPU with/without libc6-dev-i386 which provides 32 bit support. Remains to be tested on Geode and FreeBSD 32/64 bit. The configuration does not attempt to decide if building should proceed or be aborted. If no 32 bit support then the build will die in the assembly code as it always did before. The variable M32_CFLAGS provides the flag for the makefiles. The variable names and organization is subject to change. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21geode source: streamline whitespace and sort alphabeticallyGaetan Nadon
No functional changes. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Remove -I linux_v26 as the directory does not existGaetan Nadon
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Remove duplicate warning variable and werror optionGaetan Nadon
Use already existing: --enable-strict-compilation Enable all warnings from compiler and make them errors (default: disabled) which, byt the way was broken as it was not implemented in geode. Use already existing CWARNINGFLAGS variable, so there is no need to define GCC_WARNINGS. Both come from util-macros version 1.4 or later. http://cgit.freedesktop.org/xorg/util/macros/tree/xorg-macros.m4.in ?id=03b04a6b5d61aafbd2705f7d29e58e0c92553a4a If you configure with a later version of util-macros you may see new warnings appear as additional flags have been added over the years. You get better support for platforms/compiler differences. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Remove unrequired .s assembly files automake supportGaetan Nadon
Only the suffixes .s, .S, and .sx are recognized by automake as being files containing assembly code. http://www.gnu.org/software/automake/manual/automake.html#Assembly-Support Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Remove unused LINUX_2_6 macro from geode driver makefileGaetan Nadon
It is used in ztv but not geode driver. In the wake of more platforms other than linux, might as well remove any source of confusion. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Remove no longer used AMD_V4L2_VIDEO from makefilesGaetan Nadon
This macro has been removed every where from source code. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-21Move ztv driver to it's own directoryGaetan Nadon
The convention is to have the video driver (geode) in the src subdir and any other targets (utils, apps, other drivers) in their own directory. It makes it much simpler to right a correct makefile and to set conditional compile. This highlighted a few things to fix. For now, the directory includes have not been copied as they are required. The AM_CCASFLAGS is not required either as there is no assembler. Other than that, the gcc command issued has no differences. Other unrequired defines could be removed later. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2011-11-14Revert "Only enable z4l.c on Linux" until we have a consensus.Martin-Éric Racine
2011-11-13Revised BSD check in geode_msr.cMartin-Éric Racine
2011-11-13Move the z4l.c test to src/Makefile.am where it should be.Martin-Éric Racine
2011-11-13Added two #ifdef to enable building on FreeBSD.Martin-Éric Racine
2011-03-13Add optional composite operation fallback tracingPriit Laes
Changing GEODE_TRACE_FALL to 1 allows to easily find the unaccelerated code paths in a given use case while working on driver performance. Signed-off-by: Priit Laes <plaes@plaes.org> Signed-off-by: Mart Raudsepp <leio@gentoo.org>
2011-03-12Fix parameter ordering for calloc/xnfcalloc callsMart Raudsepp
First argument is the number of elements and second the size of one element, not vice-versa. Signed-off-by: Mart Raudsepp <leio@gentoo.org>
2011-02-07Stop including "linux/videodev.h" in z4l.cMartin-Éric Racine
V4L1 support was dropped as of Linux kernel 2.6.38
2011-02-07Fix packed overlay offscreen allocationsDaniel Drake
Commit 5e72a00ad2 caused packed video data to corrupt glyphs and other parts of the screen, but it turns out that the commit actually at fault was d681a844e, incorrectly changing the size of the allocated destination memory from the number of bytes needed to the number of lines needed. While fixing this, I noticed that LXAllocateSurface is probably making the same mistake, and that the height is probably not calculated correctly for some corner cases when calling LXCopyFromSys in the packed video path (but I'm not sure about either). Fixes https://bugs.freedesktop.org/show_bug.cgi?id=33004
2010-12-15Restoring compatibility down to X server 1.4Priit Laes
Signed-off-by: Priit Laes <plaes@plaes.org>
2010-12-12Improve handling of gamma correction in video vs graphicsDaniel Drake
The LX is a bit odd in that the palette can be used for gamma correction of graphics data, or video data, but not both at the same time. Right now, during X startup, X sets gamma correction (but without any actual correction) causing the Geode driver to start using the palette for graphics gamma correction. (this is just momentary) Later on during startup, vg_set_custom_mode() switches to using the palette for video gamma correction, and this is the end result. If you later use xrandr to change the gamma, the palette starts being used for graphics again. If you VT switch, vg_set_custom_mode (momentarily) starts using the palette for video, but then X jumps in with a gamma callback causing it to be used for graphics again. End result: no user visible bug, but this is inconsistent. As there is no exposed mechanism for changing video gamma I suggest we just drop that bit from vg_set_custom_mode(). Then the inconsistency goes away. Downside: this now becomes dependent on X setting gamma during startup. I don't know when this was introduced but I think it is recent. Aditionally, I think I found a (harmless) bug in df_set_video_palette_entry, it doesn't do what the comments say.
2010-12-12Fix compilation under xorg >1.9.99Priit Laes
Signed-off-by: Priit Laes <plaes@plaes.org>
2010-11-19LX Panel: lower the 1024x600 refresh rate down to 60Hz.Martin-Éric Racine
NOTE: the eCafe EC-800's panel doesn't support a higher refresh rate.
2010-11-19Print the panel mode BIOS usesFrank Huang
Signed-off-by: Frank Huang<frankr.huang@amd.com>
2010-10-28Revert "Simplify the mode_valid function"Martin-Éric Racine
This reverts commit fab58e111b6655602b4f739260a01247ff478f35.
2010-10-28Simplify the mode_valid functionHuang, FrankR
Signed-off-by: Frank Huang<frankr.huang@amd.com>
2010-10-28Revise the entry for 1024x600Huang, FrankR
*Change the entry of 1024x600 from 3 to 7(That will not affect the entries from 3 to 6). And BIOS should set the VG_FP_TYPE bit[5:3] to 7. *Use 1024x600@80 instead of 1024x600@60 parameters to support more 4:3 resolutions Signed-off-by: Frank Huang<frankr.huang@amd.com>
2010-10-27Don't power down DCON when it is frozenDaniel Drake
Putting a frozen DCON to sleep (as happens during regular boot of the XO) will cause the frozen image to be corrupted. Change the behaviour to only sleep when the DCON is not frozen. http://dev.laptop.org/ticket/10196
2010-10-27Add get_crtc output functionDaniel Drake
I don't know why X can't do this itself, but when no get_crtc method is provided, X decides that it doesn't know the CRTC of the output and decides to reset the mode completely (causing display powerdown, resulting in an uncomfortable visual interruption to OLPC's boot process).
2010-10-20Allocate video memory with exaOffscreenAllocHunk Cui
*Del for deduct the probable size of a video overlay. *Use exaOffscreenAlloc allocate the video overlay. *Use exaOffscreenAlloc allocate the offscreen surface. *XV-video data has to be allocate in offscreen memory range. Signed-off-by: Hunk Cui <Hunk.Cui@amd.com>
2010-09-29Add resolution 1024x600 support for PANELFrank Huang
*Users can not get 1024x600 by default when using panel without xorg.conf. Add this screen resolution to the panel_modes table to support it by default. *Users who are using VGA will get this resolution by the monitor EDID. No code is needed *Use gtf tool to get the parameters *Ubuntu bugzilla #433142 Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-09-29Fix a typo on resolution parameterFrank Huang
*change from 1028 to 1280 Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-09-29Mode Validation support on modeline in xorg.confFrank Huang
*mode validation(lx_output_mode_valid) in this driver should return MODE_OK for all modes filtered out by previous process in this function. Otherwise, new modelines(conf_modes) will be pruned by Xserver function Xf86PruneInvalidModes. The result is that the user can not set arbitrary resolutions. We comply with the code of ATI&&Intel mode_valid function to do this. *For modes that cannot be supported by the geode driver, it is better to give the specific MODE_XXX(such as MODE_CLOCK_RANGE) instead of MODE_BAD. Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-09-26Modify rotation pitch & reallocate pixmap for boHunk
*Modify rotation pitch value with crtc_mode_set. *Use own wrapper to allocate a pixmap for wrapping a bo. *Ubuntu Bugzilla #377929 *Debian Bugzilla #512020 Signed-off-by: Hunk Cui <Hunk.Cui@amd.com>
2010-09-23lx_display: fix typoOtavio Salvador
2010-09-21fix the DCON verification loop for LX outputAndres Salomon
This is pretty clearly a bug. This should fix it (after all, that check is merely to see if the panel is a DCON; we don't care at all about the panel bit). This also adds an extra parenthesis in the following if() statement for clarity. I'm resisting the temptation to change GeodeRec's Output member to an unsigned long (for now). Bitfields should really be unsigned. Signed-off-by: Andres Salomon <dilinger@queued.net>
2010-09-01Replace xalloc/xrealloc/xfree/xcalloc with malloc/realloc/free/callocFrank Huang
* Replace the deprecated functions with new ones Refer to "/xserver/include/os.h" Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-18Fix the PictOpIn and PictOpOutFrank Huang
*Correct the entry for PictOpIn, PictOpOut, PictOpOverReverse *Some code format adjustment *Delete the maskflag(temp variable) *Change the code to make the black region(More reasonable than change op from PictOpSrc to PictOpClear) Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-18Fix the PictOpInReverse opFrank Huang
*Correct the entry for PictOpOverReverse and PictOpInReverse *Correct the channel reverse use, delete direction use *Add a function lx_composite_all_black to generate a all zero vectors including alpha *Modify some comments Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-16Fix segfault with Option NoAccelMart Raudsepp
Fixes bug #27725 Breakage from commit 38e86827
2010-08-12Fix the PictOpOutReverse opFrank Huang
*Correct the entry for PictOutReverse *Outside the source picture, the pixels should be all zero when doing the PictOpOutReverse rendering with Dst *Rename the function name of pict_a8 to add_a8 *Rename the function name of opover to two_pass *Fix the bug in KDE dolphin file browser Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-12Improve the glyph rendering performanceFrank Huang
*Add a PICT_a8 entry in the format we support *Use Mart's workaround patch to give geode PictOpAdd correct pSrc and pDst format *Add a function lx_composite_onepass_pict_a8 to handle the PictOpAdd for glyph rendering *Performance for "x11perf" command under Fedora 12 Past Now -aa10text 4660/sec 53300/sec -aa24text 2740/sec 16200/sec Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-09Rectify lx_display.c outstanding compiler warningsHunk Cui
*Correct the type of LXAllocShadow from Bool to static Bool. Signed-off-by: Hunk Cui <Hunk.Cui@amd.com>
2010-08-09Revert "Improve the glyph rendering performance"Martin-Éric Racine
This reverts commit ebe43da32226eb7bc3ef758c43eff85ac8b8baef as Frank pointed out that I mistakenly committed an outdated version of this.
2010-08-09Correct two outstanding compiler warningsFrank Huang
*Correct the type from "Q_WORD" to "QQ_WORD" in panel.c *Correct the tyep from "char" to "const char" in z4l.c Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-07Improve the glyph rendering performanceFrank Huang
*Add a PICT_a8 entry in the format we support *Use Mart's workaround patch to give geode PictOpAdd correct pSrc and pDst format *Add a function lx_composite_onepass_pict_a8 to handle the PictOpAdd for glyph rendering *Performance for "x11perf -aa10text" has been improved from 4200/s to 47400/s on Fedora12 Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-06Fix rotation with newer Xserver versions (exaOffscreenAlloc)Hunk Cui
*Del for deduct the probable size of a shadow buffer. *Use exaOffscreenAlloc allocate the shadow buffer. *Rotateeddata has to be allocate in offscreen memory range. *Ubuntu Bugzilla #377929 Signed-off-by: Hunk Cui <Hunk.Cui@amd.com>
2010-08-06Gamma Correction for fading operationHunk Cui
*Modify integrated palette RAM for gamma-correction of the data stream *Let Graphic data passes through the Gamma Correction RAM *Special for Screensaver Operation *FreeDesktop Bugzilla #27853 Signed-off-by: Hunk Cui <Hunk.Cui@amd.com>
2010-08-06Fix the Nautilus file browser misrendering issueHuang, FrankR
This is patch 4 final this week. This one has fixed several bugs below: 1)google chrome hang 2)Some website using repeat for source picture with PictOpSrc. To sum up, right now this patch has gracefully solved the Nautilus bug and some special rendering under PictOpSrc and PictOpOver I will describe all special conditions I met Websites for test before and after this patch: 1)http://daduke.org (greater srcX and srcY) 2)http://bjdns2.cncmax.cn (negative srcX and srcY) From: Frank Huang <frankr.huang@amd.com> *When the srcX or srcY is greater than source width or source height (or negative),the driver should do the correct region to render. Add a function lx_composite_onepass_special to handle this. The source start point should be calculated by a modulus operation. *If the opeartion is with a shifted position src, then adjust the operation region based on the operations src width and height parameters. The rotation condition should be excluded. This part still need investigation Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-06Fix the PictOpOver operationHuang, FrankR
Fix the PictOpOver operation *Fix the PictOpOver blend_ops struct. The PictOpOver operation is Src + (1-a) * Dest. So change from CIMGP_ALPHA_A_PLUS_BETA_B to CIMGP_A_PLUS_BETA_B. And add one pass operation to do the Src * (alpha of Mask) if there is a mask *Convert the source format in lx_prepare_composite if it is not ARGB32 when doing the first pass *Add a function lx_do_composite_mask_opover to handle the PictOpOver operation, the first pass is to do the Src * (alpha of Mask), the second pass is to do the Src + (1-a) * Dest. *Due to our off-screen buffer is only 256KB, so split big Mask region into several small region(256KB) to do the rendering. *Progressbar, scrollbar and button display well with this patch *See Free Desktop Bugzilla #28352 Signed-off-by: Frank Huang <frankr.huang@amd.com>
2010-08-06Fix the PictOpSrc renderingHuang, FrankR
Fix the PictOpSrc rendering *Add the maskrepeat variabel to record mask picture's repeat attribute *Add the maskflag to record the exaScratch.type when it is COMP_TYPE_MASK *Use the PictOpClear to make other non-blending region(out of src or mask) to be black if the op is PictOpSrc or PictOpClear Signed-off-by: Frank Huang <frankr.huang@amd.com>