From owner-freebsd-hackers@FreeBSD.ORG Fri Jul 22 06:38:39 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1450116A421 for ; Fri, 22 Jul 2005 06:38:39 +0000 (GMT) (envelope-from yuka.muromachi@gmail.com) Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.207]) by mx1.FreeBSD.org (Postfix) with ESMTP id A601C43D82 for ; Fri, 22 Jul 2005 06:38:34 +0000 (GMT) (envelope-from yuka.muromachi@gmail.com) Received: by zproxy.gmail.com with SMTP id c3so126441nze for ; Thu, 21 Jul 2005 23:38:32 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=Vnsman4x4SGUw6bX8x/kWBZ+bb93F5A3HiJEGbNiix6Hs0dJ3xypmzroCB4kurd0GwGF3ARxX0Opxq7vQG5sbkYN75Zpj8Edb/dRT+wGLsbko7AhDfUXOlIV/TD6pi/0KhvRd+r+9XPHfQXFxe+gpJJDUKYuttz1pB+o9wlm3+U= Received: by 10.36.115.4 with SMTP id n4mr1302480nzc; Thu, 21 Jul 2005 23:38:32 -0700 (PDT) Received: by 10.36.221.16 with HTTP; Thu, 21 Jul 2005 23:38:32 -0700 (PDT) Message-ID: Date: Fri, 22 Jul 2005 14:38:32 +0800 From: =?ISO-2022-JP?B?GyRCPDxELk0lOWEbKEI=?= To: freebsd-hackers@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: Bus Driver probe and attach device X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: =?ISO-2022-JP?B?GyRCPDxELk0lOWEbKEI=?= List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2005 06:38:39 -0000 Hi: I'm trying to written Azalia (HD Audio) driver for freebsd now. The HDA controller is a standard controller, which can take max=20 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);,= =20 but there is no thing happend.=20 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.