Announcement

Collapse
No announcement yet.

Making HDMI-audio working on HD4350

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

  • Making HDMI-audio working on HD4350

    Inspired by this thread: http://lists.opensuse.org/radeonhd/2.../msg00058.html on the opensuse radeonhd mailinglist, I made some test with rhd_dump:
    I've dumped value between 0x0000 and 0x9999, when playing HDMI audio with fglrx.
    Finally, after booting, I'm able to play audio over HDMI without any driver loaded at all (neither fglrx nor radeonhd) by simply putting back dumped values.
    You can download dumps here:



    Fglrx dump was made with version 9.4 and kernel 2.6.31.2. This version of fglrx has an interesting feature: HDMI audio keeps working when no server X is running on radeon card and fglrx module is unloaded, which is very useful for me: my nvidia card is definitely better for playing movies (Yes, in my case, the radeon card is used only as a sound card). With 9.5 and probably later version, this doesn't work anymore.
    Radeonhd was pulled from git a few days ago and patched (mostly the same patch as http://lists.opensuse.org/radeonhd/2.../msg00112.html, except for the addition in rhd_output.c which, I thought, might be necessary, gives error in X loading otherwise) with:

    diff -Naur orig/rhd_hdmi.c mod/rhd_hdmi.c
    --- orig/rhd_hdmi.c 2009-10-07 20:09:03.000000000 +0200
    +++ mod/rhd_hdmi.c 2009-10-07 20:09:13.000000000 +0200
    @@ -267,6 +267,7 @@
    hdmi->Offset = HDMI_TMDS;
    break;

    + case RHD_OUTPUT_UNIPHYE:
    case RHD_OUTPUT_LVTMA:
    if(RHDOutputTmdsIndex(Output) == 0)
    hdmi->Offset = HDMI_TMDS;
    @@ -428,6 +429,10 @@
    RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x110 : 0x0);
    break;

    + case RHD_OUTPUT_UNIPHYE:
    + RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x011 : 0x0);
    + break;
    +
    default:
    xf86DrvMsg(hdmi->scrnIndex, X_ERROR, "%s: unknown HDMI output type\n", __func__);
    break;
    diff -Naur orig/rhd_output.c mod/rhd_output.c
    --- orig/rhd_output.c 2009-10-07 20:08:46.000000000 +0200
    +++ mod/rhd_output.c 2009-10-07 20:09:21.000000000 +0200
    @@ -288,6 +288,7 @@
    break;

    case RHD_OUTPUT_UNIPHYB:
    + case RHD_OUTPUT_UNIPHYE:
    case RHD_OUTPUT_KLDSKP_LVTMA:
    index=1;
    break;


    The audio receiver is an A/V amplifier Marantz SR5003.

    I hope this information will help radeonhd developers making HDMI-audio working on HD4350. I can make other tests if necessary.
    In next days I will try to isolate values that enables or disables HDMI-audio.

    PS: The mailinglist is probably a better place for discussing this subject with developers, but subscribing like written in http://wiki.x.org/wiki/radeonhd does not seem to work for me.
Working...
X