Re: [PATCH 1/5] drm/i915: add dev_to_i915_priv helper

Imre Deak
2014-12-08T19:54:13Z

On Mon, 2014-12-08 at 20:36 +0200, Jani Nikula wrote:
> On Mon, 08 Dec 2014, Imre Deak <imre.deak@intel.com> wrote:
> > This will be needed by later patches, so factor it out.
> >
> > No functional change.
> >
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_drv.c | 15 ++++++---------
> > drivers/gpu/drm/i915/intel_drv.h | 8 ++++++++
> > 2 files changed, 14 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 71be3c9..32c2e33 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -923,10 +923,10 @@ i915_pci_remove(struct pci_dev *pdev)
> >
> > static int i915_pm_suspend(struct device *dev)
> > {
> > - struct pci_dev *pdev = to_pci_dev(dev);
> > - struct drm_device *drm_dev = pci_get_drvdata(pdev);
> > + struct drm_i915_private *dev_priv = dev_to_i915_priv(dev);
> > + struct drm_device *drm_dev = dev_priv->dev;
>
> Seems like a funny back and forth pointer dance, but let's see what the
> next patches bring us... ;)

Hm, right. This hunk doesn't simplify anything and doesn't even make
sense with the below !drm_dev check. Btw if and why drm_dev can be NULL
here would be worth investigating more. I'll remove this change for now.

>
> >
> > - if (!drm_dev || !drm_dev->dev_private) {
> > + if (!drm_dev || !dev_priv) {
> > dev_err(dev, "DRM not initialized, aborting suspend.\n");
> > return -ENODEV;
> > }
> > @@ -939,8 +939,7 @@ static int i915_pm_suspend(struct device *dev)
> >
> > static int i915_pm_suspend_late(struct device *dev)
> > {
> > - struct pci_dev *pdev = to_pci_dev(dev);
> > - struct drm_device *drm_dev = pci_get_drvdata(pdev);
> > + struct drm_device *drm_dev = dev_to_i915_priv(dev)->dev;
> >
> > /*
> > * We have a suspedn ordering issue with the snd-hda driver also
> > @@ -959,8 +958,7 @@ static int i915_pm_suspend_late(struct device *dev)
> >
> > static int i915_pm_resume_early(struct device *dev)
> > {
> > - struct pci_dev *pdev = to_pci_dev(dev);
> > - struct drm_device *drm_dev = pci_get_drvdata(pdev);
> > + struct drm_device *drm_dev = dev_to_i915_priv(dev)->dev;
> >
> > if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF)
> > return 0;
> > @@ -970,8 +968,7 @@ static int i915_pm_resume_early(struct device *dev)
> >
> > static int i915_pm_resume(struct device *dev)
> > {
> > - struct pci_dev *pdev = to_pci_dev(dev);
> > - struct drm_device *drm_dev = pci_get_drvdata(pdev);
> > + struct drm_device *drm_dev = dev_to_i915_priv(dev)->dev;
> >
> > if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF)
> > return 0;
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> > index 61a88fa..3de7a55 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -775,6 +775,14 @@ static inline unsigned int intel_num_planes(struct intel_crtc *crtc)
> > return INTEL_INFO(crtc->base.dev)->num_sprites[crtc->pipe] + 1;
> > }
> >
> > +static inline struct drm_i915_private *dev_to_i915_priv(struct device *dev)
>
> Bikeshed, I think dev_to_i915() is sufficient and in line with
> to_i915().

Ok.

>
> BR,
> Jani.
>
> > +{
> > + struct pci_dev *pdev = to_pci_dev(dev);
> > + struct drm_device *drm_dev = pci_get_drvdata(pdev);
> > +
> > + return drm_dev->dev_private;
> > +}
> > +
> > /* intel_fifo_underrun.c */
> > bool intel_set_cpu_fifo_underrun_reporting(struct drm_i915_private *dev_priv,
> > enum pipe pipe, bool enable);
> > --
> > 1.8.4
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx