[PATCH 2/9] vga_switcheroo: Use VGA_SWITCHEROO_UNKNOWN_ID instead of -1
Daniel Vetter
daniel at ffwll.ch
Tue Oct 13 00:28:13 PDT 2015
On Mon, Oct 12, 2015 at 12:09:53PM -0400, Alex Deucher wrote:
> On Fri, Aug 28, 2015 at 7:30 AM, Lukas Wunner <lukas at wunner.de> wrote:
> > Signed-off-by: Lukas Wunner <lukas at wunner.de>
> Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
Merged the 3 cleanup patches to drm-misc.
-Daniel
>
> > ---
> > drivers/gpu/vga/vga_switcheroo.c | 17 +++++++++--------
> > include/linux/vga_switcheroo.h | 4 ++++
> > 2 files changed, 13 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
> > index a7870d2..9896305 100644
> > --- a/drivers/gpu/vga/vga_switcheroo.c
> > +++ b/drivers/gpu/vga/vga_switcheroo.c
> > @@ -84,9 +84,9 @@
> > * @fb_info: framebuffer to which console is remapped on switching
> > * @pwr_state: current power state
> > * @ops: client callbacks
> > - * @id: client identifier, see enum vga_switcheroo_client_id.
> > - * Determining the id requires the handler, so GPUs are initially
> > - * assigned -1 and later given their true id in vga_switcheroo_enable()
> > + * @id: client identifier. Determining the id requires the handler,
> > + * so gpus are initially assigned VGA_SWITCHEROO_UNKNOWN_ID
> > + * and later given their true id in vga_switcheroo_enable()
> > * @active: whether the outputs are currently switched to this client
> > * @driver_power_control: whether power state is controlled by the driver's
> > * runtime pm. If true, writing ON and OFF to the vga_switcheroo debugfs
> > @@ -145,7 +145,8 @@ struct vgasr_priv {
> >
> > #define ID_BIT_AUDIO 0x100
> > #define client_is_audio(c) ((c)->id & ID_BIT_AUDIO)
> > -#define client_is_vga(c) ((c)->id == -1 || !client_is_audio(c))
> > +#define client_is_vga(c) ((c)->id == VGA_SWITCHEROO_UNKNOWN_ID || \
> > + !client_is_audio(c))
> > #define client_id(c) ((c)->id & ~ID_BIT_AUDIO)
> >
> > static int vga_switcheroo_debugfs_init(struct vgasr_priv *priv);
> > @@ -173,7 +174,7 @@ static void vga_switcheroo_enable(void)
> > vgasr_priv.handler->init();
> >
> > list_for_each_entry(client, &vgasr_priv.clients, list) {
> > - if (client->id != -1)
> > + if (client->id != VGA_SWITCHEROO_UNKNOWN_ID)
> > continue;
> > ret = vgasr_priv.handler->get_client_id(client->pdev);
> > if (ret < 0)
> > @@ -277,7 +278,7 @@ int vga_switcheroo_register_client(struct pci_dev *pdev,
> > const struct vga_switcheroo_client_ops *ops,
> > bool driver_power_control)
> > {
> > - return register_client(pdev, ops, -1,
> > + return register_client(pdev, ops, VGA_SWITCHEROO_UNKNOWN_ID,
> > pdev == vga_default_device(),
> > driver_power_control);
> > }
> > @@ -583,7 +584,7 @@ vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf,
> > int ret;
> > bool delay = false, can_switch;
> > bool just_mux = false;
> > - int client_id = -1;
> > + int client_id = VGA_SWITCHEROO_UNKNOWN_ID;
> > struct vga_switcheroo_client *client = NULL;
> >
> > if (cnt > 63)
> > @@ -652,7 +653,7 @@ vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf,
> > client_id = VGA_SWITCHEROO_DIS;
> > }
> >
> > - if (client_id == -1)
> > + if (client_id == VGA_SWITCHEROO_UNKNOWN_ID)
> > goto out;
> > client = find_client_from_id(&vgasr_priv.clients, client_id);
> > if (!client)
> > diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
> > index e636617..88909a8 100644
> > --- a/include/linux/vga_switcheroo.h
> > +++ b/include/linux/vga_switcheroo.h
> > @@ -59,6 +59,9 @@ enum vga_switcheroo_state {
> >
> > /**
> > * enum vga_switcheroo_client_id - client identifier
> > + * @VGA_SWITCHEROO_UNKNOWN_ID: initial identifier assigned to vga clients.
> > + * Determining the id requires the handler, so GPUs are given their
> > + * true id in a delayed fashion in vga_switcheroo_enable()
> > * @VGA_SWITCHEROO_IGD: integrated graphics device
> > * @VGA_SWITCHEROO_DIS: discrete graphics device
> > * @VGA_SWITCHEROO_MAX_CLIENTS: currently no more than two GPUs are supported
> > @@ -66,6 +69,7 @@ enum vga_switcheroo_state {
> > * Client identifier. Audio clients use the same identifier & 0x100.
> > */
> > enum vga_switcheroo_client_id {
> > + VGA_SWITCHEROO_UNKNOWN_ID = -1,
> > VGA_SWITCHEROO_IGD,
> > VGA_SWITCHEROO_DIS,
> > VGA_SWITCHEROO_MAX_CLIENTS,
> > --
> > 1.8.5.2 (Apple Git-48)
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list