Jump to content

I think I have found something,need help


AlexanderZhang
 Share

7 posts in this topic

Recommended Posts

Hi, Slice.

I have a asus laptop with Ati Mobility HD 2600 working with internal LCD on 1024x768. ;)

and then i tested your RadeonDumpL and RadeonPCI.kext.

I think there is a bug with IOGraphicsFamily.kext to find Internal LCD's edid.(Maybe the bug is i2c command)

in my case,

without Natit and ATINDRV I found the edid for my CRT not Internal LCD(1024x768)

with Natit and ATINDRV I also found the edid for my CRT(QE supported)

Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P1@1/IOPCI2PCIBridge/VGA@0/RadeonPCI

it matched on name "display"

Card device id: 0x9581

Start I2C dump

EDID at DDC 0:

0x0000: 00FFFFFFFFFFFF000609059889050000

0x0010: 260B0103081F17BEEA039EA552469724

0x0020: 10474FAFCF0045596159A940A9450101

0x0030: 010101010101EA240060410028303060

0x0040: 130036E610000000000000FC00416365

0x0050: 72203738670A20202020000000FF0030

0x0060: 313431370A20202020202020000000FD

0x0070: 0032781E560D000A2020202020200018

EDID at DDC 1:

Read EDID at DDC 1 failed

EDID at DDC 2:

Read EDID at DDC 2 failed

EDID at DDC 3:

Read EDID at DDC 3 failed

 

Sorry for my english :D

Link to comment
Share on other sites

Hi, Slice.

I have a asus laptop with Ati Mobility HD 2600 working with internal LCD on 1024x768. :D

and then i tested your RadeonDumpL and RadeonPCI.kext.

I think there is a bug with IOGraphicsFamily.kext to find Internal LCD's edid.(Maybe the bug is i2c command)

in my case,

without Natit and ATINDRV I found the edid for my CRT not Internal LCD(1024x768)

with Natit and ATINDRV I also found the edid for my CRT(QE supported)

 

 

Sorry for my english :wacko:

I didn't fully understand you. With and without natit you have the same result? And why you wonder? RadeonDump works with hardware, not with driver.

IOGraphicsFamily try to get EDID from framebuffer driver. ATINDRV is one in your case. I don't know exactly how it works but I propose that it

1. Trying to get EDID from hardware. In most cases it fails with unsupported cards and monitors by Apple.

2. Trying to get EDID from registry properties injected by natit or by EFI string. To be successful you need to know EDID for your monitor. You can get it using Windows or Linux.

I started to create new ATI framebuffer. Dong created part of the driver with getting EDID from hardware. It is RadeonDump.

Our investigations show that most of internal laptop LCD has no hardware EDID at all. It is not bug of i2c bus. It is hardware.

So we have second way. Inject appropriate EDID by injector or by EFI string.

 

Why my Ati.kext doesn't work for many users? Because my EDID is not good for him. They need your own EDID.

 

How can I expain more clear?

Link to comment
Share on other sites

I didn't fully understand you. With and without natit you have the same result? And why you wonder? RadeonDump works with hardware, not with driver.

IOGraphicsFamily try to get EDID from framebuffer driver. ATINDRV is one in your case. I don't know exactly how it works but I propose that it

1. Trying to get EDID from hardware. In most cases it fails with unsupported cards and monitors by Apple.

2. Trying to get EDID from registry properties injected by natit or by EFI string. To be successful you need to know EDID for your monitor. You can get it using Windows or Linux.

I started to create new ATI framebuffer. Dong created part of the driver with getting EDID from hardware. It is RadeonDump.

Our investigations show that most of internal laptop LCD has no hardware EDID at all. It is not bug of i2c bus. It is hardware.

So we have second way. Inject appropriate EDID by injector or by EFI string.

 

Why my Ati.kext doesn't work for many users? Because my EDID is not good for him. They need your own EDID.

 

How can I expain more clear?

yes, you expained very clear.

I know the edid for my internal laptop LCD.and i have tried inject edid. But it unsuccess.

When ATY_Hypoprion loaded, i just got CRT1,EDID and CRT2,EDID in ioreg.It can't Find LVDS,EDID. :)

I read some words,it shows my internal laptop LCD has hardware EDID.(but I am not sure)

So i want to know Wether we can correct the source of IOGraphicsFamily.kext to get the edid.

I just want to get my laptop lcd work. :D

the PDF is Product Information of my internal LCD. Page 7 shows that it has edid.

20080827110121205.pdf

Link to comment
Share on other sites

yes, you expained very clear.

I know the edid for my internal laptop LCD.and i have tried inject edid. But it unsuccess.

When ATY_Hypoprion loaded, i just got CRT1,EDID and CRT2,EDID in ioreg.It can't Find LVDS,EDID. ;)

I read some words,it shows my internal laptop LCD has hardware EDID.(but I am not sure)

So i want to know Wether we can correct the source of IOGraphicsFamily.kext to get the edid.

I just want to get my laptop lcd work. :o

the PDF is Product Information of my internal LCD. Page 7 shows that it has edid.

Yes, I see your monitor really have EDID EEPROM accessible by i2c bus. So RadeonDump is not perfect trying to get it.

As well as ATI_Hypoprion.

You can rewrite IOGraphics (yes, sources at my thread is compilable and working) to get EDID other way.

Now it calls

framebuffer->getEDID(). But you can write here other procedure. Simplest way is injecting EDID by info.plist.

For a what?

IOGraphics needs EDID for powermanagement purpose. Framebuffer needs EDID to switch resolution.

But we can't influence on Hypoprion.

Did you see posts by Lebidou? He successfully inject LVDS,EDID using key ATY,EFIDisplay = LVDS.

Link to comment
Share on other sites

Yes, I see your monitor really have EDID EEPROM accessible by i2c bus. So RadeonDump is not perfect trying to get it.

As well as ATI_Hypoprion.

You can rewrite IOGraphics (yes, sources at my thread is compilable and working) to get EDID other way.

Now it calls

framebuffer->getEDID(). But you can write here other procedure. Simplest way is injecting EDID by info.plist.

For a what?

IOGraphics needs EDID for powermanagement purpose. Framebuffer needs EDID to switch resolution.

But we can't influence on Hypoprion.

Did you see posts by Lebidou? He successfully inject LVDS,EDID using key ATY,EFIDisplay = LVDS.

Thank you for your answer. :)

I hope i can inject EDID by info.plist. :(

Correct Sources is trouble.

i saw those posts by Lebidou and iMac7 use this key too,but it failed to me when i tried using this key to make Internal LCD work.

I found a interesting thing. When i add "backlight-PWM-freq=180000" in Natit,then ATI_Hypoprion loaded.but my system hang and Internal LCD has blue screen.

Any suggestion?

Link to comment
Share on other sites

Thank you for your answer. ;)

I hope i can inject EDID by info.plist. :D

Correct Sources is trouble.

i saw those posts by Lebidou and iMac7 use this key too,but it failed to me when i tried using this key to make Internal LCD work.

I found a interesting thing. When i add "backlight-PWM-freq=180000" in Natit,then ATI_Hypoprion loaded.but my system hang and Internal LCD has blue screen.

Any suggestion?

I see no relations between backlight and blue screen. Mistake is elsewhere.

Link to comment
Share on other sites

  • 11 months later...

If it is any help, I've had some what limited success with DONG's famebuffer driver and can get max res on an internal LCD screen with my 2600HD mobility (1280x800).

 

But, I still can not get QE/CI on the internal display.

 

How ever, I have had the QE/CI support on an external screen when the driver is loaded as a 2600XT.

 

Little confused as what to do next.

 

Do you guy have any idea's?? I do like your info on the IOGraphics.kext , and I may start playing with that too.

 

For the Internal display, you can have a look below to see what nimes and Myself gotten to.

 

http://www.insanelymac.com/forum/index.php?showtopic=196220

Link to comment
Share on other sites

 Share

×
×
  • Create New...