Re: [git pull] drm fixes for v4.12-rc1

2017-05-14 Thread Linus Torvalds
On Thu, May 11, 2017 at 11:00 PM, Dave Airlie  wrote:
>
> It also has an amdgpu fixes pull, with lots of ongoing work on Vega10
> which is new in this kernel and is preliminary support so may have a
> fair bit of movement.

Note: I will *not* be taking these kinds of pull requests after rc1.

If Vega10 is in such bad shape that it will need this kind of stuff
and isn't worth shipping without them in 4.12, I will take a *oneline*
that just disables it.

So no "thousands of lines of fixes for a new driver".

Being new to 4.12 isn't an excuse for crazy stuff after the merge
window. If it will need more of this kind of attention, all it means
is that it shouldn't have been sent to me at all in the first place.

The drm subsystem is still on my "no more of this shit" list, so I'm
going to be very unforgiving of big pull requests when they aren't
appropriate.

 Linus

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/exynos: g2d userptr memory corruption

2015-08-17 Thread Lucas Stach
Hi Tobias,

Am Sonntag, den 16.08.2015, 14:48 +0200 schrieb Tobias Jakobi:
 Hello,
 
 some time ago I checked whether I could use the userptr functionality to
 do zero-copy from userspace allocated buffers via the G2D. This didn't
 work out so well, so kinda put this to the bottom of my TODO list.
 
 Now that IOMMU support has landed and Jan Kara has rewrote page pinning
 using frame vectors (see [1]) I gave userptr another try.
 
 The results are much better. I'm not experiencing any kernel lockups or
 sysmmu pagefaults anymore. However the image now suffers from visual
 artifacts. These images show the nature of the artifacts:
 http://i.imgur.com/nzT6g3Y.jpg
 http://i.imgur.com/wkuYI6X.jpg
 
 The corruption always manifests itself in these pixel lines of fixed
 size and wrong color.
 
 I have written a testcase as part of libdrm for this issue:
 https://github.com/tobiasjakobi/libdrm/commit/db8bf6844436598251f67a71fc334b929bfb2b71
 
 It allocates N (N an even number) buffers which are aligned to the
 system pagesize. Then it does this each iteration:
 1) Fill the first N/2 buffers with random data
 2) Copy the first half to the second half of the buffers
 3) memcmp() first and second half (verification pass)
 
 Usually this verification already fails on the first iteration. An
 interesting observation is that increasing (!) the buffer size (so the
 amount of pixels that have to copied per buffer grows) makes this issue
 less likely to happen.
 
 With the default 512x512 buffers however it happens, like I said above,
 almost immediately.
 
This is obviously a cache flush missing. The memory you get from
userspace is normal cached memory, so to make it visible to the GPU you
need to flush parts of the cache out to main memory.

The corruption you are seeing is just unflushed cachelines. This also
explains why increasing the buffer size helps: the more memory the CPU
touches the more cachelines will be flushed out to be replaced with new
data.

So you need to go and have a look at dma_map() and dma_sync_*_for_*()
and friends.

Regards,
Lucas
-- 
Pengutronix e.K. | Lucas Stach |
Industrial Linux Solutions   | http://www.pengutronix.de/  |


--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/exynos: g2d userptr memory corruption

2015-08-17 Thread Tobias Jakobi
Thanks Lucas for the explanation!


Lucas Stach wrote:
 Hi Tobias,
 
 Am Sonntag, den 16.08.2015, 14:48 +0200 schrieb Tobias Jakobi:
 Hello,

 some time ago I checked whether I could use the userptr functionality to
 do zero-copy from userspace allocated buffers via the G2D. This didn't
 work out so well, so kinda put this to the bottom of my TODO list.

 Now that IOMMU support has landed and Jan Kara has rewrote page pinning
 using frame vectors (see [1]) I gave userptr another try.

 The results are much better. I'm not experiencing any kernel lockups or
 sysmmu pagefaults anymore. However the image now suffers from visual
 artifacts. These images show the nature of the artifacts:
 http://i.imgur.com/nzT6g3Y.jpg
 http://i.imgur.com/wkuYI6X.jpg

 The corruption always manifests itself in these pixel lines of fixed
 size and wrong color.

 I have written a testcase as part of libdrm for this issue:
 https://github.com/tobiasjakobi/libdrm/commit/db8bf6844436598251f67a71fc334b929bfb2b71

 It allocates N (N an even number) buffers which are aligned to the
 system pagesize. Then it does this each iteration:
 1) Fill the first N/2 buffers with random data
 2) Copy the first half to the second half of the buffers
 3) memcmp() first and second half (verification pass)

 Usually this verification already fails on the first iteration. An
 interesting observation is that increasing (!) the buffer size (so the
 amount of pixels that have to copied per buffer grows) makes this issue
 less likely to happen.

 With the default 512x512 buffers however it happens, like I said above,
 almost immediately.

 This is obviously a cache flush missing. The memory you get from
 userspace is normal cached memory, so to make it visible to the GPU you
 need to flush parts of the cache out to main memory.
 
 The corruption you are seeing is just unflushed cachelines. This also
 explains why increasing the buffer size helps: the more memory the CPU
 touches the more cachelines will be flushed out to be replaced with new
 data.
I should point out that the snapshots I uploaded were done with a
different setup. There only the source memory of the G2D operation is a
userspace allocated buffer. The destination is a GEM buffer allocated
through libdrm, which is then used as framebuffer. So the issue already
appears when just the source is userspace allocated.

What works however is an operation between GEM to GEM. However this
might be related to the default allocation flags libdrm uses.



 So you need to go and have a look at dma_map() and dma_sync_*_for_*()
 and friends.
 
 Regards,
 Lucas
 


With best wishes,
Tobias



--
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-25 Thread Pavel Machek
On Thu 2015-01-29 14:11:25, Dave Airlie wrote:
 These two copy to/from VGA memory, however on the Silicon
 Motion SMI750 VGA card on a 64-bit system cause console corruption.
 
 This is due to the hw being buggy and not handling a 64-bit transaction
 correctly.
 
 We could try and create a 32-bit version of these routines,
 but I'm not sure the optimisation is worth much today.
 
 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1132826
 
 Tested-by: Huawei engineering.
 Signed-off-by: Dave Airlie airl...@redhat.com

Actually... are you sure this is right fix?

IOW can gcc do the optimalization behind your back and still break the
buggy card?
Pavel

 diff --git a/include/linux/vt_buffer.h b/include/linux/vt_buffer.h
 index 057db7d..f38c10b 100644
 --- a/include/linux/vt_buffer.h
 +++ b/include/linux/vt_buffer.h
 @@ -21,10 +21,6 @@
  #ifndef VT_BUF_HAVE_RW
  #define scr_writew(val, addr) (*(addr) = (val))
  #define scr_readw(addr) (*(addr))
 -#define scr_memcpyw(d, s, c) memcpy(d, s, c)
 -#define scr_memmovew(d, s, c) memmove(d, s, c)
 -#define VT_BUF_HAVE_MEMCPYW
 -#define VT_BUF_HAVE_MEMMOVEW
  #endif
  
  #ifndef VT_BUF_HAVE_MEMSETW

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-09 Thread Geert Uytterhoeven
On Mon, Feb 9, 2015 at 11:35 AM, Daniel Stone dan...@fooishbar.org wrote:
 On 5 February 2015 at 11:35, One Thousand Gnomes
 gno...@lxorguk.ukuu.org.uk wrote:
 If I'm not mistaken, that would be as simple as adding

 #define VT_BUF_HAVE_RW.
 #define scr_writew(val, addr) (*(addr) = (val))
 #define scr_readw(addr) (*(addr))

 to arch/x86/include/asm/vga.h.

 and stick an

 #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS)

 #endif

 around that and its sorted as an option everyone can leave off but the
 afflicted.

 Well, given all the distros will enable that, might as well be #if
 !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER).

All distros on 1 out of 29 architectures?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say programmer or something like that.
-- Linus Torvalds

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-09 Thread One Thousand Gnomes
On Mon, 9 Feb 2015 11:00:55 +
Daniel Stone dan...@fooishbar.org wrote:

 On 9 February 2015 at 10:49, Geert Uytterhoeven ge...@linux-m68k.org wrote:
  On Mon, Feb 9, 2015 at 11:35 AM, Daniel Stone dan...@fooishbar.org wrote:
  On 5 February 2015 at 11:35, One Thousand Gnomes
  gno...@lxorguk.ukuu.org.uk wrote:
  #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS)
 
  #endif
 
  around that and its sorted as an option everyone can leave off but the
  afflicted.
 
  Well, given all the distros will enable that, might as well be #if
  !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER).
 
  All distros on 1 out of 29 architectures?
 
 It's a fairly popular architecture.

I imagine most distros wouldn't enable it even on x86. It's an incredibly
obscure setup from the evidence of how long it took to get reported.

Most distributions don't support non PAE processors and other far more
common things 8)

Alan


--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-09 Thread Daniel Stone
On 9 February 2015 at 10:49, Geert Uytterhoeven ge...@linux-m68k.org wrote:
 On Mon, Feb 9, 2015 at 11:35 AM, Daniel Stone dan...@fooishbar.org wrote:
 On 5 February 2015 at 11:35, One Thousand Gnomes
 gno...@lxorguk.ukuu.org.uk wrote:
 #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS)

 #endif

 around that and its sorted as an option everyone can leave off but the
 afflicted.

 Well, given all the distros will enable that, might as well be #if
 !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER).

 All distros on 1 out of 29 architectures?

It's a fairly popular architecture.

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-09 Thread Daniel Stone
On 5 February 2015 at 11:35, One Thousand Gnomes
gno...@lxorguk.ukuu.org.uk wrote:
 If I'm not mistaken, that would be as simple as adding

 #define VT_BUF_HAVE_RW.
 #define scr_writew(val, addr) (*(addr) = (val))
 #define scr_readw(addr) (*(addr))

 to arch/x86/include/asm/vga.h.

 and stick an

 #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS)

 #endif

 around that and its sorted as an option everyone can leave off but the
 afflicted.

Well, given all the distros will enable that, might as well be #if
!defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER).

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-05 Thread Geert Uytterhoeven
On Tue, Feb 3, 2015 at 4:54 PM, One Thousand Gnomes
gno...@lxorguk.ukuu.org.uk wrote:
 On Thu, 29 Jan 2015 15:40:33 -0800
 Linus Torvalds torva...@linux-foundation.org wrote:

 On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote:
 
  Linus, this came up a while back I finally got some confirmation
  that it fixes those servers.

 I'm certainly ok with this. which way should it go in? The users are:

  - drivers/tty/vt/vt.c (Greg KH, tty layer)

  - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends)

 and it might make sense to have *some* indication of how much worse
 this makes fbcon performance in particular..

 For devices that have no hardware scrolling it used to be double digit
 percentages difference between 32 and 64bit when reading from the fb
 because the reads are not posted and the latency killed you. Writes - not
 so big a deal - but the bridge should combine them anyway. I imagine
 16bit read would be unprintably bad.

Fbcon uses scr_mem{cpy,move}w() for the VT buffer (characters + attributes)
only, not for the frame buffer data.
So the performance degradation should be minimal.

However, as this affects real VGA on x86 only, perhaps it can be fixed
in arch/x86/include/asm/vga.h instead of include/linux/vt_buffer.h, so
platforms not having VGA are not affected? We have these VT_BUF_*
and scr_*() abstractions for a reason...

If I'm not mistaken, that would be as simple as adding

#define VT_BUF_HAVE_RW.
#define scr_writew(val, addr) (*(addr) = (val))
#define scr_readw(addr) (*(addr))

to arch/x86/include/asm/vga.h.

If someone wants to put one of the bad VGA cards in a non-x86 PCI slot,
perhaps a few more architecture-specific asm/vga.h have to be updated:

$ git grep -w VT_BUF_HAVE_RW -- arch
arch/alpha/include/asm/vga.h:#define VT_BUF_HAVE_RW
arch/mips/include/asm/vga.h:#define VT_BUF_HAVE_RW
arch/powerpc/include/asm/vga.h:#define VT_BUF_HAVE_RW
arch/sparc/include/asm/vga.h:#define VT_BUF_HAVE_RW
arch/tile/include/asm/vga.h:#define VT_BUF_HAVE_RW

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say programmer or something like that.
-- Linus Torvalds

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-05 Thread One Thousand Gnomes
 If I'm not mistaken, that would be as simple as adding
 
 #define VT_BUF_HAVE_RW.
 #define scr_writew(val, addr) (*(addr) = (val))
 #define scr_readw(addr) (*(addr))
 
 to arch/x86/include/asm/vga.h.

and stick an

#if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS)

#endif

around that and its sorted as an option everyone can leave off but the
afflicted.

Alan

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-02-03 Thread One Thousand Gnomes
On Thu, 29 Jan 2015 15:40:33 -0800
Linus Torvalds torva...@linux-foundation.org wrote:

 On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote:
 
  Linus, this came up a while back I finally got some confirmation
  that it fixes those servers.
 
 I'm certainly ok with this. which way should it go in? The users are:
 
  - drivers/tty/vt/vt.c (Greg KH, tty layer)
 
  - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends)
 
 and it might make sense to have *some* indication of how much worse
 this makes fbcon performance in particular..

For devices that have no hardware scrolling it used to be double digit
percentages difference between 32 and 64bit when reading from the fb
because the reads are not posted and the latency killed you. Writes - not
so big a deal - but the bridge should combine them anyway. I imagine
16bit read would be unprintably bad.

Is it reads or writes that kill the card ?

Also note that switching to lots of small writes may break the 3Dfx
driver for the early 3Dfx PCI cards - they are really quite touchy about
how they are fed.

Unfortunately fbcon still matters for dumb EFI framebuffer fallbacks.

vgacon it doesn't matter (if it was too slow you could make vgacon as
fast as you want by only updating the off screen characters once per
vertical blank). fbcon that is a bit harder as you are allowed to
scribble on the display as well. You can't even check open/mmapped as you
can open, scribble and close.

Alan

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Can't gmake libdrm-2.4.59 on OmniOS

2015-02-03 Thread Emil Velikov
On 1 February 2015 at 01:03, CodeSwim OS Development
os-...@codeswim.com wrote:
 I'm trying to build libdrm and have an issue when I gmake after
 configuring.  Steps to reproduce:

 # uname -a
 SunOS omnios 5.11 omnios-10b9c79 i86pc i386 i86pc

Where can one get a copy of OmniOS ? Free of charge of course :-P
But more seriously

From the massive log I can spot a few interesting things
 - _FILE_OFFSET_BITS redefinition.
Autotools correctly detects and sets it set to 64 (as you've got a
32bit system/build), yet further down the gcc headers, it's already
set to 32. This won't break the build but will likely cause problems
at runtime.

 - A ton of -Wparentheses warnings.
These should be safe - you might also want to silence them so that
serious issues are clearer.

 - And last but not leask the missing _IOC symbol.
Gentoo people have a patch on the topic [1] - might be nice to clean
it up and upstream it.

Cheers,
Emil

[1] 
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/libdrm/files/libdrm-2.4.58-solaris.patch?view=markup

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-01-29 Thread Linus Torvalds
On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote:

 Linus, this came up a while back I finally got some confirmation
 that it fixes those servers.

I'm certainly ok with this. which way should it go in? The users are:

 - drivers/tty/vt/vt.c (Greg KH, tty layer)

 - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends)

and it might make sense to have *some* indication of how much worse
this makes fbcon performance in particular..

Greg/Tomi - the patch is removing this:

  #define scr_memcpyw(d, s, c) memcpy(d, s, c)
  #define scr_memmovew(d, s, c) memmove(d, s, c)
  #define VT_BUF_HAVE_MEMCPYW
  #define VT_BUF_HAVE_MEMMOVEW

from linux/vt_buffer.h, because some stupid graphics cards
apparently cannot handle 64-bit accesses of regular memcpy/memmove.

And on other setups, this will be the reverse: 8-bit accesses due to
using rep movsb, which is the fast way to move/clear memory on
modern Intel CPU's, but is really wrong for MMIO where it will be slow
as hell.

So just getting rid of the memcpy/memmove is likely the right thing in
general, since the fallbacks go this the traditional 16-bit-at-a-time
way. And getting rid of the memcpy _may_ speed things up.

But if it slows things down, we might have to try something else. Like
saying all cards we've ever seen have been ok with aligned 32-bit
accesses, and extend the open-coded scr_memcpy/memmove functions to
do that.

Hmm?

   Linus

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-01-29 Thread Greg Kroah-Hartman
On Thu, Jan 29, 2015 at 03:40:33PM -0800, Linus Torvalds wrote:
 On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote:
 
  Linus, this came up a while back I finally got some confirmation
  that it fixes those servers.
 
 I'm certainly ok with this. which way should it go in? The users are:
 
  - drivers/tty/vt/vt.c (Greg KH, tty layer)
 
  - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends)
 
 and it might make sense to have *some* indication of how much worse
 this makes fbcon performance in particular..
 
 Greg/Tomi - the patch is removing this:
 
   #define scr_memcpyw(d, s, c) memcpy(d, s, c)
   #define scr_memmovew(d, s, c) memmove(d, s, c)
   #define VT_BUF_HAVE_MEMCPYW
   #define VT_BUF_HAVE_MEMMOVEW
 
 from linux/vt_buffer.h, because some stupid graphics cards
 apparently cannot handle 64-bit accesses of regular memcpy/memmove.
 
 And on other setups, this will be the reverse: 8-bit accesses due to
 using rep movsb, which is the fast way to move/clear memory on
 modern Intel CPU's, but is really wrong for MMIO where it will be slow
 as hell.
 
 So just getting rid of the memcpy/memmove is likely the right thing in
 general, since the fallbacks go this the traditional 16-bit-at-a-time
 way. And getting rid of the memcpy _may_ speed things up.
 
 But if it slows things down, we might have to try something else. Like
 saying all cards we've ever seen have been ok with aligned 32-bit
 accesses, and extend the open-coded scr_memcpy/memmove functions to
 do that.
 
 Hmm?

I can take this through the tty tree, but can I put it in linux-next and
wait for the 3.20 merge window to give people who might notice a
slow-down a chance to object?

thanks,

greg k-h

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-01-29 Thread Dave Airlie
On 30 January 2015 at 10:03, Linus Torvalds
torva...@linux-foundation.org wrote:
 On Thu, Jan 29, 2015 at 3:57 PM, Greg Kroah-Hartman
 gre...@linuxfoundation.org wrote:

 I can take this through the tty tree, but can I put it in linux-next and
 wait for the 3.20 merge window to give people who might notice a
 slow-down a chance to object?

 Yes. The problem only affects one (or a couple of) truly outrageously
 bad graphics cards that are only used in servers (because they are
 such crap that they wouldn't be acceptable anywhere else anyway), and
 they have afaik never worked with 64-bit kernels, so it's not even a
 regression.

 So it's worth fixing because it's a real - albeit very rare - problem
 (especially since the enhanched rep instruction model of memcpy could
 easily be *worse* than the 16-bit-at-a-time manual version), but I
 wouldn't consider it anywhere near high priority.

Totally not a priority, it just finally got tested for RHEL so I wanted to
make sure I posted it upstream before I forgot about it for months,

I also filed:
https://bugzilla.kernel.org/show_bug.cgi?id=92311

since the RH bug is private and full of crap, that bug contains
a screenshot of the remote console to see what sort of crap it produces.

Dave.

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] vt_buffer: drop console buffer copying optimisations

2015-01-29 Thread Linus Torvalds
On Thu, Jan 29, 2015 at 3:57 PM, Greg Kroah-Hartman
gre...@linuxfoundation.org wrote:

 I can take this through the tty tree, but can I put it in linux-next and
 wait for the 3.20 merge window to give people who might notice a
 slow-down a chance to object?

Yes. The problem only affects one (or a couple of) truly outrageously
bad graphics cards that are only used in servers (because they are
such crap that they wouldn't be acceptable anywhere else anyway), and
they have afaik never worked with 64-bit kernels, so it's not even a
regression.

So it's worth fixing because it's a real - albeit very rare - problem
(especially since the enhanched rep instruction model of memcpy could
easily be *worse* than the 16-bit-at-a-time manual version), but I
wouldn't consider it anywhere near high priority.

 Linus

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 1/2] drm/ttm: Enable the dma page pool also for intel IOMMUs

2013-11-05 Thread Konrad Rzeszutek Wilk
On Mon, Nov 04, 2013 at 05:57:38AM -0800, Thomas Hellstrom wrote:
 Used by the vmwgfx driver

That looks OK to me. And baremetal should not be
affected as the Intel VT-d driver turns of the SWIOTLB
driver - so it will still use the classic ttm pool code.

