On 05/26/2015 02:46 PM, Pierre Moreau wrote: > I'm thinking of re-writing this patch to just OR the different returned > retval and test for individual bits directly in the final conditionals. > So this would give something like: > > > int retval = 0; > > while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) { > vga_count++; > retval |= nouveau_dsm_pci_probe(pdev); > } > while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_3D << 8, pdev)) != NULL) { > vga_count++; > retval |= nouveau_dsm_pci_probe(pdev); > } > > if (retval & NOUVEAU_DSM_HAS_OPT) { > acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, > &buffer); > printk(KERN_INFO "VGA switcheroo: detected Optimus DSM method %s > handle\n", > acpi_method_name); > nouveau_dsm_priv.optimus_detected = true; > ret = true; > } else if (vga_count == 2 && (retval & NOUVEAU_DSM_HAS_MUX) && guid_valid) { > acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, > &buffer); > printk(KERN_INFO "VGA switcheroo: detected mux DSM switching method %s > handle\n", > acpi_method_name); > nouveau_dsm_priv.mux_detected = true; > ret = true; > } else if (retval & NOUVEAU_DSM_HAS_GMUX) { > acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, > &buffer); > printk(KERN_INFO "VGA switcheroo: detected gmux DSM switching method %s > handle\n", > acpi_method_name); > nouveau_dsm_priv.gmux_detected = true; > ret = true; > } > > > Any opinions on this?
If this improves readability of the code, go ahead. > > Pierre > > ----- Mail original ----- >> Signed-off-by: Pierre Moreau <pierre.morrow at free.fr> >> --- >> drm/nouveau/nouveau_acpi.c | 14 +++++++------- >> 1 file changed, 7 insertions(+), 7 deletions(-) >> >> diff --git a/drm/nouveau/nouveau_acpi.c b/drm/nouveau/nouveau_acpi.c >> index 3d6a1ea..5d63621 100644 >> --- a/drm/nouveau/nouveau_acpi.c >> +++ b/drm/nouveau/nouveau_acpi.c >> @@ -297,8 +297,8 @@ static bool nouveau_dsm_detect(void) >> char acpi_method_name[255] = { 0 }; >> struct acpi_buffer buffer = {sizeof(acpi_method_name), >> acpi_method_name}; >> struct pci_dev *pdev = NULL; >> - int has_dsm = 0; >> - int has_optimus = 0; >> + bool has_mux = false; >> + bool has_optimus = false; >> bool has_gmux = false; >> int vga_count = 0; >> bool guid_valid; >> @@ -317,9 +317,9 @@ static bool nouveau_dsm_detect(void) >> >> retval = nouveau_dsm_pci_probe(pdev); >> if (retval & NOUVEAU_DSM_HAS_MUX) >> - has_dsm |= 1; >> + has_mux = true; >> if (retval & NOUVEAU_DSM_HAS_OPT) >> - has_optimus = 1; >> + has_optimus = true; >> if (retval & NOUVEAU_DSM_HAS_GMUX) >> has_gmux = true; >> } >> @@ -329,9 +329,9 @@ static bool nouveau_dsm_detect(void) >> >> retval = nouveau_dsm_pci_probe(pdev); >> if (retval & NOUVEAU_DSM_HAS_MUX) >> - has_dsm |= 1; >> + has_mux = true; >> if (retval & NOUVEAU_DSM_HAS_OPT) >> - has_optimus = 1; >> + has_optimus = true; >> if (retval & NOUVEAU_DSM_HAS_GMUX) >> has_gmux = true; >> } >> @@ -344,7 +344,7 @@ static bool nouveau_dsm_detect(void) >> acpi_method_name); >> nouveau_dsm_priv.optimus_detected = true; >> ret = true; >> - } else if (vga_count == 2 && has_dsm && guid_valid) { >> + } else if (vga_count == 2 && has_mux && guid_valid) { >> acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, >> &buffer); >> printk(KERN_INFO "VGA switcheroo: detected mux DSM switching >> method %s handle\n", >> -- >> 2.4.1 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel at lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/dri-devel >> > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/nouveau