I've attached a simple Patch to support Suspend-Mode (for Laptops). This is not officially supported by nvidia, but there are similar working patches for older releases. Note: You've to disable AGP-Support (especialy in /etc/X11/XF86Config) in order to able to use Suspend. Works fine on my Dell i8200 for Suspend to RAM.
Created attachment 14180 [details] nvidia-kernel-1.0.4363-r3.ebuild
Created attachment 14181 [details, diff] suspend-patch: files/nvidia-4363-suspendhack.diff
Created attachment 14182 [details] files/digest-nvidia-kernel-1.0.4363-r3
Created attachment 14183 [details] ChangeLog
Created attachment 14184 [details] Manifest
Please also apply the append patch that was taken directly from the kernel mailing list: http://www.ussg.iu.edu/hypermail/linux/kernel/0307.0/att-1349/01-NVIDIA_kernel-1.0-4363-highpmd.diff This patches nv-linux.h and nv.c to work with the highpmd patch in 2.5.74-mm2 and will most likely be needed for future kernel releases as well.
Created attachment 14267 [details, diff] Fix for for Kernels 2.5.74-mm2+
The following was written as a followup to the above-mentioned patch by Andrew Morton: (Again taken directly from the LKML http://www.ussg.iu.edu/hypermail/linux/kernel/0307.0/1405.html ) --------------------------------------------- Thomas Schlichter <schlicht@uni-mannheim.de> wrote: > > +#if defined(pmd_offset_map) > +#define NV_PMD_OFFSET(address, pg_dir, pg_mid_dir) \ > + { \ > + pmd_t *pg_mid_dir__ = pmd_offset_map(pg_dir, address); \ > + pg_mid_dir = *pg_mid_dir__; \ > + pmd_unmap(pg_mid_dir__); \ > + } > +#else > +#define NV_PMD_OFFSET(address, pg_dir, pg_mid_dir) \ > + pg_mid_dir = *pmd_offset(pg_dir, address) > +#endif > + Well that will explode if someone enables highpmd and has highmem. This would be better: --- nv.c.orig 2003-07-05 22:55:10.000000000 -0700 +++ nv.c 2003-07-05 22:55:58.000000000 -0700 @@ -2105,11 +2105,14 @@ if (pgd_none(*pg_dir)) goto failed; - pg_mid_dir = pmd_offset(pg_dir, address); - if (pmd_none(*pg_mid_dir)) + pg_mid_dir = pmd_offset_map(pg_dir, address); + if (pmd_none(*pg_mid_dir)) { + pmd_unmap(pg_mid_dir); goto failed; + } NV_PTE_OFFSET(address, pg_mid_dir, pte); + pmd_unmap(pg_mid_dir); if (!pte_present(pte)) goto failed; ------------------------------------------------------------------------ I was not able to apply it though.
Latest version do have PM support - please reopen if this still is valid.
Yes, this might be true but i'm still not able to use the new version. I'm the only person having problems getting the new version running?