From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomi Valkeinen Subject: Re: [PATCH v4 06/22] drm: omapdrm: Handle FIFO underflow IRQs internally Date: Wed, 14 Dec 2016 12:22:29 +0200 Message-ID: <82cff2d2-ab9f-5244-dcad-62814052d723@ti.com> References: <1481675266-24598-1-git-send-email-laurent.pinchart@ideasonboard.com> <1481675266-24598-7-git-send-email-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0374271837==" Return-path: Received: from lelnx193.ext.ti.com (lelnx193.ext.ti.com [198.47.27.77]) by gabe.freedesktop.org (Postfix) with ESMTPS id 258556E794 for ; Wed, 14 Dec 2016 10:22:35 +0000 (UTC) In-Reply-To: <1481675266-24598-7-git-send-email-laurent.pinchart@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0374271837== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="vdD7jx3XJpflGPQUNBH204NBeKFTetmEB" --vdD7jx3XJpflGPQUNBH204NBeKFTetmEB Content-Type: multipart/mixed; boundary="POGP805dPXO5KrNl9qx0f6Kg7jakrf3sA"; protected-headers="v1" From: Tomi Valkeinen To: Laurent Pinchart , dri-devel@lists.freedesktop.org Message-ID: <82cff2d2-ab9f-5244-dcad-62814052d723@ti.com> Subject: Re: [PATCH v4 06/22] drm: omapdrm: Handle FIFO underflow IRQs internally References: <1481675266-24598-1-git-send-email-laurent.pinchart@ideasonboard.com> <1481675266-24598-7-git-send-email-laurent.pinchart@ideasonboard.com> In-Reply-To: <1481675266-24598-7-git-send-email-laurent.pinchart@ideasonboard.com> --POGP805dPXO5KrNl9qx0f6Kg7jakrf3sA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 14/12/16 02:27, Laurent Pinchart wrote: > As the FIFO underflow IRQ handler just prints an error message to the > kernel log, simplify the code by not registering one IRQ handler per > plane but print the messages directly from the main IRQ handler. >=20 > Signed-off-by: Laurent Pinchart > Reviewed-by: Tomi Valkeinen > --- > +static void omap_irq_fifo_underflow(struct omap_drm_private *priv, > + u32 irqstatus) > +{ > + static DEFINE_RATELIMIT_STATE(_rs, DEFAULT_RATELIMIT_INTERVAL, > + DEFAULT_RATELIMIT_BURST); > + static const struct { > + const char *name; > + u32 mask; > + } sources[] =3D { > + { "gfx", DISPC_IRQ_GFX_FIFO_UNDERFLOW }, > + { "vid1", DISPC_IRQ_VID1_FIFO_UNDERFLOW }, > + { "vid2", DISPC_IRQ_VID2_FIFO_UNDERFLOW }, > + { "vid3", DISPC_IRQ_VID3_FIFO_UNDERFLOW }, > + }; > + > + const u32 mask =3D DISPC_IRQ_GFX_FIFO_UNDERFLOW > + | DISPC_IRQ_VID1_FIFO_UNDERFLOW > + | DISPC_IRQ_VID2_FIFO_UNDERFLOW > + | DISPC_IRQ_VID3_FIFO_UNDERFLOW; > + unsigned int i; > + > + spin_lock(&list_lock); > + irqstatus &=3D priv->irq_mask & mask; > + spin_unlock(&list_lock); > + > + if (!irqstatus) > + return; This is called every time we get any DSS interrupt, so I think it would be good to have a fast-path here without the lock: irqstatus & mask. Or maybe store the enabled underflow irq bits separately from irq_mask, as the underflow bits are never changed after the initial setup, and then there's no need for locking. Tomi --POGP805dPXO5KrNl9qx0f6Kg7jakrf3sA-- --vdD7jx3XJpflGPQUNBH204NBeKFTetmEB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJYUR1lAAoJEPo9qoy8lh71NjsQAI0E3KDmWk3Sw4bvzcRuwRU1 Ee68ue9lBEcJGX1/cpQTpBpymHH98uW1h5VbBxtPO0SLVwtp3xxN/3kmNFQ0lvd2 8JpGE6pq+7PE4jOGLRPzVWHpk5jj2peHc58hsPQ3q73vqXNWfc9VSR8DT6Emv6d2 xHgvB+OVnqJkv1IDalk215tda9LKwvTt7rQzO8LQviRDsJUnXLrSe83EkE/9Z29M 0wvmPCyDisxIGUDm7o2So7Uh64nG2jDEafiLLQVuoxSm2LmsXse9QANhwvJK0bhu 5tBsI6DewbupfwfMmNvqJRpbpCuKSY6zFQZrQyfzRdfNdSitOpWEzcNOLb20EMDJ R6g+l31DAzM+oJh0p8Fcey6bREpQMTMOKIGu5Lhq1uSn40wgW36GsyJr8PFaLij5 VUFIJnJi+HxVgzNvn/8ULHEGc55XUShGn1/kz6P2Z13NKPX2kyGL9U9jNCIW+g2a HN0wBPKyyCgCsw+N4s0O/HBD4KB98xdMwqry9AivYhoqq9VrYrHbXLoxDbIpnoBt XgeaP+B4KYLscJtF/cRjS/0QUlBturPR3UfjIwduV+n1FxEqLePss8NDppYQEbuq xjiRYlaF5dgSge7vKP/ov9WAkKSZ2P+M9OymnNXtagQpmqI3BZoTKPbZkGKLDty+ XryVRg8q2TKgiJ89y2Qr =gIbr -----END PGP SIGNATURE----- --vdD7jx3XJpflGPQUNBH204NBeKFTetmEB-- --===============0374271837== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============0374271837==--