diff options
author | Dave Airlie <airlied@redhat.com> | 2012-06-05 14:43:21 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-06-05 14:43:55 +0100 |
commit | 84141ff69acfd17525e1eeeda28d9d5463f00352 (patch) | |
tree | 7b6bf2e89cf5bf6a4affea5224777c4057bd12ef | |
parent | 12c15dd838e9663ffd2f71460feea7b343a7b423 (diff) |
modesetting: add platform bus supportplatform
-rw-r--r-- | src/driver.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/driver.c b/src/driver.c index f0529f5..5048f9c 100644 --- a/src/driver.c +++ b/src/driver.c @@ -53,6 +53,9 @@ #include "xf86xv.h" #include <X11/extensions/Xv.h> #include <xorg-server.h> +#ifdef XSERVER_PLATFORM_BUS +#include "xf86platformBus.h" +#endif #if XSERVER_LIBPCIACCESS #include <pciaccess.h> #endif @@ -89,6 +92,12 @@ static const struct pci_id_match ms_device_match[] = { }; #endif +#ifdef XSERVER_PLATFORM_BUS +static Bool ms_platform_probe(DriverPtr driver, + int entity_num, int flags, struct xf86_platform_device *device, + intptr_t match_data); +#endif + _X_EXPORT DriverRec modesetting = { 1, "modesetting", @@ -100,6 +109,9 @@ _X_EXPORT DriverRec modesetting = { NULL, ms_device_match, ms_pci_probe, +#ifdef XSERVER_PLATFORM_BUS + ms_platform_probe, +#endif }; static SymTabRec Chipsets[] = { @@ -278,6 +290,36 @@ ms_pci_probe(DriverPtr driver, } #endif +#ifdef XSERVER_PLATFORM_BUS +static Bool +ms_platform_probe(DriverPtr driver, + int entity_num, int flags, struct xf86_platform_device *dev, intptr_t match_data) +{ + ScrnInfoPtr scrn = NULL; + char *path = xf86_get_platform_device_attrib(dev, ODEV_ATTRIB_PATH); + + if (probe_hw(path)) { + scrn = xf86AllocateScreen(driver, 0); + xf86AddEntityToScreen(scrn, entity_num); + + scrn->driverName = "modesetting"; + scrn->name = "modesetting"; + scrn->PreInit = PreInit; + scrn->ScreenInit = ScreenInit; + scrn->SwitchMode = SwitchMode; + scrn->AdjustFrame = AdjustFrame; + scrn->EnterVT = EnterVT; + scrn->LeaveVT = LeaveVT; + scrn->FreeScreen = FreeScreen; + scrn->ValidMode = ValidMode; + xf86DrvMsg(scrn->scrnIndex, X_INFO, + "using drv %s\n", path ? path : "default device"); + } + + return scrn != NULL; +} +#endif + static Bool Probe(DriverPtr drv, int flags) { |