Reviewed-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

 
 Signed-off-by: Thomas Hellstrom thellst...@vmware.com
 Reviewed-by: Jakob Bornecrantz ja...@vmware.com
 ---
  drivers/gpu/drm/ttm/Makefile |6 +-
  drivers/gpu/drm/ttm/ttm_page_alloc_dma.c |3 +++
  include/drm/ttm/ttm_page_alloc.h |   11 ++-
  3 files changed, 14 insertions(+), 6 deletions(-)
 
 diff --git a/drivers/gpu/drm/ttm/Makefile b/drivers/gpu/drm/ttm/Makefile
 index b2b33dd..b433b9f 100644
 --- a/drivers/gpu/drm/ttm/Makefile
 +++ b/drivers/gpu/drm/ttm/Makefile
 @@ -5,10 +5,6 @@ ccflags-y := -Iinclude/drm
  ttm-y := ttm_agp_backend.o ttm_memory.o ttm_tt.o ttm_bo.o \
   ttm_bo_util.o ttm_bo_vm.o ttm_module.o \
   ttm_object.o ttm_lock.o ttm_execbuf_util.o ttm_page_alloc.o \
 - ttm_bo_manager.o
 -
 -ifeq ($(CONFIG_SWIOTLB),y)
 -ttm-y += ttm_page_alloc_dma.o
 -endif
 + ttm_bo_manager.o ttm_page_alloc_dma.o
  
  obj-$(CONFIG_DRM_TTM) += ttm.o
 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c 
 b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
 index 7957bee..fb8259f 100644
 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
 @@ -33,6 +33,7 @@
   *   when freed).
   */
  
 +#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU)
  #define pr_fmt(fmt) [TTM]  fmt
  
  #include linux/dma-mapping.h
 @@ -1142,3 +1143,5 @@ int ttm_dma_page_alloc_debugfs(struct seq_file *m, void 
 *data)
   return 0;
  }
  EXPORT_SYMBOL_GPL(ttm_dma_page_alloc_debugfs);
 +
 +#endif
 diff --git a/include/drm/ttm/ttm_page_alloc.h 
 b/include/drm/ttm/ttm_page_alloc.h
 index 706b962..d1f61bf 100644
 --- a/include/drm/ttm/ttm_page_alloc.h
 +++ b/include/drm/ttm/ttm_page_alloc.h
 @@ -62,7 +62,7 @@ extern void ttm_pool_unpopulate(struct ttm_tt *ttm);
  extern int ttm_page_alloc_debugfs(struct seq_file *m, void *data);
  
  
 -#ifdef CONFIG_SWIOTLB
 +#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU)
  /**
   * Initialize pool allocator.
   */
 @@ -94,6 +94,15 @@ static inline int ttm_dma_page_alloc_debugfs(struct 
 seq_file *m, void *data)
  {
   return 0;
  }
 +static inline int ttm_dma_populate(struct ttm_dma_tt *ttm_dma,
 +struct device *dev)
 +{
 + return -ENOMEM;
 +}
 +static inline void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma,
 +   struct device *dev)
 +{
 +}
  #endif
  
  #endif
 -- 
 1.7.10.4

--
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 1/6] drivers/dri/common: A few dri2 functions are not actually DRI2 specific

2013-11-05 Thread Kristian Høgsberg
On Thu, Oct 31, 2013 at 04:13:11PM -0700, Keith Packard wrote:
 This just renames them so that they can be used with the DRI3 extension
 without causing too much confusion.
 
 Signed-off-by: Keith Packard kei...@keithp.com
 ---
  src/mesa/drivers/dri/common/dri_util.c | 50 
 +-
  1 file changed, 25 insertions(+), 25 deletions(-)

Reviewed-by: Kristian Høgsberg k...@bitplanet.net

 diff --git a/src/mesa/drivers/dri/common/dri_util.c 
 b/src/mesa/drivers/dri/common/dri_util.c
 index c28b0fc..539fb4b 100644
 --- a/src/mesa/drivers/dri/common/dri_util.c
 +++ b/src/mesa/drivers/dri/common/dri_util.c
 @@ -291,13 +291,13 @@ validate_context_version(__DRIscreen *screen,
  /*@{*/
  
  static __DRIcontext *
 -dri2CreateContextAttribs(__DRIscreen *screen, int api,
 -  const __DRIconfig *config,
 -  __DRIcontext *shared,
 -  unsigned num_attribs,
 -  const uint32_t *attribs,
 -  unsigned *error,
 -  void *data)
 +driCreateContextAttribs(__DRIscreen *screen, int api,
 +const __DRIconfig *config,
 +__DRIcontext *shared,
 +unsigned num_attribs,
 +const uint32_t *attribs,
 +unsigned *error,
 +void *data)
  {
  __DRIcontext *context;
  const struct gl_config *modes = (config != NULL) ? config-modes : NULL;
 @@ -442,22 +442,22 @@ dri2CreateContextAttribs(__DRIscreen *screen, int api,
  }
  
  static __DRIcontext *
 -dri2CreateNewContextForAPI(__DRIscreen *screen, int api,
 -const __DRIconfig *config,
 -__DRIcontext *shared, void *data)
 +driCreateNewContextForAPI(__DRIscreen *screen, int api,
 +  const __DRIconfig *config,
 +  __DRIcontext *shared, void *data)
  {
  unsigned error;
  
 -return dri2CreateContextAttribs(screen, api, config, shared, 0, NULL,
 - error, data);
 +return driCreateContextAttribs(screen, api, config, shared, 0, NULL,
 +   error, data);
  }
  
  static __DRIcontext *
 -dri2CreateNewContext(__DRIscreen *screen, const __DRIconfig *config,
 -   __DRIcontext *shared, void *data)
 +driCreateNewContext(__DRIscreen *screen, const __DRIconfig *config,
 +__DRIcontext *shared, void *data)
  {
 -return dri2CreateNewContextForAPI(screen, __DRI_API_OPENGL,
 -   config, shared, data);
 +return driCreateNewContextForAPI(screen, __DRI_API_OPENGL,
 + config, shared, data);
  }
  
  /**
 @@ -609,9 +609,9 @@ static void dri_put_drawable(__DRIdrawable *pdp)
  }
  
  static __DRIdrawable *
 -dri2CreateNewDrawable(__DRIscreen *screen,
 -   const __DRIconfig *config,
 -   void *data)
 +driCreateNewDrawable(__DRIscreen *screen,
 + const __DRIconfig *config,
 + void *data)
  {
  __DRIdrawable *pdraw;
  
 @@ -698,7 +698,7 @@ dri2ConfigQueryf(__DRIscreen *screen, const char *var, 
 GLfloat *val)
  }
  
  static unsigned int
 -dri2GetAPIMask(__DRIscreen *screen)
 +driGetAPIMask(__DRIscreen *screen)
  {
  return screen-api_mask;
  }
 @@ -741,13 +741,13 @@ const __DRIdri2Extension driDRI2Extension = {
  .base = { __DRI_DRI2, 4 },
  
  .createNewScreen= dri2CreateNewScreen,
 -.createNewDrawable  = dri2CreateNewDrawable,
 -.createNewContext   = dri2CreateNewContext,
 -.getAPIMask = dri2GetAPIMask,
 -.createNewContextForAPI = dri2CreateNewContextForAPI,
 +.createNewDrawable  = driCreateNewDrawable,
 +.createNewContext   = driCreateNewContext,
 +.getAPIMask = driGetAPIMask,
 +.createNewContextForAPI = driCreateNewContextForAPI,
  .allocateBuffer = dri2AllocateBuffer,
  .releaseBuffer  = dri2ReleaseBuffer,
 -.createContextAttribs   = dri2CreateContextAttribs,
 +.createContextAttribs   = driCreateContextAttribs
  .createNewScreen2   = dri2CreateNewScreen2,
  };
  
 -- 
 1.8.4.2
 
 
 --
 Android is increasing in popularity, but the open development platform that
 developers love is also attractive to malware creators. Download this white
 paper to learn more about secure code signing practices that can help keep
 Android apps secure.
 http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
 --
 ___
 Dri-devel mailing list
 Dri-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/dri-devel
 ___
 

Re: [PATCH 2/6] dri/intel: Split out DRI2 buffer update code to separate function

2013-11-05 Thread Kristian Høgsberg
On Thu, Oct 31, 2013 at 04:13:12PM -0700, Keith Packard wrote:
 Make an easy place to splice in a DRI3 version of this function
 
 Signed-off-by: Keith Packard kei...@keithp.com
 ---
  src/mesa/drivers/dri/i915/intel_context.c | 90 
 +--
  src/mesa/drivers/dri/i965/brw_context.c   | 22 ++--
  2 files changed, 68 insertions(+), 44 deletions(-)

Reviewed-by: Kristian Høgsberg k...@bitplanet.net

 diff --git a/src/mesa/drivers/dri/i915/intel_context.c 
 b/src/mesa/drivers/dri/i915/intel_context.c
 index 2748514..1798bc7 100644
 --- a/src/mesa/drivers/dri/i915/intel_context.c
 +++ b/src/mesa/drivers/dri/i915/intel_context.c
 @@ -133,15 +133,58 @@ intel_process_dri2_buffer(struct intel_context *intel,
 struct intel_renderbuffer *rb,
 const char *buffer_name);
  
 -void
 -intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
 +static void
 +intel_update_dri2_buffers(struct intel_context *intel, __DRIdrawable 
 *drawable)
  {
 -   struct gl_framebuffer *fb = drawable-driverPrivate;
 -   struct intel_renderbuffer *rb;
 -   struct intel_context *intel = context-driverPrivate;
 __DRIbuffer *buffers = NULL;
 int i, count;
 const char *region_name;
 +   struct intel_renderbuffer *rb;
 +   struct gl_framebuffer *fb = drawable-driverPrivate;
 +
 +   intel_query_dri2_buffers(intel, drawable, buffers, count);
 +
 +   if (buffers == NULL)
 +  return;
 +
 +   for (i = 0; i  count; i++) {
 +  switch (buffers[i].attachment) {
 +  case __DRI_BUFFER_FRONT_LEFT:
 + rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT);
 + region_name = dri2 front buffer;
 + break;
 +
 +  case __DRI_BUFFER_FAKE_FRONT_LEFT:
 + rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT);
 + region_name = dri2 fake front buffer;
 + break;
 +
 +  case __DRI_BUFFER_BACK_LEFT:
 + rb = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT);
 + region_name = dri2 back buffer;
 + break;
 +
 +  case __DRI_BUFFER_DEPTH:
 +  case __DRI_BUFFER_HIZ:
 +  case __DRI_BUFFER_DEPTH_STENCIL:
 +  case __DRI_BUFFER_STENCIL:
 +  case __DRI_BUFFER_ACCUM:
 +  default:
 + fprintf(stderr,
 + unhandled buffer attach event, attachment type %d\n,
 + buffers[i].attachment);
 + return;
 +  }
 +
 +  intel_process_dri2_buffer(intel, drawable, buffers[i], rb, 
 region_name);
 +   }
 +}
 +
 +void
 +intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
 +{
 +   struct intel_context *intel = context-driverPrivate;
 +   __DRIscreen *screen = intel-intelScreen-driScrnPriv;
  
 /* Set this up front, so that in case our buffers get invalidated
  * while we're getting new buffers, we don't clobber the stamp and
 @@ -151,42 +194,7 @@ intel_update_renderbuffers(__DRIcontext *context, 
 __DRIdrawable *drawable)
 if (unlikely(INTEL_DEBUG  DEBUG_DRI))
fprintf(stderr, enter %s, drawable %p\n, __func__, drawable);
  
 -   intel_query_dri2_buffers(intel, drawable, buffers, count);
 -
 -   if (buffers == NULL)
 -  return;
 -
 -   for (i = 0; i  count; i++) {
 -   switch (buffers[i].attachment) {
 -   case __DRI_BUFFER_FRONT_LEFT:
 -rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT);
 -region_name = dri2 front buffer;
 -break;
 -
 -   case __DRI_BUFFER_FAKE_FRONT_LEFT:
 -rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT);
 -region_name = dri2 fake front buffer;
 -break;
 -
 -   case __DRI_BUFFER_BACK_LEFT:
 -rb = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT);
 -region_name = dri2 back buffer;
 -break;
 -
 -   case __DRI_BUFFER_DEPTH:
 -   case __DRI_BUFFER_HIZ:
 -   case __DRI_BUFFER_DEPTH_STENCIL:
 -   case __DRI_BUFFER_STENCIL:
 -   case __DRI_BUFFER_ACCUM:
 -   default:
 -fprintf(stderr,
 -unhandled buffer attach event, attachment type %d\n,
 -buffers[i].attachment);
 -return;
 -   }
 -
 -   intel_process_dri2_buffer(intel, drawable, buffers[i], rb, 
 region_name);
 -   }
 +   intel_update_dri2_buffers(intel, drawable);
  
 driUpdateFramebufferSize(intel-ctx, drawable);
  }
 diff --git a/src/mesa/drivers/dri/i965/brw_context.c 
 b/src/mesa/drivers/dri/i965/brw_context.c
 index 38147e9..c213b31 100644
 --- a/src/mesa/drivers/dri/i965/brw_context.c
 +++ b/src/mesa/drivers/dri/i965/brw_context.c
 @@ -929,12 +929,11 @@ intel_process_dri2_buffer(struct brw_context *brw,
struct intel_renderbuffer *rb,
const char *buffer_name);
  
 -void
 -intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
 +static void
 +intel_update_dri2_buffers(struct brw_context *brw, __DRIdrawable *drawable)
  {
 struct gl_framebuffer *fb = drawable-driverPrivate;
 struct 

Re: [PATCH 0/2] Make the vmwgfx driver reasonably DMA-API compliant

2013-11-05 Thread Konrad Rzeszutek Wilk
On Mon, Nov 04, 2013 at 05:57:37AM -0800, Thomas Hellstrom wrote:
 These patches makes the vmwgfx driver use the DMA API to obtain valid
 device addresses rather than blindly using physical addresses.
 
 The main motivation is to be able to use a virtual IOMMU in the future.

Ooooh. Neat! Are there any RFC patches available?
 
 Other TTM drivers typically map pages one by one rather than using a
 scatter-gather list, but since we can benefit from having a single dma
 address region set up by the IOMMU, we use a scatter-gather list instead.
 
 Finally to be able to handle all the dma mapping modes, we locally extend the
 scatter-gather list page iterator to handle also the direct physical- and
 coherent cases.
 
 Finally, the TTM DMA page pool is enabled also when the Intel IOMMU is active

--
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages

2013-11-05 Thread Konrad Rzeszutek Wilk
On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote:
 The code handles three different cases:
 1) physical page addresses. The ttm page array is used.
 2) DMA subsystem addresses. A scatter-gather list is used.
 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm
 array os dma_addr_t
 
 Signed-off-by: Thomas Hellstrom thellst...@vmware.com
 Reviewed-by: Jakob Bornecrantz ja...@vmware.com

I looked at it from the TTM DMA perspective and it looks OK for me.

 ---
  drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c |  379 
 ++--
  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c|   87 +++-
  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h|   98 -
  drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c|  150 ++---
  4 files changed, 620 insertions(+), 94 deletions(-)
 
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
 index 96dc84d..7776e6f 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
 @@ -141,37 +141,374 @@ struct ttm_placement vmw_srf_placement = {
  };
  
  struct vmw_ttm_tt {
 - struct ttm_tt ttm;
 + struct ttm_dma_tt dma_ttm;
   struct vmw_private *dev_priv;
   int gmr_id;
 + struct sg_table sgt;
 + struct vmw_sg_table vsgt;
 + uint64_t sg_alloc_size;
 + bool mapped;
  };
  
 +/**
 + * Helper functions to advance a struct vmw_piter iterator.
 + *
 + * @viter: Pointer to the iterator.
 + *
 + * These functions return false if past the end of the list,
 + * true otherwise. Functions are selected depending on the current
 + * DMA mapping mode.
 + */
 +static bool __vmw_piter_non_sg_next(struct vmw_piter *viter)
 +{
 + return ++(viter-i)  viter-num_pages;
 +}
 +
 +static bool __vmw_piter_sg_next(struct vmw_piter *viter)
 +{
 + return __sg_page_iter_next(viter-iter);
 +}
 +
 +
 +/**
 + * Helper functions to return a pointer to the current page.
 + *
 + * @viter: Pointer to the iterator
 + *
 + * These functions return a pointer to the page currently
 + * pointed to by @viter. Functions are selected depending on the
 + * current mapping mode.
 + */
 +static struct page *__vmw_piter_non_sg_page(struct vmw_piter *viter)
 +{
 + return viter-pages[viter-i];
 +}
 +
 +static struct page *__vmw_piter_sg_page(struct vmw_piter *viter)
 +{
 + return sg_page_iter_page(viter-iter);
 +}
 +
 +
 +/**
 + * Helper functions to return the DMA address of the current page.
 + *
 + * @viter: Pointer to the iterator
 + *
 + * These functions return the DMA address of the page currently
 + * pointed to by @viter. Functions are selected depending on the
 + * current mapping mode.
 + */
 +static dma_addr_t __vmw_piter_phys_addr(struct vmw_piter *viter)
 +{
 + return page_to_phys(viter-pages[viter-i]);
 +}
 +
 +static dma_addr_t __vmw_piter_dma_addr(struct vmw_piter *viter)
 +{
 + return viter-addrs[viter-i];
 +}
 +
 +static dma_addr_t __vmw_piter_sg_addr(struct vmw_piter *viter)
 +{
 + return sg_page_iter_dma_address(viter-iter);
 +}
 +
 +
 +/**
 + * vmw_piter_start - Initialize a struct vmw_piter.
 + *
 + * @viter: Pointer to the iterator to initialize
 + * @vsgt: Pointer to a struct vmw_sg_table to initialize from
 + *
 + * Note that we're following the convention of __sg_page_iter_start, so that
 + * the iterator doesn't point to a valid page after initialization; it has
 + * to be advanced one step first.
 + */
 +void vmw_piter_start(struct vmw_piter *viter, const struct vmw_sg_table 
 *vsgt,
 +  unsigned long p_offset)
 +{
 + viter-i = p_offset - 1;
 + viter-num_pages = vsgt-num_pages;
 + switch (vsgt-mode) {
 + case vmw_dma_phys:
 + viter-next = __vmw_piter_non_sg_next;
 + viter-dma_address = __vmw_piter_phys_addr;
 + viter-page = __vmw_piter_non_sg_page;
 + viter-pages = vsgt-pages;
 + break;
 + case vmw_dma_alloc_coherent:
 + viter-next = __vmw_piter_non_sg_next;
 + viter-dma_address = __vmw_piter_dma_addr;
 + viter-page = __vmw_piter_non_sg_page;
 + viter-addrs = vsgt-addrs;
 + break;
 + case vmw_dma_map_populate:
 + case vmw_dma_map_bind:
 + viter-next = __vmw_piter_sg_next;
 + viter-dma_address = __vmw_piter_sg_addr;
 + viter-page = __vmw_piter_sg_page;
 + __sg_page_iter_start(viter-iter, vsgt-sgt-sgl,
 +  vsgt-sgt-orig_nents, p_offset);
 + break;
 + default:
 + BUG();
 + }
 +}
 +
 +/**
 + * vmw_ttm_unmap_from_dma - unmap  device addresses previsouly mapped for
 + * TTM pages
 + *
 + * @vmw_tt: Pointer to a struct vmw_ttm_backend
 + *
 + * Used to free dma mappings previously mapped by vmw_ttm_map_for_dma.
 + */
 +static void vmw_ttm_unmap_from_dma(struct vmw_ttm_tt *vmw_tt)
 +{
 + struct device *dev = vmw_tt-dev_priv-dev-dev;
 +
 + dma_unmap_sg(dev, 

Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages

2013-11-04 Thread Daniel Vetter
On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote:
 The code handles three different cases:
 1) physical page addresses. The ttm page array is used.
 2) DMA subsystem addresses. A scatter-gather list is used.
 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm
 array os dma_addr_t
 
 Signed-off-by: Thomas Hellstrom thellst...@vmware.com
 Reviewed-by: Jakob Bornecrantz ja...@vmware.com

For i915.ko use we've added page iterators which should walk the physical
backing storage.

commit a321e91b6d73ed011ffceed384c40d2785cf723b
Author: Imre Deak imre.d...@intel.com
Date:   Wed Feb 27 17:02:56 2013 -0800

lib/scatterlist: add simple page iterator

Now we've unified all our backing storage handling around sg tables (even
for stolen memory), so maybe that's not useful for you guys. Just figured
I'll drop this here, it imo made our code look fairly tidy.

Cheers, Daniel

 ---
  drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c |  379 
 ++--
  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c|   87 +++-
  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h|   98 -
  drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c|  150 ++---
  4 files changed, 620 insertions(+), 94 deletions(-)
 
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
 index 96dc84d..7776e6f 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
 @@ -141,37 +141,374 @@ struct ttm_placement vmw_srf_placement = {
  };
  
  struct vmw_ttm_tt {
 - struct ttm_tt ttm;
 + struct ttm_dma_tt dma_ttm;
   struct vmw_private *dev_priv;
   int gmr_id;
 + struct sg_table sgt;
 + struct vmw_sg_table vsgt;
 + uint64_t sg_alloc_size;
 + bool mapped;
  };
  
 +/**
 + * Helper functions to advance a struct vmw_piter iterator.
 + *
 + * @viter: Pointer to the iterator.
 + *
 + * These functions return false if past the end of the list,
 + * true otherwise. Functions are selected depending on the current
 + * DMA mapping mode.
 + */
 +static bool __vmw_piter_non_sg_next(struct vmw_piter *viter)
 +{
 + return ++(viter-i)  viter-num_pages;
 +}
 +
 +static bool __vmw_piter_sg_next(struct vmw_piter *viter)
 +{
 + return __sg_page_iter_next(viter-iter);
 +}
 +
 +
 +/**
 + * Helper functions to return a pointer to the current page.
 + *
 + * @viter: Pointer to the iterator
 + *
 + * These functions return a pointer to the page currently
 + * pointed to by @viter. Functions are selected depending on the
 + * current mapping mode.
 + */
 +static struct page *__vmw_piter_non_sg_page(struct vmw_piter *viter)
 +{
 + return viter-pages[viter-i];
 +}
 +
 +static struct page *__vmw_piter_sg_page(struct vmw_piter *viter)
 +{
 + return sg_page_iter_page(viter-iter);
 +}
 +
 +
 +/**
 + * Helper functions to return the DMA address of the current page.
 + *
 + * @viter: Pointer to the iterator
 + *
 + * These functions return the DMA address of the page currently
 + * pointed to by @viter. Functions are selected depending on the
 + * current mapping mode.
 + */
 +static dma_addr_t __vmw_piter_phys_addr(struct vmw_piter *viter)
 +{
 + return page_to_phys(viter-pages[viter-i]);
 +}
 +
 +static dma_addr_t __vmw_piter_dma_addr(struct vmw_piter *viter)
 +{
 + return viter-addrs[viter-i];
 +}
 +
 +static dma_addr_t __vmw_piter_sg_addr(struct vmw_piter *viter)
 +{
 + return sg_page_iter_dma_address(viter-iter);
 +}
 +
 +
 +/**
 + * vmw_piter_start - Initialize a struct vmw_piter.
 + *
 + * @viter: Pointer to the iterator to initialize
 + * @vsgt: Pointer to a struct vmw_sg_table to initialize from
 + *
 + * Note that we're following the convention of __sg_page_iter_start, so that
 + * the iterator doesn't point to a valid page after initialization; it has
 + * to be advanced one step first.
 + */
 +void vmw_piter_start(struct vmw_piter *viter, const struct vmw_sg_table 
 *vsgt,
 +  unsigned long p_offset)
 +{
 + viter-i = p_offset - 1;
 + viter-num_pages = vsgt-num_pages;
 + switch (vsgt-mode) {
 + case vmw_dma_phys:
 + viter-next = __vmw_piter_non_sg_next;
 + viter-dma_address = __vmw_piter_phys_addr;
 + viter-page = __vmw_piter_non_sg_page;
 + viter-pages = vsgt-pages;
 + break;
 + case vmw_dma_alloc_coherent:
 + viter-next = __vmw_piter_non_sg_next;
 + viter-dma_address = __vmw_piter_dma_addr;
 + viter-page = __vmw_piter_non_sg_page;
 + viter-addrs = vsgt-addrs;
 + break;
 + case vmw_dma_map_populate:
 + case vmw_dma_map_bind:
 + viter-next = __vmw_piter_sg_next;
 + viter-dma_address = __vmw_piter_sg_addr;
 + viter-page = __vmw_piter_sg_page;
 + __sg_page_iter_start(viter-iter, vsgt-sgt-sgl,
 +  vsgt-sgt-orig_nents, p_offset);
 + break;
 + default:
 

Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages

2013-11-04 Thread Thomas Hellstrom
On 11/04/2013 05:27 PM, Daniel Vetter wrote:
 On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote:
 The code handles three different cases:
 1) physical page addresses. The ttm page array is used.
 2) DMA subsystem addresses. A scatter-gather list is used.
 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm
 array os dma_addr_t

 Signed-off-by: Thomas Hellstrom thellst...@vmware.com
 Reviewed-by: Jakob Bornecrantz ja...@vmware.com
 For i915.ko use we've added page iterators which should walk the physical
 backing storage.

 commit a321e91b6d73ed011ffceed384c40d2785cf723b
 Author: Imre Deak imre.d...@intel.com
 Date:   Wed Feb 27 17:02:56 2013 -0800

  lib/scatterlist: add simple page iterator



Yes, I saw those iterators, (nice stuff!) and my patch are using them as 
a base class, handling also
TTM page - and dma address arrays basically with the same interface. In 
the long run we might
want to move ttm over to sg_tables as well.

One problem, though, the page iterators break in the mapped case where
sg_dma_len(sg) != sg_len(sg).
An iommu implementation is allowed to reduce the sg list to a single 
segment, in which case those page
iterators will fall apart. I was planning to see if I could fix that up, 
but unfortunately there is no generic
dma_to_phys.
It all works now because intel_iommu, amd_iommu and swiotlb all keep the 
number of entries in an
sg list across mapping

/Thomas

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 0/2] Make the vmwgfx driver reasonably DMA-API compliant

2013-11-04 Thread Thomas Hellstrom
On 11/04/2013 05:30 PM, Konrad Rzeszutek Wilk wrote:
 On Mon, Nov 04, 2013 at 05:57:37AM -0800, Thomas Hellstrom wrote:
 These patches makes the vmwgfx driver use the DMA API to obtain valid
 device addresses rather than blindly using physical addresses.

 The main motivation is to be able to use a virtual IOMMU in the future.
 Ooooh. Neat! Are there any RFC patches available?

Nope, not yet.

Thanks,
Thomas

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 1/2] drm/ttm: Enable the dma page pool also for intel IOMMUs

2013-11-04 Thread Thomas Hellstrom
On 11/04/2013 05:34 PM, Konrad Rzeszutek Wilk wrote:
 On Mon, Nov 04, 2013 at 05:57:38AM -0800, Thomas Hellstrom wrote:
 Used by the vmwgfx driver
 That looks OK to me. And baremetal should not be
 affected as the Intel VT-d driver turns of the SWIOTLB
 driver - so it will still use the classic ttm pool code.

 Reviewed-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com


Thanks for reviewing, Konrad.

/Thomas

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages

2013-11-04 Thread Thomas Hellstrom
On 11/04/2013 05:40 PM, Konrad Rzeszutek Wilk wrote:
 On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote:
 The code handles three different cases:
 1) physical page addresses. The ttm page array is used.
 2) DMA subsystem addresses. A scatter-gather list is used.
 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm
 array os dma_addr_t

 Signed-off-by: Thomas Hellstrom thellst...@vmware.com
 Reviewed-by: Jakob Bornecrantz ja...@vmware.com
 I looked at it from the TTM DMA perspective and it looks OK for me.

Great. Thanks,

Thomas

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] [PATCH 3/6] dri/intel: Add explicit size parameter to intel_region_alloc_for_fd

2013-11-04 Thread Ian Romanick
On 10/31/2013 04:13 PM, Keith Packard wrote:
 Instead of assuming that the size will be height * pitch, have the caller pass
 in the size explicitly.
 
 Signed-off-by: Keith Packard kei...@keithp.com

One nit below.  With that changed,

Reviewed-by: Ian Romanick ian.d.roman...@intel.com

 ---
  src/mesa/drivers/dri/i915/intel_regions.c | 4 ++--
  src/mesa/drivers/dri/i915/intel_regions.h | 2 +-
  src/mesa/drivers/dri/i915/intel_screen.c  | 2 +-
  src/mesa/drivers/dri/i965/intel_regions.c | 4 ++--
  src/mesa/drivers/dri/i965/intel_regions.h | 1 +
  src/mesa/drivers/dri/i965/intel_screen.c  | 2 +-
  6 files changed, 8 insertions(+), 7 deletions(-)
 
 diff --git a/src/mesa/drivers/dri/i915/intel_regions.c 
 b/src/mesa/drivers/dri/i915/intel_regions.c
 index 44f7030..9f5b89e 100644
 --- a/src/mesa/drivers/dri/i915/intel_regions.c
 +++ b/src/mesa/drivers/dri/i915/intel_regions.c
 @@ -209,6 +209,7 @@ struct intel_region *
  intel_region_alloc_for_fd(struct intel_screen *screen,
GLuint cpp,
GLuint width, GLuint height, GLuint pitch,
 +  GLuint size,
int fd, const char *name)
  {
 struct intel_region *region;
 @@ -216,8 +217,7 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
 int ret;
 uint32_t bit_6_swizzle, tiling;
  
 -   buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr,
 -   fd, height * pitch);
 +   buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr, fd, size);
 if (buffer == NULL)
return NULL;
 ret = drm_intel_bo_get_tiling(buffer, tiling, bit_6_swizzle);
 diff --git a/src/mesa/drivers/dri/i915/intel_regions.h 
 b/src/mesa/drivers/dri/i915/intel_regions.h
 index 5c612a9..6bc4a42 100644
 --- a/src/mesa/drivers/dri/i915/intel_regions.h
 +++ b/src/mesa/drivers/dri/i915/intel_regions.h
 @@ -91,7 +91,7 @@ struct intel_region *
  intel_region_alloc_for_fd(struct intel_screen *screen,
GLuint cpp,
GLuint width, GLuint height, GLuint pitch,
 -  int fd, const char *name);
 +  GLuint size, int fd, const char *name);
  
  bool
  intel_region_flink(struct intel_region *region, uint32_t *name);
 diff --git a/src/mesa/drivers/dri/i915/intel_screen.c 
 b/src/mesa/drivers/dri/i915/intel_screen.c
 index 3f54752..085e894 100644
 --- a/src/mesa/drivers/dri/i915/intel_screen.c
 +++ b/src/mesa/drivers/dri/i915/intel_screen.c
 @@ -653,7 +653,7 @@ intel_create_image_from_fds(__DRIscreen *screen,
return NULL;
  
 image-region = intel_region_alloc_for_fd(intelScreen,
 - 1, width, height,
 + 1, width, height, height * 
 strides[0],
   strides[0], fds[0], image);
 if (image-region == NULL) {
free(image);
 diff --git a/src/mesa/drivers/dri/i965/intel_regions.c 
 b/src/mesa/drivers/dri/i965/intel_regions.c
 index a6b80fd..3920f4f 100644
 --- a/src/mesa/drivers/dri/i965/intel_regions.c
 +++ b/src/mesa/drivers/dri/i965/intel_regions.c
 @@ -209,6 +209,7 @@ struct intel_region *
  intel_region_alloc_for_fd(struct intel_screen *screen,
GLuint cpp,
GLuint width, GLuint height, GLuint pitch,
 +  GLuint size,
int fd, const char *name)
  {
 struct intel_region *region;
 @@ -216,8 +217,7 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
 int ret;
 uint32_t bit_6_swizzle, tiling;
  
 -   buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr,
 -   fd, height * pitch);
 +   buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr, fd, size);
 if (buffer == NULL)
return NULL;
 ret = drm_intel_bo_get_tiling(buffer, tiling, bit_6_swizzle);
 diff --git a/src/mesa/drivers/dri/i965/intel_regions.h 
 b/src/mesa/drivers/dri/i965/intel_regions.h
 index f08a113..05dfef3 100644
 --- a/src/mesa/drivers/dri/i965/intel_regions.h
 +++ b/src/mesa/drivers/dri/i965/intel_regions.h
 @@ -92,6 +92,7 @@ struct intel_region *
  intel_region_alloc_for_fd(struct intel_screen *screen,
GLuint cpp,
GLuint width, GLuint height, GLuint pitch,
 +  GLuint size,

Since this isn't exposed to the GL API, use either unsigned or size_t.

int fd, const char *name);
  
  bool
 diff --git a/src/mesa/drivers/dri/i965/intel_screen.c 
 b/src/mesa/drivers/dri/i965/intel_screen.c
 index eafafa2..0bd0789 100644
 --- a/src/mesa/drivers/dri/i965/intel_screen.c
 +++ b/src/mesa/drivers/dri/i965/intel_screen.c
 @@ -712,7 +712,7 @@ intel_create_image_from_fds(__DRIscreen *screen,
return NULL;
  
 image-region = 

Re: Quick question on DCE8 (HD7770?)

2013-08-01 Thread Sérgio Basto
On Qua, 2013-07-31 at 08:25 +0200, Rafał Miłecki wrote: 
 HI guys,
 
 I'm looking for the cheapest DCE8 GPU. I know there are 3
 (engineering) families using DCE8: KAVERI, BONAIRE and KABINI.
 
 The only GPU I know should be DCE8 is HD7790 (not even sure which
 engineering family is that). Unfortunately it costs over 120€ here.
 
 Is there any other DCE8 card available on the market and (hopefully)
 cheaper thatn HD7790? Any chance HD7770 is also DCE8?
 


Hi, DRI devel mailing list have been move to
dri-de...@lists.freedesktop.org you may want post your question there . 


Best regards, 
-- 
Sérgio M. B.


--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Quick question on DCE8 (HD7770?)

2013-08-01 Thread Rafał Miłecki
2013/8/1 Sérgio Basto ser...@serjux.com:
 Hi, DRI devel mailing list have been move to
 dri-de...@lists.freedesktop.org you may want post your question there .

Thanks, I already did:
http://lists.freedesktop.org/archives/dri-devel/2013-July/042583.html

-- 
Rafał

--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] fbcon: fix locking harder

2013-01-25 Thread Josh Boyer
On Thu, Jan 24, 2013 at 8:43 PM, Dave Airlie airl...@gmail.com wrote:
 Okay so Alan's patch handled the case where there was no registered fbcon,
 however the other path entered in set_con2fb_map pit.

 In there we called fbcon_takeover, but we also took the console lock in a 
 couple
 of places. So push the console lock out to the callers of set_con2fb_map,

 this means fbmem and switcheroo needed to take the lock around the fb notifier
 entry points that lead to this.

 This should fix the efifb regression seen by Maarten.

 Signed-off-by: Dave Airlie airl...@redhat.com

Linus might not be taking this for 3.8 because of lack of testing, but
that doesn't mean the problems don't exist in 3.8 (and older).  Maybe
throw a CC for stable on the patch?  That way it works its way back when
it does get merged.

josh

--
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] fbcon: fix locking harder

2013-01-25 Thread Daniel Vetter
On Fri, Jan 25, 2013 at 2:43 AM, Dave Airlie airl...@gmail.com wrote:
 Okay so Alan's patch handled the case where there was no registered fbcon,
 however the other path entered in set_con2fb_map pit.

 In there we called fbcon_takeover, but we also took the console lock in a 
 couple
 of places. So push the console lock out to the callers of set_con2fb_map,

 this means fbmem and switcheroo needed to take the lock around the fb notifier
 entry points that lead to this.

 This should fix the efifb regression seen by Maarten.

 Signed-off-by: Dave Airlie airl...@redhat.com
 ---
  drivers/gpu/vga/vga_switcheroo.c |  3 +++
  drivers/video/console/fbcon.c| 11 ---
  drivers/video/fbmem.c|  2 ++
  3 files changed, 13 insertions(+), 3 deletions(-)

[cut]

 ret = vgasr_priv.handler-switchto(new_client-id);
 diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
 index 2aef9ca..2e2d959 100644
 --- a/drivers/video/console/fbcon.c
 +++ b/drivers/video/console/fbcon.c
 @@ -842,6 +842,8 @@ static void con2fb_init_display(struct vc_data *vc, 
 struct fb_info *info,
   *
   * Maps a virtual console @unit to a frame buffer device
   * @newidx.
 + *
 + * This should be called with the console lock held.
   */
  static int set_con2fb_map(int unit, int newidx, int user)
  {

What about throwing a WARN_CONSOLE_UNLOCKED(); in here to make sure
this new rule is obeyed?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

--
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm i915 hangs on heavy io load

2012-10-23 Thread Dave Airlie

 (please Cc)

 I am running 3.7-rc2 and got recently hit a few times (under rc1, too)
 by hanging drm i915 while doing large io operations.

Does booting with i915.i915_enable_rc6=0 help?

(Daniel, looks like an ironlake).

Dave.

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Changes to 'debian-experimental'

2012-09-11 Thread Jordan Justen
On Mon, Sep 10, 2012 at 1:27 AM, Michel Dänzer mic...@daenzer.net wrote:
 On Son, 2012-09-09 at 15:33 -0700, Jordan Justen wrote:
 New branch 'debian-experimental' available with the following commits:

 I think you pushed this to the wrong repository?

My apologies. I had the hook script mis-configured under my personal
repo. I don't think the main drm repo was modified.

-Jordan

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Changes to 'debian-experimental'

2012-09-10 Thread Michel Dänzer
On Son, 2012-09-09 at 15:33 -0700, Jordan Justen wrote: 
 New branch 'debian-experimental' available with the following commits:

I think you pushed this to the wrong repository?


-- 
Earthling Michel Dänzer   |   http://www.amd.com
Libre software enthusiast |  Debian, X and DRI developer

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] fbcon: fix race condition between console lock and cursor timer

2012-08-21 Thread Peter Zijlstra
On Tue, 2012-08-21 at 10:15 +0100, Alan Cox wrote:
  So after much tracing with direct netconsole writes (printks
  under console_lock not so useful), I think I found the race.
 
 Direct netconsole write would be a useful patch to have mainline I think
 8) 

could we make that use the earlyprintk infrastructure?

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] fbcon: fix race condition between console lock and cursor timer

2012-08-21 Thread Josh Boyer
On Tue, Aug 21, 2012 at 2:40 AM, Dave Airlie airl...@redhat.com wrote:
 So we've had a fair few reports of fbcon handover breakage between
 efi/vesafb and i915 surface recently, so I dedicated a couple of
 days to finding the problem.

 Essentially the last thing we saw was the conflicting framebuffer
 message and that was all.

 So after much tracing with direct netconsole writes (printks
 under console_lock not so useful), I think I found the race.

 Thread A (driver load)Thread B (timer thread)
   unbind_con_driver -  |
   bind_con_driver -|
   vc-vc_sw-con_deinit -  |
   fbcon_deinit -   |
   console_lock()|
   | |
   |   fbcon_flashcursor timer fires
   |   console_lock() - blocked for A
   |
   |
 fbcon_del_cursor_timer -
   del_timer_sync
   (BOOM)

 Of course because all of this is under the console lock,
 we never see anything, also since we also just unbound the active
 console guess what we never see anything.

 Hopefully this fixes the problem for anyone seeing vesafb-kms
 driver handoff.

 Signed-off-by: David Airlie airl...@redhat.com
 ---
  drivers/video/console/fbcon.c |6 +-
  1 file changed, 5 insertions(+), 1 deletion(-)

 diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
 index 2e471c2..f8a79fc 100644
 --- a/drivers/video/console/fbcon.c
 +++ b/drivers/video/console/fbcon.c
 @@ -372,8 +372,12 @@ static void fb_flashcursor(struct work_struct *work)
 struct vc_data *vc = NULL;
 int c;
 int mode;
 +   int ret;
 +
 +   ret = console_trylock();
 +   if (ret == 0)
 +   return;

 -   console_lock();
 if (ops  ops-currcon != -1)
 vc = vc_cons[ops-currcon].d;


I have a Dell XPS 8300 machine with a Radeon card in it that started
showing this problem yesterday with 3.6-rc2 kernels.  I tested this
patch on top of v3.6-rc2-206-g10c63c9 this morning and the problem
seems to have been cleared up for me.  That includes making sure the
grub2 file has the gfxterm set, etc.

I know we've been seeing this quite a bit more on Fedora 17, so we'll
want to have some people test a 3.5 build with it but things are
looking better.

josh

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] fbcon: fix race condition between console lock and cursor timer

2012-08-21 Thread Dave Airlie
On Tue, Aug 21, 2012 at 7:15 PM, Alan Cox a...@lxorguk.ukuu.org.uk wrote:
 So after much tracing with direct netconsole writes (printks
 under console_lock not so useful), I think I found the race.

 Direct netconsole write would be a useful patch to have mainline I think
 8)

