Print this page
XXXX introduce drv_sectohz


 403          * Make this HCD instance known to USBA
 404          * (dma_attr must be passed for USBA busctl's)
 405          */
 406         hcdi_args.usba_hcdi_register_version = HCDI_REGISTER_VERSION;
 407         hcdi_args.usba_hcdi_register_dip = dip;
 408         hcdi_args.usba_hcdi_register_ops = uhcip->uhci_hcdi_ops;
 409         hcdi_args.usba_hcdi_register_dma_attr = &uhcip->uhci_dma_attr;
 410         hcdi_args.usba_hcdi_register_iblock_cookie =
 411             (ddi_iblock_cookie_t)(uintptr_t)uhcip->uhci_intr_pri;
 412 
 413         if (usba_hcdi_register(&hcdi_args, 0) != USB_SUCCESS) {
 414 
 415                 goto fail;
 416         }
 417 
 418 #ifndef __sparc
 419         /*
 420          * On NCR system,  the driver seen  failure of some commands
 421          * while booting. This delay mysteriously solved the problem.
 422          */
 423         delay(drv_usectohz(uhci_attach_wait*1000000));
 424 #endif
 425 
 426         /*
 427          * Create another timeout handler to check whether any
 428          * control/bulk/interrupt commands failed.
 429          * This gets called every second.
 430          */
 431         uhcip->uhci_cmd_timeout_id = timeout(uhci_cmd_timeout_hdlr,
 432             (void *)uhcip, UHCI_ONE_SECOND);
 433 
 434         mutex_enter(&uhcip->uhci_int_mutex);
 435 
 436         /*
 437          * Set HcInterruptEnable to enable all interrupts except Root
 438          * Hub Status change and SOF interrupts.
 439          */
 440         Set_OpReg16(USBINTR, ENABLE_ALL_INTRS);
 441 
 442         /* Test the SOF interrupt */
 443         if (uhci_wait_for_sof(uhcip) != USB_SUCCESS) {




 403          * Make this HCD instance known to USBA
 404          * (dma_attr must be passed for USBA busctl's)
 405          */
 406         hcdi_args.usba_hcdi_register_version = HCDI_REGISTER_VERSION;
 407         hcdi_args.usba_hcdi_register_dip = dip;
 408         hcdi_args.usba_hcdi_register_ops = uhcip->uhci_hcdi_ops;
 409         hcdi_args.usba_hcdi_register_dma_attr = &uhcip->uhci_dma_attr;
 410         hcdi_args.usba_hcdi_register_iblock_cookie =
 411             (ddi_iblock_cookie_t)(uintptr_t)uhcip->uhci_intr_pri;
 412 
 413         if (usba_hcdi_register(&hcdi_args, 0) != USB_SUCCESS) {
 414 
 415                 goto fail;
 416         }
 417 
 418 #ifndef __sparc
 419         /*
 420          * On NCR system,  the driver seen  failure of some commands
 421          * while booting. This delay mysteriously solved the problem.
 422          */
 423         delay(drv_sectohz(uhci_attach_wait));
 424 #endif
 425 
 426         /*
 427          * Create another timeout handler to check whether any
 428          * control/bulk/interrupt commands failed.
 429          * This gets called every second.
 430          */
 431         uhcip->uhci_cmd_timeout_id = timeout(uhci_cmd_timeout_hdlr,
 432             (void *)uhcip, UHCI_ONE_SECOND);
 433 
 434         mutex_enter(&uhcip->uhci_int_mutex);
 435 
 436         /*
 437          * Set HcInterruptEnable to enable all interrupts except Root
 438          * Hub Status change and SOF interrupts.
 439          */
 440         Set_OpReg16(USBINTR, ENABLE_ALL_INTRS);
 441 
 442         /* Test the SOF interrupt */
 443         if (uhci_wait_for_sof(uhcip) != USB_SUCCESS) {