public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [bk pull] drm core/personality split
@ 2004-12-30  7:34 Dave Airlie
  2004-12-30  7:48 ` Dave Airlie
  0 siblings, 1 reply; 7+ messages in thread
From: Dave Airlie @ 2004-12-30  7:34 UTC (permalink / raw)
  To: torvalds, Andrew Morton; +Cc: linux-kernel


Hi Linus,

Please do a

	bk pull bk://drm.bkbits.net/drm-linus

This brings the DRM core/personality split from the DRM CVS tree into the
kernel, this has been fairly well tested in both DRM CVS and in -mm for the
past month or so, any issues that turn up should be minor and easily
resolvable before 2.6.11 turns up. The diff is quite large as it renames a lot
of .h files to .c files and removes all the DRM() macros.

For everyone else the diff is up at:
	http://www.skynet.ie/~airlied/public_html/patches/dri/drm_core_split-26bk.diff
and it is > 500k.

Dave.

 drivers/char/drm/ati_pcigart.h      |  206 -----
 drivers/char/drm/drm_agpsupport.h   |  468 -------------
 drivers/char/drm/drm_auth.h         |  230 ------
 drivers/char/drm/drm_bufs.h         | 1269 -----------------------------------
 drivers/char/drm/drm_context.h      |  578 ----------------
 drivers/char/drm/drm_dma.h          |  181 -----
 drivers/char/drm/drm_drawable.h     |   56 -
 drivers/char/drm/drm_drv.h          | 1060 ------------------------------
 drivers/char/drm/drm_fops.h         |  156 ----
 drivers/char/drm/drm_init.h         |  128 ---
 drivers/char/drm/drm_ioctl.h        |  349 ---------
 drivers/char/drm/drm_irq.h          |  368 ----------
 drivers/char/drm/drm_lock.h         |  168 ----
 drivers/char/drm/drm_proc.h         |  547 ---------------
 drivers/char/drm/drm_scatter.h      |  231 ------
 drivers/char/drm/drm_stub.h         |  236 ------
 drivers/char/drm/drm_vm.h           |  667 ------------------
 drivers/char/drm/tdfx.h             |   50 -
 drivers/char/drm/Kconfig            |    3
 drivers/char/drm/Makefile           |    6
 drivers/char/drm/ati_pcigart.c      |  208 +++++
 drivers/char/drm/drmP.h             |  324 +++++----
 drivers/char/drm/drm_agpsupport.c   |  439 ++++++++++++
 drivers/char/drm/drm_auth.c         |  230 ++++++
 drivers/char/drm/drm_bufs.c         | 1270 ++++++++++++++++++++++++++++++++++++
 drivers/char/drm/drm_context.c      |  578 ++++++++++++++++
 drivers/char/drm/drm_core.h         |   28
 drivers/char/drm/drm_dma.c          |  182 +++++
 drivers/char/drm/drm_drawable.c     |   56 +
 drivers/char/drm/drm_drv.c          |  545 +++++++++++++++
 drivers/char/drm/drm_fops.c         |  449 ++++++++++++
 drivers/char/drm/drm_init.c         |   52 +
 drivers/char/drm/drm_ioctl.c        |  355 ++++++++++
 drivers/char/drm/drm_irq.c          |  370 ++++++++++
 drivers/char/drm/drm_lock.c         |  303 ++++++++
 drivers/char/drm/drm_memory.c       |  181 +++++
 drivers/char/drm/drm_memory.h       |  175 ----
 drivers/char/drm/drm_memory_debug.h |    2
 drivers/char/drm/drm_os_linux.h     |    5
 drivers/char/drm/drm_proc.c         |  539 +++++++++++++++
 drivers/char/drm/drm_scatter.c      |  231 ++++++
 drivers/char/drm/drm_stub.c         |  256 +++++++
 drivers/char/drm/drm_vm.c           |  670 ++++++++++++++++++
 drivers/char/drm/ffb_drv.c          |   26
 drivers/char/drm/gamma_dma.c        |   12
 drivers/char/drm/i810_dma.c         |   95 --
 drivers/char/drm/i810_drm.h         |   46 -
 drivers/char/drm/i810_drv.c         |  104 ++
 drivers/char/drm/i810_drv.h         |   35
 drivers/char/drm/i830_dma.c         |   85 --
 drivers/char/drm/i830_drm.h         |   43 -
 drivers/char/drm/i830_drv.c         |  112 +++
 drivers/char/drm/i830_drv.h         |   33
 drivers/char/drm/i830_irq.c         |    6
 drivers/char/drm/i915_dma.c         |   48 -
 drivers/char/drm/i915_drm.h         |   37 -
 drivers/char/drm/i915_drv.c         |  103 ++
 drivers/char/drm/i915_drv.h         |   24
 drivers/char/drm/i915_irq.c         |    6
 drivers/char/drm/i915_mem.c         |   21
 drivers/char/drm/mga_dma.c          |   34
 drivers/char/drm/mga_drv.c          |  103 ++
 drivers/char/drm/mga_drv.h          |   15
 drivers/char/drm/mga_irq.c          |    3
 drivers/char/drm/mga_state.c        |    1
 drivers/char/drm/mga_warp.c         |    1
 drivers/char/drm/r128_cce.c         |   17
 drivers/char/drm/r128_drv.c         |  111 +++
 drivers/char/drm/r128_drv.h         |   17
 drivers/char/drm/r128_irq.c         |    3
 drivers/char/drm/r128_state.c       |  101 +-
 drivers/char/drm/radeon_cp.c        |   13
 drivers/char/drm/radeon_drv.c       |  148 ++++
 drivers/char/drm/radeon_drv.h       |   21
 drivers/char/drm/radeon_irq.c       |   11
 drivers/char/drm/radeon_mem.c       |   21
 drivers/char/drm/radeon_state.c     |   33
 drivers/char/drm/sis_drm.h          |   21
 drivers/char/drm/sis_drv.c          |   86 ++
 drivers/char/drm/sis_drv.h          |   14
 drivers/char/drm/sis_ds.c           |   17
 drivers/char/drm/sis_mm.c           |   12
 drivers/char/drm/tdfx_drv.c         |   72 +-
 drivers/char/drm/tdfx_drv.h         |   50 +
 84 files changed, 8438 insertions(+), 7728 deletions(-)

through these ChangeSets:

<airlied@starflyer.(none)> (04/11/23 1.2026.14.326)
   drm: move the enable device before filling in device info

   This moves the pci_enable_device to before the device info is
   filled out as without routeirq this goes wrong..

   Thanks to Ralf Gerbig <rge@quengel.org> for testing this.

   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/11 1.2026.14.325)
   drm: in-correct locking in intel drms

   The locking in the intel drms is incorrect it doesn't check
   the current context owns the lock, just that someone does.
   This could allow strange things to happen with multiple clients.

   From: Stefan Dirsch <sndirsch@suse.de>
   Approved-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/11 1.2026.14.324)
   drm: remove use of drm_agp use agp backend directly.

   This removes the inter module stuff between the DRM and AGP.

   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/11 1.2026.14.323)
   drm: fix Kconfig dependency

   fixup DRM/AGP Kconfig inter-dependency...

   From: Roman Zippel <zippel@linux-m68k.org>
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/11 1.2026.14.322)
   drm: fix warning for missing vunmap

   In file included from drivers/char/drm/drmP.h:795,
                    from drivers/char/drm/drm_dma.c:36:
   drivers/char/drm/drm_memory.h: In function `drm_ioremapfree':
   drivers/char/drm/drm_memory.h:191: warning: implicit declaration of function
   `vunmap'

   Signed-off-by: Andrew Morton <akpm@osdl.org>
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/10 1.2026.14.321)
   drm: move ati_pcigart into drm core

   This moves the ati_pcigart code into the drm core.

   From: Jon Smirl <jonsmirl@gmail.com>
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/05 1.2026.14.320)
   drm: make pcigart functions inline

   with these unstatic uninline the kernel wouldn't build with both configured.

   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/04 1.2026.14.319)
   drm: rearrange some functions for new split

   This change moves some functions into different C files to align things
   a bit more correctly...

   From: Jon Smirl <jonsmirl@gmail.com>
   Approved-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/04 1.2026.14.318)
   drm: move fops into drivers

   move the drm file operations into the driver.

   From: Jon Smirl <jonsmirl@gmail.com>
   Approved-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/02 1.2026.14.315)
   drm: rename fn_tbl to driver as it is no longer a function table

   This renames the drm_driver_fn to drm_driver and fn_tbl to driver,
   this name is makes much more sense now.

   From: Jon Smirl <jonsmirl@gmail.com> and Dave Airlie <airlied@linux.ie>
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/02 1.2026.14.314)
   drm: drm_memory.c missing from build

   Add drm_memory.c to build.

   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/11/02 1.2026.14.313)
   drm: core/personality split for 2.6 kernel

   This changeset gets rid of the DRM() macros and implements a core DRM module
   linked to a per graphics card personality module..

   Remove old 2.4 module parameters and switch to 2.6 module parameters

   From: Jon Smirl <jonsmirl@gmail.com> and Dave Airlie <airlied@linux.ie>
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/10/27 1.2026.8.2)
   drm: device minor fixups and /proc fixups

   This patch fixes up the DRM to do better minor number accounting
   and /proc directory creation, the old code was buggy in a number
   of situations with multiple cards, and rather ugly. It is also
   a step on the way to the drm_core module.

   From: Jon Smirl and Dave Airlie
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/10/24 1.2026.8.1)
   drm: memory allocation patch

   This removes some unnecessary macros for allocating DRM memory.
   It doesn't change any functionality.

   From: Jon Smirl <jonsmirl@gmail.com>
   Signed-off-by: Dave Airlie <airlied@linux.ie>

<airlied@starflyer.(none)> (04/10/24 1.2026.7.1)
   drm: initial core move infrastructure change

   Initial infrastructure - move old H files to C files
   also Kconfig and Makefile changes

   Signed-off-by: Dave Airlie <airlied@linux.ie>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [bk pull] drm core/personality split
  2004-12-30  7:34 [bk pull] drm core/personality split Dave Airlie
@ 2004-12-30  7:48 ` Dave Airlie
  2004-12-30 17:18   ` Jon Smirl
  2005-01-01 10:40   ` Joseph Fannin
  0 siblings, 2 replies; 7+ messages in thread
