add: if (si->ps.secondary_head) nv_crtc2_cursor_init();
context: status_t INIT_ACCELERANT(int the_fd) {	status_t result;	int pointer_reservation; //mem reserved for pointer	int cnt; 				 //used for iteration through the overlay buffers	if (1) {		time_t now = time (NULL);		// LOG not available from here to next LOG: NULL si//		MSG(("INIT_ACCELERANT: booted since %f ms %s\n", system_time()/1000.0, real_time_clock()));		MSG(("INIT_ACCELERANT: %s", ctime (&now)));	}	/* note that we're the primary accelerant (accelerantIsClone is global) */	accelerantIsClone = 0;	/* do the initialization common to both the primary and the clones */	result = init_common(the_fd);	/* bail out if the common initialization failed */	if (result != B_OK) goto error0;	// LOG now available: !NULL si		/* call the device specific init code */	result = nv_general_powerup();	/* bail out if it failed */	if (result != B_OK) goto error1;	/*	Now would be a good time to figure out what video modes your card supports.	We'll place the list of modes in another shared area so all of the copies	of the driver can see them.  The primary copy of the accelerant (ie the one	initialized with this routine) will own the "one true copy" of the list.	Everybody else get's a read-only clone.	*/	result = create_mode_list();	if (result != B_OK) 	{		goto error1;	}	/*	Put the cursor at the start of the frame buffer.	Nvidia cursor is 32x32 16 color? takes up 4096 bytes of RAM.	*/	/* Initialize the rest of the cursor information while we're here */	si->cursor.width = 16;	si->cursor.height = 16;	si->cursor.hot_x = 0;	si->cursor.hot_y = 0;	si->cursor.x = 0;	si->cursor.y = 0;	/*	Put the frame buffer immediately following the cursor data. We store this	info in a frame_buffer_config structure to make it convienient to return	to the app_server later.	*/	pointer_reservation = 0;	/* Nvidia hardcursor needs 2kB space */	if (si->settings.hardcursor) pointer_reservation = 2048;	si->fbc.frame_buffer = (void *)((char *)si->framebuffer+pointer_reservation);	si->fbc.frame_buffer_dma = (void *)((char *)si->framebuffer_pci+pointer_reservation);	/* count of issued parameters or commands */	si->engine.last_idle = si->engine.count = 0;	INIT_BEN(si->engine.lock);	INIT_BEN(si->overlay.lock);	for (cnt = 0; cnt < MAXBUFFERS; cnt++)	{		/* make sure overlay buffers are 'marked' as being free */		si->overlay.myBuffer[cnt].buffer = NULL;		si->overlay.myBuffer[cnt].buffer_dma = NULL;	}	/* make sure overlay unit is 'marked' as being free */	si->overlay.myToken = NULL;		/* bail out if something failed */	if (result != B_OK) goto error1;	/* initialise various cursor stuff*/	nv_crtc_cursor_init();	/* ensure cursor state */	SHOW_CURSOR(false);	/* a winner! */	result = B_OK;	goto error0;error1:	/*	Initialization failed after init_common() succeeded, so we need to clean	up before quiting.	*/	uninit_common();error0:	return result;}