Age | Commit message (Collapse) | Author | Files | Lines |
|
When playing video, the driver should check the output config which
could have been modified due to Fn+Output key or s3switch. If TV or CRT
is on, the LCD expansion must be avoided, otherwise, video image on TV
is cropped due to false expansion.
Use new SavageUpdateDevices() function.
Tormod comment: We should also mask with ACTIVE_DEVICES here also for
detecting CrtOnly, no?
Tormod comment: Do we need to run these BIOS calls for every video frame?
Would it be enough to update this on mode changes?
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Do not strip away the "duoview" 0x80 flag returned on some models.
Also replace 0x0f with the less magic ACTIVE_DEVICES
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
The DuoView flag only needs to be set if TV and another output
is active.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
The BIOS tends to reset itself to defaults if something happens which it
doesn't like. Currently it looks as if this reason mainly was the
writing of TV mode when the TV output was already active, and with this
patch I have not experienced it again.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
If the LCD is off, DPMS for the LCD is blocked. Otherwise, the
display would get corrupted on external (esp. TV) screen and the LCD got
into an undesired state of turning white. This was especially annoying
as e.g. the VLC player makes calls to DPMS before playing a video! I
think this was well-meant, but was destructive in case of our savage
driver. Now the driver is protected.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
When switching to text mode, the driver updates its config and
restores the initial setting as intended. The old behavior would reset
the active output device register at every mode change, so that for
instance the (usually sane) text mode configuration from boot would be
lost.
Also check if active outputs really needs changing by comparing the
active device bits only.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Only enforce the user-supplied settings on the first mode
change (from text to initial graphics mode).
On subsequent mode changes, update the configuration flags
to be consistent with the actual status before changing mode,
so that "live" changes in output configuration can be preserved
across mode changes.
If we are changing from what seems to be original (text) mode
the settings have probably not been changed so we do not
use the actual state read from the hardware but the remembered
state from after last change.
Tormod comment: Does the above last part make any sense?
On each mode switch, the driver should read in its current output
configuration and update its list and flags. Up to now, a resolution
switch after changing output by hot-key or s3switch caused the outputs
to be changed back to their previous state.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
The flag is now set if no other output device is active,
ignoring the original status of the CRT output.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: split out from an big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
The "CrtOnly" option predates TV support, and was meant for turning off the
LCD screen.
"TvOn" would turn off all other outputs, possibly overriding the
"CrtOnly" option.
Change them to do what they say:
TvOn simply turns on the TV output. CrtOnly turns off all outputs except
CRT, possibly overriding TvOn.
The TvOn option is left undocumented.
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: patch split out from a big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: split out from an big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
[Tormod: split out from an big diff]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Otherwise, calling it twice would trigger a VBE bug when using
xserver 1.12.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
XF86DRI is defined by xorg-server.h, so --disable-dri in the driver
itself does exactly nothing other than not fill in the CFLAGS and thus stop
the driver from compiling.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=9961
Signed-off-by: Andrew Turner <andrew@fubar.geek.nz>
[Tormod: Rename table to SAVAGEVisuals]
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
In a user header file, the macro name should not begin with `_'
http://gcc.gnu.org/onlinedocs/cpp/Once_002dOnly-Headers.html
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Instead maintain our own list of supported PCI IDs.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
|
|
Linux kernel 2.6.30 - 2.6.39 had broken drm maps which would result
in assorted problems. Leave a message in the log if it looks like
the framebuffer map and the aperture map are mixed up.
https://bugs.freedesktop.org/show_bug.cgi?id=32511
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
There is no reason to do the division using floats as long as
the result is an integer and there is no risk of intermediate
overflow.
This is in the code for "Old" chipsets. Integer division was already
used in the parallel code for "New" chipsets.
Also fixed up the whitespace in both blocks.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
If I set the resolution to 800x600 for example (to be able to use the
TV output in full screen mode), I only can see 800/1024 = 0,78 of the
real video width, no matter if the video is displayed in a small player
window or enlarged to full screen. On the right of the video display,
the remaining width is filled with a black (or sometimes blue) bar.
The problem was mainly that only the drawing starting point was modified
by the scaling factor, but not the size-defining end of the drawing
rectangle.
https://bugs.launchpad.net/bugs/670790
Signed-off-by: Hans-Juergen Mauser <hjmauser@gmx.net>
Reviewed-by: Tormod Volden <debian.tormod@gmail.com>
Acked-by: Matt Turner <mattst88@gmail.com>
|
|
Found with CFLAGS=-Wlogical-op
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Also clean out some unused prototypes from savage_driver.h
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
|
|
This should fix resume with AGP. After all these years...
https://bugzilla.kernel.org/show_bug.cgi?id=4607
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Move DRI stuff from savage_driver.c to savage_dri.c
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Bit-masking the result of a boolean negation seems pointless,
so I guess this is what was intended: Only look at bit 0 of the
inStatus result.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
|
|
The mode pixel clock frequency is in kHz, not Hz.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Correction to df8059025cafadaeea7672842d31134ed8c9c5df.
Casting addresses to int is a 32bitism. If we want to use
this intermediate cast to silence compiler warnings, we
should use uintptr_t instead to not introduce potential
bit truncation.
Thanks to Mark Kettenis for spotting this.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
This was warned about when building with -O2, and seems
to be a copy-and-paste glitch.
savage_dri.c: In function ‘SAVAGEDRIMoveBuffers’:
savage_dri.c:1445: warning: ‘pptNew2’ may be used uninitialized in this function
|
|
Two warnings and an error.
|
|
These registers are cleared after suspend/resume, so set them
up again in EnterVT.
|
|
The tiled surface registers were only setup in SAVAGEDRIScreenInit,
however, after suspend/resume these registers must be set up again.
So factor it out in a new function so it can be reused.
|
|
Removes the last bunch of -Wall build warnings.
savage_dri.c:490: warning: format ‘%08lx’ expects type ‘long unsigned int’,
but argument 5 has type ‘drm_handle_t’
...
|
|
It looks like "!" was meant for logic negation and the parentheses
were wrong.
I don't have a Savage 4 so I can't check if this fixes or breaks
anything.
|
|
Silence -Wall warnings.
The functions are just #if'ed out, to be left for inspiration.
|
|
savage_dga.c: In function ‘Savage_OpenFramebuffer’:
savage_dga.c:393: warning: cast to pointer from integer of different size
savage_dri.c: In function ‘SAVAGEDRIScreenInit’:
savage_dri.c:924: warning: cast to pointer from integer of different size
|
|
sed -i 's/xalloc/malloc/g; s/xcalloc/calloc/g; s/xfree/free/g'
Also replace xrealloc with realloc.
|
|
savage_exa.c: In function ‘SavageUploadToScreen’:
savage_exa.c:545: warning: passing argument 1 of ‘memcpy’ discards qualifiers from pointer target type
/usr/include/bits/string3.h:49: note: expected ‘void * restrict’ but argument is of type ‘volatile CARD32 *’
savage_video.c: In function ‘SavagePutImage’:
savage_video.c:2007: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘drmSize’
savage_video.c:2007: warning: format ‘%ld’ expects type ‘long int’, but argument 5 has type ‘int’
|
|
|
|
Fixes bug 31614.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
|
|
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
|
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|