configure.ac          |   13 -
 src/Makefile.am       |    2 
 src/drmmode_display.c |  616 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/drmmode_display.h |   65 +++++
 src/nouveau_bo.c      |    1 
 src/nouveau_bo.h      |    1 
 src/nouveau_device.c  |    9 
 src/nv50_randr.c      |   12 
 src/nv50_sor.c        |   10 
 src/nv_bios.c         |   16 -
 src/nv_const.h        |    4 
 src/nv_crtc.c         |   52 ----
 src/nv_cursor.c       |   64 +----
 src/nv_dac.c          |   61 +---
 src/nv_dri.c          |   71 +++++
 src/nv_driver.c       |  231 +++++++++++++-----
 src/nv_exa.c          |   59 +---
 src/nv_hw.c           |  161 +++++++++----
 src/nv_i2c.c          |   22 +
 src/nv_include.h      |    2 
 src/nv_local.h        |   62 +----
 src/nv_output.c       |   69 -----
 src/nv_proto.h        |    3 
 src/nv_setup.c        |   65 ++---
 src/nv_shadow.c       |   24 +
 src/nv_type.h         |   13 -
 26 files changed, 1266 insertions(+), 442 deletions(-)

New commits:
commit 48c2116fb31872111239f5434215f30c8707091e
Author: Maarten Maathuis <[EMAIL PROTECTED]>
Date:   Wed Jul 2 19:04:58 2008 +0200

    NV50_KMS: no int10 please

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 2fe8819..e715e79 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -1105,7 +1105,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
        }
 
        /* Save current console video mode */
