Changes in uspace/drv/ohci/hc.c [5d07f54:c8eddf4] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/ohci/hc.c

    r5d07f54 rc8eddf4  
    4949static int interrupt_emulator(hc_t *instance);
    5050static void hc_gain_control(hc_t *instance);
     51static void hc_init_hw(hc_t *instance);
    5152static int hc_init_transfer_lists(hc_t *instance);
    5253static int hc_init_memory(hc_t *instance);
     
    9192                usb_log_error("Failed add root hub match-id.\n");
    9293        }
    93         ret = ddf_fun_bind(hub_fun);
    9494        return ret;
    9595}
     
    111111            ret, str_error(ret));
    112112
    113         list_initialize(&instance->pending_batches);
    114113        usb_device_keeper_init(&instance->manager);
    115114        ret = usb_endpoint_manager_init(&instance->ep_manager,
     
    118117            str_error(ret));
    119118
     119        hc_gain_control(instance);
    120120        ret = hc_init_memory(instance);
    121121        CHECK_RET_RETURN(ret, "Failed to create OHCI memory structures: %s.\n",
    122122            str_error(ret));
    123 #undef CHECK_RET_RETURN
    124 
    125 
    126 //      hc_init_hw(instance);
    127         hc_gain_control(instance);
     123        hc_init_hw(instance);
    128124        fibril_mutex_initialize(&instance->guard);
    129125
     
    136132        }
    137133
     134        list_initialize(&instance->pending_batches);
     135#undef CHECK_RET_RETURN
    138136        return EOK;
    139137}
     
    289287{
    290288        assert(instance);
    291         usb_log_debug("OHCI(%p) interrupt: %x.\n", instance, status);
     289        usb_log_debug("OHCI interrupt: %x.\n", status);
    292290        if ((status & ~I_SF) == 0) /* ignore sof status */
    293291                return;
     
    341339            (uint32_t*)((char*)instance->registers + 0x100);
    342340        usb_log_debug("OHCI legacy register %p: %x.\n",
    343             ohci_emulation_reg, *ohci_emulation_reg);
    344         /* Do not change A20 state */
    345         *ohci_emulation_reg &= 0x100;
    346         usb_log_debug("OHCI legacy register %p: %x.\n",
    347             ohci_emulation_reg, *ohci_emulation_reg);
     341                ohci_emulation_reg, *ohci_emulation_reg);
     342        *ohci_emulation_reg &= ~0x1;
    348343
    349344        /* Interrupt routing enabled => smm driver is active */
     
    355350                }
    356351                usb_log_info("SMM driver: Ownership taken.\n");
    357                 instance->registers->control &= (C_HCFS_RESET << C_HCFS_SHIFT);
    358                 async_usleep(50000);
    359352                return;
    360353        }
     
    382375}
    383376/*----------------------------------------------------------------------------*/
    384 void hc_start_hw(hc_t *instance)
     377void hc_init_hw(hc_t *instance)
    385378{
    386379        /* OHCI guide page 42 */
     
    481474{
    482475        assert(instance);
    483 
    484         bzero(&instance->rh, sizeof(instance->rh));
    485476        /* Init queues */
    486477        hc_init_transfer_lists(instance);
Note: See TracChangeset for help on using the changeset viewer.