Re: [Nouveau] Add pause/unpause methods for PFIFO PGRAPH. Use them to get stable clock changes

2010-10-07 Thread Martin Peres

 Le 07/10/2010 03:33, Martin Peres a écrit :

 Hi,

Here is an updated version, all in one patch. When we agree on the 
code, I'll split it into 3 patches.



Sorry, I forgot to attach it. Here it is.
From 86e7dd89810b37a12ae189633de41aacf07355cb Mon Sep 17 00:00:00 2001
From: Martin Peres martin.pe...@ensi-bourges.fr
Date: Thu, 7 Oct 2010 05:20:38 +0200
Subject: [PATCH] Pause the card before reclocking

Signed-off-by: Martin Peres martin.pe...@ensi-bourges.fr
---
 drivers/gpu/drm/nouveau/nouveau_drv.h   |   10 ++
 drivers/gpu/drm/nouveau/nouveau_pm.c|   50 +-
 drivers/gpu/drm/nouveau/nouveau_reg.h   |3 ++
 drivers/gpu/drm/nouveau/nouveau_state.c |   35 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c |   17 ++
 drivers/gpu/drm/nouveau/nv50_graph.c|   48 +
 6 files changed, 160 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index 591254e..9317bc3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -304,6 +304,9 @@ struct nouveau_fifo_engine {
 	void (*destroy_context)(struct nouveau_channel *);
 	int  (*load_context)(struct nouveau_channel *);
 	int  (*unload_context)(struct drm_device *);
+
+	int  (*pause)(struct drm_device *);
+	void  (*unpause)(struct drm_device *);
 };
 
 struct nouveau_pgraph_object_method {
@@ -339,6 +342,9 @@ struct nouveau_pgraph_engine {
 
 	void (*set_region_tiling)(struct drm_device *dev, int i, uint32_t addr,
   uint32_t size, uint32_t pitch);
+
+	int  (*pause)(struct drm_device *);
+	void  (*unpause)(struct drm_device *);
 };
 
 struct nouveau_display_engine {
@@ -1036,6 +1042,8 @@ extern int  nv50_fifo_create_context(struct nouveau_channel *);
 extern void nv50_fifo_destroy_context(struct nouveau_channel *);
 extern int  nv50_fifo_load_context(struct nouveau_channel *);
 extern int  nv50_fifo_unload_context(struct drm_device *);
+extern int  nv50_fifo_pause(struct drm_device *);
+extern void  nv50_fifo_unpause(struct drm_device *);
 
 /* nvc0_fifo.c */
 extern int  nvc0_fifo_init(struct drm_device *);
@@ -1113,6 +1121,8 @@ extern int  nv50_graph_load_context(struct nouveau_channel *);
 extern int  nv50_graph_unload_context(struct drm_device *);
 extern void nv50_graph_context_switch(struct drm_device *);
 extern int  nv50_grctx_init(struct nouveau_grctx *);
+extern int nv50_graph_pause(struct drm_device *dev);
+extern void nv50_graph_unpause(struct drm_device *dev);
 
 /* nvc0_graph.c */
 extern int  nvc0_graph_init(struct drm_device *);
diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c
index 1c99c55..b546a4d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_pm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_pm.c
@@ -55,6 +55,7 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl)
 {
 	struct drm_nouveau_private *dev_priv = dev-dev_private;
 	struct nouveau_pm_engine *pm = dev_priv-engine.pm;
+	uint32_t status;
 	int ret;
 
 	if (perflvl == pm-cur)
@@ -68,13 +69,58 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl)
 		}
 	}
 
