lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 13 Apr 2020 13:46:12 +0200 From: "H. Nikolaus Schaller" <hns@...delico.com> To: Paul Cercueil <paul@...pouillou.net>, "open list:DRM PANEL DRIVERS" <dri-devel@...ts.freedesktop.org> Cc: Dave Airlie <airlied@...ux.ie>, Sascha Hauer <s.hauer@...gutronix.de>, Andy Yan <andy.yan@...k-chips.com>, Yakir Yang <ykk@...k-chips.com>, Vladimir Zapolskiy <vladimir_zapolskiy@...tor.com>, Paul Boddie <paul@...die.org.uk>, linux-mips@...r.kernel.org, Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, MIPS Creator CI20 Development <mips-creator-ci20-dev@...glegroups.com> Subject: Re: DRM interaction problems on Ingenic CI20 / jz4780 with dw-hdmi and ingenic-drm > Am 13.04.2020 um 13:25 schrieb Paul Cercueil <paul@...pouillou.net>: > > Hi Nikolaus, > > > Le sam. 11 avril 2020 à 16:14, H. Nikolaus Schaller <hns@...delico.com> a écrit : >> Hi, >> we (Paul Boddie and me) are working to get HDMI functional on the >> Ingenic CI20 board with jz4780 SoC which uses a specialization of >> the dw-hdmi driver. >> So far we have identified two issues. >> The first is that HPD interrupts are not properly processed. >> drm_helper_hpd_irq_event() is called by HPD events but >> dev->mode_config.poll_enabled is false. >> Therefore the interrupt is ignored and nothing happens. >> Now I wonder about the logic behind checking for poll_enabled. >> I understand that a driver can do either polling or irq or both. >> Therefore handling the irq_event shouldn't be disabled by poll_enabled >> being false. Otherwise we can only do: nothing, polling, polling+irq >> but not irq alone. >> The jz4780 hdmi subsystem (drm/bridge/dw-hdmi.c) uses >> connector->polled = DRM_CONNECTOR_POLL_HPD; >> but shouldn't this enable polling? Note that there seems to be >> no (direct) call to drm_kms_helper_poll_init(). >> If we set dev->mode_config.poll_enabled = true in >> drm_helper_hpd_irq_event() things start to work. >> Please can you clarify what would be best practise here to >> get HPD event handling working. >> The other issue is in dw-hdmi.c: >> We found out that ingenic_drm_encoder_atomic_check() fails because >> info->num_bus_formats == 0 >> and not 1. This blocks further initialization. >> The reason seems to be that dw_hdmi_bridge_attach() does not call >> drm_display_info_set_bus_formats() with a proper format like >> other drivers (e.g. drm/bridge/ti-tfp410.c) are doing. >> We have patched to set a single bus format MEDIA_BUS_FMT_RGB888_1X24 >> and then DRM setup seems to work (although we still have no valid >> HDMI signal but that is likely something else). >> Please can you explain how setting the bus format should be fixed >> in dw-hdmi.c. >> If these questions should be forwarded to other specialists, please >> do so. > > It should be sent to the DRI mailing list, you missed the most important one. Ah, ok. > > -Paul > >> BR and thanks, >> Nikolaus Schaller
Powered by blists - more mailing lists