--- radeon_atombios_ori.c	Thu Jul 14 12:31:19 2011
+++ radeon_atombios.c	Mon Mar 26 15:30:17 2012
@@ -1313,6 +1313,8 @@
 		    return ATOM_NOT_IMPLEMENTED;
 	    }
 	case 2:
+	case 3:
+	case 4:
 	    switch (func) {
 		case GET_DEFAULT_ENGINE_CLOCK:
 		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
@@ -1327,8 +1329,8 @@
 				       .FirmwareInfo_V_1_2->ulMaxPixelClockPLL_Output) * 10;
 		    break;
 		case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_2->usMinPixelClockPLL_Output) * 10;
+		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
+				       .FirmwareInfo_V_1_2->ulMinPixelClockPLL_Output) * 10;
 		    break;
 		case GET_MAX_PIXEL_CLOCK_PLL_INPUT:
 		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
@@ -1345,82 +1347,6 @@
 		case GET_REF_CLOCK:
 		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
 				       .FirmwareInfo_V_1_2->usReferenceClock) * 10;
-		    break;
-		default:
-		    return ATOM_NOT_IMPLEMENTED;
-	    }
-	    break;
-	case 3:
-	    switch (func) {
-		case GET_DEFAULT_ENGINE_CLOCK:
-		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->ulDefaultEngineClock) * 10;
-		    break;
-		case GET_DEFAULT_MEMORY_CLOCK:
-		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->ulDefaultMemoryClock) * 10;
-		    break;
-		case GET_MAX_PIXEL_CLOCK_PLL_OUTPUT:
-		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->ulMaxPixelClockPLL_Output) * 10;
-		    break;
-		case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->usMinPixelClockPLL_Output) * 10;
-		    break;
-		case GET_MAX_PIXEL_CLOCK_PLL_INPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->usMaxPixelClockPLL_Input) * 10;
-		    break;
-		case GET_MIN_PIXEL_CLOCK_PLL_INPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->usMinPixelClockPLL_Input) * 10;
-		    break;
-		case GET_MAX_PIXEL_CLK:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->usMaxPixelClock) * 10;
-		    break;
-		case GET_REF_CLOCK:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_3->usReferenceClock) * 10;
-		    break;
-		default:
-		    return ATOM_NOT_IMPLEMENTED;
-	    }
-	    break;
-	case 4:
-	    switch (func) {
-		case GET_DEFAULT_ENGINE_CLOCK:
-		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->ulDefaultEngineClock) * 10;
-		    break;
-		case GET_DEFAULT_MEMORY_CLOCK:
-		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->ulDefaultMemoryClock) * 10;
-		    break;
-		case GET_MAX_PIXEL_CLOCK_PLL_INPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->usMaxPixelClockPLL_Input) * 10;
-		    break;
-		case GET_MIN_PIXEL_CLOCK_PLL_INPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->usMinPixelClockPLL_Input) * 10;
-		    break;
-		case GET_MAX_PIXEL_CLOCK_PLL_OUTPUT:
-		    *val = le32_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->ulMaxPixelClockPLL_Output) * 10;
-		    break;
-		case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->usMinPixelClockPLL_Output) * 10;
-		    break;
-		case GET_MAX_PIXEL_CLK:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->usMaxPixelClock) * 10;
-		    break;
-		case GET_REF_CLOCK:
-		    *val = le16_to_cpu(atomDataPtr->FirmwareInfo
-				       .FirmwareInfo_V_1_4->usReferenceClock) * 10;
 		    break;
 		default:
 		    return ATOM_NOT_IMPLEMENTED;