+	/* TODO: Wait for vblank */
+
+	/* Disable interrupts */
+	nv_wr32(dev, 0x140, 0);
+
+	/* Pause the engines, if possible */
+	if (dev_priv-engine.fifo.pause(dev)) {
+		ret = -EIO;
+		goto out;
+	}
+	if (dev_priv-engine.graph.pause(dev)) {
+		ret = -EIO;
+		goto out;
+	}
+
+	/* Disable the PFIFO cache pulling */
+	status = nv_rd32(dev, 0x003250);
+	nv_wr32(dev, 0x003250, status0xfffe);
+
+	/* Disable the PFIFO cache dma push */
+	status = nv_rd32(dev, 0x003220);
+	nv_wr32(dev, 0x003220, status0xfffe);
+
+	/* Change the clocks */
 	nouveau_pm_clock_set(dev, perflvl, PLL_CORE, perflvl-core);
 	nouveau_pm_clock_set(dev, perflvl, PLL_SHADER, perflvl-shader);
 	nouveau_pm_clock_set(dev, perflvl, PLL_MEMORY, perflvl-memory);
 	nouveau_pm_clock_set(dev, perflvl, PLL_UNK05, perflvl-unk05);
 
+	/* Wait for PLLs to stabilize */
+	udelay(100);
+
 	pm-cur = perflvl;
-	return 0;
+	ret = 0;
+
+out:
+	/* Re-enable the PFIFO cache dma push */
+	status = nv_rd32(dev, 0x003220);
+	nv_wr32(dev, 0x003220, status|0x1);
+
+	/* Re-enable the PFIFO cache pulling */
+	status = nv_rd32(dev, 0x003250);
+	nv_wr32(dev, 0x003250, status|0x1);
+
+	/* Un-pause the engines */
+	dev_priv-engine.fifo.unpause(dev);
+	dev_priv-engine.graph.unpause(dev);
+
+	/* Re-enable interrupts */
+	nv_wr32(dev, 0x140, 1);
+
+	return ret;
 }
 
 static int
@@ -108,7 +154,7 @@ nouveau_pm_profile_set(struct drm_device *dev, const char *profile)
 			return -EINVAL;
 	}
 
-	NV_INFO(dev, setting performance level: %s\n, profile);
+	NV_INFO(dev, setting performance level: %s, profile);
 	return nouveau_pm_perflvl_set(dev, perflvl);
 }
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_reg.h b/drivers/gpu/drm/nouveau/nouveau_reg.h
index 1b42541..346b77a 100644
--- 

Re: [Nouveau] Add pause/unpause methods for PFIFO PGRAPH. Use them to get stable clock changes

2010-10-07 Thread Martin Peres

 Le 07/10/2010 03:33, Martin Peres a écrit :

 Hi,

Here is an updated version, all in one patch. When we agree on the 
code, I'll split it into 3 patches.



Sorry, I forgot to attach it. Here it is.
From 86e7dd89810b37a12ae189633de41aacf07355cb Mon Sep 17 00:00:00 2001
From: Martin Peres martin.pe...@ensi-bourges.fr
Date: Thu, 7 Oct 2010 05:20:38 +0200
Subject: [PATCH] Pause the card before reclocking

Signed-off-by: Martin Peres martin.pe...@ensi-bourges.fr
---
 drivers/gpu/drm/nouveau/nouveau_drv.h   |   10 ++
 drivers/gpu/drm/nouveau/nouveau_pm.c|   50 +-
 drivers/gpu/drm/nouveau/nouveau_reg.h   |3 ++
 drivers/gpu/drm/nouveau/nouveau_state.c |   35 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c |   17 ++
 drivers/gpu/drm/nouveau/nv50_graph.c|   48 +
 6 files changed, 160 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index 591254e..9317bc3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -304,6 +304,9 @@ struct nouveau_fifo_engine {
 	void (*destroy_context)(struct nouveau_channel *);
 	int  (*load_context)(struct nouveau_channel *);
 	int  (*unload_context)(struct drm_device *);
+
+	int  (*pause)(struct drm_device *);
+	void  (*unpause)(struct drm_device *);
 };
 
 struct nouveau_pgraph_object_method {
@@ -339,6 +342,9 @@ struct nouveau_pgraph_engine {
 
 	void (*set_region_tiling)(struct drm_device *dev, int i, uint32_t addr,
   uint32_t size, uint32_t pitch);
+
+	int  (*pause)(struct drm_device *);
+	void  (*unpause)(struct drm_device *);
 };
 
 struct nouveau_display_engine {
@@ -1036,6 +1042,8 @@ extern int  nv50_fifo_create_context(struct nouveau_channel *);
 extern void nv50_fifo_destroy_context(struct nouveau_channel *);
 extern int  nv50_fifo_load_context(struct nouveau_channel *);
 extern int  nv50_fifo_unload_context(struct drm_device *);
+extern int  nv50_fifo_pause(struct drm_device *);
+extern void  nv50_fifo_unpause(struct drm_device *);
 
 /* nvc0_fifo.c */
 extern int  nvc0_fifo_init(struct drm_device *);
@@ -1113,6 +1121,8 @@ extern int  nv50_graph_load_context(struct nouveau_channel *);
 extern int  nv50_graph_unload_context(struct drm_device *);
 extern void nv50_graph_context_switch(struct drm_device *);
 extern int  nv50_grctx_init(struct nouveau_grctx *);
+extern int nv50_graph_pause(struct drm_device *dev);
+extern void nv50_graph_unpause(struct drm_device *dev);
 
 /* nvc0_graph.c */
 extern int  nvc0_graph_init(struct drm_device *);
diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c
index 1c99c55..b546a4d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_pm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_pm.c
@@ -55,6 +55,7 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl)
 {
 	struct drm_nouveau_private *dev_priv = dev-dev_private;
 	struct nouveau_pm_engine *pm = dev_priv-engine.pm;
+	uint32_t status;
 	int ret;
 
 	if (perflvl == pm-cur)
@@ -68,13 +69,58 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl)
 		}
 	}
 
+	/* TODO: Wait for vblank */
+
+	/* Disable interrupts */
+	nv_wr32(dev, 0x140, 0);
+
+	/* Pause the engines, if possible */
+	if (dev_priv-engine.fifo.pause(dev)) {
+		ret = -EIO;
+		goto out;
+	}
+	if (dev_priv-engine.graph.pause(dev)) {
+		ret = -EIO;
+		goto out;
+	}
+
+	/* Disable the PFIFO cache pulling */
+	status = nv_rd32(dev, 0x003250);
+	nv_wr32(dev, 0x003250, status0xfffe);
+
+	/* Disable the PFIFO cache dma push */
+	status = nv_rd32(dev, 0x003220);
+	nv_wr32(dev, 0x003220, status0xfffe);
+
+	/* Change the clocks */
 	nouveau_pm_clock_set(dev, perflvl, PLL_CORE, perflvl-core);
 	nouveau_pm_clock_set(dev, perflvl, PLL_SHADER, perflvl-shader);
 	nouveau_pm_clock_set(dev, perflvl, PLL_MEMORY, perflvl-memory);
 	nouveau_pm_clock_set(dev, perflvl, PLL_UNK05, perflvl-unk05);
 
+	/* Wait for PLLs to stabilize */
+	udelay(100);
+
 	pm-cur = perflvl;
-	return 0;
+	ret = 0;
+
+out:
+	/* Re-enable the PFIFO cache dma push */
+	status = nv_rd32(dev, 0x003220);
+	nv_wr32(dev, 0x003220, status|0x1);
+
+	/* Re-enable the PFIFO cache pulling */
+	status = nv_rd32(dev, 0x003250);
+	nv_wr32(dev, 0x003250, status|0x1);
+
+	/* Un-pause the engines */
+	dev_priv-engine.fifo.unpause(dev);
+	dev_priv-engine.graph.unpause(dev);
+
+	/* Re-enable interrupts */
+	nv_wr32(dev, 0x140, 1);
+
+	return ret;
 }
 
 static int
@@ -108,7 +154,7 @@ nouveau_pm_profile_set(struct drm_device *dev, const char *profile)
 			return -EINVAL;
 	}
 
-	NV_INFO(dev, setting performance level: %s\n, profile);
+	NV_INFO(dev, setting performance level: %s, profile);
 	return nouveau_pm_perflvl_set(dev, perflvl);
 }
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_reg.h b/drivers/gpu/drm/nouveau/nouveau_reg.h
index 1b42541..346b77a 100644
--- 

[Nouveau] updating the source tree

2010-10-07 Thread Grzesiek Sójka

Hi there,

I downloaded the nouveau/linux-2.6 using the following:
git clone --depth 1 git://anongit.freedesktop.org/nouveau/linux-2.6
Is there an easy way to update it to the current version (reversing all 
the changes I made) without downloading all the files again??


Thanks for your help in advance.

greg
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] GeForce FX5200 dual DVI Samsung 204b

2010-10-07 Thread Grzesiek Sójka

On 10/05/10 14:55, Francisco Jerez wrote:

Grzesiek Sójkap...@pfu.pl  writes:


On 10/02/10 15:31, Francisco Jerez wrote:

Ah, I think you're hitting the bandwidth limitation of the nv34
integrated TMDS transmitter. The attached patch should help with the
console modesetting problem, but you'll still need to set the modelines
manually (and force panel rescaling) if you want to go up to 1600x1200,
because your GPU *cannot* handle the video mode your monitor is asking
for.


Your patch works fine. Now I have clear image at both displays. Only
disadvantage is that the resolution is 1280x1024 (PixClk 135MHz). So I
was wondering if it is possible to force particular modeline (by
editing the kernel source tree??). The mode:

Modeline 1600x1200_def 144  1600 1628 1788 1920  1200 1201 1204 1250

works fine with the XServer. Is it possible to force it at the console??


You could try to force a reduced blanking mode in the kernel command
line like: video=DVI-I-1:1600x1200RM. But it isn't going to work with
GPU rescaling, the attached patch (on top of the previous one) will make
the kernel detect that, and automatically fall back to panel rescaling.

Your patch works grate, again. Thanks
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] updating the source tree

2010-10-07 Thread Pekka Paalanen
On Thu, 07 Oct 2010 20:07:37 +0200
Grzesiek Sójka p...@pfu.pl wrote:

 On 10/07/10 19:51, Pekka Paalanen wrote:
  On Thu, 07 Oct 2010 19:34:35 +0200
  Grzesiek Sójkap...@pfu.pl  wrote:
 
  I downloaded the nouveau/linux-2.6 using the following:
  git clone --depth 1
  git://anongit.freedesktop.org/nouveau/linux-2.6 Is there an

If you really did that
and then went into linux-2.6/ dir and said:

 # git remote update
 fatal: Not a git repository (or any parent up to mount
 parent /home) Stopping at filesystem boundary
 (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

I don't understand. Somehow you have deleted the .git/ directory
from that checkout. Or you have GIT_DIR environment variable set.

 This probably means that to be able to update I need to download
 the nouveau/linux-2.6 using the
 
 git remote add nouveau
 git://anongit.freedesktop.org/nouveau/linux-2.6 git checkout -b
 nouveau-master nouveau/master

That works only if you already have a git repo. The previous error
says you don't have. Furthermore, the exact commands you quoted
do not actually download anything. You still need 'git remote update'
before checkout to download.

 instead of
 
 git clone 
 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

This will clone Linus' git repo, after which you would use the
'git remote add' incatation to add nouveau repo.

-- 
Pekka Paalanen
http://www.iki.fi/pq/
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] GeForce FX5200 dual DVI Samsung 204b

2010-10-07 Thread Grzesiek Sójka

On 10/07/10 04:53, Francisco Jerez wrote:

