On Sat, Jun 10, 2017 at 02:23:55PM +0200, Stefan Sperling wrote:
> On Tue, May 23, 2017 at 07:51:14AM +0200, Cesare Gargano wrote:
> > Hi,
> > I made E200HA keyboard and touchpad work configuring node->parent deps.
> > As Mark says, it's a order problem, we should attach all deps drivers before
> > attaching the device driver itself.
> > 
> > Attached diff and a (old) dmesg.
> > 
> > -
> > C.
> 
> This diff has not caused a problem on any of my machines, and I still
> have it in my build tree.
> 
> What happened to it?

Ping. Should this diff be discarded?

> 
> > diff --git a/.gitignore b/.gitignore
> > new file mode 100644
> > index 00000000000..dbd7620a943
> > --- /dev/null
> > +++ b/.gitignore
> > @@ -0,0 +1,4 @@
> > +obj/
> > +~*
> > +*.o
> > +*.d
> > diff --git a/sys/dev/acpi/acpi.c b/sys/dev/acpi/acpi.c
> > index 09495657aad..092693e192c 100644
> > --- a/sys/dev/acpi/acpi.c
> > +++ b/sys/dev/acpi/acpi.c
> > @@ -2819,7 +2819,7 @@ acpi_attach_deps(struct acpi_softc *sc, struct 
> > aml_node *node)
> >             if (dep == NULL || dep->attached)
> >                     continue;
> >             dep = aml_searchname(dep, "_HID");
> > -           if (dep)
> > +           if (dep && dep->parent->attached != 2)
> >                     acpi_foundhid(dep, sc);
> >     }
> >  
> > diff --git a/sys/dev/acpi/dwiic.c b/sys/dev/acpi/dwiic.c
> > index 60bf8d17a22..302b0051229 100644
> > --- a/sys/dev/acpi/dwiic.c
> > +++ b/sys/dev/acpi/dwiic.c
> > @@ -196,6 +196,8 @@ int             dwiic_i2c_exec(void *, i2c_op_t, 
> > i2c_addr_t, const void *,
> >                 size_t, void *, size_t, int);
> >  void               dwiic_xfer_msg(struct dwiic_softc *);
> >  
> > +extern void        acpi_attach_deps(struct acpi_softc *, struct aml_node 
> > *);
> > +
> >  struct cfattach dwiic_ca = {
> >     sizeof(struct dwiic_softc),
> >     dwiic_match,
> > @@ -567,11 +569,15 @@ dwiic_acpi_found_hid(struct aml_node *node, void *arg)
> >             aml_freevalue(&res);
> >             return (0);
> >     }
> > +
> >     memset(&crs, 0, sizeof(crs));
> >     crs.devnode = sc->sc_devnode;
> >     aml_parse_resource(&res, dwiic_acpi_parse_crs, &crs);
> >     aml_freevalue(&res);
> >  
> > +   node->parent->attached = 2;
> > +   acpi_attach_deps(acpi_softc, node->parent);
> > +
> >     if (dwiic_matchhids(cdev, ihidev_hids))
> >             return dwiic_acpi_found_ihidev(sc, node, dev, crs);
> >     else if (dwiic_matchhids(dev, iatp_hids))
> 
> 

Reply via email to