Update to include new ahd_scb_timer_reset API

Move IOCell paramters into softc and add a hook for the
OSM to modify these as well as other settings prior to
committing them to the chip.

Approved by:	re (blanket)
This commit is contained in:
Scott Long 2002-12-01 07:50:56 +00:00
parent 38857e7f73
commit 481a41742f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=107437

View File

@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic79xx_osm.h#14 $
* $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic79xx_osm.h#18 $
*
* $FreeBSD$
*/
@ -222,6 +222,7 @@ typedef struct callout ahd_timer_t;
#include <dev/aic7xxx/aic79xx.h>
/***************************** Timer Facilities *******************************/
timeout_t ahd_timeout;
#if __FreeBSD_version >= 500000
#define ahd_timer_init(timer) callout_init(timer, /*mpsafe*/0)
#else
@ -230,11 +231,18 @@ typedef struct callout ahd_timer_t;
#define ahd_timer_stop callout_stop
static __inline void
ahd_timer_reset(ahd_timer_t *timer, int usec, ahd_callback_t *func, void *arg)
ahd_timer_reset(ahd_timer_t *timer, u_int usec, ahd_callback_t *func, void *arg)
{
callout_reset(timer, (usec * hz)/1000000, func, arg);
}
static __inline void
ahd_scb_timer_reset(struct scb *scb, u_int usec)
{
callout_reset(scb->io_ctx->ccb_h.timeout_ch.callout,
(usec * hz)/1000000, ahd_timeout, scb);
}
/*************************** Device Access ************************************/
#define ahd_inb(ahd, port) \
bus_space_read_1((ahd)->tags[(port) >> 8], \
@ -580,6 +588,8 @@ int ahd_map_int(struct ahd_softc *ahd);
int ahd_attach(struct ahd_softc *);
int ahd_softc_comp(struct ahd_softc *lahd, struct ahd_softc *rahd);
int ahd_detach(device_t);
#define ahd_platform_init(arg)
/****************************** Interrupts ************************************/
void ahd_platform_intr(void *);
@ -590,7 +600,6 @@ ahd_platform_flushwork(struct ahd_softc *ahd)
}
/************************ Misc Function Declarations **************************/
timeout_t ahd_timeout;
void ahd_done(struct ahd_softc *ahd, struct scb *scb);
void ahd_send_async(struct ahd_softc *, char /*channel*/,
u_int /*target*/, u_int /*lun*/, ac_code, void *arg);