From: Dave Airlie @ 2004-12-30  7:48 UTC (permalink / raw)
  To: Dave Airlie; +Cc: torvalds, Andrew Morton, linux-kernel

> of .h files to .c files and removes all the DRM() macros.
> 
> For everyone else the diff is up at:
>         http://www.skynet.ie/~airlied/public_html/patches/dri/drm_core_split-26bk.diff
> and it is > 500k.

doh.. patch is actually at

http://www.skynet.ie/~airlied/patches/dri/drm_core_split-26bk.diff

Dave.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [bk pull] drm core/personality split
  2004-12-30  7:48 ` Dave Airlie
@ 2004-12-30 17:18   ` Jon Smirl
  2004-12-31  0:08     ` Dave Airlie
  2005-01-01 10:40   ` Joseph Fannin
  1 sibling, 1 reply; 7+ messages in thread
From: Jon Smirl @ 2004-12-30 17:18 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Dave Airlie, torvalds, Andrew Morton, linux-kernel

On Thu, 30 Dec 2004 18:48:25 +1100, Dave Airlie <airlied@gmail.com> wrote:
> > of .h files to .c files and removes all the DRM() macros.

Does this include the changes to get rid of intermodule too?

-- 
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [bk pull] drm core/personality split
  2004-12-30 17:18   ` Jon Smirl
@ 2004-12-31  0:08     ` Dave Airlie
  0 siblings, 0 replies; 7+ messages in thread
From: Dave Airlie @ 2004-12-31  0:08 UTC (permalink / raw)
  To: Jon Smirl; +Cc: Dave Airlie, torvalds, Andrew Morton, linux-kernel

> Does this include the changes to get rid of intermodule too?

Yes the code also directly calls into the AGP backend if AGP is
enabled on the machine,

I'm not sure this is the perfect solution but all the other ways of
doing things via inter_module and module_get are objected to by
Christoph so I'm happy to do it this way as it simple, some embedded
folks might give out but turning off AGP in the config turns it off
for the DRM as well...

Dave.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [bk pull] drm core/personality split
  2004-12-30  7:48 ` Dave Airlie
  2004-12-30 17:18   ` Jon Smirl
@ 2005-01-01 10:40   ` Joseph Fannin
  2005-01-01 11:51     ` Dave Airlie
  2005-01-01 12:25     ` Dave Airlie
  1 sibling, 2 replies; 7+ messages in thread
From: Joseph Fannin @ 2005-01-01 10:40 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Dave Airlie, torvalds, Andrew Morton, linux-kernel

On Thu, Dec 30, 2004 at 06:48:25PM +1100, Dave Airlie wrote:
> http://www.skynet.ie/~airlied/patches/dri/drm_core_split-26bk.diff

    Applying this patch to 2.6.10 shows that the oops-and-crash in
i810_mmap_buffers I reported in the bk-drm (and -mm) tree is
here. :(  Vanilla 2.6.10 is fine.

    I'll repeat what I worked out about this for anyone interested; I
was able to get the i810 DRM working again by reverting this change:
http://drm.bkbits.net:8080/drm-2.6/cset@418a0608l2KOkX2bWPW4DYyiQfa69A?nav=index.html|ChangeSet@-4w

    I made this patch with some ignorant copy-and-paste coding, which
is wrong but works for me:

diff -aurN a/drivers/char/drm/i810_drv.c b/drivers/char/drm/i810_drv.c
--- a/drivers/char/drm/i810_drv.c       2004-11-26 23:18:35.000000000 -0500
+++ b/drivers/char/drm/i810_drv.c       2004-11-26 23:38:36.000000000 -0500
@@ -112,7 +112,7 @@
                .open = drm_open,
                .release = drm_release,
                .ioctl = drm_ioctl,
-               .mmap = i810_mmap_buffers,
+               .mmap = drm_mmap,
                .poll = drm_poll,
                .fasync = drm_fasync,
        },

    A copy of the Oops output (this one from 2.6.10-rc2-mm1):

 Unable to handle kernel NULL pointer dereference at virtual address 00000038
  printing eip:
 c0235d04
 *pde = 08aed067
 *pte = 00000000
 Oops: 0000 [#1]
 PREEMPT 
 Modules linked in: lp af_packet 3c59x mii yenta_socket pcmcia_core snd_intel8x0
snd_ac97_codec i2c_i801 i2c_core uhci_hcd usbcore i8xx_tco hw_random floppy parport_pc
parport tsdev joydev nls_iso8859_1 ntfs dm_mod snd_seq_oss snd_seq_midi_event snd_seq
snd_seq_device snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore
ide_cd cdrom
 CPU:    0
 EIP:    0060:[<c0235d04>]    Not tainted VLI
 EFLAGS: 00013246   (2.6.10-rc2-mm1) 
 EIP is at i810_mmap_buffers+0x24/0x80
 eax: 00000000   ebx: c90a0e34   ecx: 00000000   edx: cb1d5570
 esi: c9b7dee0   edi: cb515560   ebp: c943ff40   esp: c943ff2c
 ds: 007b   es: 007b   ss: 0068
 Process XFree86 (pid: 3632, threadinfo=c943e000 task=cb1d5570)
 Stack: 000cca1c c943ff80 c90a0e34 cb515560 ffffffea c943ff98 c01494fe c943ff84 
        c943ff88 c943ff4c bffff890 c015559d c943ff60 00000000 00000001 00000000 
        001000fb cb11c9d8 cb68adc0 00002000 b7f9c000 c90f0ac4 c90f0ae4 c90f0adc 
 Call Trace:
  [<c0103e1a>] show_stack+0x7a/0x90
  [<c0103f99>] show_registers+0x149/0x1b0
  [<c010418d>] die+0xdd/0x170
  [<c0113b6a>] do_page_fault+0x33a/0x68a
  [<c0103a9b>] error_code+0x2b/0x30
  [<c01494fe>] do_mmap_pgoff+0x33e/0x6f0
  [<c0108b6c>] sys_mmap2+0x6c/0xa0
  [<c0103011>] sysenter_past_esp+0x52/0x71
 Code: ff ff eb d1 8d 76 00 55 89 e5 83 ec 14 89 5d f4 89 d3 89 7d fc 89 c7 89 75 f8 8b 70
7c e8 85 fd 0c 00 8b 46 20 8b 80 04 07 00 00 <8b> 40 38 8b 40 44 81 4b 14 00 40 02 00 89 7b
4c c7 40 08 01 00 
 
-- 
Joseph Fannin
jfannin@gmail.com || jhf@rivenstone.net

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [bk pull] drm core/personality split
  2005-01-01 10:40   ` Joseph Fannin
@ 2005-01-01 11:51     ` Dave Airlie
  2005-01-01 12:25     ` Dave Airlie
  1 sibling, 0 replies; 7+ messages in thread
From: Dave Airlie @ 2005-01-01 11:51 UTC (permalink / raw)
  To: Joseph Fannin; +Cc: Dave Airlie, torvalds, Andrew Morton, linux-kernel


>
>     Applying this patch to 2.6.10 shows that the oops-and-crash in
> i810_mmap_buffers I reported in the bk-drm (and -mm) tree is
> here. :(  Vanilla 2.6.10 is fine.
>
>     I'll repeat what I worked out about this for anyone interested; I
> was able to get the i810 DRM working again by reverting this change:
> http://drm.bkbits.net:8080/drm-2.6/cset@418a0608l2KOkX2bWPW4DYyiQfa69A?nav=index.html|ChangeSet@-4w
>

I've figured this out, your change is actually partly correct, there is a
bit more that needs to be done though, I'll post a patch tomorrow
hopefully...

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
pam_smb / Linux DECstation / Linux VAX / ILUG person


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [bk pull] drm core/personality split
  2005-01-01 10:40   ` Joseph Fannin
  2005-01-01 11:51     ` Dave Airlie
@ 2005-01-01 12:25     ` Dave Airlie
  1 sibling, 0 replies; 7+ messages in thread
From: Dave Airlie @ 2005-01-01 12:25 UTC (permalink / raw)
  To: Joseph Fannin; +Cc: Dave Airlie, torvalds, Andrew Morton, linux-kernel

>
>     I'll repeat what I worked out about this for anyone interested; I
> was able to get the i810 DRM working again by reverting this change:
> http://drm.bkbits.net:8080/drm-2.6/cset@418a0608l2KOkX2bWPW4DYyiQfa69A?nav=index.html|ChangeSet@-4w
>

actually the patch is correct, the DRM CVS had some extra code but I never
moved that to the kernel as I was unsure of its correctness,

I'll follow this up with a tree pull request for it..

Dave.


-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
pam_smb / Linux DECstation / Linux VAX / ILUG person


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2005-01-01 12:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-30  7:34 [bk pull] drm core/personality split Dave Airlie
2004-12-30  7:48 ` Dave Airlie
2004-12-30 17:18   ` Jon Smirl
2004-12-31  0:08     ` Dave Airlie
2005-01-01 10:40   ` Joseph Fannin
2005-01-01 11:51     ` Dave Airlie
2005-01-01 12:25     ` Dave Airlie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox