* [PATCH] drm/nouveau: fix init with agpgart-uninorth
@ 2012-11-16 9:54 Aaro Koskinen
2012-11-16 14:16 ` Michel Dänzer
0 siblings, 1 reply; 4+ messages in thread
From: Aaro Koskinen @ 2012-11-16 9:54 UTC (permalink / raw)
To: airlied, dri-devel, linux-kernel; +Cc: Aaro Koskinen
Check that the AGP aperture can be mapped. This follows a similar change
done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
the aperture can be mapped by the CPU.).
The patch fixes the following error seen on G5 iMac:
nouveau E[ DRM] failed to create kernel channel, -12
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
---
drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 35ac57f..5f0e7ef 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
if (drm->agp.stat == ENABLED) {
mem->bus.offset = mem->start << PAGE_SHIFT;
mem->bus.base = drm->agp.base;
- mem->bus.is_iomem = true;
+ mem->bus.is_iomem = !dev->agp->cant_use_aperture;
}
#endif
break;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/nouveau: fix init with agpgart-uninorth
2012-11-16 9:54 [PATCH] drm/nouveau: fix init with agpgart-uninorth Aaro Koskinen
@ 2012-11-16 14:16 ` Michel Dänzer
2012-11-16 18:11 ` Aaro Koskinen
0 siblings, 1 reply; 4+ messages in thread
From: Michel Dänzer @ 2012-11-16 14:16 UTC (permalink / raw)
To: Aaro Koskinen; +Cc: dri-devel
On Fre, 2012-11-16 at 11:54 +0200, Aaro Koskinen wrote:
> Check that the AGP aperture can be mapped. This follows a similar change
> done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
> the aperture can be mapped by the CPU.).
>
> The patch fixes the following error seen on G5 iMac:
>
> nouveau E[ DRM] failed to create kernel channel, -12
>
> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> ---
> drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 35ac57f..5f0e7ef 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
> if (drm->agp.stat == ENABLED) {
> mem->bus.offset = mem->start << PAGE_SHIFT;
> mem->bus.base = drm->agp.base;
> - mem->bus.is_iomem = true;
> + mem->bus.is_iomem = !dev->agp->cant_use_aperture;
Looks good, though radeon also doesn't set TTM_MEMTYPE_FLAG_MAPPABLE for
the TT memory type if the aperture can't be mapped directly. Maybe
nouveau should do the same, or maybe it doesn't really matter. Not sure.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Debian, X and DRI developer
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/nouveau: fix init with agpgart-uninorth
2012-11-16 14:16 ` Michel Dänzer
@ 2012-11-16 18:11 ` Aaro Koskinen
2012-11-19 10:57 ` Michel Dänzer
0 siblings, 1 reply; 4+ messages in thread
From: Aaro Koskinen @ 2012-11-16 18:11 UTC (permalink / raw)
To: Michel Dänzer; +Cc: dri-devel
Hi,
On Fri, Nov 16, 2012 at 03:16:09PM +0100, Michel Dänzer wrote:
> On Fre, 2012-11-16 at 11:54 +0200, Aaro Koskinen wrote:
> > Check that the AGP aperture can be mapped. This follows a similar change
> > done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
> > the aperture can be mapped by the CPU.).
> >
> > The patch fixes the following error seen on G5 iMac:
> >
> > nouveau E[ DRM] failed to create kernel channel, -12
> >
> > Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> > ---
> > drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > index 35ac57f..5f0e7ef 100644
> > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > @@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
> > if (drm->agp.stat == ENABLED) {
> > mem->bus.offset = mem->start << PAGE_SHIFT;
> > mem->bus.base = drm->agp.base;
> > - mem->bus.is_iomem = true;
> > + mem->bus.is_iomem = !dev->agp->cant_use_aperture;
>
> Looks good, though radeon also doesn't set TTM_MEMTYPE_FLAG_MAPPABLE for
> the TT memory type if the aperture can't be mapped directly. Maybe
> nouveau should do the same, or maybe it doesn't really matter. Not sure.
This would fail with -EINVAL if the MAPPABLE flag is not set. So I think
it's needed?
Looking at radeon_ttm.c, the MAPPABLE flag seems to be set in both cases:
141 man->flags = TTM_MEMTYPE_FLAG_MAPPABLE | TTM_MEMTYPE_FLAG_CMA;
142 #if __OS_HAS_AGP
143 if (rdev->flags & RADEON_IS_AGP) {
144 if (!(drm_core_has_AGP(rdev->ddev) && rdev->ddev->agp)) {
145 DRM_ERROR("AGP is not enabled for memory type %u\n",
146 (unsigned)type);
147 return -EINVAL;
148 }
149 if (!rdev->ddev->agp->cant_use_aperture)
150 man->flags = TTM_MEMTYPE_FLAG_MAPPABLE;
A.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/nouveau: fix init with agpgart-uninorth
2012-11-16 18:11 ` Aaro Koskinen
@ 2012-11-19 10:57 ` Michel Dänzer
0 siblings, 0 replies; 4+ messages in thread
From: Michel Dänzer @ 2012-11-19 10:57 UTC (permalink / raw)
To: Aaro Koskinen; +Cc: dri-devel
On Fre, 2012-11-16 at 20:11 +0200, Aaro Koskinen wrote:
> On Fri, Nov 16, 2012 at 03:16:09PM +0100, Michel Dänzer wrote:
> > On Fre, 2012-11-16 at 11:54 +0200, Aaro Koskinen wrote:
> > > Check that the AGP aperture can be mapped. This follows a similar change
> > > done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
> > > the aperture can be mapped by the CPU.).
> > >
> > > The patch fixes the following error seen on G5 iMac:
> > >
> > > nouveau E[ DRM] failed to create kernel channel, -12
> > >
> > > Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> > > ---
> > > drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > index 35ac57f..5f0e7ef 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > @@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
> > > if (drm->agp.stat == ENABLED) {
> > > mem->bus.offset = mem->start << PAGE_SHIFT;
> > > mem->bus.base = drm->agp.base;
> > > - mem->bus.is_iomem = true;
> > > + mem->bus.is_iomem = !dev->agp->cant_use_aperture;
> >
> > Looks good, though radeon also doesn't set TTM_MEMTYPE_FLAG_MAPPABLE for
> > the TT memory type if the aperture can't be mapped directly. Maybe
> > nouveau should do the same, or maybe it doesn't really matter. Not sure.
>
> This would fail with -EINVAL if the MAPPABLE flag is not set. So I think
> it's needed?
>
> Looking at radeon_ttm.c, the MAPPABLE flag seems to be set in both cases:
Ah, indeed, I misread that. Your patch is
Reviewed-by: Michel Dänzer <michel@daenzer.net>
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Debian, X and DRI developer
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-11-19 10:57 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-16 9:54 [PATCH] drm/nouveau: fix init with agpgart-uninorth Aaro Koskinen
2012-11-16 14:16 ` Michel Dänzer
2012-11-16 18:11 ` Aaro Koskinen
2012-11-19 10:57 ` Michel Dänzer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.