Well I used a one line wrapper around the netconsole write_msg, which
just passed
NULL as the first arg, then sprinkled netconsole_write_msg around the
place, not having
printf stuff could be an annoyance for some people, for this it didn't matter.

Peter I wish I had a serial port to work with :-)


 Not really the proper fix but its clear and is probably the best thing to
 go in initially with a cc: stable. Can you at least stick a large

 + /* FIXME: we should sort out the unbind locking instead */

Done, and cc stable, I'll send this to Linus via my tree as its fairly
urgent from my pov.

Dave.

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master' - 5 commits

2012-04-07 Thread Rob Clark
On Thu, Apr 5, 2012 at 4:21 PM, Ville Syrjälä syrj...@sci.fi wrote:
 On Tue, Apr 03, 2012 at 02:50:01PM -0700, Rob Clark wrote:
 +             /* just testing a limited # of formats to test single
 +              * and multi-planar path.. would be nice to add more..
 +              */
 +             if (!strcmp(p-format_str, YUYV)) {
 +                     pitches[0] = p-w * 2;
 +                     offsets[0] = 0;
 +                     kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]);
 +
 +                     fill422(virtual, 0, p-w, p-h, pitches[0]);
 +
 +                     format = DRM_FORMAT_YUYV;
 +             } else if (!strcmp(p-format_str, NV12)) {
 +                     pitches[0] = p-w;
 +                     offsets[0] = 0;
 +                     kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]);
 +                     pitches[1] = p-w;
 +                     offsets[1] = p-w * p-h;
 +                     kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]);
 +
 +                     fill420(virtual, virtual+offsets[1], 
 virtual+offsets[1]+1,
 +                                     2, 0, p-w, p-h, pitches[0]);
 +
 +                     format = DRM_FORMAT_NV12;
 +             } else if (!strcmp(p-format_str, YV12)) {
 +                     pitches[0] = p-w;
 +                     offsets[0] = 0;
 +                     kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]);
 +                     pitches[1] = p-w / 2;
 +                     offsets[1] = p-w * p-h;
 +                     kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]);
 +                     pitches[2] = p-w / 2;
 +                     offsets[2] = offsets[1] + (p-w * p-h) / 4;
 +                     kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]);
                                                                       ^
 Should be '2'. The kernel patch I just posted might have caught this.
 OTOH it might not have in case handles[2] contains uninitialized data.


Good catch, I can push a fix.  If you already have a patch, please
send, otherwise I'll just go ahead and fix it myself.

fwiw, on omap4xxx we only support 1 and 2 plane formats, so 3 plane
was untested.. but I wanted to push the test at least so we could have
some common test code between the different platforms and catch any
potential mismatches in understanding (for ex. the src coords in 16.16
format vs integer)

 We should add a test that would make sure that passing an invalid bo
 handle for any plane would return with an error. The problem is knowing
 what exactly is an invalid handle since it's all driver specific.
 Perhaps 0x would be a reasonably safe choice. Hmm, now I wonder
 if 0 might actually be a valid handle for some of the current drivers...

I guess *nearly* everyone uses GEM?  I suppose we could have a
validate_handle fxn ptr w/ a default drm_gem_validate_handle() helper
that any of the drivers using GEM could use.  I'm not sure if that is
just overkill (since the drm_gem_object_lookup() would anyways fail in
the driver part).

On the other hand moving something like the objects_lookup() helper in
omapdrm into core gem code might not be a bad idea.  This way each
driver isn't having to handle the cleanup when it gets only part way
thru object lookup when it encounters an invalid handle.


 There should obviously also be a test that does use separate bos
 for reach plane. That should either succeed and produce the correct
 result, or the driver should respond with an error at least to the
 setplane ioctl. Whether it would allow addfb2 to succeed is a slightly
 more complicated matter. I suppose it could be possible that on some
 odd hardware some planes would support multiple bos and some would
 not. In which case the driver would need to allow the addfb2.

Yeah, there certainly is room for more tests, especially because there
are so many possible permutations.  Possibly we should split out into
'planetest' before modetest gets too big?  Anyways, I figured at least
one basic test was better than zero ;-)

BR,
-R

 --
 Ville Syrjälä
 syrj...@sci.fi
 http://www.sci.fi/~syrjala/

 --
 Better than sec? Nothing is better than sec when it comes to
 monitoring Big Data applications. Try Boundary one-second
 resolution app monitoring today. Free.
 http://p.sf.net/sfu/Boundary-dev2dev
 --
 ___
 Dri-devel mailing list
 Dri-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/dri-devel
 ___
 dri-devel mailing list
 dri-de...@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
--

Re: drm: Branch 'master' - 5 commits

2012-04-05 Thread Ville Syrjälä
On Tue, Apr 03, 2012 at 02:50:01PM -0700, Rob Clark wrote:
 + /* just testing a limited # of formats to test single
 +  * and multi-planar path.. would be nice to add more..
 +  */
 + if (!strcmp(p-format_str, YUYV)) {
 + pitches[0] = p-w * 2;
 + offsets[0] = 0;
 + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]);
 +
 + fill422(virtual, 0, p-w, p-h, pitches[0]);
 +
 + format = DRM_FORMAT_YUYV;
 + } else if (!strcmp(p-format_str, NV12)) {
 + pitches[0] = p-w;
 + offsets[0] = 0;
 + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]);
 + pitches[1] = p-w;
 + offsets[1] = p-w * p-h;
 + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]);
 +
 + fill420(virtual, virtual+offsets[1], 
 virtual+offsets[1]+1,
 + 2, 0, p-w, p-h, pitches[0]);
 +
 + format = DRM_FORMAT_NV12;
 + } else if (!strcmp(p-format_str, YV12)) {
 + pitches[0] = p-w;
 + offsets[0] = 0;
 + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]);
 + pitches[1] = p-w / 2;
 + offsets[1] = p-w * p-h;
 + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]);
 + pitches[2] = p-w / 2;
 + offsets[2] = offsets[1] + (p-w * p-h) / 4;
 + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]);
   ^
Should be '2'. The kernel patch I just posted might have caught this.
OTOH it might not have in case handles[2] contains uninitialized data.

We should add a test that would make sure that passing an invalid bo
handle for any plane would return with an error. The problem is knowing
what exactly is an invalid handle since it's all driver specific.
Perhaps 0x would be a reasonably safe choice. Hmm, now I wonder
if 0 might actually be a valid handle for some of the current drivers...

There should obviously also be a test that does use separate bos
for reach plane. That should either succeed and produce the correct
result, or the driver should respond with an error at least to the
setplane ioctl. Whether it would allow addfb2 to succeed is a slightly
more complicated matter. I suppose it could be possible that on some
odd hardware some planes would support multiple bos and some would
not. In which case the driver would need to allow the addfb2.

-- 
Ville Syrjälä
syrj...@sci.fi
http://www.sci.fi/~syrjala/

--
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: regression(?) 3.3-rc4 - 3.3-rc5: drm intel hangs

2012-02-28 Thread Paul Menzel
Dear Norbert,


