Hi Dave,

I don't know anything of PM domains, but there was one minor thing I wanted to 
mention, see below.

On Monday 29 July 2013 16:06:56 Dave Airlie wrote:
> From: Dave Airlie <airlied at dhcp-40-90.bne.redhat.com>
Something went wrong here I guess?

> [..]
> 
> +static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
> +{
> +     struct pci_dev *pdev = to_pci_dev(dev);
> +     int ret;
> +     struct vga_switcheroo_client *client, *found = NULL;
> +
> +     /* we need to check if we have to switch back on the video
> +        device so the audio device can come back */
> +     list_for_each_entry(client, &vgasr_priv.clients, list) {
> +             if ((client->pdev->devfn & ~(0x7)) == (pdev->devfn & ~(0x7)) &&
> client_is_vga(client)) {
Less obfuscated:

    PCI_SLOT(client->pdev->devfn) == PCI_SLOT(pdev->devfn) 

> +                     found = client;
> +                     ret = pm_runtime_get_sync(&client->pdev->dev);
> +                     if (ret) {
> +                             if (ret != 1)
> +                                     return ret;
> +                     }
> +                     break;
> +             }
> +     }
> +     ret = dev->bus->pm->runtime_resume(dev);
> +     if (ret)
> +             return ret;
> +
> +     /* put the reference for the gpu */
> +     if (found)
> +             pm_runtime_put_autosuspend(&found->pdev->dev);
> +     return 0;
> +}
> [..]

Regards,
Peter

Reply via email to