Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Mar 2007 13:31:20 -0500
From:      David Gilbert <dgilbert@dclg.ca>
To:        Nate Lawson <nate@root.org>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: umass driver doesn't rescan the bus
Message-ID:  <17900.25080.59757.122204@canoe.dclg.ca>
In-Reply-To: <45E75C67.5050107@root.org>
References:  <8af9710703010127r64733012h20859ff9a61967bd@mail.gmail.com> <45E75C67.5050107@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> "Nate" =3D=3D Nate Lawson <nate@root.org> writes:

Nate> Micha=C5=82 Frynas wrote:
>> I've got a small problem when trying to configure the devd daemon
>> to work with umass driver. Here's what I'm trying to achive: I
>> configured the devd to handle the nomatch event as follows:
>>=20
>> nomatch 100 { match "vendor" "[ven_id]"; match "product"
>> "[prod_id]"; match "release" "[rel_id]"; action "if ! kldstat -n
>> umass; then kldload umass; fi"; };
>>=20
>> detach 100 { device-name "umass[0-9]+"; action "if kldstat -n
>> umass; then kldunload; fi"; };

[...]

Nate> This is not at all an ACPI question but I think I can answer it.
Nate> umass isn't a device type, it's a transfer method for SCSI or
Nate> ATA devices.  In most cases devices are SCSI and thus the da

[...]

Nate> Solution: load umass at boot.

Actually, this is a fundamental flaw in our USB driver stack.  If a
new driver comes available that is able to better handle a device, it
cannot.  The converse is also true:  If a device has properties of a
more complex driver, it will attach to the more complex driver and you
cannot use simple (pass) driver methods to access it.

It almost seems as if something along the lines of geom is required
for usb.  ie: drivers that allow each level of the device be opened
and stack on top of each other without stupid performance penalties.

Dave.

--=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
|David Gilbert, Independent Contractor.       | Two things can be      =
    |
|Mail:       dave@daveg.ca                    |  equal if and only if t=
hey |
|http://daveg.ca                              |   are precisely opposit=
e.  |
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3DGLO=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D



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