On Sat, 2010-09-18 at 13:50 +0200, Marcin Slusarz wrote:
> On Fri, Sep 17, 2010 at 06:53:26PM -0400, Andy Walls wrote:
> > On my system, every 10 seconds drm_edid_block_valid() gets called 4
> > times by radeon_dvi_detect().  This results in 4 instances of a
> > multi-line hex dump of the same EDID (non-)data being logged every 10
> > seconds.
> > 
> > Silence the hex dump from drm_edid_block_valid() unless a drm_debug
> > module parameter flag is set.
> > 
> > Signed-of-by: Andy Walls <awa...@md.metrocast.net>
> > 
> > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> > index dce5c4a..33a748c 100644
> > --- a/drivers/gpu/drm/drm_edid.c
> > +++ b/drivers/gpu/drm/drm_edid.c
> > @@ -173,9 +173,12 @@ drm_edid_block_valid(u8 *raw_edid)
> >  
> >  bad:
> >         if (raw_edid) {
> > -               DRM_ERROR("Raw EDID:\n");
> > -               print_hex_dump_bytes(KERN_ERR, DUMP_PREFIX_NONE, raw_edid, 
> > EDID_LENGTH);
> > -               printk("\n");
> > +               DRM_DEBUG("Raw EDID:\n");
> > +               if (drm_debug & DRM_UT_CORE) {
> > +                       print_hex_dump_bytes(KERN_ERR, DUMP_PREFIX_NONE,
> > +                                            raw_edid, EDID_LENGTH);
> > +                       printk("\n");
> > +               }
> >         }
> >         return 0;
> >  }
> > 
> 
> Why not print it only once on original error level?
> Something like:
> static bool printed = false;
> if (!printed) {
>       ...
>       printed = true;
> }
> 
> It has the same effect for you (no spamming by default) and it's still 
> provide some information.

That's acceptable to me.  I'm assuming that if the radeon.ko and drm.ko
modules get loaded early (from initrd), that the log instance will still
be in the dmesg ring buffer for when the OS can finally log dmesg to
disk.

I'm still getting spammed every 10 seconds.  It's just not as bad now:

        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: radeon 0000:01:05.0: DVI-D-1: EDID 
invalid.
        Sep 17 11:56:26 morgan kernel: [drm:radeon_dvi_detect] *ERROR* DVI-D-1: 
probed a monitor but no|invalid EDID
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: [drm:drm_edid_is_valid] *ERROR* Raw EDID:
        Sep 17 11:56:26 morgan kernel:
        Sep 17 11:56:26 morgan kernel: radeon 0000:01:05.0: DVI-D-1: EDID 
invalid.
        Sep 17 11:56:26 morgan kernel: [drm:radeon_dvi_detect] *ERROR* DVI-D-1: 
probed a monitor but no|invalid EDID


My MSI-7302 motherboard apparently has a graphics chipset that supports
DVI, but the motherboard has no physical DVI connector - only a VGA
connector.  The invalid EDID data is just junk, and not real data from
that I2C(?) bus.   lspci output on the PCIe graphics chipset is below.

If there's any easy way to just stop all the spam about the DVI
connector, I'd be interested.

Regards,
Andy


# lspci -tvnn
-[0000:00]-+-00.0  ATI Technologies Inc RS690 Host Bridge [1002:7911]
           +-01.0-[01]----05.0  ATI Technologies Inc Radeon 2100 [1002:796e]
           +-04.0-[02]----00.0  Conexant Systems, Inc. Device [14f1:8880]
           +-05.0-[03]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168B 
PCI Express Gigabit Ethernet controller [10ec:8168]
           +-11.0  ATI Technologies Inc SB700/SB800 SATA Controller [IDE mode] 
[1002:4390]
           +-12.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 
[1002:4397]
           +-12.1  ATI Technologies Inc SB700 USB OHCI1 Controller [1002:4398]
           +-12.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller 
[1002:4396]
           +-13.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 
[1002:4397]
           +-13.1  ATI Technologies Inc SB700 USB OHCI1 Controller [1002:4398]
           +-13.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller 
[1002:4396]
           +-14.0  ATI Technologies Inc SBx00 SMBus Controller [1002:4385]
           +-14.1  ATI Technologies Inc SB700/SB800 IDE Controller [1002:439c]
           +-14.2  ATI Technologies Inc SBx00 Azalia (Intel HDA) [1002:4383]
           +-14.3  ATI Technologies Inc SB700/SB800 LPC host controller 
[1002:439d]
           +-14.4-[04]----02.0  Internext Compression Inc iTVC15 MPEG-2 Encoder 
[4444:0803]
           +-14.5  ATI Technologies Inc SB700/SB800 USB OHCI2 Controller 
[1002:4399]
           +-18.0  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] 
HyperTransport Technology Configuration [1022:1100]
           +-18.1  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address 
Map [1022:1101]
           +-18.2  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM 
Controller [1022:1102]
           \-18.3  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] 
Miscellaneous Control [1022:1103]

# lspci -vnn
00:00.0 Host bridge [0600]: ATI Technologies Inc RS690 Host Bridge [1002:7911]
        Subsystem: ATI Technologies Inc Device [1002:7910]
        Flags: bus master, 66MHz, medium devsel, latency 0

00:01.0 PCI bridge [0604]: ATI Technologies Inc RS690 PCI to PCI Bridge 
(Internal gfx) [1002:7912] (prog-if 00 [Normal decode])
        Flags: bus master, 66MHz, medium devsel, latency 64
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: fe600000-fe7fffff
        Prefetchable memory behind bridge: 00000000d8000000-00000000dfffffff
        Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [b0] Subsystem: ATI Technologies Inc RS690 PCI to PCI 
Bridge (Internal gfx) [1002:7912]
        Kernel modules: shpchp
[...]
01:05.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon 2100 
[1002:796e] (prog-if 00 [VGA controller])
        Subsystem: Micro-Star International Co., Ltd. Device [1462:7302]
        Flags: bus master, fast devsel, latency 64, IRQ 28
        Memory at d8000000 (64-bit, prefetchable) [size=128M]
        Memory at fe7f0000 (64-bit, non-prefetchable) [size=64K]
        I/O ports at d000 [size=256]
        Memory at fe600000 (32-bit, non-prefetchable) [size=1M]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [50] Power Management version 2
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Kernel driver in use: radeon
        Kernel modules: radeon
[...]




_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to