Grzesiek Sójkap...@pfu.pl  writes:


On 10/05/10 14:55, Francisco Jerez wrote:

PS. I'm afraid that my system is not very stable when the AGP support
is turned on both using the nouveau kernel source tree and the PLD
patched 2.6.35-5 version with an extra amd-k7-agp patch. The Xserver
uses the driver:

Unstable? How? What's the problem?


Here are the logs:
http://yen.ipipan.waw.pl/~gs159090/tmp/log.tgz

BTW: Sometimes the Xserver freezes during normal work. Unfortunately I
was not able to generate such a crush now. I send you logs if it
happens again.

Regards.

[...]
[  197.374498] kernel BUG at drivers/gpu/drm/ttm/ttm_tt.c:420!


Oops, I overlooked that, updated patch attached.



The new patch works fine so fare. System seems to be stable.

cheers


greg
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] OT: compilation

2010-10-07 Thread Grzesiek Sójka

I have two problems with the kernel compilation.

1. I have a small rootfs. It is too small to put all the modules there 
without gzipping it first. So installing it requires lots of sweating. 
That is why I was wondering if there is a (more/less easy) way to make 
the make modules_install command gzip the modules on the fly.


2. I modified the sources and after compilation the string 
g76f6e1f-dirty was appended to the kernel version. It is a bit 
annoying because of the lack of the space at the rootfs. Is there a way 
to avoid this kind of a version extension??


Thanks for your help in advance.

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] OT: compilation

2010-10-07 Thread Pekka Paalanen
On Thu, 07 Oct 2010 22:14:19 +0200
Grzesiek Sójka p...@pfu.pl wrote:

 I have two problems with the kernel compilation.
 
 1. I have a small rootfs. It is too small to put all the modules
 there without gzipping it first. So installing it requires lots
 of sweating. That is why I was wondering if there is a (more/less
 easy) way to make the make modules_install command gzip the
 modules on the fly.

Wait, does modprobe support compressed kernel modules? I've
never heard of that. If you really do not want to touch
the partitioning, how about symlinking some directories
elsewhere? Be careful on what is needed to boot, though.

 2. I modified the sources and after compilation the string 
 g76f6e1f-dirty was appended to the kernel version. It is a bit 
 annoying because of the lack of the space at the rootfs. Is there
 a way to avoid this kind of a version extension??

Yes, it is CONFIG_LOCALVERSION_AUTO as far as I recall, disable that.

-- 
Pekka Paalanen
http://www.iki.fi/pq/
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] OT: compilation

2010-10-07 Thread Grzesiek Sójka

On 10/07/10 22:34, Pekka Paalanen wrote:

On Thu, 07 Oct 2010 22:14:19 +0200
Grzesiek Sójkap...@pfu.pl  wrote:


I have two problems with the kernel compilation.

1. I have a small rootfs. It is too small to put all the modules
there without gzipping it first. So installing it requires lots
of sweating. That is why I was wondering if there is a (more/less
easy) way to make the make modules_install command gzip the
modules on the fly.


Wait, does modprobe support compressed kernel modules? I've
Yes, it does. I thing that most of the distribution pre-compiled kernels 
does have gziped modules.



never heard of that. If you really do not want to touch
the partitioning, how about symlinking some directories
elsewhere? Be careful on what is needed to boot, though.

Wrong idea. I already tried this.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] OT: compilation

2010-10-07 Thread Grzesiek Sójka

On 10/07/10 22:34, Pekka Paalanen wrote:

Yes, it is CONFIG_LOCALVERSION_AUTO as far as I recall, disable that.

Where is it?? Which file??

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] OT: compilation

2010-10-07 Thread Xavier Chantry
2010/10/7 Grzesiek Sójka p...@pfu.pl:
 I have two problems with the kernel compilation.

 1. I have a small rootfs. It is too small to put all the modules there
 without gzipping it first. So installing it requires lots of sweating. That
 is why I was wondering if there is a (more/less easy) way to make the make
 modules_install command gzip the modules on the fly.


