Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp1048213ybm; Wed, 27 May 2020 14:52:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxe+Hk8mAJKxCdUY9RfQ6TP+djQdlgD4ZijkX6XyP7t1svduMp5U3U/6iYAH7GwEqDcVBZT X-Received: by 2002:a05:6402:1a48:: with SMTP id bf8mr178085edb.133.1590616364963; Wed, 27 May 2020 14:52:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590616364; cv=none; d=google.com; s=arc-20160816; b=nMqA9Af8hScV6xC7cyMXjFf35tZCtMLybCRYpWx3Js5Q7eUbHwKX4ZaUmWrc9YsTZK XFlOeCTpPn2gabVgsixcBoj+w2D7FTFApQIHVQMFVdgtcUQjMnENhHnVW2b/5Xm66+0U Dn8ealEAeoMkcXQQATp2+yAds7gEM7K2Rwmy8WiUYfN//LrXc1xCvXMYGUNhHQHzZS/x jHcNL2mfjeElE6UgLYBjqaxfw3iY6U4VamOSRyA6wLF2CNxtYepqWy6Wf6nGGiVD2Y/r 3jfr0Dfm/szIKOP2RsTH/ljqnWR3YrFE5dH6T9XQck1qUEmghRNWeDss3v/TZtlIKvIV VbdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=upxZGzscKBQ3B5QGb99rDZa61nB3JngVpsG8rZDtRF0=; b=nZbJp7aOfLbb+mHlchVn90iW4yuEMAXpv2WMvn4c7HTiw6RTjCei54R7VSJ+LN/L43 VAa5mdLSDb6vt5bSk9PE5VABuQYxSCl1aVNsA4z6JBHX2Spi4nKAgHw9h8Nj2/GUaQjP tkADXZ1Fgl+eBVo+NWjXKpyETD1B4bPw6S9gREnJZcQmom4SCafMlVJ+3VPIDRmvKx8o e4oMFcJ5Z48brYSvRNTrXYab2HR/fUdz6a7iBAIyyJCUZ4/+TvqKYLVJMoFptzAEdPit qWTqiZvECSg0pYmcqiH0ZRnouTcjmjoNvHBwVcOdxOJ9+XxOm2kECAX1xzSlFU4uTPV3 9aLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm2 header.b=a4Zqh0aQ; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=04zAjv49; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u4si2539241edp.107.2020.05.27.14.52.16; Wed, 27 May 2020 14:52:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm2 header.b=a4Zqh0aQ; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=04zAjv49; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390295AbgE0Py4 (ORCPT + 98 others); Wed, 27 May 2020 11:54:56 -0400 Received: from new1-smtp.messagingengine.com ([66.111.4.221]:46557 "EHLO new1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390302AbgE0PvS (ORCPT ); Wed, 27 May 2020 11:51:18 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id 90376580C3B; Wed, 27 May 2020 11:51:17 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Wed, 27 May 2020 11:51:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=upxZGzscKBQ3B 5QGb99rDZa61nB3JngVpsG8rZDtRF0=; b=a4Zqh0aQAXadVojfj3uXPR+/yo2b6 tmVoGcRSZC++cxUvs/rDOfdG5+U/quoL3P8Sp641oWqA39/RcNQetHrJVjPcbCgs Cob+W+itFSiBOOJ67jy7J/lT/qeRzIGeFE+TLIycr4P5clAKdS1mRrXEhVqVx3vv jvFBSwHzLRILuFhOQfMOioeA/RhMVktMrsin2ntXQqBclmvtSxfqmHZJK7R43Lnx MyZM8aJgOEx8S/B0GX2gH3J95CyvVCCT0srWT6CrqMhnBSwQ/g7dQGu43XxB7Wa+ d4cHsFwIkESlhTdyv+GARQDNoimeXPzKzSLWSzTNtCb3qeBSZoKYiuNgA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=upxZGzscKBQ3B5QGb99rDZa61nB3JngVpsG8rZDtRF0=; b=04zAjv49 /c35Cz1JnrqXJs186aGgtMhRfTKm1YcFcOuXHH8Wy8Ya5VqGABzNbj7LHIlrXp6/ 3D4K4NKUstIq9gdqlWE1HflNbU8UuCTm4/mY8ozshghPcC1F5xMw7YrOcAkkMSqX vB5nMDwI7dB9Q2vn1lEpeeg0lTUQk52ijeTltxXYpvTu9A5liIQMmuWYzzRsD/eQ JX/tq0URikT4xTg/Ql6q19BrEbni2qoPHYkC++afMXPYFnTb0V1TwppG5ckYeKPN bi2XoVILmnZo3yfwB9PS2qv0Qtb3JhqSiEoJwSRRMFzQW9gPmOxPITZfslhBPLC1 wK7oHNApR6wlng== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedruddvgedgkeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeforgigihhm vgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrfgrth htvghrnhepvdekleevfeffkeejhfffueelteelfeduieefheduudfggffhhfffheevveeh hedvnecukfhppeeltddrkeelrdeikedrjeeinecuvehluhhsthgvrhfuihiivgepheefne curfgrrhgrmhepmhgrihhlfhhrohhmpehmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Received: from localhost (lfbn-tou-1-1502-76.w90-89.abo.wanadoo.fr [90.89.68.76]) by mail.messagingengine.com (Postfix) with ESMTPA id 303DA328005D; Wed, 27 May 2020 11:51:17 -0400 (EDT) From: Maxime Ripard To: Nicolas Saenz Julienne , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-rpi-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Dave Stevenson , Tim Gover , Phil Elwell , Maxime Ripard Subject: [PATCH v3 076/105] drm/vc4: hdmi: Pass vc4_hdmi to CEC code Date: Wed, 27 May 2020 17:48:46 +0200 Message-Id: <1b7b5a8ac7a6e500b2ab37a4366069ac4021e61e.1590594512.git-series.maxime@cerno.tech> X-Mailer: git-send-email 2.26.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Our CEC code also retrieves the associated vc4_hdmi by setting the vc4_dev pointer as its private data, and then dereferences its vc4_hdmi pointer. In order to eventually get rid of that pointer, we can simply pass the vc4_hdmi pointer directly. Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hdmi.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 4a28e0c0c814..892108f16802 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -1032,8 +1032,7 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) #ifdef CONFIG_DRM_VC4_HDMI_CEC static irqreturn_t vc4_cec_irq_handler_thread(int irq, void *priv) { - struct vc4_dev *vc4 = priv; - struct vc4_hdmi *vc4_hdmi = vc4->hdmi; + struct vc4_hdmi *vc4_hdmi = priv; if (vc4_hdmi->cec_irq_was_rx) { if (vc4_hdmi->cec_rx_msg.len) @@ -1053,9 +1052,8 @@ static irqreturn_t vc4_cec_irq_handler_thread(int irq, void *priv) return IRQ_HANDLED; } -static void vc4_cec_read_msg(struct vc4_dev *vc4, u32 cntrl1) +static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) { - struct vc4_hdmi *vc4_hdmi = vc4->hdmi; struct cec_msg *msg = &vc4_hdmi->cec_rx_msg; unsigned int i; @@ -1073,8 +1071,7 @@ static void vc4_cec_read_msg(struct vc4_dev *vc4, u32 cntrl1) static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) { - struct vc4_dev *vc4 = priv; - struct vc4_hdmi *vc4_hdmi = vc4->hdmi; + struct vc4_hdmi *vc4_hdmi = priv; u32 stat = HDMI_READ(VC4_HDMI_CPU_STATUS); u32 cntrl1, cntrl5; @@ -1085,7 +1082,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) cntrl5 = HDMI_READ(VC4_HDMI_CEC_CNTRL_5); vc4_hdmi->cec_irq_was_rx = cntrl5 & VC4_HDMI_CEC_RX_CEC_INT; if (vc4_hdmi->cec_irq_was_rx) { - vc4_cec_read_msg(vc4, cntrl1); + vc4_cec_read_msg(vc4_hdmi, cntrl1); cntrl1 |= VC4_HDMI_CEC_CLEAR_RECEIVE_OFF; HDMI_WRITE(VC4_HDMI_CEC_CNTRL_1, cntrl1); cntrl1 &= ~VC4_HDMI_CEC_CLEAR_RECEIVE_OFF; @@ -1101,8 +1098,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) { - struct vc4_dev *vc4 = cec_get_drvdata(adap); - struct vc4_hdmi *vc4_hdmi = vc4->hdmi; + struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); /* clock period in microseconds */ const u32 usecs = 1000000 / CEC_CLOCK_FREQ; u32 val = HDMI_READ(VC4_HDMI_CEC_CNTRL_5); @@ -1145,8 +1141,7 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) { - struct vc4_dev *vc4 = cec_get_drvdata(adap); - struct vc4_hdmi *vc4_hdmi = vc4->hdmi; + struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); HDMI_WRITE(VC4_HDMI_CEC_CNTRL_1, (HDMI_READ(VC4_HDMI_CEC_CNTRL_1) & ~VC4_HDMI_CEC_ADDR_MASK) | @@ -1157,8 +1152,7 @@ static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, u32 signal_free_time, struct cec_msg *msg) { - struct vc4_dev *vc4 = cec_get_drvdata(adap); - struct vc4_hdmi *vc4_hdmi = vc4->hdmi; + struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); u32 val; unsigned int i; @@ -1303,7 +1297,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) #ifdef CONFIG_DRM_VC4_HDMI_CEC vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops, - vc4, "vc4", + vc4_hdmi, "vc4", CEC_CAP_DEFAULTS | CEC_CAP_CONNECTOR_INFO, 1); ret = PTR_ERR_OR_ZERO(vc4_hdmi->cec_adap); @@ -1327,7 +1321,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) ret = devm_request_threaded_irq(dev, platform_get_irq(pdev, 0), vc4_cec_irq_handler, vc4_cec_irq_handler_thread, 0, - "vc4 hdmi cec", vc4); + "vc4 hdmi cec", vc4_hdmi); if (ret) goto err_delete_cec_adap; ret = cec_register_adapter(vc4_hdmi->cec_adap, dev); -- git-series 0.9.1