| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the "struct disk" were owned by the device driver and this
gave us problems when the device disappared and the users of that device
were not immediately disappearing.
Now the struct disk is allocate with a new call, disk_alloc() and owned
by geom_disk and just abandonned by the device driver when disk_create()
is called.
Unfortunately, this results in a ton of "s/\./->/" changes to device
drivers.
Since I'm doing the sweep anyway, a couple of other API improvements
have been carried out at the same time:
The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to
DISKFLAG_NEEDSGIANT
A version number have been added to disk_create() so that we can detect,
report and ignore binary drivers with old ABI in the future.
Manual page update to follow shortly.
|
|
|
|
|
| |
Use taskqueue_thread rather than taskqueue_swi (maybe we should have
a taskqueue_ata).
|
|
|
|
|
|
|
| |
it asynchronous to avoid incorrect use of ata_atapicmd within an
ATAPI callback.
Tested by: harti
|
|
|
|
|
|
| |
This allows the system to boot so I can get the world out of
my mailbox and get some work done to figure out what this mess
is all about.
|
|
|
|
| |
This apparently was what broke the boot with some devices (liteon).
|
|
|
|
|
| |
Somehow the bridge on there shows up with another PCI id than
it does on x86, no idea why...
|
|
|
|
|
| |
reinitting when we try to identify devices. If they dont interrupt
on identify we retry once. If this fails we simply ignore that device.
|
| |
|
|
|
|
| |
Note to self, just because an idea is good, it doesn't apply everywhere.
|
|
|
|
|
|
|
| |
instead of taskqueue_swi. This shaves from 1 to 10% of the overhead.
Overhaul the locking once more, there was a few possible races that
are now closed.
|
| |
|
| |
|
|
|
|
| |
that the calling process would newer wakeup.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This gives +10% performance on simple tests, so definitly worth it.
A few percent more could be had by not using M_ZERO'd alloc's, but
we then need to clear fields all over the place to be safe, and
that was deemed not worth the trouble (and it makes life dangerous).
|
| |
|
|
|
|
| |
both master and slave at the same time confusing the probe code.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the leftovers from the old version that really doesn't work anymore.
Add a reset function for host-end of the ATA channel. This is needed
for the SiI3112 in order to whack it back to reality if a device
locks up the SATA interface (thereby preventing that we can reset the
device). The result is that ATA now recovers from the timeouts that
happens with the SiI3112A and more or less all disks based on old
PATA electronics with a Marvell PATA->SATA converter. This includes
lots of the popular SATA dongles and the WDC Raptor disks..
|
| |
|
|
|
|
|
| |
new nothbridges we should even find the southbridge and be able to
use it (if its one we know that is).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Serialize access to the SATA channels, the chip messes up if
both channels are used at the same time.
The SiI3112 hereby takes the price as the most crappy SATA chip in
existance by a significant amount.
My advise to our userbase is to avoid this chip like the plague...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setup decent transfer mode defaults as some BIOS's seem to put in
things that it *knows* doesn't work.
(Note to BIOS writers: stop doing that nonsense, we will get things
working with your crappy HW anyways, and then recommend users to buy
someone else's products that "just works", thankyou.. )
Limit the device transfer mode to ATA100/UDMA5 on generic SATA.
Since we dont know if the user is using a pure SATA device or an
old PATA drive with a SATA converter dongle, we need to limit the
speed used here to cover up the problems with Marvell ATA-SATA bridges
used in lots of SATA products.
This workaround is enabled for all detectable SATA controllers as they
seem to have semilar problems here. One notable exception is all the
Promise pdc2037x chips which just always work (cudos to Promise!).
|
|
|
|
|
| |
On the <QSI CD-RW/DVD-ROM SBW-242> that failed causing burncd to
wait forever...
|
|
|
|
|
|
| |
into the ata queueing layer.
Approved by: re
|
|
|
|
| |
Approved by: re@
|
|
|
|
| |
Approved by: re@
|
|
|
|
|
|
|
|
|
| |
The altio resource magic no longer worked probably due to other changes
in the kernel. Redo that part so it also fits better into ATAng.
Fix detach so it doesn't panic the system when a pccard device is
yanked.
Approved by: re@
|
|
|
|
| |
Approved by: re@
|
|
|
|
| |
Approved by: re@
|
|
|
|
| |
Approved by: re@
|
|
|
|
|
|
| |
invalid media (ie empty CD/DVD)
Approved by: re@
|
|
|
|
|
| |
Spotted by: tmm
reviewed by: re@
|
|
|
|
|
|
| |
This could not have been done without the support from kuriyama.
Approved by: re@
|
|
|
|
|
|
|
|
| |
TOC's for the same media!! that borks up GEOM.
Although this looks like bad HW the following patch removes the
chance for GEOM panic'ing.
Approved by: re@
|
|
|
|
|
|
| |
it in ata-all.c where it belongs.
Prime controller HW by always setting PIO mode first in attach.
|
|
|
|
| |
to avoid loosing evt cached data.
|
|
|
|
| |
the memory leak seen when using ATAPICAM.
|
|
|
|
| |
Found by: Peter Edwards <pmedwards@eircom.net>
|
| |
|