3489 drv_usecwait(3000);
3490
3491 /*
3492 * Power down HW
3493 */
3494 (void) ath9k_hw_phy_disable(ah);
3495
3496 return (DDI_SUCCESS);
3497 }
3498
3499 DDI_DEFINE_STREAM_OPS(arn_dev_ops, nulldev, nulldev, arn_attach, arn_detach,
3500 nodev, NULL, D_MP, NULL, arn_quiesce);
3501
3502 static struct modldrv arn_modldrv = {
3503 &mod_driverops, /* Type of module. This one is a driver */
3504 "arn-Atheros 9000 series driver:2.0", /* short description */
3505 &arn_dev_ops /* driver specific ops */
3506 };
3507
3508 static struct modlinkage modlinkage = {
3509 MODREV_1, (void *)&arn_modldrv, NULL
3510 };
3511
3512 int
3513 _info(struct modinfo *modinfop)
3514 {
3515 return (mod_info(&modlinkage, modinfop));
3516 }
3517
3518 int
3519 _init(void)
3520 {
3521 int status;
3522
3523 status = ddi_soft_state_init
3524 (&arn_soft_state_p, sizeof (struct arn_softc), 1);
3525 if (status != 0)
3526 return (status);
3527
3528 mutex_init(&arn_loglock, NULL, MUTEX_DRIVER, NULL);
3529 mac_init_ops(&arn_dev_ops, "arn");
|
3489 drv_usecwait(3000);
3490
3491 /*
3492 * Power down HW
3493 */
3494 (void) ath9k_hw_phy_disable(ah);
3495
3496 return (DDI_SUCCESS);
3497 }
3498
3499 DDI_DEFINE_STREAM_OPS(arn_dev_ops, nulldev, nulldev, arn_attach, arn_detach,
3500 nodev, NULL, D_MP, NULL, arn_quiesce);
3501
3502 static struct modldrv arn_modldrv = {
3503 &mod_driverops, /* Type of module. This one is a driver */
3504 "arn-Atheros 9000 series driver:2.0", /* short description */
3505 &arn_dev_ops /* driver specific ops */
3506 };
3507
3508 static struct modlinkage modlinkage = {
3509 MODREV_1, { (void *)&arn_modldrv, NULL }
3510 };
3511
3512 int
3513 _info(struct modinfo *modinfop)
3514 {
3515 return (mod_info(&modlinkage, modinfop));
3516 }
3517
3518 int
3519 _init(void)
3520 {
3521 int status;
3522
3523 status = ddi_soft_state_init
3524 (&arn_soft_state_p, sizeof (struct arn_softc), 1);
3525 if (status != 0)
3526 return (status);
3527
3528 mutex_init(&arn_loglock, NULL, MUTEX_DRIVER, NULL);
3529 mac_init_ops(&arn_dev_ops, "arn");
|