Am Dienstag, den 28.02.2012, 13:03 +0900 schrieb Norbert Preining:
 Dear all,
 
 (please Cc)
 
 since upgrade to 3.3-rc5 I see the following behaviour repeatedly:
 
 Feb 28 11:42:47 mithrandir kernel: [15627.756071] 
 [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
 Feb 28 11:42:47 mithrandir kernel: [15627.756087] [drm] capturing error 
 event; look for more information in /debug/dri/0/i915_error_state
 Feb 28 11:42:47 mithrandir kernel: [15627.758428] [drm:i915_wait_request] 
 *ERROR* i915_wait_request returns -11 (awaiting 7 at 4, next 8)
 Feb 28 11:42:47 mithrandir kernel: [15628.260094] [drm:i915_reset] *ERROR* 
 Failed to reset chip.
 
 Is this is known issue?

I do not know. But it would be interesting to know if you just see this
in your log files or if you also see some effects like screen
corruptions. You can increase the log level by adding `drm.debug=0x06`
to the Linux kernel command line [1].

[…]


Thanks,

Paul


[1] http://intellinuxgraphics.org/how_to_report_bug.html


signature.asc
Description: This is a digitally signed message part
--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: regression(?) 3.3-rc4 - 3.3-rc5: drm intel hangs

2012-02-28 Thread Dave Airlie
On Tue, Feb 28, 2012 at 4:03 AM, Norbert Preining prein...@logic.at wrote:
 Dear all,

 (please Cc)

And you haven't changed userspace in any way?

Dave.

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: regression(?) 3.3-rc4 - 3.3-rc5: drm intel hangs

2012-02-28 Thread Daniel Vetter
On Tue, Feb 28, 2012 at 01:03:27PM +0900, Norbert Preining wrote:
 Dear all,
 
 (please Cc)
 
 since upgrade to 3.3-rc5 I see the following behaviour repeatedly:
 
 Feb 28 11:42:47 mithrandir kernel: [15627.756071]
 [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
 Feb 28 11:42:47 mithrandir kernel: [15627.756087] [drm] capturing error
 event; look for more information in /debug/dri/0/i915_error_state

Wee need this i915_error_state file from debugfs (you might need to mount
that first again) to diagnose gpu hangs. Also, it only contains
information after a crash, so you need to rehang your machine if you've
rebooted since then.

Thanks, Daniel

 Feb 28 11:42:47 mithrandir kernel: [15627.758428] [drm:i915_wait_request] 
 *ERROR* i915_wait_request returns -11 (awaiting 7 at 4, next 8)
 Feb 28 11:42:47 mithrandir kernel: [15628.260094] [drm:i915_reset] *ERROR* 
 Failed to reset chip.
 
 Is this is known issue?
 
 hardware Intel GM45 Chipset
 more dmesg parts:
 [0.566805] agpgart-intel :00:00.0: Intel GM45 Chipset
 [0.566925] agpgart-intel :00:00.0: detected gtt size: 2097152K total, 
 262144K mappable
 [0.569079] agpgart-intel :00:00.0: detected 65536K stolen memory
 [0.569278] agpgart-intel :00:00.0: AGP aperture is 256M @ 0xc000
 ...
 [2.032297] [drm] Initialized drm 1.1.0 20060810
 [2.032372] i915 :00:02.0: power state changed by ACPI to D0
 [2.032429] i915 :00:02.0: power state changed by ACPI to D0
 [2.032489] i915 :00:02.0: setting latency timer to 64
 [2.085250] i915 :00:02.0: irq 43 for MSI/MSI-X
 [2.085260] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
 [2.085318] [drm] Driver supports precise vblank timestamp query.
 [2.085439] [drm:intel_dsm_pci_probe] *ERROR* failed to get supported _DSM 
 functions
 [2.085527] vgaarb: device changed decodes: 
 PCI::00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
 [2.769842] fbcon: inteldrmfb (fb0) is primary device
 [2.771391] [drm] Changing LVDS panel from (+hsync, +vsync) to (-hsync, 
 -vsync)
 [3.304756] Console: switching to colour frame buffer device 200x56
 [3.308853] fb0: inteldrmfb frame buffer device
 [3.308855] drm: registered panic notifier
 [3.329552] acpi device:01: registered as cooling_device2
 [3.329713] input: Video Bus as 
 /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input2
 [3.329766] ACPI: Video Device [OVGA] (multi-head: yes  rom: no  post: no)
 [3.329881] [drm] Initialized i915 1.6.0 20080730 for :00:02.0 on 
 minor 0
 
 
 Best wishes
 
 Norbert
 
 Norbert Preiningpreining@{jaist.ac.jp, logic.at, debian.org}
 JAIST, Japan TeX Live  Debian Developer
 DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
 
 LUPPITT (n.)
 The piece of leather which hangs off the bottom of your shoe before
 you can be bothered to get it mended.
   --- Douglas Adams, The Meaning of Liff
 
 --
 Keep Your Developer Skills Current with LearnDevNow!
 The most comprehensive online learning library for Microsoft developers
 is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
 Metro Style Apps, more. Free future releases when you subscribe now!
 http://p.sf.net/sfu/learndevnow-d2d
 --
 ___
 Dri-devel mailing list
 Dri-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/dri-devel
 ___
 dri-devel mailing list
 dri-de...@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Mail: dan...@ffwll.ch
Mobile: +41 (0)79 365 57 48

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master' - 2 commits

2011-12-06 Thread Chris Wilson
On Mon, 05 Dec 2011 14:23:55 -0800, Eric Anholt e...@anholt.net wrote:
 On Mon,  5 Dec 2011 02:31:58 -0800 (PST), ic...@kemper.freedesktop.org (Chris 
 Wilson) wrote:
   configure.ac |2 +-
   intel/intel_bufmgr_gem.c |   27 +--
   2 files changed, 22 insertions(+), 7 deletions(-)
  
  New commits:
  commit e73161a02b604742e3da3bca8f13cff81276de43
  Author: Chris Wilson ch...@chris-wilson.co.uk
  Date:   Mon Dec 5 10:30:52 2011 +
  
  configure: Bump version to 2.4.28
  
  So that we can pull a couple of Intel bug fixes into xf86-video-intel.
  
  Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk
 
 Performance before:
 [  0]   glfirefox-talos-gfx   17.866   17.915   0.14%4/4
 after:
 [  0]   glfirefox-talos-gfx   22.173   22.251   0.20%4/4
 
 There's a pretty obvious opportunity to keep the performance win of the
 userspace caching that you've broken here, but you gave none of us a
 chance to review it before you pushed the patch *and shipped a release
 with it*.  This is not acceptable.  Please revert and bump the release,
 and fix it correctly.

No, what was unacceptable was a vma leak impacting a critical system
application, and for the library API to be broken by design. The onus is
to improve performance without regressing system stability, not the
other way around.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

--
Cloud Services Checklist: Pricing and Packaging Optimization
This white paper is intended to serve as a reference, checklist and point of 
discussion for anyone considering optimizing the pricing and packaging model 
of a cloud services business. Read Now!
http://www.accelacomm.com/jaw/sfnl/114/51491232/
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master' - 2 commits

2011-12-05 Thread Eric Anholt
On Mon,  5 Dec 2011 02:31:58 -0800 (PST), ic...@kemper.freedesktop.org (Chris 
Wilson) wrote:
  configure.ac |2 +-
  intel/intel_bufmgr_gem.c |   27 +--
  2 files changed, 22 insertions(+), 7 deletions(-)
 
 New commits:
 commit e73161a02b604742e3da3bca8f13cff81276de43
 Author: Chris Wilson ch...@chris-wilson.co.uk
 Date:   Mon Dec 5 10:30:52 2011 +
 
 configure: Bump version to 2.4.28
 
 So that we can pull a couple of Intel bug fixes into xf86-video-intel.
 
 Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk

Performance before:
[  0]   glfirefox-talos-gfx   17.866   17.915   0.14%4/4
after:
[  0]   glfirefox-talos-gfx   22.173   22.251   0.20%4/4

There's a pretty obvious opportunity to keep the performance win of the
userspace caching that you've broken here, but you gave none of us a
chance to review it before you pushed the patch *and shipped a release
with it*.  This is not acceptable.  Please revert and bump the release,
and fix it correctly.


pgpAEuNpy2UG9.pgp
Description: PGP signature
--
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: linux-next: Tree for Nov 29 (drm)

2011-11-30 Thread Randy Dunlap
On 11/28/2011 08:20 PM, Stephen Rothwell wrote:
 Hi all,
 
 Changes since 2028:
 
 The drm tree lost its build failure but gained another for which I
 applied a patch.


ERROR: drm_helper_get_fb_bpp_depth [drivers/gpu/drm/vmwgfx/vmwgfx.ko] 
undefined!

Full x86_64 randconfig file is attached.

-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 3.2.0-rc3 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf64-x86-64
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/x86_64_defconfig
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
# CONFIG_ZONE_DMA is not set
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx 
-fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 
-fcall-saved-r11
# CONFIG_KTIME_SCALAR is not set
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
CONFIG_LOCALVERSION=
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
CONFIG_DEFAULT_HOSTNAME=(none)
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_FHANDLE=y
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y

#
# RCU Subsystem
#
CONFIG_TINY_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_PRIO=1
CONFIG_RCU_BOOST_DELAY=500
CONFIG_IKCONFIG=m
# CONFIG_IKCONFIG_PROC is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
# CONFIG_CGROUPS is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
CONFIG_USER_NS=y
# CONFIG_PID_NS is not set
# CONFIG_SCHED_AUTOGROUP is not set
CONFIG_RELAY=y
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_ANON_INODES=y
CONFIG_EXPERT=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
# CONFIG_ELF_CORE is not set
# CONFIG_PCSPKR_PLATFORM is not set
CONFIG_HAVE_PCSPKR_PLATFORM=y
# CONFIG_BASE_FULL is not set
# CONFIG_FUTEX is not set
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
# CONFIG_SHMEM is not set
# CONFIG_AIO is not set
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_PERF_COUNTERS is not set
CONFIG_DEBUG_PERF_USE_VMALLOC=y
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_PCI_QUIRKS is not set
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_OPROFILE=m
CONFIG_OPROFILE_EVENT_MULTIPLEX=y
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_KPROBES=y
# CONFIG_JUMP_LABEL is not set
CONFIG_UPROBES=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y

Re: Question about Radeon 5450

2011-10-21 Thread Boszormenyi Zoltan
Hi,

today I upgraded from Radeon X700 to HD6570.
It works very well on my Fedora 15/x86_64.
Thank you very much to everyone working on
the new Radeon driver generations.

Best regards,
Zoltán Böszörményi

2010-02-06 19:55 keltezéssel, Corbin Simpson írta:

 Not yet. Work is in progress.

 Posting from a mobile, pardon my terseness. ~ C.

 On Feb 6, 2010 10:27 AM, Zoltan Boszormenyi zbos...@dunaweb.hu
 mailto:zbos...@dunaweb.hu wrote:

 Hi,

 I would like to ask whether current Mesa and xf86-drv-ati
 supports the new low cost, passively cooled Radeon 5450?

 Thanks in advance,
 Zoltán Böszörményi


 --
 The Planet: dedicated and managed hosting, cloud storage, colocation
 Stay online with enterprise data centers and the best network in the business
 Choose flexible plans and management services without long-term contracts
 Personal 24x7 support from experience hosting pros just a phone call away.
 http://p.sf.net/sfu/theplanet-com
 --
 ___
 Dri-devel mailing list
 Dri-devel@lists.sourceforge.net mailto:Dri-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/dri-devel

--
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Regression in panic

2011-06-21 Thread David Rientjes
On Mon, 20 Jun 2011, Mandeep Singh Baines wrote:

 Hi Dave,
 
 I think this change is causing a regression I'm seeing in panic.
 Before this change, I'd get a
 reboot on panic (we've configured as such).
 
 With this change, my machine gets wedged if the machine is running in
 X when the panic occurs.
 
 I traced the code flow to this:
 
 bust_spinlocks(0);
  -unblank_screen();
-do_unblank_screen(0);
  -vc-vc_sw-con_blank(vc, 0, 0);
-fbcon_blank(vc, 0, 0);
  -update_screen(vc);
-redraw_screen(vc, 0);
  -vc-vc_sw-con_switch(vc);
-fbcon_switch(vc);
  -ops-update_start(info);
-bit_update_start(info);
 -fb_pan_display(info, ops-var);
   -info-fbops-fb_pan_display(var, info);
 -drm_fb_helper_pan_display(var, info);
   -mutex_lock(dev-mode_config.mutex); *this blocks*
 
 With this change, there is now a lot going on in the panic path. Stuff
 that I'm not sure is safe when panicking. In addition to the
 mutex_lock, there is also a del_timer_sync()
 now happening in the context of panic().
 
 I see this bug with a 2.6.38 kernel but did a quick scan of a newer
 kernels and did not see anything that changed in this path so I
 suspect its still there.
 
 Reverting this change fixes the regression.
 

Chris Fowler reports something similar when running 2.6.38 by inducing a 
kernel panic via the oom killer -- see 
http://marc.info/?l=linux-kernelm=130805985022791.  I've added him to the 
cc so he can participate in the thread and cherry-pick any fixes (last 
status update was that he was going to be trying 2.6.38.8).

--
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Regression in panic

2011-06-21 Thread Mandeep Singh Baines
On Mon, Jun 20, 2011 at 4:03 PM, David Rientjes rient...@google.com wrote:
 On Mon, 20 Jun 2011, Mandeep Singh Baines wrote:

 Hi Dave,

 I think this change is causing a regression I'm seeing in panic.
 Before this change, I'd get a
 reboot on panic (we've configured as such).

 With this change, my machine gets wedged if the machine is running in
 X when the panic occurs.

 I traced the code flow to this:

 bust_spinlocks(0);
  -unblank_screen();
    -do_unblank_screen(0);
      -vc-vc_sw-con_blank(vc, 0, 0);
        -fbcon_blank(vc, 0, 0);
          -update_screen(vc);
            -redraw_screen(vc, 0);
              -vc-vc_sw-con_switch(vc);
                -fbcon_switch(vc);
                  -ops-update_start(info);
                    -bit_update_start(info);
                     -fb_pan_display(info, ops-var);
                       -info-fbops-fb_pan_display(var, info);
                         -drm_fb_helper_pan_display(var, info);
                           -mutex_lock(dev-mode_config.mutex); *this 
 blocks*

 With this change, there is now a lot going on in the panic path. Stuff
 that I'm not sure is safe when panicking. In addition to the
 mutex_lock, there is also a del_timer_sync()
 now happening in the context of panic().

 I see this bug with a 2.6.38 kernel but did a quick scan of a newer
 kernels and did not see anything that changed in this path so I
 suspect its still there.

 Reverting this change fixes the regression.


 Chris Fowler reports something similar when running 2.6.38 by inducing a
 kernel panic via the oom killer -- see
 http://marc.info/?l=linux-kernelm=130805985022791.  I've added him to the
 cc so he can participate in the thread and cherry-pick any fixes (last
 status update was that he was going to be trying 2.6.38.8).


One potential fix might be to convert the mutex_lock to a try if
oops_in_progress but
I suspect oops_in_progress checks may be needed in a bunch of other places in
the screen_unblank code path.

--
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: CPU and GPU cache-coherence

2011-06-15 Thread Michel Dänzer
On Die, 2011-06-07 at 21:42 +0800, Donnie Fang wrote:
 3D render image on WC AGP aperture BO and then CPU fetch the image
 from this bo, in order to achieve performance, after 3D finished
 rendering, validate this bo into cached system memory and then read it
 from system memory. But I always get garbage from there.
 After check TTM bo validate codes, it has dealt with cache coherence
 properly, i wonder whether there is something I misunderstand or it is
 not allowed to move the WC bo from AGP to system memory for reading?

Can you post patches showing what you've tried?


-- 
Earthling Michel Dänzer   |http://www.vmware.com
Libre software enthusiast |  Debian, X and DRI developer

--
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: CPU and GPU cache-coherence

2011-06-15 Thread Michel Dänzer
On Mit, 2011-06-15 at 16:58 +0200, Michel Dänzer wrote: 
 On Die, 2011-06-07 at 21:42 +0800, Donnie Fang wrote:
  3D render image on WC AGP aperture BO and then CPU fetch the image
  from this bo, in order to achieve performance, after 3D finished
  rendering, validate this bo into cached system memory and then read it
  from system memory. But I always get garbage from there.
  After check TTM bo validate codes, it has dealt with cache coherence
  properly, i wonder whether there is something I misunderstand or it is
  not allowed to move the WC bo from AGP to system memory for reading?
 
 Can you post patches showing what you've tried?

Moving to the new dri-devel list at freedesktop.org, please only follow
up there.


-- 
Earthling Michel Dänzer   |http://www.vmware.com
Libre software enthusiast |  Debian, X and DRI developer

--
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [RFC] drm: emit change events when mode config changes

2011-04-16 Thread Chris Bandy
On 04/14/2011 12:42 PM, Jesse Barnes wrote:
 We've already seen that apps want to monitor the display config, and
 some (like upowerd) poll for changes since we don't provide a
 notification for general mode config changes, just hotplug events.  So
 add a new drm event, with CHANGE=1 set in the event, to allow for it.

 Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org

 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
 index 4c95b5f..174ee64 100644
 --- a/drivers/gpu/drm/drm_crtc.c
 +++ b/drivers/gpu/drm/drm_crtc.c
 @@ -1589,6 +1589,8 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
   set.fb = fb;
   ret = crtc-funcs-set_config(set);
  
 + drm_sysfs_change_event(dev);
 +
  out:
   kfree(connector_set);
   mutex_unlock(dev-mode_config.mutex);
 diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
 index 9507204..df946d4 100644
 --- a/drivers/gpu/drm/drm_fb_helper.c
 +++ b/drivers/gpu/drm/drm_fb_helper.c
 @@ -822,6 +822,8 @@ int drm_fb_helper_set_par(struct fb_info *info)
   return ret;
   }
   }
 +
 + drm_sysfs_change_event(dev);
   mutex_unlock(dev-mode_config.mutex);
  
   if (fb_helper-delayed_hotplug) {
 diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
 index 2eee8e0..fd3af31 100644
 --- a/drivers/gpu/drm/drm_sysfs.c
 +++ b/drivers/gpu/drm/drm_sysfs.c
 @@ -467,9 +467,9 @@ EXPORT_SYMBOL(drm_sysfs_connector_remove);
   * drm_sysfs_hotplug_event - generate a DRM uevent
   * @dev: DRM device
   *
 - * Send a uevent for the DRM device specified by @dev.  Currently we only
 - * set HOTPLUG=1 in the uevent environment, but this could be expanded to
 - * deal with other types of events.
 + * Send a uevent for the DRM device specified by @dev.  Set HOTPLUG=1 in the
 + * event to indicate a display config change occurred, probably due to a
 + * display being added or removed.
   */
  void drm_sysfs_hotplug_event(struct drm_device *dev)
  {
 @@ -483,6 +483,24 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
  EXPORT_SYMBOL(drm_sysfs_hotplug_event);
  
  /**
 + * drm_sysfs_change_event - generate a DRM uevent indicating a display 
 config change
 + * @dev: DRM device
 + *
 + * Send a uevent for the DRM device specified by @dev.  Set CHANGE=1 to
 + * indicate that a userspace initiated display configuration change occurred.
 + */
 +void drm_sysfs_change_event(struct drm_device *dev)
 +{
 + char *event_string = CHANGE=1;
 + char *envp[] = { event_string, NULL };
 +
 + DRM_DEBUG(generating hotplug event\n);

Should be change event here?

 +
 + kobject_uevent_env(dev-primary-kdev.kobj, KOBJ_CHANGE, envp);
 +}
 +EXPORT_SYMBOL(drm_sysfs_change_event);
 +
 +/**
   * drm_sysfs_device_add - adds a class device to sysfs for a character driver
   * @dev: DRM device to be added
   * @head: DRM head in question
 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
 index ad5770f..3aff8fc 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -1506,6 +1506,7 @@ extern struct class *drm_sysfs_create(struct module 
 *owner, char *name);
  extern void drm_sysfs_destroy(void);
  extern int drm_sysfs_device_add(struct drm_minor *minor);
  extern void drm_sysfs_hotplug_event(struct drm_device *dev);
 +extern void drm_sysfs_change_event(struct drm_device *dev);
  extern void drm_sysfs_device_remove(struct drm_minor *minor);
  extern char *drm_get_connector_status_name(enum drm_connector_status status);
  extern int drm_sysfs_connector_add(struct drm_connector *connector);

 --
 Benefiting from Server Virtualization: Beyond Initial Workload 
 Consolidation -- Increasing the use of server virtualization is a top
 priority.Virtualization can reduce costs, simplify management, and improve 
 application availability and disaster protection. Learn more about boosting 
 the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
 --
 ___
 Dri-devel mailing list
 Dri-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/dri-devel
 ___
 dri-devel mailing list
 dri-de...@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/dri-devel


--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [RFC] drm: emit change events when mode config changes

2011-04-15 Thread Jesse Barnes
On Fri, 15 Apr 2011 09:23:38 -0500
Chris Bandy cba...@jbandy.com wrote:

 On 04/14/2011 12:42 PM, Jesse Barnes wrote:
   /**
  + * drm_sysfs_change_event - generate a DRM uevent indicating a display 
  config change
  + * @dev: DRM device
  + *
  + * Send a uevent for the DRM device specified by @dev.  Set CHANGE=1 to
  + * indicate that a userspace initiated display configuration change 
  occurred.
  + */
  +void drm_sysfs_change_event(struct drm_device *dev)
  +{
  +   char *event_string = CHANGE=1;
  +   char *envp[] = { event_string, NULL };
  +
  +   DRM_DEBUG(generating hotplug event\n);
 
 Should be change event here?

Yeah, I noticed after I sent it out, I think I'll just drop the
DRM_DEBUG altogether though.

-- 
Jesse Barnes, Intel Open Source Technology Center

--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [RFC] drm: emit change events when mode config changes

2011-04-15 Thread Adam Jackson
On 4/14/11 1:42 PM, Jesse Barnes wrote:
 We've already seen that apps want to monitor the display config, and
 some (like upowerd) poll for changes since we don't provide a
 notification for general mode config changes, just hotplug events.  So
 add a new drm event, with CHANGE=1 set in the event, to allow for it.

 Signed-off-by: Jesse Barnesjbar...@virtuousgeek.org

Reviewed-by: Adam Jackson a...@redhat.com

- ajax

--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Lenovo resume from suspends hangs in i915_gpu_busy or so

2011-04-01 Thread Jesse Barnes
On Fri, 1 Apr 2011 14:15:11 +0900
Norbert Preining prein...@logic.at wrote:

 Hi all,
 
 adding dri-devel as I found it is actually not completely dead, 
 but hanging in some i915 problem.
 
 Copyied from screen:
 Process ips-adjust (
 Stack:
   

   ...
 Call Trace:
   IRQ
   ... ? tick_program_event
   call_sortirq
   do_softirq
   irq_exit
   smp_apic_timer_interrupt
   apic_timer_interrupt
   EOI
   ? _raw_spin_lock
   i915_gpu_busy
   ips_adjust
   ? show_cpu_temp
   kthread
   kernel_thread_helper
   ? kthread_worker_fn
   ? gs_change
 Code: ...
 (once more more or less the same as above)

Hm, ok so on resume we're checking GPU busyness, which is normal, but
end up hanging on the spinlock?  Do you see what scrolls by above the
text you took a picture of (probably a task hung message?).

Does this happen reliably?  Does a previous kernel work ok?

-- 
Jesse Barnes, Intel Open Source Technology Center

--
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only

2011-03-07 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=28332





--- Comment #13 from Rafał Miłecki zaj...@gmail.com  2011-03-07 18:45:12 ---
I've tried 2.6.37.2, it's free of this bug as well.

I had to be some quickly fixed regression I met in wireless-testing.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.
--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only

2011-03-07 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=28332


Rafael J. Wysocki r...@sisk.pl changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||UNREPRODUCIBLE




-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only

2011-03-07 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=28332


Rafael J. Wysocki r...@sisk.pl changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED




-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only

2011-02-16 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=28332





--- Comment #12 from Rafał Miłecki zaj...@gmail.com  2011-02-16 23:07:40 ---
This does not happen in 2.6.38-rc4. I am not sure about final version of 2.6.37
yet.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.
--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only

2011-02-08 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=28332


Andrew Morton a...@linux-foundation.org changed:

   What|Removed |Added

 CC||a...@linux-foundation.org
  Component|Video(Other)|Video(DRI - non Intel)
 AssignedTo|drivers_video-other@kernel- |drivers_video-dri@kernel-bu
   |bugs.osdl.org   |gs.osdl.org




-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only

2011-02-08 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=28332


Rafael J. Wysocki r...@sisk.pl changed:

   What|Removed |Added

 CC||flor...@mickler.org,
   ||maciej.rute...@gmail.com,
   ||r...@sisk.pl
 Blocks||21782




-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Bug 21542] Radeon: No 50Hz (PAL) modes available after upgrading to 2.6.36

2011-02-06 Thread Piotr Gluszenia Slawinski

 I finally did the bisect and got this as a result after a lot of rebooting:

 
 139315796778a6d5f67c644e2ff470ddc69efb7b is the first bad commit
 commit 139315796778a6d5f67c644e2ff470ddc69efb7b
 Author: Adam Jackson a...@redhat.com
 Date:   Tue Aug 3 14:38:19 2010 -0400

...

 Maybe this should be changed to Video(Other) as this probably applies to all
 graphic cards?

 Do you need the bisect log?


thanx. some time ago i've also noticed i can't set up 50hz modes
on various hw. while previously i could, so i can confirm it affects
other hw.

50hz modes are esp. usefull on analog LCD screens (slows down pixel
clock, so improves sharpness)  , slow hw (bit less stress on VRAM),
  and when using programs like vice , fuse, or other sw. emulating PAL 
computer with exact refresh rate (i do not know why, but they work much 
slower and stutter - probably because vblank signal is firing too often,
trigering update which could be deferred a bit more).


-- 

--
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world? 
http://p.sf.net/sfu/oracle-sfdevnlfb
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [RFC PATCH v2] Utilize the PCI API in the TTM framework.

2011-01-28 Thread Konrad Rzeszutek Wilk
On Thu, Jan 27, 2011 at 10:28:45AM +0100, Thomas Hellstrom wrote:
 Konrad, Dave
 
 Given our previous discussion on the list, I believe these patches
 shouldn't introduce any regressions in the non-Xen case, however we
 should probably be prepared to back them out quickly if that turns
 out to be the case...

Absolutly. I've rebased the patches with your review comments (thought I
am not seeing the indentation issues in the source code - not sure
why?).

Stuck the patches on

git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git 
stable/ttm.pci-api.v4

Let me ask some of the radeon drivers to take a look at the
radeon/ttm/PCIe: Use dma_addr if TTM has set it.

patch.

Thank you very much for taking a look at the patches!

--
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [RFC PATCH v2] Utilize the PCI API in the TTM framework.

2011-01-27 Thread Thomas Hellstrom
Konrad, Dave

Given our previous discussion on the list, I believe these patches 
shouldn't introduce any regressions in the non-Xen case, however we 
should probably be prepared to back them out quickly if that turns out 
to be the case...

Thanks,
Thomas



On 01/07/2011 06:11 PM, Konrad Rzeszutek Wilk wrote:
 Attached is a set of patches that make it possible for drivers using TTM API
 (nouveau and radeon graphic drivers) to work under Xen. The explanation
 is a bit complex and I am not sure if I am explaining it that well..so if
 something is unclear please do ping me.

 Changes since v1: [https://lkml.org/lkml/2010/12/6/516]
   - Cleaned up commit message (forgot to add my SoB).

 Short explanation of problem: What we are hitting under Xen is that instead
 of programming the GART with the physical DMA address of the TTM page, we
 end up programming the bounce buffer DMA (bus) address!

 Long explanation:
 The reason we end up doing this is that:

   1). alloc_page with GFP_DMA32 does not allocate real (Machine Frame 
 Numbers
   - MFN) under the 4GB in Xen. That is b/c if actually made the pages 
 underneath
   4GB available to the the Linux page allocator we would not be able to
   give those to other guest devices. This would mean if we tried to pass
   in a USB device to one guest and in another were running the Xorg server
   we wouldn't be able to do so as we would run out of pages under 4GB. So
   pages that we get from alloc_page have a PFN that is under 4GB but in
   reality the real physical address (MFN) is above 4GB. Ugh..

   2). The backends for struct ttm_backend_func utilize the PCI API. When
   they get a page allocated via alloc_page, the use 'pci_map_page' and
   program the DMA (bus) address in the GART - which is correct. But then
   the calls that kick off the graphic driver to process the pages do not
   use the pci_page_sync_* calls. If the physical address of the page
   is the same as the DMA bus address returned from pci_map_page then there
   are no trouble. But if they are different:
   virt_to_phys(page_address(p)) != pci_map_page(p,..)
   then the graphic card fetches data from the DMA (bus) address (so the
   value returned from pci_map_page). The data however that the user wrote
   to (the page p) ends up being untouched. You are probably saying:
   What? Nonsense, we stitch the page in ttm_bo_vm_fault using the PFN
   and .. and even if the virt_to_phys(page_address(p)) != pci_map_page(p)
   the GART ends up with the bus (DMA) address of the PFN! That is true.
   But if you combine this with 1) where you end up with page that is
   above the dma_mask (even if you called it with GFP_DMA32) and then
   make a call on pci_map_page you would end up with a bounce buffer!


 The problem above can be easily reproduced on bare-metal if you pass in
 swiotlb=force iommu=soft.


 There are two ways of fixing this:

   1). Use the 'dma_alloc_coherent' (or pci_alloc_consistent if there is
   struct pcidev present), instead of alloc_page for GFP_DMA32. The
   'dma_alloc_coherent' guarantees that the allocated page fits
   within the device dma_mask (or uses the default DMA32 if no device
   is passed in). This also guarantees that any subsequent call
   to the PCI API for this page will return the same DMA (bus) address
   as the first call (so pci_alloc_consistent, and then pci_map_page
   will give the same DMA bus address).

   2). Use the pci_sync_range_* after sending a page to the graphics
   engine. If the bounce buffer is used then we end up copying the
   pages.

   3). This one I really don't want to think about, but I should mention
   it. Alter the alloc_page and its backend to know about Xen.
   The pushback from the MM guys will be probably: why not use the PCI 
 API..


 So attached is a draft set of patches that use solution #1. I've tested
 this on baremetal (and Xen) on PCIe Radeon and nouveau cards with success.

 1) The 'NULL' when doing dma_alloc_coherent is unsightly. I was toying
 with modifying the TTM API to pass in 'struct device' or 'struct pci_device'
 but figured it would make first sense to get your guys input before heading 
 that route.

 This patch-set is also available at:

 git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git 
 devel/ttm.pci-api.v3

 Konrad Rzeszutek Wilk (5):
ttm: Introduce a placeholder for DMA (bus) addresses.
tm: Utilize the dma_addr_t array for pages that are to in DMA32 pool.
ttm: Expand (*populate) to support an array of DMA addresses.
radeon/ttm/PCIe: Use dma_addr if TTM has set it.
nouveau/ttm/PCIe: Use dma_addr if TTM has set it.

 And diffstat:

   drivers/gpu/drm/nouveau/nouveau_sgdma.c |   31 +++---
   drivers/gpu/drm/radeon/radeon.h |4 ++-
   drivers/gpu/drm/radeon/radeon_gart.c|   36 
 

Re: Please revert nouveau.

2011-01-16 Thread Linus Torvalds
On Sun, Jan 16, 2011 at 12:00 PM, Anca Emanuel anca.eman...@gmail.com wrote:

 In 2.6.37-git5 with the revert, the boot screen is changing the resolution.
 With this version, it don't.

So, can you make a nice report of that - along with 'dmesg' for _both_
cases - to the right people?

In this case, that would be at a minimum James, Dave and Ben (added
here to the list of people), along with the dri-devel mailing list.

