media: s5p_cec: use new cec_notifier_parse_hdmi_phandle helper
The S5P CEC driver increased the HDMI device refcount when it shouldn't. Use the new helper function to ensure that that doesn't happen and to simplify the driver code. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
6bc37729df
commit
ba9db909d3
|
@ -178,22 +178,16 @@ static const struct cec_adap_ops s5p_cec_adap_ops = {
|
|||
static int s5p_cec_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct device_node *np;
|
||||
struct platform_device *hdmi_dev;
|
||||
struct 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);
|
||||
hdmi_dev = cec_notifier_parse_hdmi_phandle(dev);
|
||||
|
||||
if (!np) {
|
||||
dev_err(&pdev->dev, "Failed to find hdmi node in device tree\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
hdmi_dev = of_find_device_by_node(np);
|
||||
if (hdmi_dev == NULL)
|
||||
return -EPROBE_DEFER;
|
||||
if (IS_ERR(hdmi_dev))
|
||||
return PTR_ERR(hdmi_dev);
|
||||
|
||||
cec = devm_kzalloc(&pdev->dev, sizeof(*cec), GFP_KERNEL);
|
||||
if (!cec)
|
||||
|
@ -224,7 +218,7 @@ static int s5p_cec_probe(struct platform_device *pdev)
|
|||
if (IS_ERR(cec->reg))
|
||||
return PTR_ERR(cec->reg);
|
||||
|
||||
cec->notifier = cec_notifier_get(&hdmi_dev->dev);
|
||||
cec->notifier = cec_notifier_get(hdmi_dev);
|
||||
if (cec->notifier == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
Loading…
Reference in New Issue