-       if (pNv->Architecture >= NV_ARCH_50 && pNv->pInt10) {
+       if (pNv->Architecture >= NV_ARCH_50 && pNv->pInt10 && !pNv->kms_enable) 
{
                const xf86Int10InfoPtr pInt10 = pNv->pInt10;
 
                pInt10->num = 0x10;

commit 11102af2896b3fdf2364854b2d7939b2802c5b2a
Author: Stuart Bennett <[EMAIL PROTECTED]>
Date:   Fri Jun 27 16:21:19 2008 +0100

    Backport console font save/restore from nouveau_ms

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 9abca5a..2fe8819 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -2043,6 +2043,8 @@ NVRestore(ScrnInfoPtr pScrn)
                        for (i = 0; i < xf86_config->num_crtc; i++)
                                
xf86_config->crtc[i]->funcs->restore(xf86_config->crtc[i]);
 
+                       nv_save_restore_vga_fonts(pScrn, 0);
+
                        for (i = 0; i < xf86_config->num_crtc; i++)
                                NVCrtcLockUnlock(xf86_config->crtc[i], 1);
                }
@@ -2618,6 +2620,8 @@ NVSave(ScrnInfoPtr pScrn)
                xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
                int i;
 
+               nv_save_restore_vga_fonts(pScrn, 1);
+
                for (i = 0; i < xf86_config->num_crtc; i++) {
                        xf86_config->crtc[i]->funcs->save(xf86_config->crtc[i]);
                }
diff --git a/src/nv_hw.c b/src/nv_hw.c
index 5f12428..d5ba9f8 100644
--- a/src/nv_hw.c
+++ b/src/nv_hw.c
@@ -1,5 +1,6 @@
 /*
  * Copyright 1993-2003 NVIDIA, Corporation
+ * Copyright 2008 Stuart Bennett
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -1343,3 +1344,90 @@ uint32_t nv_pitch_align(NVPtr pNv, uint32_t width, int 
bpp)
 
        return (width + mask) & ~mask;
 }
+
+#define VGA_SEQ_PLANE_WRITE     0x02
+#define VGA_SEQ_MEMORY_MODE     0x04
+#define VGA_GFX_PLANE_READ      0x04
+#define VGA_GFX_MODE            0x05
+#define VGA_GFX_MISC            0x06
+
+void nv_save_restore_vga_fonts(ScrnInfoPtr pScrn, bool save)
+{
+       NVPtr pNv = NVPTR(pScrn);
+       bool graphicsmode;
+       uint8_t misc, gr4, gr5, gr6, seq2, seq4;
+       int i;
+
+       NVSetEnablePalette(pNv, 0, true);
+       graphicsmode = NVReadVgaAttr(pNv, 0, 0x10) & 1;
+       NVSetEnablePalette(pNv, 0, false);
+
+       if (graphicsmode)       /* graphics mode => framebuffer => no need to 
save */
+               return;
+
+       xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%sing VGA fonts\n", save ? "Sav" 
: "Restor");
+       if (pNv->twoHeads)
+               NVBlankScreen(pScrn, 1, true);
+       NVBlankScreen(pScrn, 0, true);
+
+       /* save control regs */
+       misc = NVReadPVIO(pNv, 0, VGA_MISC_OUT_R);
+       seq2 = NVReadVgaSeq(pNv, 0, VGA_SEQ_PLANE_WRITE);
+       seq4 = NVReadVgaSeq(pNv, 0, VGA_SEQ_MEMORY_MODE);
+       gr4 = NVReadVgaGr(pNv, 0, VGA_GFX_PLANE_READ);
+       gr5 = NVReadVgaGr(pNv, 0, VGA_GFX_MODE);
+       gr6 = NVReadVgaGr(pNv, 0, VGA_GFX_MISC);
+
+       NVWritePVIO(pNv, 0, VGA_MISC_OUT_W, 0x67);
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_MEMORY_MODE, 0x6);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_MODE, 0x0);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_MISC, 0x5);
+
+       /* store font in plane 0 */
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_PLANE_WRITE, 0x1);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_PLANE_READ, 0x0);
+       for (i = 0; i < 16384; i++)
+               if (save)
+                       pNv->saved_vga_font[0][i] = MMIO_IN32(pNv->FB_BAR, i * 
4);
+               else
+                       MMIO_OUT32(pNv->FB_BAR, i * 4, 
pNv->saved_vga_font[0][i]);
+
+       /* store font in plane 1 */
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_PLANE_WRITE, 0x2);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_PLANE_READ, 0x1);
+       for (i = 0; i < 16384; i++)
+               if (save)
+                       pNv->saved_vga_font[1][i] = MMIO_IN32(pNv->FB_BAR, i * 
4);
+               else
+                       MMIO_OUT32(pNv->FB_BAR, i * 4, 
pNv->saved_vga_font[1][i]);
+
+       /* store font in plane 2 */
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_PLANE_WRITE, 0x4);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_PLANE_READ, 0x2);
+       for (i = 0; i < 16384; i++)
+               if (save)
+                       pNv->saved_vga_font[2][i] = MMIO_IN32(pNv->FB_BAR, i * 
4);
+               else
+                       MMIO_OUT32(pNv->FB_BAR, i * 4, 
pNv->saved_vga_font[2][i]);
+
+       /* store font in plane 3 */
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_PLANE_WRITE, 0x8);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_PLANE_READ, 0x3);
+       for (i = 0; i < 16384; i++)
+               if (save)
+                       pNv->saved_vga_font[3][i] = MMIO_IN32(pNv->FB_BAR, i * 
4);
+               else
+                       MMIO_OUT32(pNv->FB_BAR, i * 4, 
pNv->saved_vga_font[3][i]);
+
+       /* restore control regs */
+       NVWritePVIO(pNv, 0, VGA_MISC_OUT_W, misc);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_PLANE_READ, gr4);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_MODE, gr5);
+       NVWriteVgaGr(pNv, 0, VGA_GFX_MISC, gr6);
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_PLANE_WRITE, seq2);
+       NVWriteVgaSeq(pNv, 0, VGA_SEQ_MEMORY_MODE, seq4);
+
+       if (pNv->twoHeads)
+               NVBlankScreen(pScrn, 1, false);
+       NVBlankScreen(pScrn, 0, false);
+}
diff --git a/src/nv_proto.h b/src/nv_proto.h
index 8f7a5a0..4562cb0 100644
--- a/src/nv_proto.h
+++ b/src/nv_proto.h
@@ -139,6 +139,7 @@ void nv4UpdateArbitrationSettings (unsigned      VClk,
                                   unsigned     *lwm,
                                   NVPtr        pNv);
 uint32_t nv_pitch_align(NVPtr pNv, uint32_t width, int bpp);
+void nv_save_restore_vga_fonts(ScrnInfoPtr pScrn, bool save);
 
 /* in nv_i2c.c */
 Bool NV_I2CInit(ScrnInfoPtr pScrn, I2CBusPtr *bus_ptr, int i2c_reg, char 
*name);
diff --git a/src/nv_setup.c b/src/nv_setup.c
index bad1541..71a20b1 100644
--- a/src/nv_setup.c
+++ b/src/nv_setup.c
@@ -359,9 +359,13 @@ NVCommonSetup(ScrnInfoPtr pScrn)
        pNv->REGS = xf86MapPciMem(pScrn->scrnIndex, 
                        VIDMEM_MMIO | VIDMEM_READSIDEEFFECT, 
                        pNv->PciTag, pNv->IOAddress, 0x01000000);
+       pNv->FB_BAR = xf86MapPciMem(pScrn->scrnIndex,
+                       VIDMEM_MMIO | VIDMEM_READSIDEEFFECT,
+                       pNv->PciTag, pNv->VRAMPhysical, 0x10000);
 #else
        /* 0x01000000 is the size */
        pci_device_map_range(pNv->PciInfo, pNv->IOAddress, 0x01000000, 
PCI_DEV_MAP_FLAG_WRITABLE, (void *)&pNv->REGS);
+       pci_device_map_range(pNv->PciInfo, pNv->VRAMPhysical, 0x10000, 
PCI_DEV_MAP_FLAG_WRITABLE, (void *)&pNv->FB_BAR);
 #endif /* XSERVER_LIBPCIACCESS */
 
        pNv->PRAMIN   = pNv->REGS + (NV_PRAMIN_OFFSET/4);
diff --git a/src/nv_type.h b/src/nv_type.h
index 2564b91..bc0e8bf 100644
--- a/src/nv_type.h
+++ b/src/nv_type.h
@@ -360,6 +360,7 @@ typedef struct _NVRec *NVPtr;
 typedef struct _NVRec {
     RIVA_HW_STATE       SavedReg;
     RIVA_HW_STATE       ModeReg;
+    uint32_t saved_vga_font[4][16384];
     uint32_t              Architecture;
     EntityInfoPtr       pEnt;
 #ifndef XSERVER_LIBPCIACCESS
@@ -404,6 +405,7 @@ typedef struct _NVRec {
     CARD32              RamAmountKBytes;
 
     volatile CARD32 *REGS;
+    volatile CARD32 *FB_BAR;
     volatile CARD32 *PGRAPH;
     volatile CARD32 *PRAMIN;
     volatile CARD32 *CURSOR;

commit ca2c55dfbf65ac268d43ba62db2399976eaf8f0a
Author: Stuart Bennett <[EMAIL PROTECTED]>
Date:   Thu Jun 26 14:44:45 2008 +0100

    randr12: fix mode detection for when screen size changes
    
    also some mem leaks

diff --git a/src/nv_output.c b/src/nv_output.c
index cca78bf..e6a6be1 100644
--- a/src/nv_output.c
+++ b/src/nv_output.c
@@ -499,6 +499,7 @@ nv_output_get_modes(xf86OutputPtr output, xf86MonPtr mon)
                int i;
                DisplayModePtr mode;
 
+               nv_output->fpHeight = nv_output->fpWidth = 0;
                for (i = 0; i < DET_TIMINGS; i++) {
                        /* We only look at detailed timings atm */
                        if (mon->det_mon[i].type != DT)
@@ -514,10 +515,11 @@ nv_output_get_modes(xf86OutputPtr output, xf86MonPtr mon)
                        return NULL;
                }
 
-               if (nv_output->native_mode)
+               if (nv_output->native_mode) {
                        xfree(nv_output->native_mode);
+                       nv_output->native_mode = NULL;
+               }
 
-               /* Prefer ddc modes. */
                for (mode = ddc_modes; mode != NULL; mode = mode->next) {
                        if (mode->HDisplay == nv_output->fpWidth &&
                                mode->VDisplay == nv_output->fpHeight) {
@@ -528,6 +530,8 @@ nv_output_get_modes(xf86OutputPtr output, xf86MonPtr mon)
                                }
                                /* Find the highest refresh mode otherwise. */
                                if (!nv_output->native_mode || (mode->VRefresh 
> nv_output->native_mode->VRefresh)) {
+                                       if (nv_output->native_mode)
+                                               xfree(nv_output->native_mode);
                                        mode->type |= M_T_PREFERRED;
                                        nv_output->native_mode = 
xf86DuplicateMode(mode);
                                }
@@ -864,6 +868,8 @@ nv_lvds_output_get_modes(xf86OutputPtr output)
        xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Panel size is %u x %u\n",
                nv_output->fpWidth, nv_output->fpHeight);
 
+       if (nv_output->native_mode)
+               xfree(nv_output->native_mode);
        nv_output->native_mode = xf86DuplicateMode(pNv->VBIOS.fp.native_mode);
 
        return xf86DuplicateMode(pNv->VBIOS.fp.native_mode);

commit 9c6eb667aa48f87f6bbbdae10cc9f4d237bdb0c6
Author: Maarten Maathuis <[EMAIL PROTECTED]>
Date:   Sat Jun 28 15:47:18 2008 +0200

    NV04-NV4E: Save and restore FB_START

diff --git a/src/nv_crtc.c b/src/nv_crtc.c
index 672cd9f..292c6bb 100644
--- a/src/nv_crtc.c
+++ b/src/nv_crtc.c
@@ -1658,6 +1658,9 @@ static void nv_crtc_load_state_ext(xf86CrtcPtr crtc, 
RIVA_HW_STATE *state, Bool
                NVWriteVgaCrtc(pNv, nv_crtc->head, NV_VGA_CRTCX_86, 
regp->CRTC[NV_VGA_CRTCX_86]);
        }
 
+       if (override)
+               NVCrtcWriteCRTC(crtc, NV_CRTC_START, regp->fb_start);
+
        /* Setting 1 on this value gives you interrupts for every vblank 
period. */
        NVCrtcWriteCRTC(crtc, NV_CRTC_INTR_EN_0, 0);
        NVCrtcWriteCRTC(crtc, NV_CRTC_INTR_0, NV_CRTC_INTR_VBLANK);
@@ -1754,6 +1757,8 @@ static void nv_crtc_save_state_ext(xf86CrtcPtr crtc, 
RIVA_HW_STATE *state)
                regp->CRTC[NV_VGA_CRTCX_85] = NVReadVgaCrtc(pNv, nv_crtc->head, 
NV_VGA_CRTCX_85);
                regp->CRTC[NV_VGA_CRTCX_86] = NVReadVgaCrtc(pNv, nv_crtc->head, 
NV_VGA_CRTCX_86);
        }
+
+       regp->fb_start = NVCrtcReadCRTC(crtc, NV_CRTC_START);
 }
 
 static void nv_crtc_save_state_ramdac(xf86CrtcPtr crtc, RIVA_HW_STATE *state)
@@ -1884,9 +1889,6 @@ NVCrtcSetBase (xf86CrtcPtr crtc, int x, int y, Bool 
bios_restore)
        /* 30 bits addresses in 32 bits according to haiku */
        NVCrtcWriteCRTC(crtc, NV_CRTC_START, start & 0xfffffffc);
 
-       /* set NV4/NV10 byte adress: (bit0 - 1) */
-       NVWriteVgaAttr(pNv, nv_crtc->head, 0x13, (start & 0x3) << 1);
-
        crtc->x = x;
        crtc->y = y;
 }
diff --git a/src/nv_type.h b/src/nv_type.h
index d9b11d5..2564b91 100644
--- a/src/nv_type.h
+++ b/src/nv_type.h
@@ -152,6 +152,7 @@ typedef struct _nv_crtc_reg
        uint32_t unk850;
        uint32_t head;
        uint32_t config;
+       uint32_t fb_start;
 
        /* These are former output regs, but are believed to be crtc related */
        uint32_t general;

commit 82fe9a21596ab80157df20b269ce8df41315de83
Author: Maarten Maathuis <[EMAIL PROTECTED]>
Date:   Fri Jun 27 18:49:16 2008 +0200

    NV50_KMS: switch to output dpms

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 674f005..80b514b 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -151,49 +151,10 @@ static const xf86CrtcConfigFuncsRec 
drmmode_xf86crtc_config_funcs = {
        drmmode_xf86crtc_resize
 };
 
-/* dpms based on setting a NULL mode when mode is off */
 static void
 drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode)
 {
-       xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
-       drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
-       drmmode_ptr drmmode = drmmode_crtc->drmmode;
-       struct drm_mode_modeinfo kmode;
-       uint32_t *output_ids;
-       int output_count = 0;
-       int i;
-
-       if (mode == drmmode_crtc->dpms_mode)
-               return;
-
-       output_ids = xcalloc(sizeof(uint32_t), xf86_config->num_output);
-       if (!output_ids) {
-               return;
-       }
-
-       for (i = 0; i < xf86_config->num_output; i++) {
-               xf86OutputPtr output = xf86_config->output[i];
-               drmmode_output_private_ptr drmmode_output;
-
-               if (output->crtc != crtc)
-                       continue;
-
-               drmmode_output = output->driver_private;
-               output_ids[output_count] = 
drmmode_output->mode_output->connector_id;
-               output_count++;
-       }
-
-       if (mode == DPMSModeOn) {
-               drmmode_ConvertToKMode(crtc->scrn, &kmode, &crtc->mode);
-               drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
-                       drmmode->fb_id, crtc->x, crtc->y, output_ids, 
output_count, &kmode);
-       } else {
-               drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
-                       drmmode->fb_id, crtc->x, crtc->y, output_ids, 
output_count, NULL);
-       }
-
-       if (output_ids)
-               xfree(output_ids);
+       return;
 }
 
 static Bool
@@ -260,8 +221,6 @@ done:
                crtc->y = saved_y;
                crtc->rotation = saved_rotation;
                crtc->mode = saved_mode;
-       } else {
-               drmmode_crtc->dpms_mode = DPMSModeOn;
        }
 
        if (output_ids)
@@ -411,9 +370,13 @@ drmmode_output_get_modes(xf86OutputPtr output)
                props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
                if (props && (props->flags & DRM_MODE_PROP_BLOB)) {
                        if (!strcmp(props->name, "EDID")) {
+                               ErrorF("EDID property found\n");
                                if (drmmode_output->edid_blob)
                                        
drmModeFreePropertyBlob(drmmode_output->edid_blob);
                                drmmode_output->edid_blob = 
drmModeGetPropertyBlob(drmmode->fd, koutput->prop_values[i]);
+
+                               if (!drmmode_output->edid_blob)
+                                       ErrorF("No EDID blob\n");
                        }
                        drmModeFreeProperty(props);
                }
@@ -450,7 +413,24 @@ drmmode_output_destroy(xf86OutputPtr output)
 static void
 drmmode_output_dpms(xf86OutputPtr output, int mode)
 {
-       return;
+       drmmode_output_private_ptr drmmode_output = output->driver_private;
+       drmModeConnectorPtr koutput = drmmode_output->mode_output;
+       drmmode_ptr drmmode = drmmode_output->drmmode;
+       drmModePropertyPtr props;
+       int i;
+
+       ErrorF("drmmode_output_dpms called with mode %d\n", mode);
+
+       for (i = 0; i < koutput->count_props; i++) {
+               props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
+               if (props && (props->flags & DRM_MODE_PROP_ENUM)) {
+                       if (!strcmp(props->name, "DPMS")) {
+                               ErrorF("DPMS property found\n");
+                               drmModeConnectorSetProperty(drmmode->fd, 
drmmode_output->output_id, props->prop_id, mode); 
+                       }
+                       drmModeFreeProperty(props);
+               }
+       }
 }
 
 static const xf86OutputFuncsRec drmmode_output_funcs = {
diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index 10f35d0..b1ba3a9 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -47,7 +47,6 @@ typedef struct {
        int index;
        drmmode_ptr drmmode;
        drmModeCrtcPtr mode_crtc;
-       int dpms_mode;
 } drmmode_crtc_private_rec, *drmmode_crtc_private_ptr;
 
 typedef struct {

commit 13ce1f4c1d02e70333a192db2efefb3f6a6765e3
Author: Maarten Maathuis <[EMAIL PROTECTED]>
Date:   Wed Jun 25 19:45:12 2008 +0200

    Properly close drm when exiting + misc cleanup.

diff --git a/src/nouveau_device.c b/src/nouveau_device.c
index f32dff1..159fd72 100644
--- a/src/nouveau_device.c
+++ b/src/nouveau_device.c
@@ -69,9 +69,9 @@ nouveau_device_open(struct nouveau_device **userdev, const 
char *busid)
 
        ret = nouveau_device_open_existing(userdev, 1, fd, ctx);
        if (ret) {
-           drmDestroyContext(fd, ctx);
-           drmClose(fd);
-           return ret;
+               drmDestroyContext(fd, ctx);
+               drmClose(fd);
+               return ret;
        }
 
        return 0;
@@ -88,7 +88,8 @@ nouveau_device_close(struct nouveau_device **userdev)
        *userdev = NULL;
 
        if (nv->needs_close) {
-               drmDestroyContext(nv->fd, nv->ctx);
+               if (nv->ctx)
+                       drmDestroyContext(nv->fd, nv->ctx);
                drmClose(nv->fd);
        }
        free(nv);
diff --git a/src/nv_dri.c b/src/nv_dri.c
index 7e8fba7..94d76dd 100644
--- a/src/nv_dri.c
+++ b/src/nv_dri.c
@@ -294,7 +294,7 @@ Bool NVDRIScreenInit(ScrnInfoPtr pScrn)
        int drm_fd;
 
 #ifdef XF86DRM_MODE
-       /* drm already open */
+       /* drm already open, reuse it */
        if (pNv->drmmode) {
                drmmode_ptr drmmode = pNv->drmmode;
                drm_fd = drmmode->fd;
@@ -374,7 +374,8 @@ Bool NVDRIScreenInit(ScrnInfoPtr pScrn)
                return FALSE;
        }
 
-       if (nouveau_device_open_existing(&pNv->dev, 0, drm_fd, 0)) {
+       /* turn on need_close, so we explictly drmClose() on exit */
+       if (nouveau_device_open_existing(&pNv->dev, 1, drm_fd, 0)) {
                xf86DrvMsg(pScreen->myNum, X_ERROR, "Error creating device\n");
                xfree(pDRIInfo->devPrivate);
                pDRIInfo->devPrivate = NULL;
@@ -419,3 +420,12 @@ Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn)
        return TRUE;
 }
 
+void NVDRICloseScreen(ScrnInfoPtr pScrn)
+{
+       ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
+       NVPtr pNv = NVPTR(pScrn);
+
+       DRICloseScreen(pScreen);
+       nouveau_device_close(&pNv->dev);
+}
+
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 255f961..9abca5a 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -841,15 +841,34 @@ NVCloseScreen(int scrnIndex, ScreenPtr pScreen)
 
        NVUnmapMem(pScrn);
        vgaHWUnmapMem(pScrn);
-       nouveau_device_close(&pNv->dev);
+       NVDRICloseScreen(pScrn);
        if (pNv->CursorInfoRec)
                xf86DestroyCursorInfoRec(pNv->CursorInfoRec);
-       if (pNv->ShadowPtr)
+       if (pNv->ShadowPtr) {
                xfree(pNv->ShadowPtr);
-       if (pNv->overlayAdaptor)
+               pNv->ShadowPtr = NULL;
+       }
+       if (pNv->overlayAdaptor) {
                xfree(pNv->overlayAdaptor);
-       if (pNv->blitAdaptor)
+               pNv->overlayAdaptor = NULL;
+       }
+       if (pNv->blitAdaptor) {
                xfree(pNv->blitAdaptor);
+               pNv->blitAdaptor = NULL;
+       }
+       if (pNv->textureAdaptor[0]) {
+               xfree(pNv->textureAdaptor[0]);
+               pNv->textureAdaptor[0] = NULL;
+       }
+       if (pNv->textureAdaptor[1]) {
+               xfree(pNv->textureAdaptor[1]);
+               pNv->textureAdaptor[1] = NULL;
+       }
+       if (pNv->EXADriverPtr) {
+               exaDriverFini(pScreen);
+               xfree(pNv->EXADriverPtr);
+               pNv->EXADriverPtr = NULL;
+       }
 
        pScrn->vtSema = FALSE;
        pScreen->CloseScreen = pNv->CloseScreen;
diff --git a/src/nv_proto.h b/src/nv_proto.h
index fc0ade1..8f7a5a0 100644
--- a/src/nv_proto.h
+++ b/src/nv_proto.h
@@ -16,6 +16,7 @@ Bool NVMatchModePrivate(DisplayModePtr mode, uint32_t flags);
 /* in nv_dri.c */
 Bool NVDRIScreenInit(ScrnInfoPtr pScrn);
 Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn);
+void NVDRICloseScreen(ScrnInfoPtr pScrn);
 extern const char *drmSymbols[], *driSymbols[];
 Bool NVDRIGetVersion(ScrnInfoPtr pScrn);
 

commit 7cb0eed603ea0bd196a7471e43d60fa5e518c7fb
Author: Maarten Maathuis <[EMAIL PROTECTED]>
Date:   Wed Jun 25 19:07:58 2008 +0200

    Fixup and add some license statements.
    
    - The changed statements are a response to nv commit 
2fdcda8ea62eba1b7885f0a75249884715936247.

diff --git a/src/nv_crtc.c b/src/nv_crtc.c
index e09a7d1..672cd9f 100644
--- a/src/nv_crtc.c
+++ b/src/nv_crtc.c
@@ -1,4 +1,5 @@
 /*
+ * Copyright 1993-2003 NVIDIA, Corporation
  * Copyright 2006 Dave Airlie
  * Copyright 2007 Maarten Maathuis
  *
@@ -21,10 +22,6 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
-/*
- * this code uses ideas taken from the NVIDIA nv driver - the nvidia license
- * decleration is at the bottom of this file as it is rather ugly 
- */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1928,42 +1925,3 @@ static void nv_crtc_load_state_palette(xf86CrtcPtr crtc, 
RIVA_HW_STATE *state)
 
        NVSetEnablePalette(pNv, nv_crtc->head, false);
 }
-
-/*************************************************************************** \
-|*                                                                           *|
-|*       Copyright 1993-2003 NVIDIA, Corporation.  All rights reserved.      *|
-|*                                                                           *|
-|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
-|*     international laws.  Users and possessors of this source code are     *|
-|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
-|*     use this code in individual and commercial software.                  *|
-|*                                                                           *|
-|*     Any use of this source code must include,  in the user documenta-     *|
-|*     tion and  internal comments to the code,  notices to the end user     *|
-|*     as follows:                                                           *|
-|*                                                                           *|
-|*       Copyright 1993-1999 NVIDIA, Corporation.  All rights reserved.      *|
-|*                                                                           *|
-|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
-|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
-|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
-|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
-|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
-|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
-|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
-|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
-|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
-|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
-|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
-|*                                                                           *|
-|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
-|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
-|*     consisting  of "commercial  computer  software"  and  "commercial     *|
-|*     computer  software  documentation,"  as such  terms  are  used in     *|
-|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
-|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
-|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
-|*     all U.S. Government End Users  acquire the source code  with only     *|
-|*     those rights set forth herein.                                        *|
-|*                                                                           *|
- \***************************************************************************/
diff --git a/src/nv_cursor.c b/src/nv_cursor.c
index bdf25ae..7b504cf 100644
--- a/src/nv_cursor.c
+++ b/src/nv_cursor.c
@@ -1,45 +1,25 @@
- /***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
-|*                                                                           *|
-|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
-|*     international laws.  Users and possessors of this source code are     *|
-|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
-|*     use this code in individual and commercial software.                  *|
-|*                                                                           *|
-|*     Any use of this source code must include,  in the user documenta-     *|
-|*     tion and  internal comments to the code,  notices to the end user     *|
-|*     as follows:                                                           *|
-|*                                                                           *|
-|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
-|*                                                                           *|
-|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
-|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
-|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
-|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
-|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
-|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
-|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
-|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
-|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
-|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
-|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
-|*                                                                           *|
-|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
-|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
-|*     consisting  of "commercial  computer  software"  and  "commercial     *|
-|*     computer  software  documentation,"  as such  terms  are  used in     *|
-|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
-|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
-|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
-|*     all U.S. Government End Users  acquire the source code  with only     *|
-|*     those rights set forth herein.                                        *|
-|*                                                                           *|
- \***************************************************************************/
-
-/* Copyright 2007 Maarten Maathuis */
-
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_cursor.c,v 1.13 
2004/03/13 22:07:05 mvojkovi Exp $ */
+/*
+ * Copyright 2003 NVIDIA, Corporation
+ * Copyright 2007 Maarten Maathuis
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
 
 #include "nv_include.h"
 
diff --git a/src/nv_dac.c b/src/nv_dac.c
index b8c07dc..02aa6ec 100644
--- a/src/nv_dac.c
+++ b/src/nv_dac.c
@@ -1,43 +1,24 @@
- /***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
-|*                                                                           *|
-|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
-|*     international laws.  Users and possessors of this source code are     *|
-|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
-|*     use this code in individual and commercial software.                  *|
-|*                                                                           *|
-|*     Any use of this source code must include,  in the user documenta-     *|
-|*     tion and  internal comments to the code,  notices to the end user     *|
-|*     as follows:                                                           *|
-|*                                                                           *|
-|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
-|*                                                                           *|
-|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
-|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
-|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
-|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
-|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
-|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
-|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
-|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
-|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
-|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
-|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
-|*                                                                           *|
-|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
-|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
-|*     consisting  of "commercial  computer  software"  and  "commercial     *|
-|*     computer  software  documentation,"  as such  terms  are  used in     *|
-|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
-|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
-|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
-|*     all U.S. Government End Users  acquire the source code  with only     *|
-|*     those rights set forth herein.                                        *|
-|*                                                                           *|
- \***************************************************************************/
-
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c,v 1.45 
2005/07/09 00:53:00 mvojkovi Exp $ */
+/*
+ * Copyright 2003 NVIDIA, Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
 
 #include "nv_include.h"
 
diff --git a/src/nv_dri.c b/src/nv_dri.c
index 2152e74..7e8fba7 100644
--- a/src/nv_dri.c
+++ b/src/nv_dri.c
@@ -1,3 +1,26 @@
+/*
+ * Copyright 2006 Stephane Marchesin
+ * Copyright 2006 Ben Skeggs
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
 #include "nv_include.h"
 
 #define _XF86DRI_SERVER_
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 8860dae..255f961 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -1,7 +1,5 @@
-/* $XdotOrg: driver/xf86-video-nv/src/nv_driver.c,v 1.21 2006/01/24 16:45:29 
aplattner Exp $ */
-/* $XConsortium: nv_driver.c /main/3 1996/10/28 05:13:37 kaleb $ */
 /*
- * Copyright 1996-1997  David J. McKay
+ * Copyright 1996-1997 David J. McKay
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -16,17 +14,12 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * DAVID J. MCKAY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
  * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
 
-/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
-   <[EMAIL PROTECTED]> */
-
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.144 
2006/06/16 00:19:32 mvojkovi Exp $ */
-
 #include <stdio.h>
 
 #include "nv_include.h"
diff --git a/src/nv_exa.c b/src/nv_exa.c
index d74914f..51ac51c 100644
--- a/src/nv_exa.c
+++ b/src/nv_exa.c
@@ -1,44 +1,23 @@
- /***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
-|*                                                                           *|
-|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
-|*     international laws.  Users and possessors of this source code are     *|
-|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
-|*     use this code in individual and commercial software.                  *|
-|*                                                                           *|
-|*     Any use of this source code must include,  in the user documenta-     *|
-|*     tion and  internal comments to the code,  notices to the end user     *|
-|*     as follows:                                                           *|
-|*                                                                           *|
-|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
-|*                                                                           *|
-|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
-|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
-|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
-|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
-|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
-|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
-|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
-|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
-|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
-|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
-|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
-|*                                                                           *|
-|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
-|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
-|*     consisting  of "commercial  computer  software"  and  "commercial     *|
-|*     computer  software  documentation,"  as such  terms  are  used in     *|
-|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
-|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
-|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
-|*     all U.S. Government End Users  acquire the source code  with only     *|
-|*     those rights set forth herein.                                        *|
-|*                                                                           *|
- \***************************************************************************/
-
 /*
-  Exa Modifications (c) Lars Knoll ([EMAIL PROTECTED])
+ * Copyright 2003 NVIDIA, Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  */
 
 #include "nv_include.h"
diff --git a/src/nv_hw.c b/src/nv_hw.c
index 80f904f..5f12428 100644
--- a/src/nv_hw.c
+++ b/src/nv_hw.c
@@ -1,42 +1,24 @@
-/***************************************************************************\
-|*                                                                           *|
-|*       Copyright 1993-2003 NVIDIA, Corporation.  All rights reserved.      *|
-|*                                                                           *|
-|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
-|*     international laws.  Users and possessors of this source code are     *|
-|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
-|*     use this code in individual and commercial software.                  *|
-|*                                                                           *|
-|*     Any use of this source code must include,  in the user documenta-     *|
-|*     tion and  internal comments to the code,  notices to the end user     *|
-|*     as follows:                                                           *|
-|*                                                                           *|
-|*       Copyright 1993-2003 NVIDIA, Corporation.  All rights reserved.      *|
-|*                                                                           *|
-|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
-|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
-|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
-|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
-|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
-|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
-|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
-|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
-|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
-|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
-|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
-|*                                                                           *|
-|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
-|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
-|*     consisting  of "commercial  computer  software"  and  "commercial     *|
-|*     computer  software  documentation,"  as such  terms  are  used in     *|
-|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
-|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
-|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
-|*     all U.S. Government End Users  acquire the source code  with only     *|
-|*     those rights set forth herein.                                        *|
-|*                                                                           *|
- \***************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c,v 1.21 
2006/06/16 00:19:33 mvojkovi Exp $ */
+/*
+ * Copyright 1993-2003 NVIDIA, Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
 
 #include "nv_include.h"
 #include "nv_local.h"
diff --git a/src/nv_i2c.c b/src/nv_i2c.c
index c63d909..a08e096 100644
--- a/src/nv_i2c.c
+++ b/src/nv_i2c.c
@@ -1,3 +1,25 @@


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to