Re: [PATCH] drm: Fix support for PCI domains

2010-08-13 Thread Geert Uytterhoeven
On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
b...@kernel.crashing.org wrote:
 (For some reason I thought that went in ages ago ...)

 This fixes support for PCI domains in what should hopefully be a backward
 compatible way along with a change to libdrm.

 When the interface version is set to 1.4, we assume userspace understands
 domains and the world is at peace. We thus pass proper domain numbers
 instead of 0 to userspace.

 The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
 ignoring domains in the later case (well, except on alpha of course)

 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
 ---
  drivers/gpu/drm/drm_ioctl.c |    1 +
  include/drm/drmP.h          |   18 +-
  include/drm/drm_core.h      |    2 +-
  3 files changed, 15 insertions(+), 6 deletions(-)

 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
 index c1b9871..6d4bad5 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct 
 drm_device *dev,
        return ((dev-driver-driver_features  feature) ? 1 : 0);
  }

 -#ifdef __alpha__
 -#define drm_get_pci_domain(dev) dev-hose-index
 -#else
 -#define drm_get_pci_domain(dev) 0
 -#endif
 +static inline int drm_get_pci_domain(struct drm_device *dev)
 +{
 +#ifndef __alpha__
 +       /* For historical reasons, drm_get_pci_domain() is busticated
 +        * on most archs and has to remain so for userspace interface
 +        *  1.4, except on alpha which was right from the beginning
 +        */
 +       if (dev-if_version  0x10004)
 +               return 0;
 +#endif /* __alpha__ */
 +
 +       return pci_domain_nr(dev-pdev-bus);

error: implicit declaration of function ‘pci_domain_nr’

on m68k without PCI.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say programmer or something like that.
                                -- Linus Torvalds

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Dave Airlie
On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven
ge...@linux-m68k.org wrote:
 On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
 b...@kernel.crashing.org wrote:
 (For some reason I thought that went in ages ago ...)

 This fixes support for PCI domains in what should hopefully be a backward
 compatible way along with a change to libdrm.

 When the interface version is set to 1.4, we assume userspace understands
 domains and the world is at peace. We thus pass proper domain numbers
 instead of 0 to userspace.

 The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
 ignoring domains in the later case (well, except on alpha of course)

 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
 ---
  drivers/gpu/drm/drm_ioctl.c |    1 +
  include/drm/drmP.h          |   18 +-
  include/drm/drm_core.h      |    2 +-
  3 files changed, 15 insertions(+), 6 deletions(-)

 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
 index c1b9871..6d4bad5 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct 
 drm_device *dev,
        return ((dev-driver-driver_features  feature) ? 1 : 0);
  }

 -#ifdef __alpha__
 -#define drm_get_pci_domain(dev) dev-hose-index
 -#else
 -#define drm_get_pci_domain(dev) 0
 -#endif
 +static inline int drm_get_pci_domain(struct drm_device *dev)
 +{
 +#ifndef __alpha__
 +       /* For historical reasons, drm_get_pci_domain() is busticated
 +        * on most archs and has to remain so for userspace interface
 +        *  1.4, except on alpha which was right from the beginning
 +        */
 +       if (dev-if_version  0x10004)
 +               return 0;
 +#endif /* __alpha__ */
 +
 +       return pci_domain_nr(dev-pdev-bus);

 error: implicit declaration of function ‘pci_domain_nr’
 on m68k without PCI.

I don't think I want to add an ifdef CONFIG_PCI into the drm layer for
this, since we seem to be okay everywhere else,

lets ask jbarnes, not sure if its safe to just add this to the
!CONFIG_PCI section of the linux/pci.h

Dave.




--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Jesse Barnes
On Fri, 13 Aug 2010 09:33:35 +1000
Dave Airlie airl...@gmail.com wrote:

 On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven
 ge...@linux-m68k.org wrote:
  On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
  b...@kernel.crashing.org wrote:
  (For some reason I thought that went in ages ago ...)
 
  This fixes support for PCI domains in what should hopefully be a backward
  compatible way along with a change to libdrm.
 
  When the interface version is set to 1.4, we assume userspace understands
  domains and the world is at peace. We thus pass proper domain numbers
  instead of 0 to userspace.
 
  The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
  ignoring domains in the later case (well, except on alpha of course)
 
  Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
  ---
   drivers/gpu/drm/drm_ioctl.c |    1 +
   include/drm/drmP.h          |   18 +-
   include/drm/drm_core.h      |    2 +-
   3 files changed, 15 insertions(+), 6 deletions(-)
 
  diff --git a/include/drm/drmP.h b/include/drm/drmP.h
  index c1b9871..6d4bad5 100644
  --- a/include/drm/drmP.h
  +++ b/include/drm/drmP.h
  @@ -1071,11 +1071,19 @@ static __inline__ int 
  drm_core_check_feature(struct drm_device *dev,
         return ((dev-driver-driver_features  feature) ? 1 : 0);
   }
 
  -#ifdef __alpha__
  -#define drm_get_pci_domain(dev) dev-hose-index
  -#else
  -#define drm_get_pci_domain(dev) 0
  -#endif
  +static inline int drm_get_pci_domain(struct drm_device *dev)
  +{
  +#ifndef __alpha__
  +       /* For historical reasons, drm_get_pci_domain() is busticated
  +        * on most archs and has to remain so for userspace interface
  +        *  1.4, except on alpha which was right from the beginning
  +        */
  +       if (dev-if_version  0x10004)
  +               return 0;
  +#endif /* __alpha__ */
  +
  +       return pci_domain_nr(dev-pdev-bus);
 
  error: implicit declaration of function ‘pci_domain_nr’
  on m68k without PCI.
 
 I don't think I want to add an ifdef CONFIG_PCI into the drm layer for
 this, since we seem to be okay everywhere else,
 
 lets ask jbarnes, not sure if its safe to just add this to the
 !CONFIG_PCI section of the linux/pci.h

Hm, so pci_domain_nr should just return 0 on platforms where
CONFIG_PCI_DOMAINS isn't set.  I'd expect that to be the case when
CONFIG_PCI=n...  Maybe we just need to shuffle the definition around?

-- 
Jesse Barnes, Intel Open Source Technology Center

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Dave Airlie
On Fri, Aug 13, 2010 at 9:45 AM, Jesse Barnes jbar...@virtuousgeek.org wrote:
 On Fri, 13 Aug 2010 09:33:35 +1000
 Dave Airlie airl...@gmail.com wrote:

 On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven
 ge...@linux-m68k.org wrote:
  On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt
  b...@kernel.crashing.org wrote:
  (For some reason I thought that went in ages ago ...)
 
  This fixes support for PCI domains in what should hopefully be a backward
  compatible way along with a change to libdrm.
 
  When the interface version is set to 1.4, we assume userspace understands
  domains and the world is at peace. We thus pass proper domain numbers
  instead of 0 to userspace.
 
  The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
  ignoring domains in the later case (well, except on alpha of course)
 
  Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
  ---
   drivers/gpu/drm/drm_ioctl.c |    1 +
   include/drm/drmP.h          |   18 +-
   include/drm/drm_core.h      |    2 +-
   3 files changed, 15 insertions(+), 6 deletions(-)
 
  diff --git a/include/drm/drmP.h b/include/drm/drmP.h
  index c1b9871..6d4bad5 100644
  --- a/include/drm/drmP.h
  +++ b/include/drm/drmP.h
  @@ -1071,11 +1071,19 @@ static __inline__ int 
  drm_core_check_feature(struct drm_device *dev,
         return ((dev-driver-driver_features  feature) ? 1 : 0);
   }
 
  -#ifdef __alpha__
  -#define drm_get_pci_domain(dev) dev-hose-index
  -#else
  -#define drm_get_pci_domain(dev) 0
  -#endif
  +static inline int drm_get_pci_domain(struct drm_device *dev)
  +{
  +#ifndef __alpha__
  +       /* For historical reasons, drm_get_pci_domain() is busticated
  +        * on most archs and has to remain so for userspace interface
  +        *  1.4, except on alpha which was right from the beginning
  +        */
  +       if (dev-if_version  0x10004)
  +               return 0;
  +#endif /* __alpha__ */
  +
  +       return pci_domain_nr(dev-pdev-bus);
 
  error: implicit declaration of function ‘pci_domain_nr’
  on m68k without PCI.

 I don't think I want to add an ifdef CONFIG_PCI into the drm layer for
 this, since we seem to be okay everywhere else,

 lets ask jbarnes, not sure if its safe to just add this to the
 !CONFIG_PCI section of the linux/pci.h

 Hm, so pci_domain_nr should just return 0 on platforms where
 CONFIG_PCI_DOMAINS isn't set.  I'd expect that to be the case when
 CONFIG_PCI=n...  Maybe we just need to shuffle the definition around?

I suspect something like the attached would suffice.

Or maybe moving the CONFIG_PCI_DOMAINS checkout outside CONFIG_PCI.

Dave.


mydiff
Description: Binary data
--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev --
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-12 Thread Jesse Barnes
  Hm, so pci_domain_nr should just return 0 on platforms where
  CONFIG_PCI_DOMAINS isn't set.  I'd expect that to be the case when
  CONFIG_PCI=n...  Maybe we just need to shuffle the definition
  around?
 
 I suspect something like the attached would suffice.
 
 Or maybe moving the CONFIG_PCI_DOMAINS checkout outside CONFIG_PCI.

Yeah, that looks ok, and better than putting it in drm.  I'll apply to
my for-linus branch for the next PCI fixes pull.

Thanks,
Jesse

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Fix support for PCI domains

2010-08-06 Thread Michel Dänzer
On Fre, 2010-08-06 at 13:55 +1000, Benjamin Herrenschmidt wrote: 
 (For some reason I thought that went in ages ago ...)
 
 This fixes support for PCI domains in what should hopefully be a backward
 compatible way along with a change to libdrm.
 
 When the interface version is set to 1.4, we assume userspace understands
 domains and the world is at peace. We thus pass proper domain numbers
 instead of 0 to userspace.
 
 The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
 ignoring domains in the later case (well, except on alpha of course)
 
 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org

Reviewed-by: Michel Dänzer mic...@daenzer.net

Thanks for tackling this, Ben!


-- 
Earthling Michel Dänzer   |http://www.vmware.com
Libre software enthusiast |  Debian, X and DRI developer

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm: Fix support for PCI domains

2010-08-05 Thread Benjamin Herrenschmidt
(For some reason I thought that went in ages ago ...)

This fixes support for PCI domains in what should hopefully be a backward
compatible way along with a change to libdrm.

When the interface version is set to 1.4, we assume userspace understands
domains and the world is at peace. We thus pass proper domain numbers
instead of 0 to userspace.

The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
ignoring domains in the later case (well, except on alpha of course)

Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
---
 drivers/gpu/drm/drm_ioctl.c |1 +
 include/drm/drmP.h  |   18 +-
 include/drm/drm_core.h  |2 +-
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index 9b9ff46..d7b2bd6 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -322,6 +322,7 @@ int drm_setversion(struct drm_device *dev, void *data, 
struct drm_file *file_pri
if (sv-drm_di_minor = 1) {
/*
 * Version 1.1 includes tying of DRM to specific device
+* Version 1.4 has proper PCI domain support
 */
drm_set_busid(dev, file_priv);
}
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index c1b9871..6d4bad5 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct 
drm_device *dev,
return ((dev-driver-driver_features  feature) ? 1 : 0);
 }
 
-#ifdef __alpha__
-#define drm_get_pci_domain(dev) dev-hose-index
-#else
-#define drm_get_pci_domain(dev) 0
-#endif
+static inline int drm_get_pci_domain(struct drm_device *dev)
+{
+#ifndef __alpha__
+   /* For historical reasons, drm_get_pci_domain() is busticated
+* on most archs and has to remain so for userspace interface
+*  1.4, except on alpha which was right from the beginning
+*/
+   if (dev-if_version  0x10004)
+   return 0;
+#endif /* __alpha__ */
+
+   return pci_domain_nr(dev-pdev-bus);
+}
 
 #if __OS_HAS_AGP
 static inline int drm_core_has_AGP(struct drm_device *dev)
diff --git a/include/drm/drm_core.h b/include/drm/drm_core.h
index 3167390..4e75238 100644
--- a/include/drm/drm_core.h
+++ b/include/drm/drm_core.h
@@ -27,7 +27,7 @@
 #define CORE_DATE  20060810
 
 #define DRM_IF_MAJOR   1
-#define DRM_IF_MINOR   3
+#define DRM_IF_MINOR   4
 
 #define CORE_MAJOR 1
 #define CORE_MINOR 1



--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel