Detecting screen disconnection
Ely Levy
elylevy-xserver at cs.huji.ac.il
Mon Nov 1 03:27:32 PST 2004
sounds exactlly like what I need,
Anyone happen to know if it exists on i8xx and nvidia as well?
Ely Levy
System group
Hebrew University
Jerusalem Israel
On Sun, 31 Oct 2004, Vladimir Dergachev wrote:
>
>
> On Sun, 31 Oct 2004, Jon Smirl wrote:
>
> > On Sun, 31 Oct 2004 19:46:50 -0500 (EST), Vladimir Dergachev
> > <volodya at mindspring.com> wrote:
> >> ATI cards have hardware that can sense which inputs are connected or
> >> disconnected and even send an interrupt on changes.
> >
> > Do you have some sample code for this? I'm working on the radeon
> > driver right now and I can try and hook it in.
>
> No, I have never played with it - though it looks like fun.
>
> DAC_CNTL (and DAC_CNTL2) has bits that control this. Interestingly enough
> there is also a way to check for analog termination - I am not sure
> whether this is the same as CRT detection bits in a different place in
> the same register.
>
> I.e. I don't understand why would someone want to test analog termination
> if there is a different way to find out whether CRT is connected.
>
> It also appears that it is not possible to create an interrupt on hotplug
> of analog connection.
>
> Flat panels on the other hand can be detected quite easily - GEN_INT_CNTL
> has two bits for each flat panel.
>
> I imagine that as far as DRM driver interrupt handler is concerned it only
> needs to deal with bits 4 (primary FP) and 10 (FP2) in GEN_INT_CNTL and
> GEN_INT_STATUS.
>
> These bits appear to not require any other initialization - in particular
> TMDS and LVDS registers do not have any bits that need to be enabled in
> order for these to work.
>
> best
>
> Vladimir Dergachev
>
> PS: Patch for drm/shared-code/radeon_drv.h :
>
> Index: radeon_drv.h
> ===================================================================
> RCS file: /cvs/dri/drm/shared-core/radeon_drv.h,v
> retrieving revision 1.36
> diff -u -r1.36 radeon_drv.h
> --- radeon_drv.h 10 Oct 2004 05:52:19 -0000 1.36
> +++ radeon_drv.h 1 Nov 2004 02:38:46 -0000
> @@ -397,12 +397,18 @@
>
> #define RADEON_GEN_INT_CNTL 0x0040
> # define RADEON_CRTC_VBLANK_MASK (1 << 0)
> +# define RADEON_FP_DETECT_ENABLE (1 << 4)
> +# define RADEON_FP2_DETECT_ENABLE (1 << 10)
> # define RADEON_GUI_IDLE_INT_ENABLE (1 << 19)
> # define RADEON_SW_INT_ENABLE (1 << 25)
>
> #define RADEON_GEN_INT_STATUS 0x0044
> # define RADEON_CRTC_VBLANK_STAT (1 << 0)
> # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0)
> +# define RADEON_FP_DETECT_STAT (1 << 4)
> +# define RADEON_FP_DETECT_ACK (1 << 4)
> +# define RADEON_FP2_DETECT_STAT (1 << 10)
> +# define RADEON_FP_DETECT_ACK (1 << 10)
> # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19)
> # define RADEON_SW_INT_TEST (1 << 25)
> # define RADEON_SW_INT_TEST_ACK (1 << 25)
>
> _______________________________________________
> xorg mailing list
> xorg at freedesktop.org
> http://freedesktop.org/mailman/listinfo/xorg
>
More information about the xorg
mailing list