rem: TRACE("agp_man: blocking SBA (agp.settings)\n"); *command &= ~AGP_SBA;
add: if (!(*command & AGP_rate_rev)) { TRACE("agp_man: blocking SBA (agp.settings)\n"); *command &= ~AGP_SBA; } else { TRACE("agp_man: SBA is required for AGP3, not blocking (agp.settings)\n"); }
context: static void check_settings(uint32 *command){	if (current_settings.block_agp)	{		TRACE("agp_man: blocking all agp modes (agp.settings)\n");		*command = 0x00000000;		return;	}	if (current_settings.max_speed != 0)	{		if (!(*command & AGP_rate_rev))		{			/* AGP 2.0 scheme applies */			switch (current_settings.max_speed)			{			case 8:				TRACE("agp_man: max AGP 8x speed allowed, using max 4x (agp.settings)\n");				break;			case 4:				TRACE("agp_man: max AGP 4x speed allowed (agp.settings)\n");				break;			case 2:				TRACE("agp_man: max AGP 2x speed allowed (agp.settings)\n");				*command &= ~AGP_2_4x;				break;			case 1:				TRACE("agp_man: max AGP 1x speed allowed (agp.settings)\n");				*command &= ~(AGP_2_4x | AGP_2_2x);				break;			default:				TRACE("agp_man: illegal max AGP speed requested, ignoring (agp.settings)\n");				break;			}		}		else		{			/* AGP 3.0 scheme applies */			switch (current_settings.max_speed)			{			case 8:				TRACE("agp_man: max AGP 8x speed allowed (agp.settings)\n");				break;			case 4:				TRACE("agp_man: max AGP 4x speed allowed (agp.settings)\n");				*command &= ~AGP_3_8x;				break;			case 2:				TRACE("agp_man: max AGP 2x speed allowed, forcing PCI mode (agp.settings)\n");				*command = 0x00000000;				return;				break;			case 1:				TRACE("agp_man: max AGP 1x speed allowed, forcing PCI mode (agp.settings)\n");				*command = 0x00000000;				return;				break;			default:				TRACE("agp_man: illegal max AGP speed requested, ignoring (agp.settings)\n");				break;			}		}	}	if (current_settings.block_sba)	{		TRACE("agp_man: blocking SBA (agp.settings)\n");		*command &= ~AGP_SBA;	}	if (current_settings.block_fw)	{		TRACE("agp_man: blocking FW (agp.settings)\n");		*command &= ~AGP_FW;	}}