Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Sign in to follow this  
AlexanderZhang

I think I have found something,need help

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

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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?

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.



×