Re: [PATCH] drm: Fix support for PCI domains
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
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
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
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
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
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
(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