Re: [PATCH v8 07/11] drm/panel: panel-simple: Stash DP AUX bus; allow using it for DDC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Doug,

 	panel->no_hpd = of_property_read_bool(dev->of_node, "no-hpd");
 	if (!panel->no_hpd) {
@@ -708,6 +712,8 @@ static int panel_simple_probe(struct device *dev,
const struct panel_desc *desc)

 		if (!panel->ddc)
 			return -EPROBE_DEFER;
+	} else if (aux) {
+		panel->ddc = &aux->ddc;
 	}

In panel_simple_probe(), the put_device(&panel->ddc->dev) call is causing issue when the aux->ddc is used to assign panel->ddc
It works well when "ddc-i2c-bus" is used to assign panel->ddc

static int panel_simple_probe(...)
{
...

free_ddc:
        if (panel->ddc)
                put_device(&panel->ddc->dev);

        return err;
}

== Log start ==

[    2.393970] ------------[ cut here ]------------
[ 2.398747] kobject: '(null)' ((____ptrval____)): is not initialized, yet kobject_put() is being called. [ 2.408554] WARNING: CPU: 7 PID: 7 at lib/kobject.c:752 kobject_put+0x38/0xe0
...
...
[    2.528574] Call trace:
[    2.531092]  kobject_put+0x38/0xe0
[    2.534594]  put_device+0x20/0x2c
[    2.538002]  panel_simple_probe+0x4bc/0x550
[    2.542300]  panel_simple_dp_aux_ep_probe+0x44/0x5c
[    2.547305]  dp_aux_ep_probe+0x58/0x80

== Log end ==


Sincerely,
Rajeev



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux