Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Jul 2005 16:48:07 +0900
From:      takawata@jp.freebsd.org
To:        freebsd-hackers@freebsd.org
Subject:   Re: Bus Driver probe and attach device
Message-ID:  <200507220748.QAA02213@axe-inc.co.jp>
In-Reply-To: Your message of "Fri, 22 Jul 2005 14:38:32 %2B0800." <c5c2798005072123385249195e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message <c5c2798005072123385249195e@mail.gmail.com>, $B<<D.M%9a(B wrote:
>Hi:
>
>I'm trying to written Azalia (HD Audio) driver for freebsd now.
>
>The HDA controller is a standard controller, which can take max=
>15 codecs. I'm planning made it be a bus driver (azalia bus).
>
>I tried to read the PCI, USB and Firewire driver code be sample.
>It looks:
>
>1. Detect codec which already connected to azalia controller.
>2. call device_add_child(azbus_dev, NULL, -1); to create a child
>    device, which attach to azalia bus driver.
>3. allocate memory to put codec info (e.g. device id, vendor id,=20
>    revision..etc), and call device_set_ivars(codec_dev, codec_info);
>    save the codec_info ptr into device's ivars.
>4. Continue 1 ~ 3, untin all available codecs be added.
>
>After all codecs be added, I call the device_probe_and_attach(azbus_dev);,
>but there is no thing happend.=20

Because it trys to attach azbus driver itself, not try to attach its child.

>Then I try to call bus_generic_attach(azbus_dev);, the codecs driver probe
>function be called.

>Is this correct (use bus_generic_attach()), and I'm interested the detail.

Correct. It calls device_probe_and_attach() for all child you already 
add.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507220748.QAA02213>