DragonFly-2.3.1.209.g17eab master sys/dev/disk/ahci ahci.c ahci.

看板DFBSD_commit作者時間16年前 (2009/06/09 17:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 17eab71eccd5f3dda84b5d70ba6e7156732915c1 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Tue Jun 9 01:50:36 2009 -0700 AHCI bug fixes & enhancements. port_init, port_stop, port_start, etc. * When initializing the AHCI device do an unconditional reset instead of a conditional reset. The previous conditional reset did not cover all the bases and could result in an unusable device. * Remove the second (unused) argument from ahci_port_start(). * ahci_port_init() - init/reinit common code. If the hard reset fails try a second time before giving up. Devices can get into weird states and two attempts seems to clear it up. * ahci_port_start() - FRE must be turned on before ST. Wait for FR to come up before turning on ST. The spec does not require this but it saves us from a race in ahci_port_stop() so do it anyway. * ahci_port_stop() - When turning off ST we must wait for CR to go inactive before we can turn off FRE. * ahci_port_free() - Properly sequence stopping of the port by calling ahci_port_stop(). * Create a consolidated ahci_port_reset() call to clean up some of the code paths. Summary of changes: sys/dev/disk/ahci/ahci.c | 214 +++++++++++++++++++++++++++--------------- sys/dev/disk/ahci/ahci.h | 3 +- sys/dev/disk/ahci/ahci_cam.c | 5 +- 3 files changed, 141 insertions(+), 81 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/17eab71eccd5f3dda84b5d70ba6e7156732915c1 -- DragonFly BSD source repository
文章代碼(AID): #1ABYmP00 (DFBSD_commit)