2480 drv_usecwait(3000);
2481
2482 /*
2483 * Power down HW
2484 */
2485 ATH_HAL_PHYDISABLE(ah);
2486
2487 return (DDI_SUCCESS);
2488 }
2489
2490 DDI_DEFINE_STREAM_OPS(ath_dev_ops, nulldev, nulldev, ath_attach, ath_detach,
2491 nodev, NULL, D_MP, NULL, ath_quiesce);
2492
2493 static struct modldrv ath_modldrv = {
2494 &mod_driverops, /* Type of module. This one is a driver */
2495 "ath driver 1.4/HAL 0.10.5.6", /* short description */
2496 &ath_dev_ops /* driver specific ops */
2497 };
2498
2499 static struct modlinkage modlinkage = {
2500 MODREV_1, (void *)&ath_modldrv, NULL
2501 };
2502
2503
2504 int
2505 _info(struct modinfo *modinfop)
2506 {
2507 return (mod_info(&modlinkage, modinfop));
2508 }
2509
2510 int
2511 _init(void)
2512 {
2513 int status;
2514
2515 status = ddi_soft_state_init(&ath_soft_state_p, sizeof (ath_t), 1);
2516 if (status != 0)
2517 return (status);
2518
2519 mutex_init(&ath_loglock, NULL, MUTEX_DRIVER, NULL);
2520 ath_halfix_init();
|
2480 drv_usecwait(3000);
2481
2482 /*
2483 * Power down HW
2484 */
2485 ATH_HAL_PHYDISABLE(ah);
2486
2487 return (DDI_SUCCESS);
2488 }
2489
2490 DDI_DEFINE_STREAM_OPS(ath_dev_ops, nulldev, nulldev, ath_attach, ath_detach,
2491 nodev, NULL, D_MP, NULL, ath_quiesce);
2492
2493 static struct modldrv ath_modldrv = {
2494 &mod_driverops, /* Type of module. This one is a driver */
2495 "ath driver 1.4/HAL 0.10.5.6", /* short description */
2496 &ath_dev_ops /* driver specific ops */
2497 };
2498
2499 static struct modlinkage modlinkage = {
2500 MODREV_1, { (void *)&ath_modldrv, NULL }
2501 };
2502
2503
2504 int
2505 _info(struct modinfo *modinfop)
2506 {
2507 return (mod_info(&modlinkage, modinfop));
2508 }
2509
2510 int
2511 _init(void)
2512 {
2513 int status;
2514
2515 status = ddi_soft_state_init(&ath_soft_state_p, sizeof (ath_t), 1);
2516 if (status != 0)
2517 return (status);
2518
2519 mutex_init(&ath_loglock, NULL, MUTEX_DRIVER, NULL);
2520 ath_halfix_init();
|