No idea if you can do that but here are some possible alternatives :
1) increase the size of your rootfs
2) remove modules you don't need and change from modules to builtin
for features or drivers that you don't need to unload/reload
3) a quick googling showed me this patch :
http://www.mail-archive.com/linux-ker...@vger.kernel.org/msg271865.html
However it seems to install first then compress so if that's the case,
you will need to adapt it to your need
4) set INSTALL_MOD_PATH to a prefix , compress modules , then move to
/lib/modules/


LOCALVERSION_AUTO is found in :
make menuconfig
General Setup
Automatically append version information to the version string
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] OT: compilation

2010-10-07 Thread Grzesiek Sójka

On 10/07/10 22:50, Xavier Chantry wrote:

2010/10/7 Grzesiek Sójkap...@pfu.pl:

I have two problems with the kernel compilation.

1. I have a small rootfs. It is too small to put all the modules there
without gzipping it first. So installing it requires lots of sweating. That
is why I was wondering if there is a (more/less easy) way to make the make
modules_install command gzip the modules on the fly.



No idea if you can do that but here are some possible alternatives :
1) increase the size of your rootfs

Very difficult in my case.


2) remove modules you don't need and change from modules to builtin
for features or drivers that you don't need to unload/reload
I'm trying to do this. Unfortunately I did not compile the kernel by 
myself for at lest 5 yeas and it is a big in my a%$#.



3) a quick googling showed me this patch :
http://www.mail-archive.com/linux-ker...@vger.kernel.org/msg271865.html
However it seems to install first then compress so if that's the case,
you will need to adapt it to your need
If I'm right it compress every module _just_after_ imstalling it. So it 
should be fine for me.



4) set INSTALL_MOD_PATH to a prefix , compress modules , then move to
/lib/modules/

If 3) don't helps I try to do this.



LOCALVERSION_AUTO is found in :
make menuconfig
General Setup
Automatically append version information to the version string



Supper thanks
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] OT: compilation

2010-10-07 Thread walt

On 10/07/2010 01:46 PM, Grzesiek Sójka wrote:

On 10/07/10 22:34, Pekka Paalanen wrote:

Yes, it is CONFIG_LOCALVERSION_AUTO as far as I recall, disable that.

Where is it?? Which file??


It is part of your kernel configuration.  Go to the directory containing
the source code of your kernel, usually /usr/src/linux-2.6.xx, and then
run 'make menuconfig'.

When the configuration menu appears, type the '/' character to enter the
'search' mode and then type 'localversion' (for example) to find the list
of matching items.

I find two items:

 Symbol: LOCALVERSION [=]   
│
  │ Type  : string  
   │
  │ Prompt: Local version - append to kernel release
   │
  │   Defined at init/Kconfig:87
   │
  │   Location: 
   │
  │ - General setup
   │
  │ 
   │
  │ 
   │
  │ Symbol: LOCALVERSION_AUTO [=y]  
   │
  │ Type  : boolean 
   │
  │ Prompt: Automatically append version information to the version string  
   │
  │   Defined at init/Kconfig:97
   │
  │   Location: 
   │
  │ - General setup
   │

The difference between the two is not obvious, but the second item is what
you were (correctly) advised to look for.

Notice that the Location of both items is General setup.

Exit the search function.

You should now be back in the kernel configuration menu and , just by
luck, the General setup item should already be highlighted (for me it
is colored blue).

Hit Enter to see the the General setup menu.

On my machine the item you want is on line number four.  Hit the SPACE
bar to select the item and then use the TAB key to navigate to Exit
and hit Enter to go back to the main menu and then hit Exit again.

You should see a dialog asking you if you want to save your new kernel
configuration, and, of course, you do want to save it.

Now recompile and install your new kernel.


___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau