xf86: Extract screen configuration matching into its own function
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
This commit is contained in:
		
							parent
							
								
									16571b8926
								
							
						
					
					
						commit
						cd567415cc
					
				| 
						 | 
				
			
			@ -106,6 +106,28 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
 | 
			
		|||
    return foundScreen;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static screenLayoutPtr
 | 
			
		||||
xf86BusConfigMatch(ScrnInfoPtr scrnInfo) {
 | 
			
		||||
    screenLayoutPtr layout;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    for (layout = xf86ConfigLayout.screens; layout->screen != NULL;
 | 
			
		||||
         layout++) {
 | 
			
		||||
        for (i = 0; i < scrnInfo->numEntities; i++) {
 | 
			
		||||
            GDevPtr dev =
 | 
			
		||||
                xf86GetDevFromEntity(scrnInfo->entityList[i],
 | 
			
		||||
                                     scrnInfo->entityInstanceList[i]);
 | 
			
		||||
 | 
			
		||||
            if (dev == layout->screen->device) {
 | 
			
		||||
                /* A match has been found */
 | 
			
		||||
                return layout;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @return TRUE if all buses are configured and set up correctly and FALSE
 | 
			
		||||
 * otherwise.
 | 
			
		||||
| 
						 | 
				
			
			@ -114,7 +136,7 @@ Bool
 | 
			
		|||
xf86BusConfig(void)
 | 
			
		||||
{
 | 
			
		||||
    screenLayoutPtr layout;
 | 
			
		||||
    int i, j;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * 3 step probe to (hopefully) ensure that we always find at least 1
 | 
			
		||||
| 
						 | 
				
			
			@ -170,27 +192,10 @@ xf86BusConfig(void)
 | 
			
		|||
     *
 | 
			
		||||
     */
 | 
			
		||||
    for (i = 0; i < xf86NumScreens; i++) {
 | 
			
		||||
        for (layout = xf86ConfigLayout.screens; layout->screen != NULL;
 | 
			
		||||
             layout++) {
 | 
			
		||||
            Bool found = FALSE;
 | 
			
		||||
 | 
			
		||||
            for (j = 0; j < xf86Screens[i]->numEntities; j++) {
 | 
			
		||||
 | 
			
		||||
                GDevPtr dev =
 | 
			
		||||
                    xf86GetDevFromEntity(xf86Screens[i]->entityList[j],
 | 
			
		||||
                                         xf86Screens[i]->entityInstanceList[j]);
 | 
			
		||||
 | 
			
		||||
                if (dev == layout->screen->device) {
 | 
			
		||||
                    /* A match has been found */
 | 
			
		||||
        layout = xf86BusConfigMatch(xf86Screens[i]);
 | 
			
		||||
        if (layout && layout->screen)
 | 
			
		||||
            xf86Screens[i]->confScreen = layout->screen;
 | 
			
		||||
                    found = TRUE;
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (found)
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        if (layout->screen == NULL) {
 | 
			
		||||
        else {
 | 
			
		||||
            /* No match found */
 | 
			
		||||
            xf86Msg(X_ERROR,
 | 
			
		||||
                    "Screen %d deleted because of no matching config section.\n",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue