Jump to content

ATI HD framebuffer driver (10.5/10.6) with source code


dong
 Share

900 posts in this topic

Recommended Posts

I got my hands on my LCD display datasheet (LP154W01-TLxx), it's confirmed that used a 666RGB pixel format (18 bpp), not 888RGB (24 bpp).

 

I have diabolic LCD panel…

 

EDIT: New tests new discoveries ! I first realised that your 24bpp version didn't set the 24bpp correctly so I hardcoded it in the source to make sure it would set 24bpp. But the problem remained.

 

However, I noticed a graphic bug I didn't care about before with the shadows under the windows. Plus, there is a one pixel wide line at the left of the windows that is not as blue as the others (see pics), actually black is correct (not blue):

 

dscf2151.th.jpg dscf2153h.th.jpg dscf2154.th.jpg

 

All this to say that maybe the hardware configuration isn't in cause, 18bpp is correct, because some times the blue subpixel isn't completly lighten up. I still don't know what would cause this…

 

EDIT bis : I had such a hard getting this card to work with ATINDRV, I might have some Tiger's kext that could conflict with your driver. I'm extracting any graphics related file from a combo update to check that.

Link to comment
Share on other sites

Problem finally solved !

 

I completly forgot I was using Tiger's IONDRVSupport.kext, installing back Leopard's one solved the issue.

I'm very sorry I made you loose time because of such a dumb lapse of memory.

 

Conclusion, your framebuffer works just fine and is really wonderful. We just know now that it's not Tiger compatible (but do we care ?).

 

I'm impatient for improvements, and you can concentrate on more important fixes for other more common boards.

 

Thank you for your work, your time and your patience, and sorry again...

Link to comment
Share on other sites

Problem finally solved !

I completly forgot I was using Tiger's IONDRVSupport.kext, installing back Leopard's one solved the issue.

I'm glad that you finally get it sorted out. As you said, this is really a "hard" situation that we can ever imagine. :)
Link to comment
Share on other sites

Why folks are begging here please enable qE/CI

 

the developer is certainly doing a good job here and encouragement must be given , so that he can venture more. You must understand that this guy is giving hope to mobility hd users and some hd uses to get their display to work at native resolution. the QE/CI part can come later.

 

Kudos to you (the developer) sir for porting it.

Link to comment
Share on other sites

Hi dong, thank you for all your efforts!!

 

We are experiencing some issues with the frambuffer driver with our radeon HD 2400 xt, when we boot we have a blank internal screen output. There is the result of our dmesg and the dump of radeondump:

 

dmesg:

 

e NAME: LVDS GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x210f Type: 0x2 ObjID: 0xf ENUM: 0x1 NAME: INTERNAL_LVTM1
  DeviceIndex: 0x1
 DisplaPathTable[1]: size: 10 DeviceTag: 0x4 ConnObjId: 0x310f NAME: 7PIN_DIN GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2116 Type: 0x2 ObjID: 0x16 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC2
  DeviceIndex: 0x2
 DisplaPathTable[2]: size: 10 DeviceTag: 0x1 ConnObjId: 0x3105 NAME: VGA GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2115 Type: 0x2 ObjID: 0x15 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC1
  DeviceIndex: 0x0
 DisplaPathTable[3]: size: 10 DeviceTag: 0x8 ConnObjId: 0x3101 NAME: SINGLE_LINK_DVI_I GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2113 Type: 0x2 ObjID: 0x13 ENUM: 0x1 NAME: INTERNAL_KLDSCP_TMDS1
  DeviceIndex: 0x3
Call to AtomBIOS Get Output Info succeeded
Output: LVDS[0x 4] - adding devices:
Output: DAC B[0x 2] - adding devices:
Output: DAC A[0x 1] - adding devices:
Output: TMDS A[0x 3] - adding devices:
DACSense: DAC: 0x00
DACSense: DAC: 0x00
RHDHPDCheck returned: 0 mask: 1
rhdAtomLvdsTimings: LVDS Modeline: 1440x900  96310  1440 (1440) 1504 1536 (1760) 1760  900 (900) 903 906 (912) 912
Call to AtomBIOS Get Panel Mode succeeded
Query for AtomBIOS Get Panel EDID: failed
Crtc[0]: found native mode from Monitor[LVDS Panel]: 
Modeline "1440x900"  96  1440 1504 1536 1760  900 903 906 912
Connector "PANEL" uses Monitor "LVDS Panel":
DxModeValid: CRTC 1
Listing modesetting layout:
CRTC 1: tied to PLL 1 and LUT A:
   Outputs: LVDS (PANEL)
CRTC 2: unused
   Unused Outputs: DAC B, DAC A, TMDS A
