Announcement

Collapse
No announcement yet.

Has anyone with R400 or earlier hardware successfully enabled radeon's hw_i2c option?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Has anyone with R400 or earlier hardware successfully enabled radeon's hw_i2c option?

    I've been experimenting with the hw_i2c parameter in the radeon kernel module, and have discovered that it is failing to read the monitor's EDID with my RV350. However, both my RV790 and M66GL seem to manage fine.

    I am also seeing occasional lines like:
    Code:
    [drm:radeon_dvi_detect] *ERROR* DVI-I-1: probed a monitor but no|invalid EDID
    in my rv100 dmesg log. Is anyone else seeing behaviour like this, please?

    I have already raised this in the kernel bugzilla.

  • #2
    It worked reliably on all the hw I had access to, but not on certain other users. I only ever got around to implementing it for r1xx-r5xx asics. The sclk prescale algorithm for the hw i2c engine probably needs some tweaking for certain chips or engine clocks if you want to play with it. Bit banging i2c provides the exact same functionality and is always reliable so that's used by default.

    Comment


    • #3
      So the purpose of hw_i2c is?

      Bit banging i2c provides the exact same functionality and is always reliable so that's used by default.
      Does hw_i2c provide any benefit, then? Is it needed for the dynclks option, for example?

      The relevant code looks like it lives in the kernel's radeon_clocks.c file, although I've no idea how I'd begin "tweaking" it other than looking for "Is RV350?" sections.

      Comment


      • #4
        Originally posted by chrisr View Post
        Does hw_i2c provide any benefit, then? Is it needed for the dynclks option, for example?
        Slightly less cpu usage when doing i2c transactions.

        Originally posted by chrisr View Post
        The relevant code looks like it lives in the kernel's radeon_clocks.c file, although I've no idea how I'd begin "tweaking" it other than looking for "Is RV350?" sections.
        See radeon_get_i2c_prescale() in radeon_i2c.c.

        Comment

        Working...
        X