lkml.org 
[lkml]   [2012]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/7] vga_switcheroo: Add helper function to get the active client
    Date
    Add vga_switcheroo_get_active_client() to allow drivers to get the
    active video client. This will be used by drivers wishing to temporarily
    mux only the DDC to the inactive client.

    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    ---
    drivers/gpu/vga/vga_switcheroo.c | 14 ++++++++++++++
    include/linux/vga_switcheroo.h | 2 ++
    2 files changed, 16 insertions(+)

    diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
    index ea6bcc2..e53f67d 100644
    --- a/drivers/gpu/vga/vga_switcheroo.c
    +++ b/drivers/gpu/vga/vga_switcheroo.c
    @@ -205,6 +205,20 @@ find_active_client(struct list_head *head)
    return NULL;
    }

    +struct pci_dev *vga_switcheroo_get_active_client(void)
    +{
    + struct vga_switcheroo_client *client;
    + struct pci_dev *pdev = NULL;
    +
    + mutex_lock(&vgasr_mutex);
    + client = find_active_client(&vgasr_priv.clients);
    + if (client)
    + pdev = client->pdev;
    + mutex_unlock(&vgasr_mutex);
    + return pdev;
    +}
    +EXPORT_SYMBOL(vga_switcheroo_get_active_client);
    +
    int vga_switcheroo_get_client_state(struct pci_dev *pdev)
    {
    struct vga_switcheroo_client *client;
    diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
    index b0d0839..e361858 100644
    --- a/include/linux/vga_switcheroo.h
    +++ b/include/linux/vga_switcheroo.h
    @@ -61,6 +61,7 @@ void vga_switcheroo_unregister_handler(void);

    int vga_switcheroo_process_delayed_switch(void);

    +struct pci_dev *vga_switcheroo_get_active_client(void);
    int vga_switcheroo_get_client_state(struct pci_dev *dev);

    #else
    @@ -76,6 +77,7 @@ static inline int vga_switcheroo_register_audio_client(struct pci_dev *pdev,
    int id, bool active) { return 0; }
    static inline void vga_switcheroo_unregister_handler(void) {}
    static inline int vga_switcheroo_process_delayed_switch(void) { return 0; }
    +static inline struct pci_dev *vga_switcheroo_get_active_client(void) { return NULL; }
    static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return VGA_SWITCHEROO_ON; }


    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-09-07 18:02    [W:0.025 / U:31.888 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site