diff options
author | Maxime Henrion <mux@FreeBSD.org> | 2003-03-06 01:12:23 +0000 |
---|---|---|
committer | Maxime Henrion <mux@FreeBSD.org> | 2003-03-06 01:12:23 +0000 |
commit | db303857e8aea518cd9a13dee40d65e2cfbd21b6 (patch) | |
tree | d917e936e3fa79eab7b346d74a764bfe630b84bc /x11/nvidia-driver/files/patch-nvidia_dev.c | |
parent | Update to 2.79. (diff) |
Add patches so that the nVidia driver works with -CURRENT. Be
aware that nVidia doesn't officially supports -CURRENT though.
Older versions of -CURRENT (ie. __FreeBSD_version < 500105) are
not supported. 5.0-RELEASE is thus unsupported as well.
Requested by: many
Notes
Notes:
svn path=/head/; revision=77002
Diffstat (limited to 'x11/nvidia-driver/files/patch-nvidia_dev.c')
-rw-r--r-- | x11/nvidia-driver/files/patch-nvidia_dev.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/x11/nvidia-driver/files/patch-nvidia_dev.c b/x11/nvidia-driver/files/patch-nvidia_dev.c new file mode 100644 index 000000000000..d53e31741c73 --- /dev/null +++ b/x11/nvidia-driver/files/patch-nvidia_dev.c @@ -0,0 +1,66 @@ +--- src/nvidia_dev.c.orig Wed Oct 30 15:30:58 2002 ++++ src/nvidia_dev.c Thu Mar 6 01:09:05 2003 +@@ -20,6 +20,7 @@ + static d_mmap_t nvidia_dev_mmap; + + static struct cdevsw nvidia_dev_cdevsw = { ++#if __FreeBSD_version < 500000 + /* open */ nvidia_dev_open, + /* close */ nvidia_dev_close, + /* read */ noread, +@@ -33,10 +34,18 @@ + /* dump */ nodump, + /* psize */ nopsize, + /* flags */ D_MEM|D_TRACKCLOSE, +-#if __FreeBSD_version < 500000 + /* bmaj */ -1, +-#endif + /* kqfilter */ NULL, ++#else ++ .d_open = nvidia_dev_open, ++ .d_close = nvidia_dev_close, ++ .d_ioctl = nvidia_dev_ioctl, ++ .d_poll = nvidia_dev_poll, ++ .d_mmap = nvidia_dev_mmap, ++ .d_name = "nvidia", ++ .d_maj = CDEV_MAJOR, ++ .d_flags = D_MEM|D_TRACKCLOSE ++#endif + }; + + int nvidia_dev_open( +@@ -135,11 +144,15 @@ + int nvidia_dev_mmap( + dev_t dev, + vm_offset_t offset, ++#if __FreeBSD_version >= 500000 ++ vm_offset_t *paddr, ++#endif + int nprot + ) + { + nv_state_t *nv; + struct nvidia_softc *sc; ++ vm_offset_t phys; + + int status; + int unit = minor(dev); +@@ -148,10 +161,17 @@ + nv = sc->nv_state; + + nv_lock_api(nv); +- status = nvidia_mmap_dev(sc, offset); ++ status = nvidia_mmap_dev(sc, offset, &phys); + nv_unlock_api(nv); + ++#if __FreeBSD_version >= 500000 ++ *paddr = phys; + return status; ++#else ++ if (status == -1) ++ return -1; ++ return atop(phys); ++#endif + } + + int nvidia_dev_attach (struct nvidia_softc *sc) |