( For people newly added to the cc: the revert in question is the
revert of dfe63bb0ad9. It was committed mainline in commit
3632ef89091, but apparently there's still something missing because
that isn't sufficient any more )

  Linus

--
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Please revert nouveau.

2011-01-16 Thread Ben Skeggs
On Sun, 2011-01-16 at 12:10 -0800, Linus Torvalds wrote:
 On Sun, Jan 16, 2011 at 12:00 PM, Anca Emanuel anca.eman...@gmail.com wrote:
 
  In 2.6.37-git5 with the revert, the boot screen is changing the resolution.
  With this version, it don't.
 
 So, can you make a nice report of that - along with 'dmesg' for _both_
 cases - to the right people?
 
 In this case, that would be at a minimum James, Dave and Ben (added
 here to the list of people), along with the dri-devel mailing list.
I've tested a bit here, current git with the revert does appear to work
fine for me.

Ben.
 
 ( For people newly added to the cc: the revert in question is the
 revert of dfe63bb0ad9. It was committed mainline in commit
 3632ef89091, but apparently there's still something missing because
 that isn't sufficient any more )
 
   Linus



--
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Please revert nouveau.

2011-01-16 Thread Linus Torvalds
On Sun, Jan 16, 2011 at 3:44 PM, Ben Skeggs bske...@redhat.com wrote:

 I've tested a bit here, current git with the revert does appear to work
 fine for me.

So Anca has a 8800GT - is that what you're testing?

Also, there may be things like FB config issues and/or kernel command
line arguments. For example, on the Intel side, we had people who had
non-working Intel modesetting because they had VESAFB and the legacy
INTELFB enabled. Did some ordering change so that perhaps having VESA
enabled took priority and then breaks the accelerated case or
something?

Linus

--
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Please revert nouveau.

2011-01-16 Thread Ben Skeggs
On Sun, 2011-01-16 at 15:48 -0800, Linus Torvalds wrote:
 On Sun, Jan 16, 2011 at 3:44 PM, Ben Skeggs bske...@redhat.com wrote:
 
  I've tested a bit here, current git with the revert does appear to work
  fine for me.
 
 So Anca has a 8800GT - is that what you're testing?
I don't have an 8800 in the office, testing on a Quadro FX 570M, which
is identical from an acceleration standpoint.

Also confirmed the revert fixes the same issue on GTX465, and NV44/NV4B
(GeForce 6/7 boards).

 
 Also, there may be things like FB config issues and/or kernel command
 line arguments. For example, on the Intel side, we had people who had
 non-working Intel modesetting because they had VESAFB and the legacy
 INTELFB enabled. Did some ordering change so that perhaps having VESA
 enabled took priority and then breaks the accelerated case or
 something?
Not that I can think of, I'll wait until I see Anca's dmesg from after
the revert.

Ben.

 
 Linus



--
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Regression] [PATCH] intel_crt_detect_ddc() seems to be broken for DVI-I

2011-01-06 Thread Chris Wilson
On Thu, 06 Jan 2011 12:11:38 +0100, David Müller (ELSOFT AG) 
d.muel...@elsoft.ch wrote:
 The patch below adds an additional check to make sure that there is
 really an analog device attached (similar to the Mac mini hack in
 intel_sdvo.c)

Nice patch, thanks. I've applied this to my -fixes queue.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 1/3] fb: fix overlapping test off-by-one.

2010-12-23 Thread Paul Mundt
On Tue, Dec 21, 2010 at 08:29:03AM +0100, Michel D?nzer wrote:
 On Die, 2010-12-21 at 11:41 +1000, Dave Airlie wrote: 
  From: Dave Airlie airl...@redhat.com
  
  On my system with a radeon x2, the first GPU was not overlapping vesa
  but the test decided it was.
  
  Signed-off-by: Dave Airlie airl...@redhat.com
  ---
   drivers/video/fbmem.c |2 +-
   1 files changed, 1 insertions(+), 1 deletions(-)
  
  diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
  index 0e6aa3d..4ac1201 100644
  --- a/drivers/video/fbmem.c
  +++ b/drivers/video/fbmem.c
  @@ -1458,7 +1458,7 @@ static bool apertures_overlap(struct aperture *gen, 
  struct aperture *hw)
  if (gen-base == hw-base)
  return true;
  /* is the generic aperture base inside the hw base-hw base+size */
  -   if (gen-base  hw-base  gen-base = hw-base + hw-size)
  +   if (gen-base  hw-base  gen-base  hw-base + hw-size)
 
 Good catch.
 
 Reviewed-by: Michel D??nzer mic...@daenzer.net
 
I'll queue this for .37, thanks.

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 3/3] fbcon: fix situation where fbcon gets deinitialised and can't reinit.

2010-12-23 Thread Paul Mundt
On Tue, Dec 21, 2010 at 11:41:17AM +1000, Dave Airlie wrote:
 From: Dave Airlie airl...@redhat.com
 
 Situation as follow:
 2 GPUs + vesafb + kms.
 
 GPU 1 is primary, vesafb binds to it as fb0
 radeon loads
 GPU 0 loads as fb1
 GPU 1 loads, vesafb gets kicked off which causes fb0 to unbind
 console, which causes the dummy console to rebind.
 
 this means fbcon_deinit gets called, which calls fbcon_exit
 since the console isn't bound anymore and we set fbcon_has_exited.
 
 GPU 1 creates a new fb0 which is primary and we want to be console.
 fbcon_fb_registered gets called sets the primary up and calls set_con2fb_map,
 however as fbcon_has_exited is set nothing further ever happens.
 
 This patch bypasses the fbcon_has_exited and checks if the console is unbound,
 if its unbound it calls the fbcon_takeover which calls the vt layer to
 call the fbcon_startup method and everthing works.
 
 Signed-off-by: Dave Airlie airl...@redhat.com

This one looks fine, too. This does presumably depend on the change in
behaviour introduced by your 2/3 patch though. I'll hold off on applying
this until that one gets acked, then we can do this either for the next
-rc or for .38.

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH 1/3] fb: fix overlapping test off-by-one.

2010-12-20 Thread Michel Dänzer
On Die, 2010-12-21 at 11:41 +1000, Dave Airlie wrote: 
 From: Dave Airlie airl...@redhat.com
 
 On my system with a radeon x2, the first GPU was not overlapping vesa
 but the test decided it was.
 
 Signed-off-by: Dave Airlie airl...@redhat.com
 ---
  drivers/video/fbmem.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
 index 0e6aa3d..4ac1201 100644
 --- a/drivers/video/fbmem.c
 +++ b/drivers/video/fbmem.c
 @@ -1458,7 +1458,7 @@ static bool apertures_overlap(struct aperture *gen, 
 struct aperture *hw)
   if (gen-base == hw-base)
   return true;
   /* is the generic aperture base inside the hw base-hw base+size */
 - if (gen-base  hw-base  gen-base = hw-base + hw-size)
 + if (gen-base  hw-base  gen-base  hw-base + hw-size)

Good catch.

Reviewed-by: Michel Dänzer mic...@daenzer.net


-- 
Earthling Michel Dänzer   |http://www.vmware.com
Libre software enthusiast |  Debian, X and DRI developer

--
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Feedback: BKL / radeon pageflipping patches / DRM Vblank timestamping patches. 1st Try.

2010-10-27 Thread Sedat Dilek
Hi Alex,

Thanks for the fast reply.
I checked again the patches... I have chosen the ones from people.d.o.

Kind Regards,
- Sedat -

On Tue, Oct 26, 2010 at 6:16 PM, Alex Deucher alexdeuc...@gmail.com wrote:
 On Tue, Oct 26, 2010 at 9:32 AM, Sedat Dilek sedat.di...@googlemail.com 
 wrote:
 Hi,

 today, I started with testing DRM Vblank timestamping patches. 1st
 Try. from Mario in combination with radeon pageflipping patches
 from Alex together in a non-BKL config Kernel-setup.

 First some words to my system and hardware:
 * It's a Debian/sid i386 host with latest dist-upgrades as of today.
 * My radeon gfxcard is a RV250.

 [ Linux-kernel ]

 * Base is a 2.6.36 vanilla Linux-kernel tarball
 * on top linux-next (next-20101026) with some extra-patches to be able
 to build a BKL-free Kernel (Thanks Arnd)
 * on top drm-radeon-testing (up to commit 881fe6c: drm/radeon/kms:
 properly compute group_size on 6xx/7xx)
 * Mario's vblank timestamp caching patches (Rev 1 10.10.2010) with
 some patches to fit linux-next/drm-radeon-testing
 * Alex's radeon-KMS pageflipping patches for Kernel
 * For full patch-series see below

 NOTE: My Linux-kernel has one speciality: It is BigKerneLock-free !

 [ DDX (xf66-video-ati) ]

 * xf86-video-ati from GIT master (up to commit df92245: r100: add
 some missing bits in SE_COORD_FMT)
 * on top Alex's radeon-KMS pageflipping patch for DDX

 NOTE from Alex in [2]: 6xx/7xx/evergreen are pretty solid, but
 r1xx-r5xx still need some work.


 Thanks for testing! Please make sure you try the latest pageflipping
 patches I posted last night:
 http://lists.freedesktop.org/archives/dri-devel/2010-October/005042.html
 I've also updated put the latest patches here:
 http://people.freedesktop.org/~agd5f/pflip/
 They work much better on r1xx-r5xx asics.

 Alex

 [ Mesa3D ]

 * it is from GIT master (up to commit 547e761: egl_dri2: Fix a typo
 that make glFlush be called at wrong time.)

 [ LibDRM ]

 * 2.4.22-1 from Debian/experimental

 [ Xorg-server ]
 * 2:1.9.0.902-1 from Debian/experimental

 So, how we know Mario made us happy (BTW, greetings from TUE to TUE)?

 [ dmesg ]
 [    8.195646] [drm] Supports vblank timestamp caching Rev 1
 (10.10.2010). --- Driver-date could be changed into more
 human-readable 10-Oct-2010?

 What about the fun Alex gives us?

 [ /var/log/Xorg.0.log ]
 [  1797.204] (II) RADEON(0): KMS Pageflipping: enabled

 INFO:
 I have attached the full dmesg and a Xorg.log (with logs after having
 started Eric Anholt's OpenArena benchmark).

 Above mentionned OA-benchmark drops fps from ~18 down to 13 (new
 Kernel + new DDX).
 I have not tested battery performance.

 My notebook's LVDS has a 1400x1050 resolution, OA was run @1024x768.
 Can you enlighten a bit on the other mesages in X log?

 [ /var/log/Xorg.0.log ]
 ...
 [  2069.700] (II) RADEON(0): Allocate new frame buffer 1024x768 stride
 1024  Start OpenArena benchmark
 [  2069.700] (II) RADEON(0): VRAM usage limit set to 50788K
 [  2072.150] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x849e988]
 [  2072.160] (II) RADEON(0): radeon_dri2_flip_event_handler:927
 fevent[0x849e988] width 1024 pitch 4096 (/4 1024)
 [  2072.178] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x8c83298]
 ...
 [  2082.364] (II) RADEON(0): Allocate new frame buffer 1400x1056
 stride 1408 --- Switch back to native resolution (end of benchmark)
 [  2082.364] (II) RADEON(0): VRAM usage limit set to 48326K
 ...

 Hope, this feedback is helpful and encourages the diverse involved
 developers to continue their work.
 Have fun!

 Kind Regards,
 - Sedat -

 [1] http://lists.freedesktop.org/archives/dri-devel/2010-October/005009.html
 [2] http://lists.freedesktop.org/archives/dri-devel/2010-October/005036.html
 [3] http://git.kernel.org/?p=linux/kernel/git/arnd/bkl.git;a=summary
 [4] http://people.freedesktop.org/~agd5f/pflip/

 [ setup_linux-next_next-20101026.1.log ]
 ...
 -- Try to apply base.
  (+) OK   linux-next/patch-v2.6.36-next-20101026
  (+) OK   linux-next/0001-Remove-localversion-next.patch
  (+) OK   for-linux-next/fs-remove-BKL-from-FILE_LOCKING-v2.patch
  (+) OK   for-linux-next/drm-i810-remove-SMP-support-and-BKL.patch
  (+) OK   drm-radeon-testing/drm-radeon-testing.patch
  (+) OK   
 drm-vblank-timestamping/1-3-drm-vblank-Add-support-for-precise-vblank-timestamping.patch
  (+) OK   
 drm-vblank-timestamping/2-3-kms-radeon-Add-support-for-precise-vblank-timestamping.patch
  (+) OK   
 drm-vblank-timestamping/drm-i915-fix-assignment-obj_priv-to_intel_bo.patch
  (+) OK   
 drm-vblank-timestamping/3-3-kms-i915-Add-support-for-precise-vblank-timestamping.patch
  (+) OK   
 drm-vblank-timestamping/drm-i915-fix-error-implicit-declaration-of-function-IS_IRONLAKE.patch
  (+) OK   
 agd5f_pflip/0001-drm-radeon-kms-add-support-for-pflip-interrupts-on-6.patch
  (+) OK   agd5f_pflip/0002-drm-radeon-kms-add-pageflip-ioctl-support.patch
  (+) OK   
 

Re: Feedback: BKL / radeon pageflipping patches / DRM Vblank timestamping patches. 1st Try.

2010-10-26 Thread Alex Deucher
On Tue, Oct 26, 2010 at 9:32 AM, Sedat Dilek sedat.di...@googlemail.com wrote:
 Hi,

 today, I started with testing DRM Vblank timestamping patches. 1st
 Try. from Mario in combination with radeon pageflipping patches
 from Alex together in a non-BKL config Kernel-setup.

 First some words to my system and hardware:
 * It's a Debian/sid i386 host with latest dist-upgrades as of today.
 * My radeon gfxcard is a RV250.

 [ Linux-kernel ]

 * Base is a 2.6.36 vanilla Linux-kernel tarball
 * on top linux-next (next-20101026) with some extra-patches to be able
 to build a BKL-free Kernel (Thanks Arnd)
 * on top drm-radeon-testing (up to commit 881fe6c: drm/radeon/kms:
 properly compute group_size on 6xx/7xx)
 * Mario's vblank timestamp caching patches (Rev 1 10.10.2010) with
 some patches to fit linux-next/drm-radeon-testing
 * Alex's radeon-KMS pageflipping patches for Kernel
 * For full patch-series see below

 NOTE: My Linux-kernel has one speciality: It is BigKerneLock-free !

 [ DDX (xf66-video-ati) ]

 * xf86-video-ati from GIT master (up to commit df92245: r100: add
 some missing bits in SE_COORD_FMT)
 * on top Alex's radeon-KMS pageflipping patch for DDX

 NOTE from Alex in [2]: 6xx/7xx/evergreen are pretty solid, but
 r1xx-r5xx still need some work.


Thanks for testing! Please make sure you try the latest pageflipping
patches I posted last night:
http://lists.freedesktop.org/archives/dri-devel/2010-October/005042.html
I've also updated put the latest patches here:
http://people.freedesktop.org/~agd5f/pflip/
They work much better on r1xx-r5xx asics.

Alex

 [ Mesa3D ]

 * it is from GIT master (up to commit 547e761: egl_dri2: Fix a typo
 that make glFlush be called at wrong time.)

 [ LibDRM ]

 * 2.4.22-1 from Debian/experimental

 [ Xorg-server ]
 * 2:1.9.0.902-1 from Debian/experimental

 So, how we know Mario made us happy (BTW, greetings from TUE to TUE)?

 [ dmesg ]
 [    8.195646] [drm] Supports vblank timestamp caching Rev 1
 (10.10.2010). --- Driver-date could be changed into more
 human-readable 10-Oct-2010?

 What about the fun Alex gives us?

 [ /var/log/Xorg.0.log ]
 [  1797.204] (II) RADEON(0): KMS Pageflipping: enabled

 INFO:
 I have attached the full dmesg and a Xorg.log (with logs after having
 started Eric Anholt's OpenArena benchmark).

 Above mentionned OA-benchmark drops fps from ~18 down to 13 (new
 Kernel + new DDX).
 I have not tested battery performance.

 My notebook's LVDS has a 1400x1050 resolution, OA was run @1024x768.
 Can you enlighten a bit on the other mesages in X log?

 [ /var/log/Xorg.0.log ]
 ...
 [  2069.700] (II) RADEON(0): Allocate new frame buffer 1024x768 stride
 1024  Start OpenArena benchmark
 [  2069.700] (II) RADEON(0): VRAM usage limit set to 50788K
 [  2072.150] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x849e988]
 [  2072.160] (II) RADEON(0): radeon_dri2_flip_event_handler:927
 fevent[0x849e988] width 1024 pitch 4096 (/4 1024)
 [  2072.178] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x8c83298]
 ...
 [  2082.364] (II) RADEON(0): Allocate new frame buffer 1400x1056
 stride 1408 --- Switch back to native resolution (end of benchmark)
 [  2082.364] (II) RADEON(0): VRAM usage limit set to 48326K
 ...

 Hope, this feedback is helpful and encourages the diverse involved
 developers to continue their work.
 Have fun!

 Kind Regards,
 - Sedat -

 [1] http://lists.freedesktop.org/archives/dri-devel/2010-October/005009.html
 [2] http://lists.freedesktop.org/archives/dri-devel/2010-October/005036.html
 [3] http://git.kernel.org/?p=linux/kernel/git/arnd/bkl.git;a=summary
 [4] http://people.freedesktop.org/~agd5f/pflip/

 [ setup_linux-next_next-20101026.1.log ]
 ...
 -- Try to apply base.
  (+) OK   linux-next/patch-v2.6.36-next-20101026
  (+) OK   linux-next/0001-Remove-localversion-next.patch
  (+) OK   for-linux-next/fs-remove-BKL-from-FILE_LOCKING-v2.patch
  (+) OK   for-linux-next/drm-i810-remove-SMP-support-and-BKL.patch
  (+) OK   drm-radeon-testing/drm-radeon-testing.patch
  (+) OK   
 drm-vblank-timestamping/1-3-drm-vblank-Add-support-for-precise-vblank-timestamping.patch
  (+) OK   
 drm-vblank-timestamping/2-3-kms-radeon-Add-support-for-precise-vblank-timestamping.patch
  (+) OK   
 drm-vblank-timestamping/drm-i915-fix-assignment-obj_priv-to_intel_bo.patch
  (+) OK   
 drm-vblank-timestamping/3-3-kms-i915-Add-support-for-precise-vblank-timestamping.patch
  (+) OK   
 drm-vblank-timestamping/drm-i915-fix-error-implicit-declaration-of-function-IS_IRONLAKE.patch
  (+) OK   
 agd5f_pflip/0001-drm-radeon-kms-add-support-for-pflip-interrupts-on-6.patch
  (+) OK   agd5f_pflip/0002-drm-radeon-kms-add-pageflip-ioctl-support.patch
  (+) OK   
 linux-kbuild/1-2-Kbuild-Treat-KBUILD_DEFCONFIG-old-as-request-to-use-.config-as-the-base.patch
  (+) OK   
 linux-kbuild/2-2-Kbuild-kconfig-Verbose-version-of---listnewconfig-and---defconfig-v2.patch
  (+) OK   
 x86-apic-fix/Skip-looking-for-ioapic-overrides-when-ioapics-are-not-present.patch
  (+) 

Re: DRM Vblank timestamping patches. 1st Try.

2010-10-26 Thread Alex Deucher
On Sun, Oct 24, 2010 at 3:28 PM, Mario Kleiner
mario.klei...@tuebingen.mpg.de wrote:
 Hi all,

 after obsessing over these for another month after xds 2010,
 this is the first version of my vblank timestamping patches that
 i'm not totally ashamed off.


Mario, these look great.  Nice work!

Reviewed-by: Alex Deucher alexdeuc...@gmail.com

 1st patch modifies the drm vblank handling to maintain precise
 timestamps of when vblanks happen. It timestamps the end of
 each vblank interval (= start of active scanout of the following
 frame), as required by the OpenML OML_sync_control extension spec,
 so the DRI2 swap  sync bits should return proper timestamps to
 gl clients. It also takes care of keeping timestamps and vblcounts
 consistent across vblank irq on/off and hopefully fixes a few
 off-by-one vblank counts due to race conditions in those on/off bits.

 There is still one small race condition between the vblank on/off
 bits and the gpu (updating its hardware vblank counter at the
 wrong moment) which can cause miscounting of vblanks across
 enable/disable. I have an idea how to fix that, based on these
 patches but will need to tinker around with it a bit more. After
 that we could reduce the vblankoffdelay from 5000 msecs to something
 smaller like 100 msecs to save more power on desktops with
 desktop composition enabled, where already a blinking cursor
 in a terminal window or a ticking clock in the menu bar
 can keep vblanks turned on all the time with a 5000 msecs timeout.

 All the timestamping inside the drmWaitVblank ioctl() and in
 vblank event handling now uses the timestamps calculated in this
 patch.

 2nd and 3rd patches add the new timestamping and scanout position
 functions to the i915 and radeon drivers.

 Wrt. what i showed you at xds, i made the following changes:

 I've moved the actual timestamping routine as a helper function
 into the core. kms drivers now optionally export the crtc scanout
 position query function in addition to the vblank timestamping function
 to the drm core. Whenever the core has to recalculate timestamps it
 goes like:

 core - kmsdriver-timestamping() - core-timestampinghelper() -
 kmsdriver-getscanoutposition()

 The kms driver can implement its own version of the timestamping function,
 e.g., using special hardware timestamping registers in some more recent
 gpu's, or it can simply export a getscanoutposition() function with
 standardized behaviour across drivers and call the timestamping routine
 implemented in the core. The routine in the core works in non-interlaced,
 non-doublescan video modes, with or without panel scaling. It can
 compensate for any random delay up to 1 video refresh duration. For
 more robustness one would need to use a gpu specific hardware method.

 I also moved the calculation of the constants needed for timetamping
 into the drm_crtc_helper routine, so they only get recalculated after
 a mode switch, not at each vblank. At modeset time i cache the
 adjusted_mode after validation/adjustment by the crtc and encoders
 inside the drm_crtc struct. Needed to account for panel scaling, and
 i have a few other ideas that would require that cached value.

 More details in the different commit messages and the code, just
 some more remarks.

 @Jesse: I replaced the n extra dynamically allocated spin-locks for n
 crtc's by one statically allocated lock shared by all crtc's and renamed
 it. I think i also worked all your other suggestions into the patches.
 Thanks a lot for your first review of the earlier version.

 The intel driver uses the timestamps inside the finish pageflip function
 for timestamps of bufferswap completion. I've tested with an Atom
 Mini netbook with Intel 945 GME gpu and there it works perfect. I don't
 have any other intel test machines, so the finish pageflip and scanout
 query functions for ironlake, gen6 and g4x aren't tested, only coded
 based on some of the intel manuals at xorg. In the pageflip irq
 handlers there is this uncertainty if pageflip irq's get delivered
 before or after the vblank irq's for the vblank interval of swap
 completion. The i945 delivers pagflip irq's before handling the
 vblank irq's so the completion handler needs to account for that.
 I guessed from the code, which ones do deliver before/after vblank,
 but that guesses may be wrong, so this needs testing.

 @Alex: Thanks for your feedback at xds. I think the radeon part
 should be as we discussed. The radeon patch builds onto what you
 committed already into drm-radeon-testing for the reclocking fixes.
 It slightly changes the interface between the scanout query function and
 radeon_pm_in_vbl(), but doesn't change the implementation.

 Testing of the timestamps on the Intel 945GME, a Radeon R500 and a R600
 against external measurement equipment shows that the timestamps are
 essentially perfect. Error wrt. to the external measurement is less
 than 20 microseconds (for the radeon's) and jitter is +/- 1 usec. The
 intel error is less 

Re: DRM Vblank timestamping patches. 1st Try.

2010-10-24 Thread Mario Kleiner
Oh btw., the patches are against the current drm-radeon-testing tree, 
applied after commit...

21c74a8ea8b47eb6c3c621e36578f6e27f65c5c7
drm, kdb, kms: Change mode_set_base_atomic() enter argument to be an enum

... and should apply cleanly.

thanks,
-mario

--
Nokia and ATT present the 2010 Calling All Innovators-North America contest
Create new apps  games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: New case for intel_swap_event

2010-10-11 Thread Ian Romanick
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Zhao, Jian J wrote:
 Hi,
 
  Recently I have made a piglit case that can test the behaviors of
 buffer swap, they are 1) test whether we can get swap events. 2) verify
 whether the swap is asynchronous 3) verify the swap frequency of swap
 interval being 0 is larger than interval being 1. Jesse has helped me
 have brief look on it and give me some advice. I have modified it. Can
 you help to add it into piglit tests? Thanks for help and comments!

