Re: [Nouveau] OT: compilation
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
Re: [Nouveau] OT: compilation
On 10/07/10 22:50, Xavier Chantry wrote: 2010/10/7 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". 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/7 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". > 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
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
On 10/07/10 22:34, Pekka Paalanen wrote: On Thu, 07 Oct 2010 22:14:19 +0200 Grzesiek Sójka 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
On Thu, 07 Oct 2010 22:14:19 +0200 Grzesiek Sójka 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
[Nouveau] OT: compilation
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] GeForce FX5200 dual DVI & Samsung 204b
On 10/07/10 04:53, Francisco Jerez wrote: Grzesiek Sójka 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
Re: [Nouveau] updating the source tree
On 10/07/10 20:55, Pekka Paalanen wrote: On Thu, 07 Oct 2010 20:07:37 +0200 Grzesiek Sójka wrote: On 10/07/10 19:51, Pekka Paalanen wrote: On Thu, 07 Oct 2010 19:34:35 +0200 Grzesiek Sójka 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: I did it in the directory _containing_ the linux-2.6 dir. So probably my mistake. I already downloaded the fresh version of the linux-2.6. I try to follow your advice next time. Cheers. ___ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] updating the source tree
On Thu, 07 Oct 2010 20:07:37 +0200 Grzesiek Sójka wrote: > On 10/07/10 19:51, Pekka Paalanen wrote: > > On Thu, 07 Oct 2010 19:34:35 +0200 > > Grzesiek Sójka 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
On 10/05/10 14:55, Francisco Jerez wrote: Grzesiek Sójka 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
On Thu, 07 Oct 2010 19:34:35 +0200 Grzesiek Sójka wrote: > 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?? Yes, this should work: http://nouveau.freedesktop.org/wiki/InstallDRM#UpdatingtheNouveaukernelgitrepository That is, to fetch updates: $ git remote update and to reset your current checkout to nouveau/master: $ git reset --hard origin/master That should discard all commits and local changes you may have made. It will not remove temporary files or compilation results. -- Pekka Paalanen http://www.iki.fi/pq/ ___ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau
[Nouveau] updating the source tree
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] Add pause/unpause methods for PFIFO & PGRAPH. Use them to get stable clock changes
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 Date: Thu, 7 Oct 2010 05:20:38 +0200 Subject: [PATCH] Pause the card before reclocking Signed-off-by: Martin Peres --- 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, status&0xfffe); + + /* Disable the PFIFO cache dma push */ + status = nv_rd32(dev, 0x003220); + nv_wr32(dev, 0x003220, status&0xfffe); + + /* 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 --- a/drivers/gpu/drm/nouveau/nouveau_reg.h +++ b/drivers/gpu/drm/nouveau/nouve
Re: [Nouveau] Add pause/unpause methods for PFIFO & PGRAPH. Use them to get stable clock changes
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 Date: Thu, 7 Oct 2010 05:20:38 +0200 Subject: [PATCH] Pause the card before reclocking Signed-off-by: Martin Peres --- 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, status&0xfffe); + + /* Disable the PFIFO cache dma push */ + status = nv_rd32(dev, 0x003220); + nv_wr32(dev, 0x003220, status&0xfffe); + + /* 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 --- a/drivers/gpu/drm/nouveau/nouveau_reg.h +++ b/drivers/gpu/drm/nouveau/nouve