search for: config_vga_switcheroo

Displaying 20 results from an estimated 63 matches for "config_vga_switcheroo".

2016 May 21
3
[PATCH v5] vga_switcheroo: Add helper for deferred probing
...c int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) if (PCI_FUNC(pdev->devfn)) return -ENODEV; - /* - * apple-gmux is needed on dual GPU MacBook Pro - * to probe the panel if we're the inactive GPU. - */ - if (IS_ENABLED(CONFIG_VGA_ARB) && IS_ENABLED(CONFIG_VGA_SWITCHEROO) && - apple_gmux_present() && pdev != vga_default_device() && - !vga_switcheroo_handler_flags()) + if (vga_switcheroo_client_probe_defer(pdev)) return -EPROBE_DEFER; return drm_get_pci_dev(pdev, ent, &driver); diff --git a/drivers/gpu/drm/nouveau/nouveau_d...
2016 Jan 11
0
[PATCH v5 11/12] drm/nouveau: Defer probe if gmux is present but its driver isn't
gmux is a microcontroller built into dual GPU MacBook Pros. On pre-retina MBPs, if we're the inactive GPU, we need apple-gmux to temporarily switch DDC so that we can probe the panel's EDID. The checks for CONFIG_VGA_ARB and CONFIG_VGA_SWITCHEROO are necessary because if either of them is disabled but gmux is present, the driver would never load, even if we're the active GPU. (vga_default_device() would evaluate to NULL and vga_switcheroo_handler_flags() would evaluate to 0.) Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88861...
2016 May 23
0
[Intel-gfx] [PATCH v5] vga_switcheroo: Add helper for deferred probing
...v, const struct pci_device_id *ent) > if (PCI_FUNC(pdev->devfn)) > return -ENODEV; > > - /* > - * apple-gmux is needed on dual GPU MacBook Pro > - * to probe the panel if we're the inactive GPU. > - */ > - if (IS_ENABLED(CONFIG_VGA_ARB) && IS_ENABLED(CONFIG_VGA_SWITCHEROO) && > - apple_gmux_present() && pdev != vga_default_device() && > - !vga_switcheroo_handler_flags()) > + if (vga_switcheroo_client_probe_defer(pdev)) > return -EPROBE_DEFER; > > return drm_get_pci_dev(pdev, ent, &driver); > diff --git...
2016 May 19
2
[PATCH v4] vga_switcheroo: Add helper for deferred probing
...c int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) if (PCI_FUNC(pdev->devfn)) return -ENODEV; - /* - * apple-gmux is needed on dual GPU MacBook Pro - * to probe the panel if we're the inactive GPU. - */ - if (IS_ENABLED(CONFIG_VGA_ARB) && IS_ENABLED(CONFIG_VGA_SWITCHEROO) && - apple_gmux_present() && pdev != vga_default_device() && - !vga_switcheroo_handler_flags()) + if (vga_switcheroo_client_probe_defer(pdev)) return -EPROBE_DEFER; return drm_get_pci_dev(pdev, ent, &driver); diff --git a/drivers/gpu/drm/nouveau/nouveau_d...
2016 May 31
2
[PATCH v6 1/2] vga_switcheroo: Add helper for deferred probing
...c int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) if (PCI_FUNC(pdev->devfn)) return -ENODEV; - /* - * apple-gmux is needed on dual GPU MacBook Pro - * to probe the panel if we're the inactive GPU. - */ - if (IS_ENABLED(CONFIG_VGA_ARB) && IS_ENABLED(CONFIG_VGA_SWITCHEROO) && - apple_gmux_present() && pdev != vga_default_device() && - !vga_switcheroo_handler_flags()) + if (vga_switcheroo_client_probe_defer(pdev)) return -EPROBE_DEFER; return drm_get_pci_dev(pdev, ent, &driver); diff --git a/drivers/gpu/drm/nouveau/nouveau_d...
2020 Aug 13
2
[PATCH 12/20] drm/radeon: Introduce GEM object functions
..._gem_prime_pin(struct drm_gem_object *obj); > -void radeon_gem_prime_unpin(struct drm_gem_object *obj); > -void *radeon_gem_prime_vmap(struct drm_gem_object *obj); > -void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); > > /* atpx handler */ > #if defined(CONFIG_VGA_SWITCHEROO) > @@ -550,7 +538,7 @@ long radeon_drm_ioctl(struct file *filp, > } > > ret = drm_ioctl(filp, cmd, arg); > - > + > pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > return ret; > @@ -609,22 +597,13 @@ static struct...
2016 May 14
1
[PATCH] drm/nouveau: check function before using it
...struct nouveau_dsm_priv { bool dsm_detected; bool optimus_detected; + bool flags_func_detected; acpi_handle dhandle; acpi_handle rom_handle; } nouveau_dsm_priv; @@ -58,7 +59,6 @@ bool nouveau_is_v1_dsm(void) { } #define NOUVEAU_DSM_HAS_MUX 0x1 -#define NOUVEAU_DSM_HAS_OPT 0x2 #ifdef CONFIG_VGA_SWITCHEROO static const char nouveau_dsm_muid[] = { @@ -110,9 +110,9 @@ static int nouveau_optimus_dsm(acpi_handle handle, int func, int arg, uint32_t * * requirements on the fourth parameter, so a private implementation * instead of using acpi_check_dsm(). */ -static int nouveau_check_optimus_dsm(acpi...
2020 Sep 15
1
[PATCH v2 12/21] drm/radeon: Introduce GEM object functions
...struct sg_table *sg); -int radeon_gem_prime_pin(struct drm_gem_object *obj); -void radeon_gem_prime_unpin(struct drm_gem_object *obj); -void *radeon_gem_prime_vmap(struct drm_gem_object *obj); -void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); /* atpx handler */ #if defined(CONFIG_VGA_SWITCHEROO) @@ -550,7 +538,7 @@ long radeon_drm_ioctl(struct file *filp, } ret = drm_ioctl(filp, cmd, arg); - + pm_runtime_mark_last_busy(dev->dev); pm_runtime_put_autosuspend(dev->dev); return ret; @@ -609,22 +597,13 @@ static struct drm_driver kms_driver = { .irq_uninstall = radeon_driv...
2016 Jul 07
0
[PATCH v2 1/4] drm/nouveau/acpi: ensure matching ACPI handle and supported functions
...au_acpi.c index db76b94..886a67c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c @@ -57,9 +57,6 @@ bool nouveau_is_v1_dsm(void) { return nouveau_dsm_priv.dsm_detected; } -#define NOUVEAU_DSM_HAS_MUX 0x1 -#define NOUVEAU_DSM_HAS_OPT 0x2 - #ifdef CONFIG_VGA_SWITCHEROO static const char nouveau_dsm_muid[] = { 0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D, @@ -212,26 +209,33 @@ static const struct vga_switcheroo_handler nouveau_dsm_handler = { .get_client_id = nouveau_dsm_get_client_id, }; -static int nouveau_dsm_pci_probe(struct pci_dev *pdev) +static vo...
2016 Jul 15
0
[PATCH v3 1/4] drm/nouveau/acpi: ensure matching ACPI handle and supported functions
...au_acpi.c index db76b94..886a67c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c @@ -57,9 +57,6 @@ bool nouveau_is_v1_dsm(void) { return nouveau_dsm_priv.dsm_detected; } -#define NOUVEAU_DSM_HAS_MUX 0x1 -#define NOUVEAU_DSM_HAS_OPT 0x2 - #ifdef CONFIG_VGA_SWITCHEROO static const char nouveau_dsm_muid[] = { 0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D, @@ -212,26 +209,33 @@ static const struct vga_switcheroo_handler nouveau_dsm_handler = { .get_client_id = nouveau_dsm_get_client_id, }; -static int nouveau_dsm_pci_probe(struct pci_dev *pdev) +static vo...
2020 Aug 13
0
[PATCH 12/20] drm/radeon: Introduce GEM object functions
...struct sg_table *sg); -int radeon_gem_prime_pin(struct drm_gem_object *obj); -void radeon_gem_prime_unpin(struct drm_gem_object *obj); -void *radeon_gem_prime_vmap(struct drm_gem_object *obj); -void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); /* atpx handler */ #if defined(CONFIG_VGA_SWITCHEROO) @@ -550,7 +538,7 @@ long radeon_drm_ioctl(struct file *filp, } ret = drm_ioctl(filp, cmd, arg); - + pm_runtime_mark_last_busy(dev->dev); pm_runtime_put_autosuspend(dev->dev); return ret; @@ -609,22 +597,13 @@ static struct drm_driver kms_driver = { .irq_uninstall = radeon_driv...
2015 May 28
12
[PATCH v2 1/9] acpi: Rename v1 DSM to mux to avoid ambiguity
...nouveau_is_optimus(void) { return nouveau_dsm_priv.optimus_detected; } -bool nouveau_is_v1_dsm(void) { - return nouveau_dsm_priv.dsm_detected; +bool nouveau_has_mux(void) { + return nouveau_dsm_priv.mux_detected; } #define NOUVEAU_DSM_HAS_MUX 0x1 #define NOUVEAU_DSM_HAS_OPT 0x2 #ifdef CONFIG_VGA_SWITCHEROO -static const char nouveau_dsm_muid[] = { +static const char nouveau_mux_dsm_muid[] = { 0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D, 0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4, }; @@ -128,7 +128,7 @@ static int nouveau_check_optimus_dsm(acpi_handle handle) return result & 1 &&...
2020 Sep 15
0
[PATCH v2 12/21] drm/radeon: Introduce GEM object functions
..._gem_prime_pin(struct drm_gem_object *obj); > -void radeon_gem_prime_unpin(struct drm_gem_object *obj); > -void *radeon_gem_prime_vmap(struct drm_gem_object *obj); > -void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); > > /* atpx handler */ > #if defined(CONFIG_VGA_SWITCHEROO) > @@ -550,7 +538,7 @@ long radeon_drm_ioctl(struct file *filp, > } > > ret = drm_ioctl(filp, cmd, arg); > - > + > pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > return ret; > @@ -609,22 +597,13 @@ static struct...
2020 Aug 13
0
[PATCH 12/20] drm/radeon: Introduce GEM object functions
...(struct drm_gem_object *obj); >> -void radeon_gem_prime_unpin(struct drm_gem_object *obj); >> -void *radeon_gem_prime_vmap(struct drm_gem_object *obj); >> -void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); >> ? ? /* atpx handler */ >> ? #if defined(CONFIG_VGA_SWITCHEROO) >> @@ -550,7 +538,7 @@ long radeon_drm_ioctl(struct file *filp, >> ????? } >> ? ????? ret = drm_ioctl(filp, cmd, arg); >> -??? >> + >> ????? pm_runtime_mark_last_busy(dev->dev); >> ????? pm_runtime_put_autosuspend(dev->dev); >> ????? return ret...
2015 May 25
15
[PATCH 1/8] acpi: Rename v1 DSM to mux to avoid ambiguity
...nouveau_is_optimus(void) { return nouveau_dsm_priv.optimus_detected; } -bool nouveau_is_v1_dsm(void) { - return nouveau_dsm_priv.dsm_detected; +bool nouveau_has_mux(void) { + return nouveau_dsm_priv.mux_detected; } #define NOUVEAU_DSM_HAS_MUX 0x1 #define NOUVEAU_DSM_HAS_OPT 0x2 #ifdef CONFIG_VGA_SWITCHEROO -static const char nouveau_dsm_muid[] = { +static const char nouveau_mux_dsm_muid[] = { 0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D, 0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4, }; @@ -128,7 +128,7 @@ static int nouveau_check_optimus_dsm(acpi_handle handle) return result & 1 &&...
2015 Jan 17
0
[PATCH RFC] nouveau: Add support for Gmux _DSM method
...turn nouveau_dsm_priv.dsm_detected; } -#define NOUVEAU_DSM_HAS_MUX 0x1 -#define NOUVEAU_DSM_HAS_OPT 0x2 +bool nouveau_has_gmux_dsm(void) { + return nouveau_dsm_priv.gmux_detected; +} + +#define NOUVEAU_DSM_HAS_MUX 0x1 +#define NOUVEAU_DSM_HAS_OPT 0x2 +#define NOUVEAU_DSM_HAS_GMUX 0x4 #ifdef CONFIG_VGA_SWITCHEROO static const char nouveau_dsm_muid[] = { @@ -71,6 +79,11 @@ static const char nouveau_op_dsm_muid[] = { 0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0, }; +static const char nouveau_gmux_dsm_muid[] = { + 0xA6, 0x69, 0x86, 0x99, 0xE9, 0x8B, 0xFB, 0x49, + 0xBD, 0xDB, 0x51, 0xA1, 0xEF, 0xE1, 0x9...
2014 Apr 29
20
[Bug 78092] New: GK208M [GeForce GT 730M] (rev ff) (prog-if ff) nouveau module load fail
https://bugs.freedesktop.org/show_bug.cgi?id=78092 Priority: medium Bug ID: 78092 Assignee: nouveau at lists.freedesktop.org Summary: GK208M [GeForce GT 730M] (rev ff) (prog-if ff) nouveau module load fail Severity: normal Classification: Unclassified OS: All Reporter: anton.gubarkov at
2016 Jan 11
8
[PATCH v5 00/12] Enable GPU switching on pre-retina MacBook Pro
Enable GPU switching on the pre-retina MacBook Pro (2008 - 2013), v5. The main obstacle on these machines is that the panel mode in VBIOS is bogus. Fortunately gmux can switch DDC independently from the display, thereby allowing the inactive GPU to probe the panel's EDID. In short, vga_switcheroo and apple-gmux are amended with hooks to switch DDC, DRM core is amended with a
2016 Jul 07
6
[PATCH v2 0/4] nouveau RPM fixes for Optimus
Hi, Here are two patches to fix an issue reported on kernel bugzilla (infinite loop due to unchecked function) and a more important fix to fix hanging Optimus machines when runtime PM is enabled (with pm/pci patches). See the first version[1] for a background on the fixed problems. This is the second revision of incorporating feedback from Emil Velikov (patch 1), Mika Westerberg (patch 4).
2016 May 24
7
[PATCH 0/4] nouveau fixes for RPM/Optimus-related hangs
Hi, Here are two patches to fix an issue reported on kernel bugzilla (infinite loop due to unchecked function) and a more important fix to fix hanging Optimus machines when runtime PM is enabled (with pm/pci patches). An older (obsolete) patch for the first issue was tested by the reporter: https://bugzilla.kernel.org/show_bug.cgi?id=104791#c11 (it is replaced by "check for function 0x1B