[PATCH xserver v2] xfree86: Remove driver entity hooks and private

Adam Jackson ajax at redhat.com
Wed Mar 29 15:35:32 UTC 2017


No driver is using these, as far as I know.

v2: Tripwire the entity hook arguments to xf86Config*Entity, fix
documentation (Eric Anholt)

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 hw/xfree86/common/xf86.h       |  3 --
 hw/xfree86/common/xf86Bus.c    | 43 ---------------------
 hw/xfree86/common/xf86Bus.h    |  4 --
 hw/xfree86/common/xf86Events.c |  4 --
 hw/xfree86/common/xf86Helper.c |  6 +--
 hw/xfree86/common/xf86Init.c   |  3 --
 hw/xfree86/common/xf86PM.c     |  3 --
 hw/xfree86/common/xf86Priv.h   |  2 -
 hw/xfree86/common/xf86pciBus.c |  8 ++--
 hw/xfree86/doc/ddxDesign.xml   | 87 +++---------------------------------------
 10 files changed, 12 insertions(+), 151 deletions(-)

diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index ee24835..f1a5bd6 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -154,9 +154,6 @@ extern _X_EXPORT GDevPtr xf86GetDevFromEntity(int entityIndex, int instance);
 extern _X_EXPORT void xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn,
                                                  int entityIndex);
 extern _X_EXPORT EntityInfoPtr xf86GetEntityInfo(int entityIndex);
-extern _X_EXPORT Bool xf86SetEntityFuncs(int entityIndex, EntityProc init,
-                                         EntityProc enter, EntityProc leave,
-                                         void *);
 extern _X_EXPORT Bool xf86IsEntityPrimary(int entityIndex);
 extern _X_EXPORT ScrnInfoPtr xf86FindScreenForEntity(int entityIndex);
 
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index 9836803..6bbf489 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -313,19 +313,6 @@ xf86IsEntityPrimary(int entityIndex)
 }
 
 Bool
-xf86SetEntityFuncs(int entityIndex, EntityProc init, EntityProc enter,
-                   EntityProc leave, void *private)
-{
-    if (entityIndex >= xf86NumEntities)
-        return FALSE;
-    xf86Entities[entityIndex]->entityInit = init;
-    xf86Entities[entityIndex]->entityEnter = enter;
-    xf86Entities[entityIndex]->entityLeave = leave;
-    xf86Entities[entityIndex]->private = private;
-    return TRUE;
-}
-
-Bool
 xf86DriverHasEntities(DriverPtr drvp)
 {
     int i;
@@ -543,38 +530,12 @@ xf86GetDevFromEntity(int entityIndex, int instance)
 }
 
 /*
- * xf86AccessEnter() -- gets called to save the text mode VGA IO
- * resources when reentering the server after a VT switch.
- */
-void
-xf86AccessEnter(void)
-{
-    int i;
-
-    for (i = 0; i < xf86NumEntities; i++)
-        if (xf86Entities[i]->entityEnter)
-            xf86Entities[i]->entityEnter(i, xf86Entities[i]->private);
-}
-
-void
-xf86AccessLeave(void)
-{
-    int i;
-
-    for (i = 0; i < xf86NumEntities; i++)
-        if (xf86Entities[i]->entityLeave)
-            xf86Entities[i]->entityLeave(i, xf86Entities[i]->private);
-}
-
-/*
  * xf86PostProbe() -- Allocate all non conflicting resources
  * This function gets called by xf86Init().
  */
 void
 xf86PostProbe(void)
 {
-    int i;
-
     if (fbSlotClaimed && (
 #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__)
                              sbusSlotClaimed ||
@@ -590,10 +551,6 @@ xf86PostProbe(void)
         ))
         FatalError("Cannot run in framebuffer mode. Please specify busIDs "
                    "       for all framebuffer devices\n");
-
-    for (i = 0; i < xf86NumEntities; i++)
-        if (xf86Entities[i]->entityInit)
-            xf86Entities[i]->entityInit(i, xf86Entities[i]->private);
 }
 
 int
diff --git a/hw/xfree86/common/xf86Bus.h b/hw/xfree86/common/xf86Bus.h
index c59625d..52b497a 100644
--- a/hw/xfree86/common/xf86Bus.h
+++ b/hw/xfree86/common/xf86Bus.h
@@ -48,10 +48,6 @@ typedef struct {
     DriverPtr driver;
     int chipset;
     int entityProp;
-    EntityProc entityInit;
-    EntityProc entityEnter;
-    EntityProc entityLeave;
-    void *private;
     Bool active;
     Bool inUse;
     BusRec bus;
diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 9a8f432..7b5d1df 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -445,8 +445,6 @@ xf86VTLeave(void)
     for (i = 0; i < xf86NumGPUScreens; i++)
         xf86GPUScreens[i]->LeaveVT(xf86GPUScreens[i]);
 
-    xf86AccessLeave();      /* We need this here, otherwise */
-
     if (!xf86VTSwitchAway())
         goto switch_failed;
 
@@ -472,7 +470,6 @@ xf86VTLeave(void)
 
 switch_failed:
     DebugF("xf86VTSwitch: Leave failed\n");
-    xf86AccessEnter();
     for (i = 0; i < xf86NumScreens; i++) {
         if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
             FatalError("EnterVT failed for screen %d\n", i);
@@ -517,7 +514,6 @@ xf86VTEnter(void)
 
     if (xorgHWAccess)
         xf86EnableIO();
-    xf86AccessEnter();
     for (i = 0; i < xf86NumScreens; i++) {
         xf86Screens[i]->vtSema = TRUE;
         if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index b745793..447ed3f 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -1672,7 +1672,6 @@ xf86ConfigFbEntityInactive(EntityInfoPtr pEnt, EntityProc init,
 
     if ((pScrn = xf86FindScreenForEntity(pEnt->index)))
         xf86RemoveEntityFromScreen(pScrn, pEnt->index);
-    xf86SetEntityFuncs(pEnt->index, init, enter, leave, private);
 }
 
 ScrnInfoPtr
@@ -1682,6 +1681,9 @@ xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
 {
     EntityInfoPtr pEnt = xf86GetEntityInfo(entityIndex);
 
+    if (init || enter || leave)
+        FatalError("Legacy entity access functions are unsupported\n");
+
     if (!pEnt)
         return pScrn;
 
@@ -1700,8 +1702,6 @@ xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
         pScrn = xf86AllocateScreen(pEnt->driver, scrnFlag);
     xf86AddEntityToScreen(pScrn, entityIndex);
 
-    xf86SetEntityFuncs(entityIndex, init, enter, leave, private);
-
     free(pEnt);
     return pScrn;
 }
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 45f8ae6..88f99ac 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -726,7 +726,6 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
 #ifdef HAS_USL_VTS
             ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ);
 #endif
-            xf86AccessEnter();
             input_lock();
             sigio_blocked = TRUE;
         }
@@ -1001,8 +1000,6 @@ AbortDDX(enum ExitCode error)
             }
     }
 
-    xf86AccessLeave();
-
     /*
      * This is needed for an abnormal server exit, since the normal exit stuff
      * MUST also be performed (i.e. the vt must be left in a defined state)
diff --git a/hw/xfree86/common/xf86PM.c b/hw/xfree86/common/xf86PM.c
index 3f08c81..ed7bdbd 100644
--- a/hw/xfree86/common/xf86PM.c
+++ b/hw/xfree86/common/xf86PM.c
@@ -116,8 +116,6 @@ suspend(pmEvent event, Bool undo)
             xf86Screens[i]->vtSema = FALSE;
         }
     }
-    xf86AccessLeave();
-
 }
 
 static void
@@ -126,7 +124,6 @@ resume(pmEvent event, Bool undo)
     int i;
     InputInfoPtr pInfo;
 
-    xf86AccessEnter();
     for (i = 0; i < xf86NumScreens; i++) {
         if (xf86Screens[i]->PMEvent)
             xf86Screens[i]->PMEvent(xf86Screens[i], event, undo);
diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
index 2663c6b..22bf5ff 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
@@ -109,8 +109,6 @@ extern int xf86NumGPUScreens;
 /* xf86Bus.c */
 extern _X_EXPORT Bool xf86BusConfig(void);
 extern _X_EXPORT void xf86BusProbe(void);
-extern _X_EXPORT void xf86AccessEnter(void);
-extern _X_EXPORT void xf86AccessLeave(void);
 extern _X_EXPORT void xf86PostProbe(void);
 extern _X_EXPORT void xf86ClearEntityListForScreen(ScrnInfoPtr pScrn);
 extern _X_EXPORT void xf86AddDevToEntity(int entityIndex, GDevPtr dev);
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 9adfee5..41460a0 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -1023,9 +1023,6 @@ xf86ConfigPciEntityInactive(EntityInfoPtr pEnt, PciChipsets * p_chip,
 
     if ((pScrn = xf86FindScreenForEntity(pEnt->index)))
         xf86RemoveEntityFromScreen(pScrn, pEnt->index);
-
-    /* shared resources are only needed when entity is active: remove */
-    xf86SetEntityFuncs(pEnt->index, init, enter, leave, private);
 }
 
 ScrnInfoPtr
@@ -1035,6 +1032,9 @@ xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
 {
     EntityInfoPtr pEnt = xf86GetEntityInfo(entityIndex);
 
+    if (dummy || init || enter || leave)
+        FatalError("Legacy entity access functions are unsupported\n");
+
     if (!pEnt)
         return pScrn;
 
@@ -1060,8 +1060,6 @@ xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
     }
     free(pEnt);
 
-    xf86SetEntityFuncs(entityIndex, init, enter, leave, private);
-
     return pScrn;
 }
 
diff --git a/hw/xfree86/doc/ddxDesign.xml b/hw/xfree86/doc/ddxDesign.xml
index ac56e08..86d8d50 100644
--- a/hw/xfree86/doc/ddxDesign.xml
+++ b/hw/xfree86/doc/ddxDesign.xml
@@ -834,14 +834,8 @@ Here is what <function>InitOutput()</function> does:
       stage.  If a resource conflict is found between exclusive resources
       the driver will fail immediately.  This is usually best done with
       the <function>xf86ConfigPciEntity()</function> helper function
-      for PCI and <function>xf86ConfigIsaEntity()</function> for ISA
-      (see the <link linkend="rac">RAC</link> section).  It is possible to
-      register some entity specific functions with those helpers.  When
-      not using the helpers, the <function>xf86AddEntityToScreen()</function>
-      <function>xf86ClaimFixedResources()</function> and
-      <function>xf86SetEntityFuncs()</function> should be used instead (see
-      the <link linkend="rac">RAC</link> section).
-	</para>
+      for PCI.
+        </para>
 
 	<para>
       If a chipset is specified in an active device section which the
@@ -860,8 +854,7 @@ Here is what <function>InitOutput()</function> does:
       Allocate a <structname>ScrnInfoRec</structname> for each active instance of the
       hardware found, and fill in the basic information, including the
       other driver entry points.   This is best done with the
-      <function>xf86ConfigIsaEntity()</function> helper function for ISA
-      instances or <function>xf86ConfigPciEntity()</function> for PCI instances.
+      <function>xf86ConfigPciEntity()</function> for PCI instances.
       These functions allocate a <structname>ScrnInfoRec</structname> for active
       entities. Optionally <function>xf86AllocateScreen()</function>
       function may also be used to allocate the <structname>ScrnInfoRec</structname>.
@@ -2681,41 +2674,17 @@ Two helper functions are provided to aid configuring entities:
     ScrnInfoPtr xf86ConfigPciEntity(ScrnInfoPtr pScrn,
                                     int scrnFlag, int entityIndex,
                                     PciChipsets *p_chip,
-                                    resList res, EntityProc init,
+                                    void *res, EntityProc init,
                                     EntityProc enter, EntityProc leave,
                                     pointer private);
 
-    ScrnInfoPtr xf86ConfigIsaEntity(ScrnInfoPtr pScrn,
-                                    int scrnFlag, int entityIndex,
-                                    IsaChipsets *i_chip,
-                                    resList res, EntityProc init,
-                                    EntityProc enter, EntityProc leave,
-                                    pointer private);
 	    </programlisting>
 	    <blockquote><para>
-      These functions are used to register the non-relocatable resources
-      for an entity, and the optional entity-specific <parameter>Init</parameter>, <parameter>Enter</parameter> and
-      <parameter>Leave</parameter> functions.  Usually the list of fixed resources is obtained
-      from the Isa/PciChipsets lists.  However an additional list of
-      resources may be passed.  Generally this is not required.
+      This functions is used to register the entity. The <parameter>res</parameter>, <parameter>init</parameter>, <parameter>enter</parameter>, and <parameter>leave</parameter> arguments are unused, and should be <constant>NULL</constant>.
       For active entities a <structname>ScrnInfoRec</structname> is allocated
       if the <parameter>pScrn</parameter> argument is <constant>NULL</constant>.
 The
-      return value is <constant>TRUE</constant> when successful.  The init, enter, leave
-      functions are defined as follows:
-
-		<blockquote><para>
-		    <programlisting>
-        typedef void (*EntityProc)(int entityIndex,
-                                   pointer private);
-		    </programlisting>
-		  </para></blockquote>
-
-      They are passed the entity index and a pointer to a private scratch
-      area.  This can be set up during <function>Probe()</function> and
-      its address can be passed to
-      <function>xf86ConfigIsaEntity()</function> and
-      <function>xf86ConfigPciEntity()</function> as the last argument.
+      return value is <constant>TRUE</constant> when successful.
 	      </para>
 
 	    </blockquote></para></blockquote>
@@ -2740,19 +2709,6 @@ available at the driver level:
 
 	  <blockquote><para>
 	      <programlisting>
-    Bool xf86SetEntityFuncs(int entityIndex, EntityProc init,
-                            EntityProc enter, EntityProc leave, pointer);
-	      </programlisting>
-	      <blockquote><para>
-      This function registers with an entity the <parameter>init</parameter>,
-      <parameter>enter</parameter>, <parameter>leave</parameter> functions along
-      with the pointer to their private area.
-		</para>
-
-	    </blockquote></para></blockquote>
-
-	  <blockquote><para>
-	      <programlisting>
     void xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex);
 	      </programlisting>
 	      <blockquote><para>
@@ -8291,37 +8247,6 @@ ZZZProbe(DriverPtr drv, int flags)
         xfree(usedChips);
     }
 
-#ifdef HAS_ISA_DEVS
-    /*
-     * If the driver supports ISA hardware, the following block
-     * can be included too.
-     */
-    numUsed = xf86MatchIsaInstances(ZZZ_NAME, ZZZChipsets,
-                             ZZZIsaChipsets, drv, ZZZFindIsaDevice,
-                             devSections, numDevSections, &usedChips);
-    for (i = 0; i < numUsed; i++) {
-        ScrnInfoPtr pScrn = NULL;
-	if ((pScrn = xf86ConfigIsaEntity(pScrn, flags, usedChips[i],
-					 ZZZIsaChipsets, NULL, NULL, NULL,
-					 NULL, NULL))) {
-            pScrn->driverVersion = VERSION;
-            pScrn->driverName    = ZZZ_DRIVER_NAME;
-            pScrn->name          = ZZZ_NAME;
-            pScrn->Probe         = ZZZProbe;
-            pScrn->PreInit       = ZZZPreInit;
-            pScrn->ScreenInit    = ZZZScreenInit;
-            pScrn->SwitchMode    = ZZZSwitchMode;
-            pScrn->AdjustFrame   = ZZZAdjustFrame;
-            pScrn->EnterVT       = ZZZEnterVT;
-            pScrn->LeaveVT       = ZZZLeaveVT;
-            pScrn->FreeScreen    = ZZZFreeScreen;
-            pScrn->ValidMode     = ZZZValidMode;
-            foundScreen = TRUE;
-        }
-    }
-    xfree(usedChips);
-#endif /* HAS_ISA_DEVS */
-
     xfree(devSections);
     return foundScreen;
 	</programlisting>
-- 
2.9.3



More information about the xorg-devel mailing list