From: architt@codeaurora.org (Archit Taneja)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/4] drm/bridge: dw-hdmi: add cec notifier support
Date: Mon, 7 Aug 2017 09:29:55 +0530 [thread overview]
Message-ID: <2da3c0e1-a0c2-4e4e-9761-85ef0d8251a7@codeaurora.org> (raw)
In-Reply-To: <11ae421e-2d02-73c2-5dbb-79f1bd763235@xs4all.nl>
On 08/05/2017 02:53 PM, Hans Verkuil wrote:
> Archit,
>
> I posted a v3 that added a missing cec_notifier_put to the remove() function.
> Apparently you missed that. The chunk in question from the v3 patch is this:
I did. Sorry, about that. There was an issue with my mailer.
>
> @@ -2469,6 +2489,9 @@ static void __dw_hdmi_remove(struct dw_hdmi *hdmi)
> /* Disable all interrupts */
> hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0);
>
> + if (hdmi->cec_notifier)
> + cec_notifier_put(hdmi->cec_notifier);
> +
> clk_disable_unprepare(hdmi->iahb_clk);
> clk_disable_unprepare(hdmi->isfr_clk);
>
> Can you add that or should I make a new patch?
We aren't allowed to do rebases on drm-misc-next unless absolutely needed.
A separate patch that adds the missing notifier_put() call in remove would be
great to have.
I'll queue the patches #3/4 and #4/4 from the v3 revision.
Thanks,
Archit
>
> Regards,
>
> Hans
>
> On 04/08/17 15:36, Archit Taneja wrote:
>>
>>
>> On 07/31/2017 08:55 PM, Hans Verkuil wrote:
>>> On 07/31/2017 04:29 PM, Russell King wrote:
>>>> Add CEC notifier support to the HDMI bridge driver, so that the CEC
>>>> part of the IP can receive its physical address.
>>>>
>>>> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
>>>
>>> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
>>>
>>
>> Queued to drm-misc-next.
>>
>> Thanks,
>> Archit
>>
>>> Regards,
>>>
>>> Hans
>>>
>>>> ---
>>>> drivers/gpu/drm/bridge/synopsys/Kconfig | 1 +
>>>> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 22 +++++++++++++++++++++-
>>>> 2 files changed, 22 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/bridge/synopsys/Kconfig b/drivers/gpu/drm/bridge/synopsys/Kconfig
>>>> index 53e78d092d18..351db000599a 100644
>>>> --- a/drivers/gpu/drm/bridge/synopsys/Kconfig
>>>> +++ b/drivers/gpu/drm/bridge/synopsys/Kconfig
>>>> @@ -2,6 +2,7 @@ config DRM_DW_HDMI
>>>> tristate
>>>> select DRM_KMS_HELPER
>>>> select REGMAP_MMIO
>>>> + select CEC_CORE if CEC_NOTIFIER
>>>> config DRM_DW_HDMI_AHB_AUDIO
>>>> tristate "Synopsys Designware AHB Audio interface"
>>>> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>>>> index ead11242c4b9..82e55ee8e4fa 100644
>>>> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>>>> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>>>> @@ -36,7 +36,10 @@
>>>> #include "dw-hdmi.h"
>>>> #include "dw-hdmi-audio.h"
>>>> +#include <media/cec-notifier.h>
>>>> +
>>>> #define DDC_SEGMENT_ADDR 0x30
>>>> +
>>>> #define HDMI_EDID_LEN 512
>>>> enum hdmi_datamap {
>>>> @@ -175,6 +178,8 @@ struct dw_hdmi {
>>>> struct regmap *regm;
>>>> void (*enable_audio)(struct dw_hdmi *hdmi);
>>>> void (*disable_audio)(struct dw_hdmi *hdmi);
>>>> +
>>>> + struct cec_notifier *cec_notifier;
>>>> };
>>>> #define HDMI_IH_PHY_STAT0_RX_SENSE \
>>>> @@ -1896,6 +1901,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
>>>> hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid);
>>>> hdmi->sink_has_audio = drm_detect_monitor_audio(edid);
>>>> drm_mode_connector_update_edid_property(connector, edid);
>>>> + cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier, edid);
>>>> ret = drm_add_edid_modes(connector, edid);
>>>> /* Store the ELD */
>>>> drm_edid_to_eld(connector, edid);
>>>> @@ -2119,11 +2125,16 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
>>>> * ask the source to re-read the EDID.
>>>> */
>>>> if (intr_stat &
>>>> - (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD))
>>>> + (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) {
>>>> __dw_hdmi_setup_rx_sense(hdmi,
>>>> phy_stat & HDMI_PHY_HPD,
>>>> phy_stat & HDMI_PHY_RX_SENSE);
>>>> + if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0)
>>>> + cec_notifier_set_phys_addr(hdmi->cec_notifier,
>>>> + CEC_PHYS_ADDR_INVALID);
>>>> + }
>>>> +
>>>> if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
>>>> dev_dbg(hdmi->dev, "EVENT=%s\n",
>>>> phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout");
>>>> @@ -2376,6 +2387,12 @@ __dw_hdmi_probe(struct platform_device *pdev,
>>>> if (ret)
>>>> goto err_iahb;
>>>> + hdmi->cec_notifier = cec_notifier_get(dev);
>>>> + if (!hdmi->cec_notifier) {
>>>> + ret = -ENOMEM;
>>>> + goto err_iahb;
>>>> + }
>>>> +
>>>> /*
>>>> * To prevent overflows in HDMI_IH_FC_STAT2, set the clk regenerator
>>>> * N and cts values before enabling phy
>>>> @@ -2452,6 +2469,9 @@ __dw_hdmi_probe(struct platform_device *pdev,
>>>> hdmi->ddc = NULL;
>>>> }
>>>> + if (hdmi->cec_notifier)
>>>> + cec_notifier_put(hdmi->cec_notifier);
>>>> +
>>>> clk_disable_unprepare(hdmi->iahb_clk);
>>>> err_isfr:
>>>> clk_disable_unprepare(hdmi->isfr_clk);
>>>>
>>>
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>
>>
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
WARNING: multiple messages have this Message-ID (diff)
From: Archit Taneja <architt@codeaurora.org>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-arm-kernel@lists.infradead.org,
Russell King <rmk+kernel@armlinux.org.uk>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v2 1/4] drm/bridge: dw-hdmi: add cec notifier support
Date: Mon, 7 Aug 2017 09:29:55 +0530 [thread overview]
Message-ID: <2da3c0e1-a0c2-4e4e-9761-85ef0d8251a7@codeaurora.org> (raw)
In-Reply-To: <11ae421e-2d02-73c2-5dbb-79f1bd763235@xs4all.nl>
On 08/05/2017 02:53 PM, Hans Verkuil wrote:
> Archit,
>
> I posted a v3 that added a missing cec_notifier_put to the remove() function.
> Apparently you missed that. The chunk in question from the v3 patch is this:
I did. Sorry, about that. There was an issue with my mailer.
>
> @@ -2469,6 +2489,9 @@ static void __dw_hdmi_remove(struct dw_hdmi *hdmi)
> /* Disable all interrupts */
> hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0);
>
> + if (hdmi->cec_notifier)
> + cec_notifier_put(hdmi->cec_notifier);
> +
> clk_disable_unprepare(hdmi->iahb_clk);
> clk_disable_unprepare(hdmi->isfr_clk);
>
> Can you add that or should I make a new patch?
We aren't allowed to do rebases on drm-misc-next unless absolutely needed.
A separate patch that adds the missing notifier_put() call in remove would be
great to have.
I'll queue the patches #3/4 and #4/4 from the v3 revision.
Thanks,
Archit
>
> Regards,
>
> Hans
>
> On 04/08/17 15:36, Archit Taneja wrote:
>>
>>
>> On 07/31/2017 08:55 PM, Hans Verkuil wrote:
>>> On 07/31/2017 04:29 PM, Russell King wrote:
>>>> Add CEC notifier support to the HDMI bridge driver, so that the CEC
>>>> part of the IP can receive its physical address.
>>>>
>>>> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
>>>
>>> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
>>>
>>
>> Queued to drm-misc-next.
>>
>> Thanks,
>> Archit
>>
>>> Regards,
>>>
>>> Hans
>>>
>>>> ---
>>>> drivers/gpu/drm/bridge/synopsys/Kconfig | 1 +
>>>> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 22 +++++++++++++++++++++-
>>>> 2 files changed, 22 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/bridge/synopsys/Kconfig b/drivers/gpu/drm/bridge/synopsys/Kconfig
>>>> index 53e78d092d18..351db000599a 100644
>>>> --- a/drivers/gpu/drm/bridge/synopsys/Kconfig
>>>> +++ b/drivers/gpu/drm/bridge/synopsys/Kconfig
>>>> @@ -2,6 +2,7 @@ config DRM_DW_HDMI
>>>> tristate
>>>> select DRM_KMS_HELPER
>>>> select REGMAP_MMIO
>>>> + select CEC_CORE if CEC_NOTIFIER
>>>> config DRM_DW_HDMI_AHB_AUDIO
>>>> tristate "Synopsys Designware AHB Audio interface"
>>>> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>>>> index ead11242c4b9..82e55ee8e4fa 100644
>>>> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>>>> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>>>> @@ -36,7 +36,10 @@
>>>> #include "dw-hdmi.h"
>>>> #include "dw-hdmi-audio.h"
>>>> +#include <media/cec-notifier.h>
>>>> +
>>>> #define DDC_SEGMENT_ADDR 0x30
>>>> +
>>>> #define HDMI_EDID_LEN 512
>>>> enum hdmi_datamap {
>>>> @@ -175,6 +178,8 @@ struct dw_hdmi {
>>>> struct regmap *regm;
>>>> void (*enable_audio)(struct dw_hdmi *hdmi);
>>>> void (*disable_audio)(struct dw_hdmi *hdmi);
>>>> +
>>>> + struct cec_notifier *cec_notifier;
>>>> };
>>>> #define HDMI_IH_PHY_STAT0_RX_SENSE \
>>>> @@ -1896,6 +1901,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
>>>> hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid);
>>>> hdmi->sink_has_audio = drm_detect_monitor_audio(edid);
>>>> drm_mode_connector_update_edid_property(connector, edid);
>>>> + cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier, edid);
>>>> ret = drm_add_edid_modes(connector, edid);
>>>> /* Store the ELD */
>>>> drm_edid_to_eld(connector, edid);
>>>> @@ -2119,11 +2125,16 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
>>>> * ask the source to re-read the EDID.
>>>> */
>>>> if (intr_stat &
>>>> - (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD))
>>>> + (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) {
>>>> __dw_hdmi_setup_rx_sense(hdmi,
>>>> phy_stat & HDMI_PHY_HPD,
>>>> phy_stat & HDMI_PHY_RX_SENSE);
>>>> + if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0)
>>>> + cec_notifier_set_phys_addr(hdmi->cec_notifier,
>>>> + CEC_PHYS_ADDR_INVALID);
>>>> + }
>>>> +
>>>> if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
>>>> dev_dbg(hdmi->dev, "EVENT=%s\n",
>>>> phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout");
>>>> @@ -2376,6 +2387,12 @@ __dw_hdmi_probe(struct platform_device *pdev,
>>>> if (ret)
>>>> goto err_iahb;
>>>> + hdmi->cec_notifier = cec_notifier_get(dev);
>>>> + if (!hdmi->cec_notifier) {
>>>> + ret = -ENOMEM;
>>>> + goto err_iahb;
>>>> + }
>>>> +
>>>> /*
>>>> * To prevent overflows in HDMI_IH_FC_STAT2, set the clk regenerator
>>>> * N and cts values before enabling phy
>>>> @@ -2452,6 +2469,9 @@ __dw_hdmi_probe(struct platform_device *pdev,
>>>> hdmi->ddc = NULL;
>>>> }
>>>> + if (hdmi->cec_notifier)
>>>> + cec_notifier_put(hdmi->cec_notifier);
>>>> +
>>>> clk_disable_unprepare(hdmi->iahb_clk);
>>>> err_isfr:
>>>> clk_disable_unprepare(hdmi->isfr_clk);
>>>>
>>>
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel@lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>
>>
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2017-08-07 3:59 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-31 14:29 [PATCH v2 0/4] dw-hdmi CEC support Russell King - ARM Linux
2017-07-31 14:29 ` Russell King - ARM Linux
2017-07-31 14:29 ` [PATCH v2 1/4] drm/bridge: dw-hdmi: add cec notifier support Russell King
2017-07-31 14:29 ` Russell King
2017-07-31 14:33 ` Neil Armstrong
2017-07-31 14:33 ` Neil Armstrong
2017-07-31 15:25 ` Hans Verkuil
2017-07-31 15:25 ` Hans Verkuil
2017-08-04 13:36 ` Archit Taneja
2017-08-04 13:36 ` Archit Taneja
2017-08-05 9:23 ` Hans Verkuil
2017-08-05 9:23 ` Hans Verkuil
2017-08-07 3:59 ` Archit Taneja [this message]
2017-08-07 3:59 ` Archit Taneja
2017-08-02 14:11 ` Laurent Pinchart
2017-08-02 14:11 ` Laurent Pinchart
2017-08-02 14:17 ` Hans Verkuil
2017-08-02 14:17 ` Hans Verkuil
2017-08-02 17:44 ` Russell King - ARM Linux
2017-08-02 17:44 ` Russell King - ARM Linux
2017-07-31 14:29 ` [PATCH v2 2/4] drm/bridge: dw-hdmi: add better clock disable control Russell King
2017-07-31 14:29 ` Russell King
2017-07-31 15:26 ` Hans Verkuil
2017-07-31 15:26 ` Hans Verkuil
2017-08-04 13:39 ` Archit Taneja
2017-08-04 13:39 ` Archit Taneja
2017-07-31 14:29 ` [PATCH v2 3/4] drm/bridge: dw-hdmi: add cec driver Russell King
2017-07-31 14:29 ` Russell King
2017-07-31 15:35 ` Hans Verkuil
2017-07-31 15:35 ` Hans Verkuil
2017-08-01 22:32 ` Laurent Pinchart
2017-08-01 22:32 ` Laurent Pinchart
2017-08-02 6:47 ` Hans Verkuil
2017-08-02 6:47 ` Hans Verkuil
2017-08-02 13:14 ` Laurent Pinchart
2017-08-02 13:14 ` Laurent Pinchart
2017-08-02 13:27 ` Russell King - ARM Linux
2017-08-02 13:27 ` Russell King - ARM Linux
2017-08-02 13:34 ` Hans Verkuil
2017-08-02 13:34 ` Hans Verkuil
2017-08-02 14:22 ` Laurent Pinchart
2017-08-02 14:22 ` Laurent Pinchart
2017-08-02 17:43 ` Russell King - ARM Linux
2017-08-02 17:43 ` Russell King - ARM Linux
2017-08-02 14:17 ` Neil Armstrong
2017-07-31 14:29 ` [PATCH v2 4/4] drm/bridge: dw-hdmi: remove CEC engine register definitions Russell King
2017-07-31 14:29 ` Russell King
2017-07-31 15:26 ` Hans Verkuil
2017-07-31 15:26 ` Hans Verkuil
2017-08-01 22:29 ` [PATCH v2 0/4] dw-hdmi CEC support Laurent Pinchart
2017-08-01 22:29 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2da3c0e1-a0c2-4e4e-9761-85ef0d8251a7@codeaurora.org \
--to=architt@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.