[PATCH] modesetting: and entity setup to generic probe path.
Mark Kettenis
mark.kettenis at xs4all.nl
Tue Nov 17 13:13:10 PST 2015
> From: Dave Airlie <airlied at gmail.com>
> Date: Tue, 17 Nov 2015 10:23:37 +1000
>
> From: Dave Airlie <airlied at redhat.com>
>
> Totally untested, cross fingers hope it works.
Seems that does the trick.
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
> hw/xfree86/drivers/modesetting/driver.c | 25 +++++++++++++++++++++----
> 1 file changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
> index 2ca65fb..49a2925 100644
> --- a/hw/xfree86/drivers/modesetting/driver.c
> +++ b/hw/xfree86/drivers/modesetting/driver.c
> @@ -454,13 +454,12 @@ Probe(DriverPtr drv, int flags)
> }
>
> for (i = 0; i < numDevSections; i++) {
> -
> + int entity_num;
> dev = xf86FindOptionValue(devSections[i]->options, "kmsdev");
> if (probe_hw(dev, NULL)) {
> - int entity;
>
> - entity = xf86ClaimFbSlot(drv, 0, devSections[i], TRUE);
> - scrn = xf86ConfigFbEntity(scrn, 0, entity, NULL, NULL, NULL, NULL);
> + entity_num = xf86ClaimFbSlot(drv, 0, devSections[i], TRUE);
> + scrn = xf86ConfigFbEntity(scrn, 0, entity_num, NULL, NULL, NULL, NULL);
> }
>
> if (scrn) {
> @@ -470,6 +469,24 @@ Probe(DriverPtr drv, int flags)
>
> xf86DrvMsg(scrn->scrnIndex, X_INFO,
> "using %s\n", dev ? dev : "default device");
> + {
> + DevUnion *pPriv;
> + EntityInfoPtr pEnt;
> +
> + xf86SetEntitySharable(entity_num);
> +
> + if (ms_entity_index == -1)
> + ms_entity_index = xf86AllocateEntityPrivateIndex();
> +
> + pEnt = xf86GetEntityInfo(entity_num);
> + pPriv = xf86GetEntityPrivate(pEnt->index,
> + ms_entity_index);
> +
> + xf86SetEntityInstanceForScreen(scrn, pEnt->index, xf86GetNumEntityInstances(pEnt->index) - 1);
> +
> + if (!pPriv->ptr)
> + pPriv->ptr = xnfcalloc(sizeof(modesettingEntRec), 1);
> + }
> }
> }
>
> --
> 2.4.3
More information about the xorg-devel
mailing list