Please send tests as patches using git-send-email.  This enables people
to put review comments in-line.

 - Fix the comment and license at the top of the file.

 - Re-wrap lines to 80 columns.

 - Fix broken whitespace usage

   }else{

should be

   } else {

and

   if(foo){

should be

   if (foo) {

etc.

 - piglit_report_result already calls exit, so the calls to exit in the
code after calls to piglit_report_result are not necessary.

 - Use the utility routines in piglit-glx-util.c instead of open-coding
them.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkyzUcYACgkQX1gOwKyEAw+6zQCgkYPvU/Da9bzczyMxzl5EZx4y
ougAoJtpcsfVsB7l3jM+HvA+0jeE4opn
=EiQk
-END PGP SIGNATURE-

--
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2  L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Bug 19012] Kernel Mode Setting Fails on Radeon X700

2010-09-25 Thread Alex Deucher
FWIW, the ddx has the pci id correctly associated with rv410, so it
looks like it was just improperly ported to the drm.

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: after closing the lid and reopening it the screen remains blank

2010-09-11 Thread Justin P. Mattock
On 09/10/2010 05:34 PM, Andy Isaacson wrote:
 On Sat, Sep 11, 2010 at 08:44:48AM +0900, Norbert Preining wrote:
 On Fr, 10 Sep 2010, Andy Isaacson wrote:
 FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45

 I never said that it has anything to do with suspend to ram.

 Ah, sorry for misunderstanding.  My GM45 system is configured to
 automatically S2R on lid close so I tend to conflate the two...

 In fact, suspend to ram works perfectly without any problems. I only
 reboot after I installed a new kernel ...

 I will try some older kernels and see if it is a kernel or userspace
 issue.

 Do try the current tip and/or describe which post-rc3 kernel fails for
 you, just to verify.  Also, is there anything in Xorg.0.log from when it
 fails to restore the video?

 Thanks for reporting the regression, it'll be good to get it fixed ASAP.

 -andy
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/



over here:
cat /etc/acpi/sleep.sh

if grep -q close /proc/acpi/button/lid/LID0/state
then
/usr/sbin/s2ram
fi

works reliably over here(knock on wood..)with radeon not sure
with intel cards..

Justin P. Mattock

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: after closing the lid and reopening it the screen remains blank

2010-09-11 Thread Norbert Preining
On Fr, 10 Sep 2010, Andy Isaacson wrote:
 FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45

I never said that it has anything to do with suspend to ram.

In fact, suspend to ram works perfectly without any problems. I only
reboot after I installed a new kernel ...

I will try some older kernels and see if it is a kernel or userspace
issue.

Best wishes

Norbert

Norbert Preiningprein...@{jaist.ac.jp, logic.at, debian.org}
JAIST, Japan TeX Live  Debian Developer
DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094

NEMPNETT THRUBWELL (n.)
The feeling experienced when driving off for the frist time on a brand
new motorbike.
--- Douglas Adams, The Meaning of Liff

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: after closing the lid and reopening it the screen remains blank

2010-09-11 Thread Norbert Preining
Hi Andy,

On Fr, 10 Sep 2010, Andy Isaacson wrote:
  I never said that it has anything to do with suspend to ram.
 
 Ah, sorry for misunderstanding.  My GM45 system is configured to
 automatically S2R on lid close so I tend to conflate the two...

Mine, too, but not when running on AC.

 Do try the current tip and/or describe which post-rc3 kernel fails for

current tip works fine. It seems that I was hit by one of the fixes
I found in the git log fixed after the build I did 
(drm/i915: Prevent double dpms on, or drm/i915: Clear the vblank status 
bit before polling for the next vblank)

 Thanks for reporting the regression, it'll be good to get it fixed ASAP.

Seems to be already fixed. Sorry for not testing the tip first.

Best wishes

Norbert

Norbert Preiningprein...@{jaist.ac.jp, logic.at, debian.org}
JAIST, Japan TeX Live  Debian Developer
DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094

MOLESBY (n.)
The kind of family that drives to the seaside and then sits in the car
with all the windows closed, reading the Sunday Express and wearing
sidcups (q.v.)
--- Douglas Adams, The Meaning of Liff

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: after closing the lid and reopening it the screen remains blank

2010-09-10 Thread Justin P. Mattock
On 09/09/2010 03:41 PM, Norbert Preining wrote:
 Hi all,

 running: 2.6.36-rc3+ (from git) on Integrated Graphics Chipset: Intel(R) GM45
 (Sony Vaio Z11)
 Debian/unstable, so xserver 1.7.7, intel driver: 2.12.0

 since some recent kernel I have the following problem: When closing the
 lid on power, so the machine does not suspend, the backlight is properly
 turned off.

 But when I open the lid again the backlight goes on, but there is nothing
 to see: No screensaver, no activity, nothing. Switching to Console in
 blind didn't work either.

 The machine is still responsible (Sysrq, but also CapsLock), and
 killing the X process with Ctrl-Alt-Backspace gets me back a working
 X.

 I am quite sure that it *was* working in former time, but cannot
 pinpoint eaxactely when the problems started.

 If you need any further information or testing, please let me know.
 But it will take some time until I am back somewhere where I can
 ssh into my machine (or try if I can ssh into).

 Best wishes

 Norbert
 
 Norbert Preiningprein...@{jaist.ac.jp, logic.at, debian.org}
 JAIST, Japan TeX Live  Debian Developer
 DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
 
 BELPER
 A knob of someone else's chewing gum which you unexpectedly find your
 hand resting on under a deck's top, under the passenger seat of your
 car or on somebody's thigh under their skirt.
   --- Douglas Adams, The Meaning of Liff
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/



if you change up kernels and one of them causes this..then I would do a 
bisect.. but if changing kernels makes no diff, then it's userpsace 
related(but could be wrong) i.e. on my machine I use acpid 
/etc/acpi/lid.sh in there its a simple call to s2ram (works fine(with 
radeon though))looking at some of the distros scripts(no-offense) theres 
loads of stuff in there todo all kinds of calls..

hope this helps.

Justin P. Mattock

--
Automate Storage Tiering Simply
Optimize IT performance and efficiency through flexible, powerful, 
automated storage tiering capabilities. View this brief to learn how
you can reduce costs and improve performance. 
http://p.sf.net/sfu/dell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-09-10 Thread Zdenek Kabelac
Dne 1.9.2010 02:53, Eric Anholt napsal(a):
 On Tue, 31 Aug 2010 12:17:43 +0200, Zdenek Kabelac zkabe...@redhat.com 
 wrote:
 Dne 28.8.2010 05:55, Eric Anholt napsal(a):
 On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com 
 wrote:
 On 27.8.2010 12:02, Julien Cristau wrote:
 On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote:

 Why keeping different name for C++ and C ?

 Because changing the name for C means breaking API for existing users,
 which is not a nice thing to do.



 Well if DRM would have very stable API - it would make sence - but from a 
 view 
 of occasional user who needs to compile drm for intel driver - it seems 
 the 
 API is changed so frequently and in such an incompatible way that this 
 change 
 doesn't look all that bad.

 How many libdrm project users are there - and how often is this variable 
 used 
 outside of libdrm ?

 Now C++ will use different names for same variables - that IMHO bigger 
 issue...

 Also - if headers are supposed to be C++ friendly - maybe usage of
 extern C might be handy for such case ?

 Uh, you claim the API has changed, but I'm not aware of any circumstance
 since TTM removal where upgrading libdrm on Intel should have broken
 either API or ABI for its users.  Can you back that up?

 Ok - I'm remembering this issue:

 Essentially I've had idea to try to bisect for this problem:
 https://bugs.freedesktop.org/show_bug.cgi?id=26937

 As I'm quite sure, that there were times were I could use fullscreen for 
 flash
 without fear of having to restart my desktop.

 So I've tried just some random older git versions of  libdrm  intel driver -
   there were some minor compilations issue (I guess some list defines 
 conflicts
 and few other minor things for compilation).

 However compiled driver  library actually never worked and all I got was
 usually black screen.  It's probably hard to judge if the problem is kernel
 driver (using usually quite fresh vanilla git tree) or Xorg from Fedora
 Rawhide can't work with some slightly older libdrm/intel.  It probably not
 reasonable to spend time to detect where exactly is problem - all I want to
 point out is, that some internal API must changed significantly so while I
 could usually boot with 2 year old kernel, I cannot use few months old
 drmintel driver.

 And back to this issue -  if this variable is used a lot by other projects,
 than this commit is probably ok - though looks ugly.  But if there is just 
 one
 project which uses it, than it's probably better to break API and keep it
 clean and use same variable for C  C++ programs.
 
 For bisecting, just hold libdrm at the new version and bisect in 2d,
 unless your initial test of old+old vs old+new of each component points
 at libdrm (in which case, hold the 2d driver old and bisect across
 libdrm).
 
 New drivers do require new symbols, but libdrm is API and ABI stable,
 exactly so that people can bisect successfully.

Ok - I made a closer look at the problem - and bisected for a reason my
current Xorg server shows black screen for older version of Intel driver.

It looks like the key issue is some API change in Xorg related to this Intel
driver commit: 8700673157fdd3a87ad5150f2f30823261fec519
(Adapt glyphs for changes in devPrivates API, Jun 7 2010, Chris Wilson)

This is effectively the oldest version of Intel driver which currently seems
to work with my (recently upgraded) xorg-x11-server-Xorg-1.9.0-7.fc15.x86_64.

It seems like cherry-picking to make this usable for older version of Intel
git tree seems to be very complicated so doing bisect looks like very hard
task in this case.

I'm open to some ideas how could I eventually try to resolve/help with my
fullscreen bug (id=26937).

Anyway this seems to show that keeping API stable at one small library and
breaking it in Xorg server itself doesn't make things better after all

Is there any other way (except essentially completely reinstalling my whole
system and trying to figure out which combination of Xorg and driver still
works ok for full screen??)

Would it help to post some /sys  prints which would show why the screen is
locked in 'fullscreen' picture and there is no way to restore it back ?

Zdenek

--
Automate Storage Tiering Simply
Optimize IT performance and efficiency through flexible, powerful, 
automated storage tiering capabilities. View this brief to learn how
you can reduce costs and improve performance. 
http://p.sf.net/sfu/dell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: after closing the lid and reopening it the screen remains blank

2010-09-10 Thread Andy Isaacson
On Fri, Sep 10, 2010 at 07:41:17AM +0900, Norbert Preining wrote:
 running: 2.6.36-rc3+ (from git) on Integrated Graphics Chipset: Intel(R) GM45
 (Sony Vaio Z11)
 Debian/unstable, so xserver 1.7.7, intel driver: 2.12.0
 
 since some recent kernel I have the following problem: When closing the
 lid on power, so the machine does not suspend, the backlight is properly
 turned off.
 
 But when I open the lid again the backlight goes on, but there is nothing
 to see: No screensaver, no activity, nothing. Switching to Console in
 blind didn't work either.
 
 The machine is still responsible (Sysrq, but also CapsLock), and 
 killing the X process with Ctrl-Alt-Backspace gets me back a working
 X.
 
 I am quite sure that it *was* working in former time, but cannot
 pinpoint eaxactely when the problems started.
 
 If you need any further information or testing, please let me know.
 But it will take some time until I am back somewhere where I can
 ssh into my machine (or try if I can ssh into).

FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45
(Dell E4300).  I am running Ubuntu with xorg-edgers from a few months
ago:

xserver-xorg-core 
2:1.6.5+git20091107+server-1.6-branch.2dbcb06a-0ubuntu0sarvatt~karmic
xserver-xorg-video-intel 2:2.11.0+git20100415.c374c94e-0ubuntu0sarvatt~karmic

There are several regression fixes pulled after 2.6.36-rc3 in merge
commit 4eab8a5717f5, can you try current linux-2.6.git ?

If it still fails, please post
 - lspci -vvv
 - /var/log/Xorg.0.log from after the failure
 - dmesg

-andy

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: after closing the lid and reopening it the screen remains blank

2010-09-10 Thread Andy Isaacson
On Sat, Sep 11, 2010 at 08:44:48AM +0900, Norbert Preining wrote:
 On Fr, 10 Sep 2010, Andy Isaacson wrote:
  FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45
 
 I never said that it has anything to do with suspend to ram.

Ah, sorry for misunderstanding.  My GM45 system is configured to
automatically S2R on lid close so I tend to conflate the two...

 In fact, suspend to ram works perfectly without any problems. I only
 reboot after I installed a new kernel ...
 
 I will try some older kernels and see if it is a kernel or userspace
 issue.

Do try the current tip and/or describe which post-rc3 kernel fails for
you, just to verify.  Also, is there anything in Xorg.0.log from when it
fails to restore the video?

Thanks for reporting the regression, it'll be good to get it fixed ASAP.

-andy

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-09-01 Thread Eric Anholt
On Tue, 31 Aug 2010 12:17:43 +0200, Zdenek Kabelac zkabe...@redhat.com wrote:
 Dne 28.8.2010 05:55, Eric Anholt napsal(a):
  On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com 
  wrote:
  On 27.8.2010 12:02, Julien Cristau wrote:
  On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote:
 
  Why keeping different name for C++ and C ?
 
  Because changing the name for C means breaking API for existing users,
  which is not a nice thing to do.
 
 
 
  Well if DRM would have very stable API - it would make sence - but from a 
  view 
  of occasional user who needs to compile drm for intel driver - it seems 
  the 
  API is changed so frequently and in such an incompatible way that this 
  change 
  doesn't look all that bad.
 
  How many libdrm project users are there - and how often is this variable 
  used 
  outside of libdrm ?
 
  Now C++ will use different names for same variables - that IMHO bigger 
  issue...
 
  Also - if headers are supposed to be C++ friendly - maybe usage of
  extern C might be handy for such case ?
  
  Uh, you claim the API has changed, but I'm not aware of any circumstance
  since TTM removal where upgrading libdrm on Intel should have broken
  either API or ABI for its users.  Can you back that up?
 
 Ok - I'm remembering this issue:
 
 Essentially I've had idea to try to bisect for this problem:
 https://bugs.freedesktop.org/show_bug.cgi?id=26937
 
 As I'm quite sure, that there were times were I could use fullscreen for flash
 without fear of having to restart my desktop.
 
 So I've tried just some random older git versions of  libdrm  intel driver -
  there were some minor compilations issue (I guess some list defines conflicts
 and few other minor things for compilation).
 
 However compiled driver  library actually never worked and all I got was
 usually black screen.  It's probably hard to judge if the problem is kernel
 driver (using usually quite fresh vanilla git tree) or Xorg from Fedora
 Rawhide can't work with some slightly older libdrm/intel.  It probably not
 reasonable to spend time to detect where exactly is problem - all I want to
 point out is, that some internal API must changed significantly so while I
 could usually boot with 2 year old kernel, I cannot use few months old
 drmintel driver.
 
 And back to this issue -  if this variable is used a lot by other projects,
 than this commit is probably ok - though looks ugly.  But if there is just one
 project which uses it, than it's probably better to break API and keep it
 clean and use same variable for C  C++ programs.

For bisecting, just hold libdrm at the new version and bisect in 2d,
unless your initial test of old+old vs old+new of each component points
at libdrm (in which case, hold the 2d driver old and bisect across
libdrm).

New drivers do require new symbols, but libdrm is API and ABI stable,
exactly so that people can bisect successfully.


pgpcqoVUWDGRH.pgp
Description: PGP signature
--
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-08-31 Thread Zdenek Kabelac
Dne 28.8.2010 05:55, Eric Anholt napsal(a):
 On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com 
 wrote:
 On 27.8.2010 12:02, Julien Cristau wrote:
 On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote:

 Why keeping different name for C++ and C ?

 Because changing the name for C means breaking API for existing users,
 which is not a nice thing to do.



 Well if DRM would have very stable API - it would make sence - but from a 
 view 
 of occasional user who needs to compile drm for intel driver - it seems the 
 API is changed so frequently and in such an incompatible way that this 
 change 
 doesn't look all that bad.

 How many libdrm project users are there - and how often is this variable 
 used 
 outside of libdrm ?

 Now C++ will use different names for same variables - that IMHO bigger 
 issue...

 Also - if headers are supposed to be C++ friendly - maybe usage of
 extern C might be handy for such case ?
 
 Uh, you claim the API has changed, but I'm not aware of any circumstance
 since TTM removal where upgrading libdrm on Intel should have broken
 either API or ABI for its users.  Can you back that up?

Ok - I'm remembering this issue:

Essentially I've had idea to try to bisect for this problem:
https://bugs.freedesktop.org/show_bug.cgi?id=26937

As I'm quite sure, that there were times were I could use fullscreen for flash
without fear of having to restart my desktop.

So I've tried just some random older git versions of  libdrm  intel driver -
there were some minor compilations issue (I guess some list defines conflicts
and few other minor things for compilation).

However compiled driver  library actually never worked and all I got was
usually black screen.  It's probably hard to judge if the problem is kernel
driver (using usually quite fresh vanilla git tree) or Xorg from Fedora
Rawhide can't work with some slightly older libdrm/intel.  It probably not
reasonable to spend time to detect where exactly is problem - all I want to
point out is, that some internal API must changed significantly so while I
could usually boot with 2 year old kernel, I cannot use few months old
drmintel driver.

And back to this issue -  if this variable is used a lot by other projects,
than this commit is probably ok - though looks ugly.  But if there is just one
project which uses it, than it's probably better to break API and keep it
clean and use same variable for C  C++ programs.

Zdenek

--
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-08-28 Thread Eric Anholt
On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com wrote:
 On 27.8.2010 12:02, Julien Cristau wrote:
  On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote:
 
  Why keeping different name for C++ and C ?
 
  Because changing the name for C means breaking API for existing users,
  which is not a nice thing to do.
 
 
 
 Well if DRM would have very stable API - it would make sence - but from a 
 view 
 of occasional user who needs to compile drm for intel driver - it seems the 
 API is changed so frequently and in such an incompatible way that this change 
 doesn't look all that bad.
 
 How many libdrm project users are there - and how often is this variable used 
 outside of libdrm ?
 
 Now C++ will use different names for same variables - that IMHO bigger 
 issue...
 
 Also - if headers are supposed to be C++ friendly - maybe usage of
 extern C might be handy for such case ?

Uh, you claim the API has changed, but I'm not aware of any circumstance
since TTM removal where upgrading libdrm on Intel should have broken
either API or ABI for its users.  Can you back that up?


pgpKm9ejTeVnU.pgp
Description: PGP signature
--
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-08-27 Thread Zdenek Kabelac
Dne 27.8.2010 00:50, Eric Anholt napsal(a):
  include/drm/drm.h|4 
  intel/intel_bufmgr.h |6 +-
  2 files changed, 9 insertions(+), 1 deletion(-)
 
 New commits:
 commit 23287f05cf2443ddf9e028e29beb5bd30979c6cf
 Author: Eric Anholt e...@anholt.net
 Date:   Thu Aug 26 15:39:28 2010 -0700
 
 Avoid use of c++ reserved keyword virtual when using a C++ compiler.
 
 Avoids requiring nasty hacks around libdrm headers in the new C++
 parts of Mesa drivers.
 
 diff --git a/include/drm/drm.h b/include/drm/drm.h
 index a0559eb..2ba7136 100644
 --- a/include/drm/drm.h
 +++ b/include/drm/drm.h
 @@ -373,7 +373,11 @@ struct drm_buf_pub {
   */
  struct drm_buf_map {
   int count;  /** Length of the buffer list */
 +#ifdef __cplusplus
 + void *virt;
 +#else
   void *virtual;  /** Mmap'd area in user-virtual */
 +#endif
   struct drm_buf_pub *list;   /** Buffer information */
  };


Quit weird patch

Why keeping different name for C++ and C ?

Why not simply use i.e.:

 void*  user_virtual;

Or something similar - and avoid using these rather useless ifdefs ?

Zdenek

--
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-08-27 Thread Julien Cristau
On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote:

 Why keeping different name for C++ and C ?
 
Because changing the name for C means breaking API for existing users,
which is not a nice thing to do.

Cheers,
Julien

--
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm: Branch 'master'

2010-08-27 Thread Zdenek Kabelac
On 27.8.2010 12:02, Julien Cristau wrote:
 On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote:

 Why keeping different name for C++ and C ?

 Because changing the name for C means breaking API for existing users,
 which is not a nice thing to do.



Well if DRM would have very stable API - it would make sence - but from a view 
of occasional user who needs to compile drm for intel driver - it seems the 
API is changed so frequently and in such an incompatible way that this change 
doesn't look all that bad.

How many libdrm project users are there - and how often is this variable used 
outside of libdrm ?

Now C++ will use different names for same variables - that IMHO bigger issue...

Also - if headers are supposed to be C++ friendly - maybe usage of
extern C might be handy for such case ?

Zdenek


--
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-13 Thread Geert Uytterhoeven
On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
b...@kernel.crashing.org wrote:
 (For some reason I thought that went in ages ago ...)

 This fixes support for PCI domains in what should hopefully be a backward
 compatible way along with a change to libdrm.

 When the interface version is set to 1.4, we assume userspace understands
 domains and the world is at peace. We thus pass proper domain numbers
 instead of 0 to userspace.

 The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
 ignoring domains in the later case (well, except on alpha of course)

 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
 ---
  drivers/gpu/drm/drm_ioctl.c |    1 +
  include/drm/drmP.h          |   18 +-
  include/drm/drm_core.h      |    2 +-
  3 files changed, 15 insertions(+), 6 deletions(-)

 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
 index c1b9871..6d4bad5 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct 
 drm_device *dev,
        return ((dev-driver-driver_features  feature) ? 1 : 0);
  }

 -#ifdef __alpha__
 -#define drm_get_pci_domain(dev) dev-hose-index
 -#else
 -#define drm_get_pci_domain(dev) 0
 -#endif
 +static inline int drm_get_pci_domain(struct drm_device *dev)
 +{
 +#ifndef __alpha__
 +       /* For historical reasons, drm_get_pci_domain() is busticated
 +        * on most archs and has to remain so for userspace interface
 +        *  1.4, except on alpha which was right from the beginning
 +        */
 +       if (dev-if_version  0x10004)
 +               return 0;
 +#endif /* __alpha__ */
 +
 +       return pci_domain_nr(dev-pdev-bus);

error: implicit declaration of function ‘pci_domain_nr’

on m68k without PCI.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say programmer or something like that.
                                -- Linus Torvalds

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Dave Airlie
On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven
ge...@linux-m68k.org wrote:
 On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
 b...@kernel.crashing.org wrote:
 (For some reason I thought that went in ages ago ...)

 This fixes support for PCI domains in what should hopefully be a backward
 compatible way along with a change to libdrm.

 When the interface version is set to 1.4, we assume userspace understands
 domains and the world is at peace. We thus pass proper domain numbers
 instead of 0 to userspace.

 The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
 ignoring domains in the later case (well, except on alpha of course)

 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
 ---
  drivers/gpu/drm/drm_ioctl.c |    1 +
  include/drm/drmP.h          |   18 +-
  include/drm/drm_core.h      |    2 +-
  3 files changed, 15 insertions(+), 6 deletions(-)

 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
 index c1b9871..6d4bad5 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct 
 drm_device *dev,
        return ((dev-driver-driver_features  feature) ? 1 : 0);
  }

 -#ifdef __alpha__
 -#define drm_get_pci_domain(dev) dev-hose-index
 -#else
 -#define drm_get_pci_domain(dev) 0
 -#endif
 +static inline int drm_get_pci_domain(struct drm_device *dev)
 +{
 +#ifndef __alpha__
 +       /* For historical reasons, drm_get_pci_domain() is busticated
 +        * on most archs and has to remain so for userspace interface
 +        *  1.4, except on alpha which was right from the beginning
 +        */
 +       if (dev-if_version  0x10004)
 +               return 0;
 +#endif /* __alpha__ */
 +
 +       return pci_domain_nr(dev-pdev-bus);

 error: implicit declaration of function ‘pci_domain_nr’
 on m68k without PCI.

I don't think I want to add an ifdef CONFIG_PCI into the drm layer for
this, since we seem to be okay everywhere else,

lets ask jbarnes, not sure if its safe to just add this to the
!CONFIG_PCI section of the linux/pci.h

Dave.




--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Jesse Barnes
On Fri, 13 Aug 2010 09:33:35 +1000
Dave Airlie airl...@gmail.com wrote:

 On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven
 ge...@linux-m68k.org wrote:
  On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
  b...@kernel.crashing.org wrote:
  (For some reason I thought that went in ages ago ...)
 
  This fixes support for PCI domains in what should hopefully be a backward
  compatible way along with a change to libdrm.
 
  When the interface version is set to 1.4, we assume userspace understands
  domains and the world is at peace. We thus pass proper domain numbers
  instead of 0 to userspace.
 
  The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
  ignoring domains in the later case (well, except on alpha of course)
 
  Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
  ---
   drivers/gpu/drm/drm_ioctl.c |    1 +
   include/drm/drmP.h          |   18 +-
   include/drm/drm_core.h      |    2 +-
   3 files changed, 15 insertions(+), 6 deletions(-)
 
  diff --git a/include/drm/drmP.h b/include/drm/drmP.h
  index c1b9871..6d4bad5 100644
  --- a/include/drm/drmP.h
  +++ b/include/drm/drmP.h
  @@ -1071,11 +1071,19 @@ static __inline__ int 
  drm_core_check_feature(struct drm_device *dev,
         return ((dev-driver-driver_features  feature) ? 1 : 0);
   }
 
  -#ifdef __alpha__
  -#define drm_get_pci_domain(dev) dev-hose-index
  -#else
  -#define drm_get_pci_domain(dev) 0
  -#endif
  +static inline int drm_get_pci_domain(struct drm_device *dev)
  +{
  +#ifndef __alpha__
  +       /* For historical reasons, drm_get_pci_domain() is busticated
  +        * on most archs and has to remain so for userspace interface
  +        *  1.4, except on alpha which was right from the beginning
  +        */
  +       if (dev-if_version  0x10004)
  +               return 0;
  +#endif /* __alpha__ */
  +
  +       return pci_domain_nr(dev-pdev-bus);
 
  error: implicit declaration of function ‘pci_domain_nr’
  on m68k without PCI.
 
 I don't think I want to add an ifdef CONFIG_PCI into the drm layer for
 this, since we seem to be okay everywhere else,
 
 lets ask jbarnes, not sure if its safe to just add this to the
 !CONFIG_PCI section of the linux/pci.h

Hm, so pci_domain_nr should just return 0 on platforms where
CONFIG_PCI_DOMAINS isn't set.  I'd expect that to be the case when
CONFIG_PCI=n...  Maybe we just need to shuffle the definition around?

-- 
Jesse Barnes, Intel Open Source Technology Center

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Dave Airlie
On Fri, Aug 13, 2010 at 9:45 AM, Jesse Barnes jbar...@virtuousgeek.org wrote:
 On Fri, 13 Aug 2010 09:33:35 +1000
 Dave Airlie airl...@gmail.com wrote:

 On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven
 ge...@linux-m68k.org wrote:
  On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
  b...@kernel.crashing.org wrote:
  (For some reason I thought that went in ages ago ...)
 
  This fixes support for PCI domains in what should hopefully be a backward
  compatible way along with a change to libdrm.
 
  When the interface version is set to 1.4, we assume userspace understands
  domains and the world is at peace. We thus pass proper domain numbers
  instead of 0 to userspace.
 
  The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
  ignoring domains in the later case (well, except on alpha of course)
 
  Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
  ---
   drivers/gpu/drm/drm_ioctl.c |    1 +
   include/drm/drmP.h          |   18 +-
   include/drm/drm_core.h      |    2 +-
   3 files changed, 15 insertions(+), 6 deletions(-)
 
  diff --git a/include/drm/drmP.h b/include/drm/drmP.h
  index c1b9871..6d4bad5 100644
  --- a/include/drm/drmP.h
  +++ b/include/drm/drmP.h
  @@ -1071,11 +1071,19 @@ static __inline__ int 
  drm_core_check_feature(struct drm_device *dev,
         return ((dev-driver-driver_features  feature) ? 1 : 0);
   }
 
  -#ifdef __alpha__
  -#define drm_get_pci_domain(dev) dev-hose-index
  -#else
  -#define drm_get_pci_domain(dev) 0
  -#endif
  +static inline int drm_get_pci_domain(struct drm_device *dev)
  +{
  +#ifndef __alpha__
  +       /* For historical reasons, drm_get_pci_domain() is busticated
  +        * on most archs and has to remain so for userspace interface
  +        *  1.4, except on alpha which was right from the beginning
  +        */
  +       if (dev-if_version  0x10004)
  +               return 0;
  +#endif /* __alpha__ */
  +
  +       return pci_domain_nr(dev-pdev-bus);
 
  error: implicit declaration of function ‘pci_domain_nr’
  on m68k without PCI.

 I don't think I want to add an ifdef CONFIG_PCI into the drm layer for
 this, since we seem to be okay everywhere else,

 lets ask jbarnes, not sure if its safe to just add this to the
 !CONFIG_PCI section of the linux/pci.h

 Hm, so pci_domain_nr should just return 0 on platforms where
 CONFIG_PCI_DOMAINS isn't set.  I'd expect that to be the case when
 CONFIG_PCI=n...  Maybe we just need to shuffle the definition around?

I suspect something like the attached would suffice.

Or maybe moving the CONFIG_PCI_DOMAINS checkout outside CONFIG_PCI.

Dave.


mydiff
Description: Binary data
--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev --
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Jesse Barnes
  Hm, so pci_domain_nr should just return 0 on platforms where
  CONFIG_PCI_DOMAINS isn't set.  I'd expect that to be the case when
  CONFIG_PCI=n...  Maybe we just need to shuffle the definition
  around?
 
 I suspect something like the attached would suffice.
 
 Or maybe moving the CONFIG_PCI_DOMAINS checkout outside CONFIG_PCI.

Yeah, that looks ok, and better than putting it in drm.  I'll apply to
my for-linus branch for the next PCI fixes pull.

Thanks,
Jesse

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [DRM] BUG: sleeping function called from invalid context, drm_lastclose

2010-08-11 Thread Dave Airlie
On Wed, Aug 11, 2010 at 6:48 PM, Luca Tettamanti kronos...@gmail.com wrote:
 Hi Arnd,
 this commit:

 commit 58374713c9dfb4d231f8c56cac089f6fbdedc2ec
 Author: Arnd Bergmann a...@arndb.de
 Date:   Sat Jul 10 23:51:39 2010 +0200

    drm: kill BKL from common code


 moved the call to (inside drm_release) drm_lastclose inside dev-count_lock
 spinlock.
 drm_lastclose however takes dev-struct_mutex (now inside an atomic
 context):

I have a patch from Chris Wilson that I need to push to fix this,
basically reducing the spin lock coverage,
and relying on the global mutex to handle the open race.

Dave.


 BUG: sleeping function called from invalid context at 
 /home/kronos/src/linux-2.6.git/kernel/mutex.c:94
 in_atomic(): 1, irqs_disabled(): 0, pid: 3331, name: Xorg
 Pid: 3331, comm: Xorg Not tainted 2.6.35-06113-gf6cec0a #272
 Call Trace:
  [8102770e] __might_sleep+0xf8/0xfa
  [8127cf18] mutex_lock+0x1f/0x3e
  [a052d1c1] drm_lastclose+0x92/0x2ad [drm]
  [a052dbc7] drm_release+0x5ca/0x60d [drm]
  [810b118f] fput+0x130/0x1f7
  [810ae77d] filp_close+0x63/0x6d
  [810ae82f] sys_close+0xa8/0xe2
  [8100296b] system_call_fastpath+0x16/0x1b


 Luca
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/


--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [DRM] BUG: sleeping function called from invalid context, drm_lastclose

2010-08-11 Thread Arnd Bergmann
On Wednesday 11 August 2010, Dave Airlie wrote:
 On Wed, Aug 11, 2010 at 6:48 PM, Luca Tettamanti kronos...@gmail.com wrote:
 
 
  moved the call to (inside drm_release) drm_lastclose inside dev-count_lock
  spinlock.
  drm_lastclose however takes dev-struct_mutex (now inside an atomic
  context):

Yes, that's obviously been broken by me, sorry about the trouble.

I must have been trying to simplify the error handling by adding a
goto at the end of drm_release, which then happened to break
the common path.

The easiest way to fix this would be to go back to the way drm_release()
worked previously and /only/ replace {,un}lock_kernel() with
mutex_{,un}lock(drm_global_mutex);.

 I have a patch from Chris Wilson that I need to push to fix this,
 basically reducing the spin lock coverage,
 and relying on the global mutex to handle the open race.

Yes, that sounds good, it's what the code used to do before my broken
change.

You might also be able to find a way to remove drm_global_lock from the
open/close path entirely.

Arnd

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: radeon kms on ppc status

2010-08-10 Thread Michel Dänzer
On Mon, 2010-08-09 at 16:16 +1000, Benjamin Herrenschmidt wrote: 
 
 I'm currently testing on a rv350 based aluminium powerbooks.

Same here. :)


   - AGP: locks up before the console shows anything useful, that's
 going to be fun to debug without a serial port ... I'll see what I can
 with netconsole or some firewire hack. Works fine with PCI GART.

AGP 1x works mostly fine for me. Not sure what the problem is with
higher speeds (4x used to work fine with UMS) but I guess most likely
some kind of coherency issue which only matters now that we're
dynamically changing GTT bindings.

The reason you don't get anything useful with higher AGP speeds is that
the attempt to reset the locked-up GPU kills the machine. I tried
tracking this down with netconsole but the only possibly relevant info
I've got out of that yet is that there seem to be some machine checks
occurring.


 - transition from offb. If both kms and offb are built-in, the transition
 leads to panel blooming.

I only tried this once but AFAIR it was the same for me.


 - The other fancy stuff... well, we could make up profiles on powerbooks
 I suppose, at least dynclk can be enable always and I'm sure we can make up
 default profiles with something like half clock speed, what do you reckon ?

Might be nice, though IME the CPU seems to suck more power anyway. :)

IMO the highest priority missing feature is backlight control, followed
by suspend/resume.


Note that there's also still outstanding KMS related endianness issues
in the Mesa tree, in particular concerning r300g but also the classic
driver related to the OpenGL blit functionality. I've been meaning to
clean up and push my hacks for those but had little time recently.


-- 
Earthling Michel Dänzer   |http://www.vmware.com
Libre software enthusiast |  Debian, X and DRI developer

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: radeon kms on ppc status

2010-08-10 Thread Benjamin Herrenschmidt
On Tue, 2010-08-10 at 14:56 +0200, Michel Dänzer wrote:
 On Mon, 2010-08-09 at 16:16 +1000, Benjamin Herrenschmidt wrote: 
  
  I'm currently testing on a rv350 based aluminium powerbooks.
 
 Same here. :)

Heh. Well, I also have the G5 with rv350, and that has a serial port :-)

- AGP: locks up before the console shows anything useful, that's
  going to be fun to debug without a serial port ... I'll see what I can
  with netconsole or some firewire hack. Works fine with PCI GART.
 
 AGP 1x works mostly fine for me. Not sure what the problem is with
 higher speeds (4x used to work fine with UMS) but I guess most likely
 some kind of coherency issue which only matters now that we're
 dynamically changing GTT bindings.

Ok. Well, we -know- we have a problem with AGP anyways bcs of that dual
cachable/non-cachable mapping issue. I'll see if I can find ways to work
around that. If not, I don't really mind sticking to x1, it's old
machines and it's better than nothing.

 The reason you don't get anything useful with higher AGP speeds is that
 the attempt to reset the locked-up GPU kills the machine. I tried
 tracking this down with netconsole but the only possibly relevant info
 I've got out of that yet is that there seem to be some machine checks
 occurring.

Right, makes sense if the card doesn't answer to an MMIO access. I'll
see what I can do.

  - transition from offb. If both kms and offb are built-in, the transition
  leads to panel blooming.
 
 I only tried this once but AFAIR it was the same for me.

I found some stuff there and fixed some on the G5. It now works there, I
haven't tried again on the powerbook yet. One is the patch I send to do
an early transition like nouveau does. The other one is you need to make
sure CONFIG_VT_HW_CONSOLE_BINDING is set. Without that,
unregister_framebuffer() of offb fails bcs fbcon refuses to unbind the
last console. So you end up with fb1 for the drm, while fb0 remains on
offb and everything breaks. We might want to make this a hard
dependency.

  - The other fancy stuff... well, we could make up profiles on powerbooks
  I suppose, at least dynclk can be enable always and I'm sure we can make up
  default profiles with something like half clock speed, what do you reckon ?
 
 Might be nice, though IME the CPU seems to suck more power anyway. :)

