Resend the patch in git style.

On Tue, 2008-11-18 at 10:44 +0800, Li Peng wrote:
> On Mon, 2008-11-17 at 10:26 -0800, Eric Anholt wrote:
> > On Mon, 2008-11-17 at 18:14 +0800, Li Peng wrote:
> > > This patch restore HWS_PGA for device who don't use gtt mapped hardware
> > > status page.
> > > It is to fix the suspend/resume failure of xf86-video-intel dri2 branch
> > > on 945GME, as the dri2 branch doesn't call I830Resume() to restore
> > > hardware status page anymore and we need to handle this in
> > > i915_gem_entervt_ioctl()
> > 
> > This should also be saved/restored in i915_suspend.c so that it works
> > correctly in the absence of the X Server doing the enter/leavevt path.
> > 
> Yes, It is better to do this in i915_save_state()/i915_restore_state(),
> here is the updated patch and works well 
> on 945GME.
> 
> Peng
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h
> b/drivers/gpu/drm/i915/i915_drv.h
> index 42d79f7..05c470e 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -158,6 +158,7 @@ typedef struct drm_i915_private {
>       u32 saveDSPBCNTR;
>       u32 saveDSPARB;
>       u32 saveRENDERSTANDBY;
> +     u32 saveHWS;
>       u32 savePIPEACONF;
>       u32 savePIPEBCONF;
>       u32 savePIPEASRC;
> diff --git a/drivers/gpu/drm/i915/i915_suspend.c
> b/drivers/gpu/drm/i915/i915_suspend.c
> index 5ddc6e5..5d84027 100644
> --- a/drivers/gpu/drm/i915/i915_suspend.c
> +++ b/drivers/gpu/drm/i915/i915_suspend.c
> @@ -244,6 +244,9 @@ int i915_save_state(struct drm_device *dev)
>       if (IS_I965G(dev) && IS_MOBILE(dev))
>               dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY);
>  
> +     /* Hardware status page */
> +     dev_priv->saveHWS = I915_READ(HWS_PGA);
> +
>       /* Display arbitration control */
>       dev_priv->saveDSPARB = I915_READ(DSPARB);
>  
> @@ -373,6 +376,9 @@ int i915_restore_state(struct drm_device *dev)
>       if (IS_I965G(dev) && IS_MOBILE(dev))
>               I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY);
>  
> +     /* Hardware status page */
> +     I915_WRITE(HWS_PGA, dev_priv->saveHWS);
> +
>       /* Display arbitration */
>       I915_WRITE(DSPARB, dev_priv->saveDSPARB);
>  
> > > Peng
> > > diff --git a/drivers/gpu/drm/i915/i915_gem.c
> > > b/drivers/gpu/drm/i915/i915_gem.c
> > > index a15b098..b6b451a 100644
> > > --- a/drivers/gpu/drm/i915/i915_gem.c
> > > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > > @@ -2924,8 +2924,13 @@ i915_gem_init_hws(struct drm_device *dev)
> > >   /* If we need a physical address for the status page, it's already
> > >    * initialized at driver load time.
> > >    */
> > > - if (!I915_NEED_GFX_HWS(dev))
> > > + if (!I915_NEED_GFX_HWS(dev)) {
> > > +         if (dev_priv->mm.suspended) {
> > > +                 I915_WRITE(HWS_PGA, dev_priv->dma_status_page);
> > > +                 I915_READ(HWS_PGA); /* posting read */
> > > +         }
> > >           return 0;
> > > + }
> > >  
> > >   obj = drm_gem_object_alloc(dev, 4096);
> > >   if (obj == NULL) {
> > > 
> > > 
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > [EMAIL PROTECTED]
> > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> _______________________________________________
> Intel-gfx mailing list
> [EMAIL PROTECTED]
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Attachment: Save_Restore_HWS_PGA.patch
Description: application/mbox

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to