[PATCH xf86-video-vmware 1/2] Add support for XSERVER_PLATFORM_BUS
Jakob Bornecrantz
wallbraker at gmail.com
Wed May 14 02:08:41 PDT 2014
On Wed, May 7, 2014 at 3:23 PM, Hans de Goede <hdegoede at redhat.com> wrote:
> This is a preparation patch for adding support for server managed fds.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> src/vmware.c | 3 ---
> src/vmware_bootstrap.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++---
> vmwgfx/vmwgfx_driver.c | 4 ++--
> 3 files changed, 53 insertions(+), 8 deletions(-)
Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>
>
> diff --git a/src/vmware.c b/src/vmware.c
> index 6b74e14..17434ab 100644
> --- a/src/vmware.c
> +++ b/src/vmware.c
> @@ -310,9 +310,6 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
> pVMWARE->pvtSema = &pScrn->vtSema;
>
> pVMWARE->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
> - if (pVMWARE->pEnt->location.type != BUS_PCI) {
> - return FALSE;
> - }
> pVMWARE->PciInfo = xf86GetPciInfoForEntity(pVMWARE->pEnt->index);
> if (pVMWARE->PciInfo == NULL) {
> return FALSE;
> diff --git a/src/vmware_bootstrap.c b/src/vmware_bootstrap.c
> index ed6c740..b30cf2b 100644
> --- a/src/vmware_bootstrap.c
> +++ b/src/vmware_bootstrap.c
> @@ -50,6 +50,10 @@
> #include <xf86_libc.h>
> #endif
>
> +#ifdef XSERVER_PLATFORM_BUS
> +#include "xf86platformBus.h"
> +#endif
> +
> #ifdef HaveDriverFuncs
> #define VMWARE_DRIVER_FUNC HaveDriverFuncs
> #else
> @@ -247,9 +251,6 @@ VMwarePreinitStub(ScrnInfoPtr pScrn, int flags)
> vmwlegacy_hookup(pScrn);
>
> pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
> - if (pEnt->location.type != BUS_PCI)
> - return FALSE;
> -
> pciInfo = xf86GetPciInfoForEntity(pEnt->index);
> if (pciInfo == NULL)
> return FALSE;
> @@ -407,6 +408,45 @@ VMWAREProbe(DriverPtr drv, int flags)
> }
> #endif
>
> +#ifdef XSERVER_PLATFORM_BUS
> +static Bool
> +VMwarePlatformProbe(DriverPtr drv, int entity, int flags,
> + struct xf86_platform_device *dev, intptr_t match_data)
> +{
> + ScrnInfoPtr pScrn;
> + int scrnFlag = 0;
> +
> + if (!dev->pdev)
> + return FALSE;
> +
> + if (flags & PLATFORM_PROBE_GPU_SCREEN)
> + scrnFlag = XF86_ALLOCATE_GPU_SCREEN;
> +
> + pScrn = xf86AllocateScreen(drv, scrnFlag);
> + if (!pScrn)
> + return FALSE;
> +
> + if (xf86IsEntitySharable(entity))
> + xf86SetEntityShared(entity);
> +
> + xf86AddEntityToScreen(pScrn, entity);
> +
> + pScrn->driverVersion = VMWARE_DRIVER_VERSION;
> + pScrn->driverName = VMWARE_DRIVER_NAME;
> + pScrn->name = VMWARE_NAME;
> + pScrn->Probe = NULL;
> +#ifdef BUILD_VMWGFX
> + vmwgfx_hookup(pScrn);
> +#else
> + vmwlegacy_hookup(pScrn);
> +#endif
> + pScrn->driverPrivate = pScrn->PreInit;
> + pScrn->PreInit = VMwarePreinitStub;
> +
> + return TRUE;
> +}
> +#endif
> +
> static void
> VMWAREIdentify(int flags)
> {
> @@ -481,6 +521,14 @@ _X_EXPORT DriverRec vmware = {
> #if XSERVER_LIBPCIACCESS
> VMwareDeviceMatch,
> VMwarePciProbe,
> +#else
> + NULL,
> + NULL,
> +#endif
> +#ifdef XSERVER_PLATFORM_BUS
> + VMwarePlatformProbe,
> +#else
> + NULL,
> #endif
> };
>
> diff --git a/vmwgfx/vmwgfx_driver.c b/vmwgfx/vmwgfx_driver.c
> index 2d38d2a..7e5dc4e 100644
> --- a/vmwgfx/vmwgfx_driver.c
> +++ b/vmwgfx/vmwgfx_driver.c
> @@ -465,13 +465,13 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags)
>
> pScrn->displayWidth = 640; /* default it */
>
> - if (ms->pEnt->location.type != BUS_PCI) {
> + ms->PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index);
> + if (!ms->PciInfo) {
> xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
> "Incorrect bus for device.\n");
> goto out_err_bus;
> }
>
> - ms->PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index);
> xf86SetPrimInitDone(pScrn->entityList[0]);
>
> ms->hdriver = vmwgfx_hosted_detect();
> --
> 1.9.0
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
More information about the xorg-devel
mailing list