Validating Modes from Monitor "LVDS Panel" on "PANEL"
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
Using 126x109 DPI.
Using 1440x1024 Framebuffer with 1472 pitch
Free FB offset 0x00000000 (size = 0x10000000)
Display resolutions detected: 
1440 X 900 @ 60Hz
1280 X 1024 @ 75Hz
1024 X 768 @ 60Hz
800 X 600 @ 60Hz
640 X 480 @ 60Hz
D1CRTCDisable: 0 loops
LVDSPower(LVDS,POWER_RESET)
Setting up "1024x768" (1024x768@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1024[1024]x768@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1024x768 - OverScan: T: 0 B: 0 R: 0 L: 0
Full
RHDPLLSet: Setting PLL 1 to 65000kHz
PLL Calculation: 65000kHz = (((27000 / 0x1B) * 0x28A) / 0xA) (0kHz off)
PLL1Calibrate: lock in 210 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
LVDSSetBacklight: trying to set BL_MOD_LEVEL to: 0
set_display_mode_and_vram failed
VoodooHDAEngine[0x5693600]::peformFormatChange(0x5693a00, 0x3fbffbd8, 0)
channelSetFormat(0x10000010) for channel 1 returned 0
buffer size: 65536, channels: 2, bit depth: 16, # samp. frames: 16384
VoodooHDAEngine[0x55b7e00]::volumeChanged(0x5589000, 75, 100)
VoodooHDADevice[0x48b5800]::audioCtlOssMixerSet(0x5546584, 0, 100, 75)
VoodooHDAEngine[0x55b7e00]::volumeChanged(0x5693800, 75, 100)
VoodooHDADevice[0x48b5800]::audioCtlOssMixerSet(0x5546584, 0, 100, 100)
VoodooHDAEngine[0x55b7e00]::peformFormatChange(0x5512d00, 0x34e47bd8, 0)
channelSetFormat(0x10001000) for channel 0 returned 0
buffer size: 65536, channels: 2, bit depth: 24, # samp. frames: 8192
D1CRTCDisable: 0 loops
Setting MC from 0x00000000 to 0xD0000000 [size 0x0F000000]
Setting up "1440x900" (1440x900@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1440[1472]x900@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1440x900 - OverScan: T: 0 B: 0 R: 0 L: 0
None
RHDPLLSet: Setting PLL 1 to 96310kHz
PLL Calculation: 96310kHz = (((27000 / 0x20) * 0x31F) / 0x7) (2kHz off)
PLL1Calibrate: lock in 255 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
LVDSSetBacklight: trying to set BL_MOD_LEVEL to: 0
set_display_mode_and_vram failed

 

Radeondump:

Found a device of class RadeonDump: IOService:/AppleACPIPlatformExpert/PCI0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX@0/RadeonHD/RadeonDump

Mapped IO at 0x3fe95000 (size 0x00010000)
FB at 0xd0000000 (size 0x10000000) mapped to 0x400f7000
Card not in database: 0x94C8:0x1025:0x011F; using generic modesetting.
   If - and only if - your card does not work or does not work optimally
   please contact radeonhd@opensuse.org to help rectify this.
   Use the subject: 0x94C8:0x1025:0x011F: <name of board>
   and *please* describe the problems you are seeing
   in your message.
Detected an M74 on an unidentified card
PCIE Card Detected
Getting BIOS copy from legacy address
ATOM BIOS Rom: 
   SubsystemVendorID: 0x1002 SubsystemID: 0x94c8
   IOBaseAddress: 0x2000
   Filename: BR26315.bin 
   BIOS Bootup Message: 
Wistron/Acer MXM M74M GDDR2 256MB 300e/400m                                 

Call to AtomBIOS Init succeeded
Analog TV Default Mode: 1
Found default TV Mode NTSC
VideoRAM: 262144 kByte
Framebuffer space used by Firmware (kb): 16
Start of VRAM area used by Firmware: 0xfffc000
AtomBIOS requests 16kB of VRAM scratch space
AtomBIOS VRAM scratch base: 0xfffc000
Call to AtomBIOS Set FB Space succeeded
Default Engine Clock: 300000
Default Memory Clock: 400000
Maximum Pixel ClockPLL Frequency Output: 1200000
Minimum Pixel ClockPLL Frequency Output: 0
Maximum Pixel ClockPLL Frequency Input: 13500
Minimum Pixel ClockPLL Frequency Input: 1000
Maximum Pixel Clock: 400000
Reference Clock: 27000
Reference Clock: 27000
GPIO_I2C_Clk_Mask: 0x1f90
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f90
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 0" initialized.
GPIO_I2C_Clk_Mask: 0x1f94
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f94
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 1" initialized.
GPIO_I2C_Clk_Mask: 0x1f98
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f98
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 2" initialized.
GPIO_I2C_Clk_Mask: 0x1f80
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f80
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 3" initialized.
Detected VGA mode.
MC FBIntAddress: 0xD0000000, size: 251658240.
Minimum Pixel ClockPLL Frequency Output: 0
Maximum Pixel ClockPLL Frequency Output: 1200000
Maximum Pixel Clock: 400000
Reference Clock: 27000
ObjectTable - size: 244, BIOS - size: 65536 TableOffset: 60 object_header_end: 304
Object: ID: 310e name: LVDS type: 3 id: e
* SrcObject: ID: 210f name: INTERNAL_LVTM1 enum: 1
- Record Type: 1
  rhdAtomDDCFromI2CRecord:  I2C Record: GPIO_ID[4] EngineID: 1 I2CAddr: 0
Found DDC GPIO Index: 4
- Record Type: 4
  NumberOfDevice: 1
  Devices: LCD1
Object: ID: 310f name: 7PIN_DIN type: 3 id: f
* SrcObject: ID: 2116 name: INTERNAL_KLDSCP_DAC2 enum: 1
- Record Type: 4
  NumberOfDevice: 1
  Devices: TV1
Object: ID: 3105 name: VGA type: 3 id: 5
* SrcObject: ID: 2115 name: INTERNAL_KLDSCP_DAC1 enum: 1
- Record Type: 1
  rhdAtomDDCFromI2CRecord:  I2C Record: HW_Line[0] EngineID: 1 I2CAddr: 0
Found DDC GPIO Index: 0
- Record Type: 4
  NumberOfDevice: 1
  Devices: CRT1
Object: ID: 3101 name: SINGLE_LINK_DVI_I type: 3 id: 1
* SrcObject: ID: 2113 name: INTERNAL_KLDSCP_TMDS1 enum: 1
- Record Type: 1
  rhdAtomDDCFromI2CRecord:  I2C Record: HW_Line[1] EngineID: 1 I2CAddr: 0
Found DDC GPIO Index: 1
- Record Type: 2
  rhdAtomHPDFromRecord:  HPD Record: GPIO ID: 6 Plugged_PinState: 0
  rhdAtomParseGPIOLutForHPD: GPIO PinID: 6 Index: 1fa5 Shift: 0
- Record Type: 4
  NumberOfDevice: 1
  Devices: DFP1
Connector[0] {RHD_CONNECTOR_PANEL, "LVDS LCD1", RHD_DDC_4, RHD_HPD_NONE, { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE } }
Connector[1] {RHD_CONNECTOR_TV, "7PIN_DIN TV1", RHD_DDC_NONE, RHD_HPD_NONE, { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE } }
Connector[2] {RHD_CONNECTOR_VGA, "VGA CRT1", RHD_DDC_0, RHD_HPD_NONE, { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE } }
Connector[3] {RHD_CONNECTOR_DVI_SINGLE, "SINGLE_LINK_DVI_Iõy DFP1", RHD_DDC_1, RHD_HPD_0, { RHD_OUTPUT_TMDSA, RHD_OUTPUT_NONE } }
Call to AtomBIOS Get Connectors succeeded
RHDConnectorsInit: 0 (LVDS LCD1) type 4, ddc 4, hpd 0
LVDS SEQ Dig onto DE: 30
LVDS SEQ DE to BL: 360
LVDS Off Delay: 500
LVDS Duallink: 0x1
LVDS 24Bit: 0x0
LVDS FPDI: 0x0
LVDS Temporal Dither : 0x1
LVDS Spatial Dither : 0x0
LVDS Grey Level: 0x3
AtomBIOS returned 3 Grey Levels
Detected a 18bit dual link panel.
Printing LVDS paramaters:
   MacroControl: 0x02030509
   TXClockPattern: 0x0063
   PowerDigToDE: 0x001E
   PowerDEToBL: 0x0168
   OffDelay: 0x01F4
   PowerRefDiv: 0x0F9F
   BlonRefDiv: 0x0000
Get BL level: 0x0
Attaching Output LVDS to Connector PANEL
RHDConnectorsInit: 1 (7PIN_DIN TV1) type 5, ddc 255, hpd 0
Attaching Output DAC B to Connector TV 7PIN_DIN
RHDConnectorsInit: 2 (VGA CRT1) type 1, ddc 0, hpd 0
Attaching Output DAC A to Connector VGA 1
RHDConnectorsInit: 3 (SINGLE_LINK_DVI_Iõy DFP1) type 3, ddc 1, hpd 1
Attaching Output TMDS A to Connector DVI-D 1
ObjectTable - size: 244, BIOS - size: 65536 TableOffset: 60 object_header_end: 304
DisplayPathObjectTable: entries: 4 version: 1
 DisplaPathTable[0]: size: 10 DeviceTag: 0x2 ConnObjId: 0x310e NAME: LVDS GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x210f Type: 0x2 ObjID: 0xf ENUM: 0x1 NAME: INTERNAL_LVTM1
  DeviceIndex: 0x1
 DisplaPathTable[1]: size: 10 DeviceTag: 0x4 ConnObjId: 0x310f NAME: 7PIN_DIN GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2116 Type: 0x2 ObjID: 0x16 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC2
  DeviceIndex: 0x2
 DisplaPathTable[2]: size: 10 DeviceTag: 0x1 ConnObjId: 0x3105 NAME: VGA GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2115 Type: 0x2 ObjID: 0x15 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC1
  DeviceIndex: 0x0
 DisplaPathTable[3]: size: 10 DeviceTag: 0x8 ConnObjId: 0x3101 NAME: SINGLE_LINK_DVI_I GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2113 Type: 0x2 ObjID: 0x13 ENUM: 0x1 NAME: INTERNAL_KLDSCP_TMDS1
  DeviceIndex: 0x3
Call to AtomBIOS Get Output Info succeeded
Output: LVDS[0x 4] - adding devices:
Output: DAC B[0x 2] - adding devices:
Output: DAC A[0x 1] - adding devices:
Output: TMDS A[0x 3] - adding devices:
DACSense: DAC: 0x00
DACSense: DAC: 0x00
RHDHPDCheck returned: 0 mask: 1
rhdAtomLvdsTimings: LVDS Modeline: 1440x900  96310  1440 (1440) 1504 1536 (1760) 1760  900 (900) 903 906 (912) 912
Call to AtomBIOS Get Panel Mode succeeded
Query for AtomBIOS Get Panel EDID: failed
Crtc[0]: found native mode from Monitor[LVDS Panel]: 
Modeline "1440x900"  96  1440 1504 1536 1760  900 903 906 912
Connector "PANEL" uses Monitor "LVDS Panel":
DxModeValid: CRTC 1
Listing modesetting layout:
CRTC 1: tied to PLL 1 and LUT A:
   Outputs: LVDS (PANEL)
CRTC 2: unused
   Unused Outputs: DAC B, DAC A, TMDS A
Validating Modes from Monitor "LVDS Panel" on "PANEL"
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
Using 126x109 DPI.
Using 1440x1024 Framebuffer with 1472 pitch
Free FB offset 0x00000000 (size = 0x10000000)
Display resolutions detected: 
1440 X 900 @ 60Hz
1280 X 1024 @ 75Hz
1024 X 768 @ 60Hz
800 X 600 @ 60Hz
640 X 480 @ 60Hz
D1CRTCDisable: 0 loops
LVDSPower(LVDS,POWER_RESET)
Setting up "1024x768" (1024x768@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1024[1024]x768@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1024x768 - OverScan: T: 0 B: 0 R: 0 L: 0
Full
RHDPLLSet: Setting PLL 1 to 65000kHz
PLL Calculation: 65000kHz = (((27000 / 0x1B) * 0x28A) / 0xA) (0kHz off)
PLL1Calibrate: lock in 210 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
LVDSSetBacklight: trying to set BL_MOD_LEVEL to: 0
D1CRTCDisable: 0 loops
Setting MC from 0x00000000 to 0xD0000000 [size 0x0F000000]
Setting up "1440x900" (1440x900@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1440[1472]x900@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1440x900 - OverScan: T: 0 B: 0 R: 0 L: 0
None
RHDPLLSet: Setting PLL 1 to 96310kHz
PLL Calculation: 96310kHz = (((27000 / 0x20) * 0x31F) / 0x7) (2kHz off)
PLL1Calibrate: lock in 255 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
LVDSSetBacklight: trying to set BL_MOD_LEVEL to: 0

 

Have you any clue for our issue?

 

 

Thank you so much.

Link to comment
Share on other sites

LVDSSetBacklight: trying to set BL_MOD_LEVEL to: 0
This means you should do what lebidou suggested. It looks like the driver should avoid set BL_MOD_LEVEL to a too low value.

 

By the way, could you put the log in a codebox? That would make it easier to read.

Link to comment
Share on other sites

I'm sorry, My English is very bad, so I am writing through a translator Google.

In my notebook ATI HD2400 ID 0x94c8. Prior to the installation RadeonHD.kext have a "mosaic" on screen, and I can boot only with -x option. After installing the kext I get a black screen ... 

Many thanks to the author for his development, I hope that my card would ever work. I would be grateful for any advice on starting cards.

 

If you can explain in detail or give a link where I can read.

P.S. I know (in the amount of system administrator) Windows, Linux (Ubuntu), a little more remember the Amiga OS. Mac OS X, I just start to explore...

Link to comment
Share on other sites

In my notebook ATI HD2400 ID 0x94c8, and Leopard 10.5.7. Prior to the installation RadeonHD.kext have a "mosaic" on screen, and I can boot only with -x option. After installing the kext I get a black screen ... 

...

 

And try to remove also ATIRadeonX2000.kext cause your card's ID is in ; that's why you have mozaic screen

Link to comment
Share on other sites

In my notebook ATI HD2400 ID 0x94c8, and Leopard 10.5.7. Prior to the installation RadeonHD.kext have a "mosaic" on screen, and I can boot only with -x option. After installing the kext I get a black screen ... 
You should first remove any graphic enabler. I guess you have one of such thing since you can only boot with -x. Also you can try set "enableBacklight" to false.
Link to comment
Share on other sites

Who ever made this, THANK YOU SO MUCH!!! You have made a a WORK ATI Mobility 2600 HD driver. YOU ARE THE GOD.

 

YES THATS RIGHT A WORKING M2600 HD driver w/ full 3d (for me anyway)

 

Again thanks.

Link to comment
Share on other sites

You should first remove any graphic enabler. I guess you have one of such thing since you can only boot with -x. Also you can try set "enableBacklight" to false.

After reading this topic, Mac OS has been installed at all without drivers ATI (when installed, I never said to install the drivers for video). The result is the same.

 

Link to comment
Share on other sites

This means you should do what lebidou suggested. It looks like the driver should avoid set BL_MOD_LEVEL to a too low value.

 

By the way, could you put the log in a codebox? That would make it easier to read.

 

Thanks Dong. Seem's that Backlight setting to false works well, this is my radeondump now:

 

Dmesg:

yPathObjectTable: entries: 4 version: 1
 DisplaPathTable[0]: size: 10 DeviceTag: 0x2 ConnObjId: 0x310e NAME: LVDS GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x210f Type: 0x2 ObjID: 0xf ENUM: 0x1 NAME: INTERNAL_LVTM1
  DeviceIndex: 0x1
 DisplaPathTable[1]: size: 10 DeviceTag: 0x4 ConnObjId: 0x310f NAME: 7PIN_DIN GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2116 Type: 0x2 ObjID: 0x16 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC2
  DeviceIndex: 0x2
 DisplaPathTable[2]: size: 10 DeviceTag: 0x1 ConnObjId: 0x3105 NAME: VGA GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2115 Type: 0x2 ObjID: 0x15 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC1
  DeviceIndex: 0x0
 DisplaPathTable[3]: size: 10 DeviceTag: 0x8 ConnObjId: 0x3101 NAME: SINGLE_LINK_DVI_I GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2113 Type: 0x2 ObjID: 0x13 ENUM: 0x1 NAME: INTERNAL_KLDSCP_TMDS1
  DeviceIndex: 0x3
Call to AtomBIOS Get Output Info succeeded
Output: LVDS[0x 4] - adding devices:
Output: DAC B[0x 2] - adding devices:
Output: DAC A[0x 1] - adding devices:
Output: TMDS A[0x 3] - adding devices:
DACSense: DAC: 0x00
DACSense: DAC: 0x00
RHDHPDCheck returned: 0 mask: 1
rhdAtomLvdsTimings: LVDS Modeline: 1440x900  96310  1440 (1440) 1504 1536 (1760) 1760  900 (900) 903 906 (912) 912
Call to AtomBIOS Get Panel Mode succeeded
Query for AtomBIOS Get Panel EDID: failed
Crtc[0]: found native mode from Monitor[LVDS Panel]: 
Modeline "1440x900"  96  1440 1504 1536 1760  900 903 906 912
Connector "PANEL" uses Monitor "LVDS Panel":
DxModeValid: CRTC 1
Listing modesetting layout:
CRTC 1: tied to PLL 1 and LUT A:
Outputs: LVDS (PANEL)
CRTC 2: unused
Unused Outputs: DAC B, DAC A, TMDS A
Validating Modes from Monitor "LVDS Panel" on "PANEL"
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
Using 126x109 DPI.
Using 1440x1024 Framebuffer with 1472 pitch
Free FB offset 0x00000000 (size = 0x10000000)
Display resolutions detected: 
1440 X 900 @ 60Hz
1280 X 1024 @ 75Hz
1024 X 768 @ 60Hz
800 X 600 @ 60Hz
640 X 480 @ 60Hz
D1CRTCDisable: 0 loops
LVDSPower(LVDS,POWER_RESET)
Setting up "1024x768" (1024x768@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1024[1024]x768@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1024x768 - OverScan: T: 0 B: 0 R: 0 L: 0
Full
RHDPLLSet: Setting PLL 1 to 65000kHz
PLL Calculation: 65000kHz = (((27000 / 0x1B) * 0x28A) / 0xA) (0kHz off)
PLL1Calibrate: lock in 210 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
set_display_mode_and_vram failed
VoodooHDAEngine[0x5575a00]::peformFormatChange(0x5575600, 0x358bfbd8, 0)
channelSetFormat(0x10000010) for channel 1 returned 0
buffer size: 65536, channels: 2, bit depth: 16, # samp. frames: 16384
VoodooHDAEngine[0x5571500]::volumeChanged(0x5575d00, 75, 100)
VoodooHDADevice[0x482b400]::audioCtlOssMixerSet(0x5507384, 0, 100, 75)
VoodooHDAEngine[0x5571500]::volumeChanged(0x5575c00, 75, 100)
VoodooHDADevice[0x482b400]::audioCtlOssMixerSet(0x5507384, 0, 100, 100)
VoodooHDAEngine[0x5571500]::peformFormatChange(0x5571300, 0x35957bd8, 0)
channelSetFormat(0x10001000) for channel 0 returned 0
buffer size: 65536, channels: 2, bit depth: 24, # samp. frames: 8192
D1CRTCDisable: 0 loops
Setting MC from 0x00000000 to 0xD0000000 [size 0x0F000000]
Setting up "1440x900" (1440x900@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1440[1472]x900@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1440x900 - OverScan: T: 0 B: 0 R: 0 L: 0
None
RHDPLLSet: Setting PLL 1 to 96310kHz
PLL Calculation: 96310kHz = (((27000 / 0x20) * 0x31F) / 0x7) (2kHz off)
PLL1Calibrate: lock in 255 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
set_display_mode_and_vram failed

 

 

Radeondump:

Found a device of class RadeonDump: IOService:/AppleACPIPlatformExpert/PCI0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX@0/RadeonHD/RadeonDump

Mapped IO at 0x3616d000 (size 0x00010000)
FB at 0xd0000000 (size 0x10000000) mapped to 0x36473000
Card not in database: 0x94C8:0x1025:0x011F; using generic modesetting.
If - and only if - your card does not work or does not work optimally
please contact radeonhd@opensuse.org to help rectify this.
Use the subject: 0x94C8:0x1025:0x011F: <name of board>
and *please* describe the problems you are seeing
in your message.
Detected an M74 on an unidentified card
PCIE Card Detected
Getting BIOS copy from legacy address
ATOM BIOS Rom: 
SubsystemVendorID: 0x1002 SubsystemID: 0x94c8
IOBaseAddress: 0x2000
Filename: BR26315.bin 
BIOS Bootup Message: 
Wistron/Acer MXM M74M GDDR2 256MB 300e/400m                                 

Call to AtomBIOS Init succeeded
Analog TV Default Mode: 1
Found default TV Mode NTSC
VideoRAM: 262144 kByte
Framebuffer space used by Firmware (kb): 16
Start of VRAM area used by Firmware: 0xfffc000
AtomBIOS requests 16kB of VRAM scratch space
AtomBIOS VRAM scratch base: 0xfffc000
Call to AtomBIOS Set FB Space succeeded
Default Engine Clock: 300000
Default Memory Clock: 400000
Maximum Pixel ClockPLL Frequency Output: 1200000
Minimum Pixel ClockPLL Frequency Output: 0
Maximum Pixel ClockPLL Frequency Input: 13500
Minimum Pixel ClockPLL Frequency Input: 1000
Maximum Pixel Clock: 400000
Reference Clock: 27000
Reference Clock: 27000
GPIO_I2C_Clk_Mask: 0x1f90
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f90
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 0" initialized.
GPIO_I2C_Clk_Mask: 0x1f94
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f94
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 1" initialized.
GPIO_I2C_Clk_Mask: 0x1f98
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f98
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 2" initialized.
GPIO_I2C_Clk_Mask: 0x1f80
GPIO_I2C_Clk_Mask_Shift: 0x0
GPIO_I2C_Data_Mask: 0x1f80
GPIO_I2C_Data_Mask_Shift: 0x8
I2C bus "RHD I2C line 3" initialized.
Detected VGA mode.
MC FBIntAddress: 0xD0000000, size: 251658240.
Minimum Pixel ClockPLL Frequency Output: 0
Maximum Pixel ClockPLL Frequency Output: 1200000
Maximum Pixel Clock: 400000
Reference Clock: 27000
ObjectTable - size: 244, BIOS - size: 65536 TableOffset: 60 object_header_end: 304
Object: ID: 310e name: LVDS type: 3 id: e
* SrcObject: ID: 210f name: INTERNAL_LVTM1 enum: 1
- Record Type: 1
  rhdAtomDDCFromI2CRecord:  I2C Record: GPIO_ID[4] EngineID: 1 I2CAddr: 0
Found DDC GPIO Index: 4
- Record Type: 4
  NumberOfDevice: 1
  Devices: LCD1
Object: ID: 310f name: 7PIN_DIN type: 3 id: f
* SrcObject: ID: 2116 name: INTERNAL_KLDSCP_DAC2 enum: 1
- Record Type: 4
  NumberOfDevice: 1
  Devices: TV1
Object: ID: 3105 name: VGA type: 3 id: 5
* SrcObject: ID: 2115 name: INTERNAL_KLDSCP_DAC1 enum: 1
- Record Type: 1
  rhdAtomDDCFromI2CRecord:  I2C Record: HW_Line[0] EngineID: 1 I2CAddr: 0
Found DDC GPIO Index: 0
- Record Type: 4
  NumberOfDevice: 1
  Devices: CRT1
Object: ID: 3101 name: SINGLE_LINK_DVI_I type: 3 id: 1
* SrcObject: ID: 2113 name: INTERNAL_KLDSCP_TMDS1 enum: 1
- Record Type: 1
  rhdAtomDDCFromI2CRecord:  I2C Record: HW_Line[1] EngineID: 1 I2CAddr: 0
Found DDC GPIO Index: 1
- Record Type: 2
  rhdAtomHPDFromRecord:  HPD Record: GPIO ID: 6 Plugged_PinState: 0
  rhdAtomParseGPIOLutForHPD: GPIO PinID: 6 Index: 1fa5 Shift: 0
- Record Type: 4
  NumberOfDevice: 1
  Devices: DFP1
Connector[0] {RHD_CONNECTOR_PANEL, "LVDS LCD1", RHD_DDC_4, RHD_HPD_NONE, { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE } }
Connector[1] {RHD_CONNECTOR_TV, "7PIN_DINy-value TV1", RHD_DDC_NONE, RHD_HPD_NONE, { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE } }
Connector[2] {RHD_CONNECTOR_VGA, "VGA CRT1", RHD_DDC_0, RHD_HPD_NONE, { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE } }
Connector[3] {RHD_CONNECTOR_DVI_SINGLE, "SINGLE_LINK_DVI_I DFP1", RHD_DDC_1, RHD_HPD_0, { RHD_OUTPUT_TMDSA, RHD_OUTPUT_NONE } }
Call to AtomBIOS Get Connectors succeeded
RHDConnectorsInit: 0 (LVDS LCD1) type 4, ddc 4, hpd 0
LVDS SEQ Dig onto DE: 30
LVDS SEQ DE to BL: 360
LVDS Off Delay: 500
LVDS Duallink: 0x1
LVDS 24Bit: 0x0
LVDS FPDI: 0x0
LVDS Temporal Dither : 0x1
LVDS Spatial Dither : 0x0
LVDS Grey Level: 0x3
AtomBIOS returned 3 Grey Levels
Detected a 18bit dual link panel.
Printing LVDS paramaters:
MacroControl: 0x02030509
TXClockPattern: 0x0063
PowerDigToDE: 0x001E
PowerDEToBL: 0x0168
OffDelay: 0x01F4
PowerRefDiv: 0x0F9F
BlonRefDiv: 0x0000
Get BL level: 0x0
Attaching Output LVDS to Connector PANEL
RHDConnectorsInit: 1 (7PIN_DINy-value TV1) type 5, ddc 255, hpd 0
Attaching Output DAC B to Connector TV 7PIN_DINy-value
RHDConnectorsInit: 2 (VGA CRT1) type 1, ddc 0, hpd 0
Attaching Output DAC A to Connector VGA 1
RHDConnectorsInit: 3 (SINGLE_LINK_DVI_I DFP1) type 3, ddc 1, hpd 1
Attaching Output TMDS A to Connector DVI-D 1
ObjectTable - size: 244, BIOS - size: 65536 TableOffset: 60 object_header_end: 304
DisplayPathObjectTable: entries: 4 version: 1
 DisplaPathTable[0]: size: 10 DeviceTag: 0x2 ConnObjId: 0x310e NAME: LVDS GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x210f Type: 0x2 ObjID: 0xf ENUM: 0x1 NAME: INTERNAL_LVTM1
  DeviceIndex: 0x1
 DisplaPathTable[1]: size: 10 DeviceTag: 0x4 ConnObjId: 0x310f NAME: 7PIN_DIN GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2116 Type: 0x2 ObjID: 0x16 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC2
  DeviceIndex: 0x2
 DisplaPathTable[2]: size: 10 DeviceTag: 0x1 ConnObjId: 0x3105 NAME: VGA GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2115 Type: 0x2 ObjID: 0x15 ENUM: 0x1 NAME: INTERNAL_KLDSCP_DAC1
  DeviceIndex: 0x0
 DisplaPathTable[3]: size: 10 DeviceTag: 0x8 ConnObjId: 0x3101 NAME: SINGLE_LINK_DVI_I GPUObjId: 0x1100
  GraphicsObj[0] ID: 0x2113 Type: 0x2 ObjID: 0x13 ENUM: 0x1 NAME: INTERNAL_KLDSCP_TMDS1
  DeviceIndex: 0x3
Call to AtomBIOS Get Output Info succeeded
Output: LVDS[0x 4] - adding devices:
Output: DAC B[0x 2] - adding devices:
Output: DAC A[0x 1] - adding devices:
Output: TMDS A[0x 3] - adding devices:
DACSense: DAC: 0x00
DACSense: DAC: 0x00
RHDHPDCheck returned: 0 mask: 1
rhdAtomLvdsTimings: LVDS Modeline: 1440x900  96310  1440 (1440) 1504 1536 (1760) 1760  900 (900) 903 906 (912) 912
Call to AtomBIOS Get Panel Mode succeeded
Query for AtomBIOS Get Panel EDID: failed
Crtc[0]: found native mode from Monitor[LVDS Panel]: 
Modeline "1440x900"  96  1440 1504 1536 1760  900 903 906 912
Connector "PANEL" uses Monitor "LVDS Panel":
DxModeValid: CRTC 1
Listing modesetting layout:
CRTC 1: tied to PLL 1 and LUT A:
Outputs: LVDS (PANEL)
CRTC 2: unused
Unused Outputs: DAC B, DAC A, TMDS A
Validating Modes from Monitor "LVDS Panel" on "PANEL"
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
FUNCTION: DxFBValid: CRTC 1
FUNCTION: DxFBValid: CRTC 2
Using 126x109 DPI.
Using 1440x1024 Framebuffer with 1472 pitch
Free FB offset 0x00000000 (size = 0x10000000)
Display resolutions detected: 
1440 X 900 @ 60Hz
1280 X 1024 @ 75Hz
1024 X 768 @ 60Hz
800 X 600 @ 60Hz
640 X 480 @ 60Hz
D1CRTCDisable: 0 loops
LVDSPower(LVDS,POWER_RESET)
Setting up "1024x768" (1024x768@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1024[1024]x768@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1024x768 - OverScan: T: 0 B: 0 R: 0 L: 0
Full
RHDPLLSet: Setting PLL 1 to 65000kHz
PLL Calculation: 65000kHz = (((27000 / 0x1B) * 0x28A) / 0xA) (0kHz off)
PLL1Calibrate: lock in 210 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)
D1CRTCDisable: 0 loops
Setting MC from 0x00000000 to 0xD0000000 [size 0x0F000000]
Setting up "1440x900" (1440x900@60Hz)
FUNCTION: DxFBSet: CRTC 1 (1440[1472]x900@32bpp)  +0x0 )
FUNCTION: DxModeSet: CRTC 1
FUNCTION: DxScaleSet: CRTC 1 viewport: 1440x900 - OverScan: T: 0 B: 0 R: 0 L: 0
None
RHDPLLSet: Setting PLL 1 to 96310kHz
PLL Calculation: 96310kHz = (((27000 / 0x20) * 0x31F) / 0x7) (2kHz off)
PLL1Calibrate: lock in 255 loops
Shutting down DAC B
DACPower(DAC B,POWER_SHUTDOWN)
Shutting down DAC A
DACPower(DAC A,POWER_SHUTDOWN)
Shutting down TMDS A
TMDSAPower(TMDS A,POWER_SHUTDOWN)
LVDSPower(LVDS,POWER_ON)

 

The problem now is a "fuzzy" screen, i think is problem of the ATIRadeonX2000.kext.

 

I deleted this Extension and boot with -f flag and the result is a Kernel Panic.

 

Is there any log file or registry that i can check to see what causes the panic?

 

Thank you for all your efforts!!

Link to comment
Share on other sites

The problem now is a "fuzzy" screen, i think is problem of the ATIRadeonX2000.kext.I deleted this Extension and boot with -f flag and the result is a Kernel Panic.
If you are using 10.6, -f is not enough to rebuild the cache. Try boot with -s, touch the directory: /System/Library/Extensions, then reboot.
Link to comment
Share on other sites

dong, iI've done some research, talked to omni and etc.

 

You need to use IOFramebuffer as super of RadeonHD, not IONDRVFramebuffer, iondrvfb is legacy thing

 

also, X2000.kext uses those functions from framebuffer - getCurrentDisplayMode and GetPixelInformation, you can find examples of it in IONDRVFramebuffer class, maybe bad answer from those funcs result in no qe/ci for rhd and mouse tearings with X1000.kext

Link to comment
Share on other sites

dong, iI've done some research, talked to omni and etc.

 

You need to use IOFramebuffer as super of RadeonHD, not IONDRVFramebuffer, iondrvfb is legacy thing

 

also, X2000.kext uses those functions from framebuffer - getCurrentDisplayMode and GetPixelInformation, you can find examples of it in IONDRVFramebuffer class, maybe bad answer from those funcs result in no qe/ci for rhd and mouse tearings with X1000.kext

 

Hello,

 

I thought I "retired" from this and went to become an observer, but alas, who can say "No" to netkas, after all he's done for us. :)

 

So...this is just how I recall the things. I might be wrong as it's been awhile, but for what's it worth...

 

As I told netkas earlier, the IONDRVFramebuffer is a legacy superclass, relic from the old days when Mac ATI cards had a ROM containing functions necessary for initialization and use of the frame buffer.

 

Most of the NDRV then deals with calling the ROM, getting those functions and running them, beside some other things. Thats' why there are those doTHIS or doTHAT functions. At some point in time I did experiment with trying to use NDRV but that was just a dead-end.

 

Why is Apple still using NDRV, I don't know. Maybe because that's the path they've gone for a long time and since it works they simply carry on. But I think there must be a switch going on to the new IOFramebuffer superclass, perhaps we are seeing that in the SL's ATI *Controller.kexts.

 

In any case, I've took a quick glance at DONG's work and I believe that direction really needs to change to IOFramebuffer. Caveat is that it might not work with the rest of the files available (the ATI IOAccelerator or the QE/CI as most people call it) and that would need to be implemented as well. Or, it might work, just like it did in the Callisto case.

 

Alternative is to stick with NDRV as DONG did, which is not necessarily bad since Apple themselves are still using it. I just feel that NDRV has to go as it's legacy, imho, and as I conjectured, Apple might be getting rid of it starting with SL.

 

The "tearing" issue stems from the lack of hardware cursor implementation. I see DONG has some code for it in the source, at the end of RadeonHD.cpp, but it is commented out. Perhaps it is not working well or crashing or what not but that part is necessary, in my opinion, to solve the tearing problem.

 

I never had a chance to fully write it for Callisto as the project ran out of its steam (for me). Maybe there is a way to "marry" the current RadeonHD work and the existing IOAccelerators so tearing does not happen, or is significantly reduced, but I can't say - I did not look into it further.

 

I hope these random thoughts will help out in some way.

 

Thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...