Home | History | Annotate | Download | only in eisa

Lines Matching defs:mlx

33  * EISA front-end for mlx(4) driver.
113 struct mlx_softc *mlx;
119 mlx = device_private(self);
126 mlx->mlx_ci.ci_nchan = (int)dce->value;
127 mlx->mlx_ci.ci_iftype = 1;
129 mlx->mlx_submit = mlx_v1_submit;
130 mlx->mlx_findcomplete = mlx_v1_findcomplete;
131 mlx->mlx_intaction = mlx_v1_intaction;
132 mlx->mlx_fw_handshake = mlx_v1_fw_handshake;
134 mlx->mlx_reset = mlx_v1_reset;
145 mlx->mlx_dv = self;
146 mlx->mlx_iot = iot;
147 mlx->mlx_ioh = ioh;
148 mlx->mlx_dmat = ea->ea_dmat;
182 mlx->mlx_ih = eisa_intr_establish(ec, ih, ist, IPL_BIO, mlx_intr, mlx);
183 if (mlx->mlx_ih == NULL) {
195 mlx_init(mlx, intrstr);
216 mlx_v1_submit(struct mlx_softc *mlx, struct mlx_ccb *mc)
220 if ((mlx_inb(mlx, MLX_V1REG_IDB) & MLX_V1_IDB_FULL) == 0) {
222 bus_space_write_region_1(mlx->mlx_iot, mlx->mlx_ioh,
226 mlx_outb(mlx, MLX_V1REG_IDB, MLX_V1_IDB_FULL);
240 mlx_v1_findcomplete(struct mlx_softc *mlx, u_int *slot, u_int *status)
244 if ((mlx_inb(mlx, MLX_V1REG_ODB) & MLX_V1_ODB_SAVAIL) != 0) {
245 *slot = mlx_inb(mlx, MLX_V1REG_MAILBOX + 0x0d);
246 *status = mlx_inw(mlx, MLX_V1REG_MAILBOX + 0x0e);
249 mlx_outb(mlx, MLX_V1REG_ODB, MLX_V1_ODB_SAVAIL);
250 mlx_outb(mlx, MLX_V1REG_IDB, MLX_V1_IDB_SACK);
263 mlx_v1_intaction(struct mlx_softc *mlx, int action)
266 mlx_outb(mlx, MLX_V1REG_IE, action ? 1 : 0);
276 mlx_v1_fw_handshake(struct mlx_softc *mlx, int *error, int *param1, int *param2)
284 if ((mlx->mlx_flags & MLXF_FW_INITTED) == 0) {
285 mlx_outb(mlx, MLX_V1REG_ODB_EN, 1);
287 mlx_outb(mlx, MLX_V1REG_ODB, 1);
289 mlx_outb(mlx, MLX_V1REG_IDB, MLX_V1_IDB_SACK);
291 mlx->mlx_flags |= MLXF_FW_INITTED;
295 if ((mlx_inb(mlx, MLX_V1REG_IDB) & MLX_V1_IDB_INIT_BUSY) == 0)
299 fwerror = mlx_inb(mlx, MLX_V1REG_ODB);
310 mlx_outb(mlx, MLX_V1REG_ODB, fwerror);
320 mlx_v1_reset(struct mlx_softc *mlx)
324 mlx_outb(mlx, MLX_V1REG_IDB, MLX_V1_IDB_SACK);
330 if ((mlx_inb(mlx, MLX_V1REG_IDB) & MLX_V1_IDB_SACK) == 0)
336 mlx_outb(mlx, MLX_V1REG_ODB, MLX_V1_ODB_RESET);
337 mlx_outb(mlx, MLX_V1REG_IDB, MLX_V1_IDB_RESET);
342 if ((mlx_inb(mlx, MLX_V1REG_IDB) & MLX_V1_IDB_RESET) == 0)
351 if ((mlx_inb(mlx, MLX_V1REG_ODB) & MLX_V1_ODB_RESET) == 0)
361 MODULE(MODULE_CLASS_DRIVER, mlx_eisa, "mlx"); /* No eisa module yet! */