Changeset 1e32a63 in mainline for uspace/drv/vhc/hub.c


Ignore:
Timestamp:
2010-12-13T00:30:09Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f9a0cef
Parents:
f8597ca
Message:

Guarding port changes by mutex in VHC

The individual ports in virtual host controller are guarded by mutex.

Also added ClearPortFeature(C_PORT_RESET) callback.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/vhc/hub.c

    rf8597ca r1e32a63  
    181181                hub_port_t *port = &hub_dev.ports[i];
    182182               
    183                 port->index = (int) i;
     183                port->index = (int) i + 1;
    184184                port->device = NULL;
    185185                port->state = HUB_PORT_STATE_NOT_CONFIGURED;
    186186                port->status_change = 0;
     187                fibril_mutex_initialize(&port->guard);
    187188        }
    188189       
     
    225226        for (i = 0; i < HUB_PORT_COUNT; i++) {
    226227                hub_port_t *port = &hub_dev.ports[i];
     228                fibril_mutex_lock(&port->guard);
    227229               
    228230                if (port->device != NULL) {
     231                        fibril_mutex_unlock(&port->guard);
    229232                        continue;
    230233                }
     
    241244                //if (port->state == HUB_PORT_STATE_DISCONNECTED) {
    242245                        port->state = HUB_PORT_STATE_DISABLED;
    243                         set_port_status_change(port, HUB_STATUS_C_PORT_CONNECTION);
     246                        set_port_status_change_nl(port, HUB_STATUS_C_PORT_CONNECTION);
    244247                //}
    245248               
     249                fibril_mutex_unlock(&port->guard);
     250
    246251                return i;
    247252        }
Note: See TracChangeset for help on using the changeset viewer.