rem: LOG(2,("card memory_size: %dMb\n", si->ps.memory_size));
add: LOG(2,("card memory_size: %3.3fMb\n", (si->ps.memory_size / (1024.0 * 1024.0))));
context: void dump_pins(void){	char *msg = "";	LOG(2,("INFO: pinsdump follows:\n"));	LOG(2,("f_ref: %fMhz\n", si->ps.f_ref));	LOG(2,("max_system_vco: %dMhz\n", si->ps.max_system_vco));	LOG(2,("min_system_vco: %dMhz\n", si->ps.min_system_vco));	LOG(2,("max_pixel_vco: %dMhz\n", si->ps.max_pixel_vco));	LOG(2,("min_pixel_vco: %dMhz\n", si->ps.min_pixel_vco));	LOG(2,("max_video_vco: %dMhz\n", si->ps.max_video_vco));	LOG(2,("min_video_vco: %dMhz\n", si->ps.min_video_vco));	LOG(2,("std_engine_clock: %dMhz\n", si->ps.std_engine_clock));	LOG(2,("std_memory_clock: %dMhz\n", si->ps.std_memory_clock));	LOG(2,("max_dac1_clock: %dMhz\n", si->ps.max_dac1_clock));	LOG(2,("max_dac1_clock_8: %dMhz\n", si->ps.max_dac1_clock_8));	LOG(2,("max_dac1_clock_16: %dMhz\n", si->ps.max_dac1_clock_16));	LOG(2,("max_dac1_clock_24: %dMhz\n", si->ps.max_dac1_clock_24));	LOG(2,("max_dac1_clock_32: %dMhz\n", si->ps.max_dac1_clock_32));	LOG(2,("max_dac1_clock_32dh: %dMhz\n", si->ps.max_dac1_clock_32dh));	LOG(2,("max_dac2_clock: %dMhz\n", si->ps.max_dac2_clock));	LOG(2,("max_dac2_clock_8: %dMhz\n", si->ps.max_dac2_clock_8));	LOG(2,("max_dac2_clock_16: %dMhz\n", si->ps.max_dac2_clock_16));	LOG(2,("max_dac2_clock_24: %dMhz\n", si->ps.max_dac2_clock_24));	LOG(2,("max_dac2_clock_32: %dMhz\n", si->ps.max_dac2_clock_32));	LOG(2,("max_dac2_clock_32dh: %dMhz\n", si->ps.max_dac2_clock_32dh));	LOG(2,("secondary_head: "));	if (si->ps.secondary_head) LOG(2,("present\n")); else LOG(2,("absent\n"));	LOG(2,("tvout: "));	if (si->ps.tvout) LOG(2,("present\n")); else LOG(2,("absent\n"));	/* setup TVout logmessage text */	switch (si->ps.tvout_chip_type)	{	case NONE:		msg = "No";		break;	case CH7003:		msg = "Chrontel CH7003";		break;	case CH7004:		msg = "Chrontel CH7004";		break;	case CH7005:		msg = "Chrontel CH7005";		break;	case CH7006:		msg = "Chrontel CH7006";		break;	case CH7007:		msg = "Chrontel CH7007";		break;	case CH7008:		msg = "Chrontel CH7008";		break;	case SAA7102:		msg = "Philips SAA7102";		break;	case SAA7103:		msg = "Philips SAA7103";		break;	case SAA7104:		msg = "Philips SAA7104";		break;	case SAA7105:		msg = "Philips SAA7105";		break;	case BT868:		msg = "Brooktree/Conexant BT868";		break;	case BT869:		msg = "Brooktree/Conexant BT869";		break;	case CX25870:		msg = "Conexant CX25870";		break;	case CX25871:		msg = "Conexant CX25871";		break;	case NVIDIA:		msg = "Nvidia internal";		break;	default:		msg = "Unknown";		break;	}	LOG(2, ("%s TVout chip detected\n", msg));//	LOG(2,("primary_dvi: "));//	if (si->ps.primary_dvi) LOG(2,("present\n")); else LOG(2,("absent\n"));//	LOG(2,("secondary_dvi: "));//	if (si->ps.secondary_dvi) LOG(2,("present\n")); else LOG(2,("absent\n"));	LOG(2,("card memory_size: %dMb\n", si->ps.memory_size));	LOG(2,("laptop: "));	if (si->ps.laptop) LOG(2,("yes\n")); else LOG(2,("no\n"));	if (si->ps.tmds1_active)	{		LOG(2,("found DFP (digital flatpanel) on CRTC1; CRTC1 is "));		if (si->ps.slaved_tmds1) LOG(2,("slaved\n")); else LOG(2,("master\n"));		LOG(2,("panel width: %d, height: %d, aspect ratio: %1.2f\n",			si->ps.p1_timing.h_display, si->ps.p1_timing.v_display, si->ps.panel1_aspect));	}	if (si->ps.tmds2_active)	{		LOG(2,("found DFP (digital flatpanel) on CRTC2; CRTC2 is "));		if (si->ps.slaved_tmds2) LOG(2,("slaved\n")); else LOG(2,("master\n"));		LOG(2,("panel width: %d, height: %d, aspect ratio: %1.2f\n",			si->ps.p2_timing.h_display, si->ps.p2_timing.v_display, si->ps.panel2_aspect));	}	LOG(2,("monitor (output devices) setup matrix: $%02x\n", si->ps.monitors));	LOG(2,("INFO: end pinsdump.\n"));}