Message ID | 20170607144616.15247-9-hverkuil@xs4all.nl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/07/2017 04:46 PM, Hans Verkuil wrote: > From: Hans Verkuil <hans.verkuil@cisco.com> > > Use the needs-hpd DT property to determine if the CEC_CAP_NEEDS_HPD > should be set. > > Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> > --- > drivers/media/platform/s5p-cec/s5p_cec.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/s5p-cec/s5p_cec.c b/drivers/media/platform/s5p-cec/s5p_cec.c > index 65a223e578ed..8e06071a7977 100644 > --- a/drivers/media/platform/s5p-cec/s5p_cec.c > +++ b/drivers/media/platform/s5p-cec/s5p_cec.c > @@ -173,6 +173,7 @@ static int s5p_cec_probe(struct platform_device *pdev) > struct platform_device *hdmi_dev; > struct resource *res; > struct s5p_cec_dev *cec; > + bool needs_hpd = of_property_read_bool(pdev->dev.of_node, "needs-hpd"); dev->of_node could also be used instead of pdev->dev.of_node. > int ret; > > np = of_parse_phandle(pdev->dev.of_node, "hdmi-phandle", 0); > @@ -221,7 +222,8 @@ static int s5p_cec_probe(struct platform_device *pdev) > cec->adap = cec_allocate_adapter(&s5p_cec_adap_ops, cec, > CEC_NAME, > CEC_CAP_LOG_ADDRS | CEC_CAP_TRANSMIT | > - CEC_CAP_PASSTHROUGH | CEC_CAP_RC, 1); > + CEC_CAP_PASSTHROUGH | CEC_CAP_RC | > + (needs_hpd ? CEC_CAP_NEEDS_HPD : 0), 1); > ret = PTR_ERR_OR_ZERO(cec->adap); > if (ret) > return ret;
diff --git a/drivers/media/platform/s5p-cec/s5p_cec.c b/drivers/media/platform/s5p-cec/s5p_cec.c index 65a223e578ed..8e06071a7977 100644 --- a/drivers/media/platform/s5p-cec/s5p_cec.c +++ b/drivers/media/platform/s5p-cec/s5p_cec.c @@ -173,6 +173,7 @@ static int s5p_cec_probe(struct platform_device *pdev) struct platform_device *hdmi_dev; struct resource *res; struct s5p_cec_dev *cec; + bool needs_hpd = of_property_read_bool(pdev->dev.of_node, "needs-hpd"); int ret; np = of_parse_phandle(pdev->dev.of_node, "hdmi-phandle", 0); @@ -221,7 +222,8 @@ static int s5p_cec_probe(struct platform_device *pdev) cec->adap = cec_allocate_adapter(&s5p_cec_adap_ops, cec, CEC_NAME, CEC_CAP_LOG_ADDRS | CEC_CAP_TRANSMIT | - CEC_CAP_PASSTHROUGH | CEC_CAP_RC, 1); + CEC_CAP_PASSTHROUGH | CEC_CAP_RC | + (needs_hpd ? CEC_CAP_NEEDS_HPD : 0), 1); ret = PTR_ERR_OR_ZERO(cec->adap); if (ret) return ret;