Right.

 IMO the highest priority missing feature is backlight control, followed
 by suspend/resume.

Agreed.

 Note that there's also still outstanding KMS related endianness issues
 in the Mesa tree, in particular concerning r300g but also the classic
 driver related to the OpenGL blit functionality. I've been meaning to
 clean up and push my hacks for those but had little time recently.

Ok. I'll leave you to those because I really know near to nothing about
GL and Mesa ... from my quick tests, things seem to work allright with
compiz on the G5 and the powerbook tho with whatever Mesa's in lucid.

Also, the few tests I did on the quad G5 with nvidia 6600  nouveau were
interesting as well (gallium in that case). nouveau itself works well,
but the mesa part doesn't (renders black). The interesting thing tho was
that all the SW rendering path seemed to work well, which is a nice
change from not that long ago where all the fallbacks were endian
broken. I suspect you may have done some fixing there :-)

Cheers,
Ben.



--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: radeon kms on ppc status

2010-08-09 Thread Alex Deucher
2010/8/9 Benjamin Herrenschmidt b...@kernel.crashing.org:
 Just a quick status in case others are interested and want to help
 as I have -very- little time.


Unfortunately, I don't have much spare time to dedicate to this either
and I don't have any ppc machines.

 I'm currently testing on a rv350 based aluminium powerbooks.
 The basic stuff works provided you stay away from AGP. Here's
 things in no special order I noticed:

  - AGP: locks up before the console shows anything useful, that's
 going to be fun to debug without a serial port ... I'll see what I can
 with netconsole or some firewire hack. Works fine with PCI GART.

I think Michel had it working with 1x AGP.


  - transition from offb. If both kms and offb are built-in, the transition
 leads to panel blooming. Note that it seems broken with nouveau on the G5 as
 well, I suspect we are passing a crap mode when picking up from offb at boot.

  - Power Management.

    - Sleep/wakeup needs to be ported over from radeonfb (will also
 be useful for some x86 models).


It would be nice to get this ported over.

    - The other fancy stuff... well, we could make up profiles on powerbooks
 I suppose, at least dynclk can be enable always and I'm sure we can make up
 default profiles with something like half clock speed, what do you reckon ?

The dynclks in the drm should work on the ppc.  As for the power
profiles, something like a half clock should work.

Probably also useful to come up with some way to add backlight control
to the macs without conflicting with the acpi backlight stuff on x86.

Alex

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


  1   2   3   4   5   6   7   8   9   10   >