Changeset fe1776c2 in mainline for uspace/drv
- Timestamp:
- 2011-02-11T12:41:11Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d81ef61c
- Parents:
- 78d1525 (diff), 5d4193c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- uspace/drv
- Files:
-
- 24 added
- 12 edited
- 6 moved
-
ns8250/ns8250.c (modified) (3 diffs)
-
pciintel/pci.c (modified) (2 diffs)
-
rootvirt/devices.def (modified) (2 diffs)
-
test2/test2.c (modified) (1 diff)
-
uhci-hcd/Makefile (added)
-
uhci-hcd/iface.c (added)
-
uhci-hcd/iface.h (added)
-
uhci-hcd/main.c (moved) (moved from uspace/drv/uhci/main.c ) (5 diffs)
-
uhci-hcd/pci.c (moved) (moved from uspace/drv/uhci/pci.c ) (3 diffs)
-
uhci-hcd/pci.h (moved) (moved from uspace/drv/uhci/uhci.h ) (2 diffs)
-
uhci-hcd/root_hub.c (added)
-
uhci-hcd/root_hub.h (added)
-
uhci-hcd/tracker.c (added)
-
uhci-hcd/tracker.h (added)
-
uhci-hcd/transfer_list.c (added)
-
uhci-hcd/transfer_list.h (added)
-
uhci-hcd/transfers.c (moved) (moved from uspace/drv/uhci/transfers.c )
-
uhci-hcd/uhci-hcd.ma (moved) (moved from uspace/drv/uhci/uhci.ma )
-
uhci-hcd/uhci.c (added)
-
uhci-hcd/uhci.h (added)
-
uhci-hcd/uhci_struct/link_pointer.h (added)
-
uhci-hcd/uhci_struct/queue_head.h (added)
-
uhci-hcd/uhci_struct/transfer_descriptor.c (added)
-
uhci-hcd/uhci_struct/transfer_descriptor.h (added)
-
uhci-hcd/utils/malloc32.h (added)
-
uhci-rhd/Makefile (moved) (moved from uspace/drv/uhci/Makefile ) (2 diffs)
-
uhci-rhd/main.c (added)
-
uhci-rhd/port.c (added)
-
uhci-rhd/port.h (added)
-
uhci-rhd/port_status.c (added)
-
uhci-rhd/port_status.h (added)
-
uhci-rhd/root_hub.c (added)
-
uhci-rhd/root_hub.h (added)
-
uhci-rhd/uhci-rhd.ma (added)
-
usbhid/main.c (modified) (7 diffs)
-
usbhub/main.c (modified) (1 diff)
-
usbhub/usbhub.c (modified) (2 diffs)
-
usbhub/usbhub_private.h (modified) (1 diff)
-
vhc/conndev.c (modified) (2 diffs)
-
vhc/devices.c (modified) (1 diff)
-
vhc/hc.c (modified) (1 diff)
-
vhc/hcd.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ns8250/ns8250.c
r78d1525 rfe1776c2 256 256 257 257 if (dev->parent_phone > 0) { 258 ipc_hangup(dev->parent_phone);258 async_hangup(dev->parent_phone); 259 259 dev->parent_phone = 0; 260 260 } … … 888 888 ns8250_get_props(dev, &baud_rate, &parity, &word_length, 889 889 &stop_bits); 890 ipc_answer_4(callid, EOK, baud_rate, parity, word_length,890 async_answer_4(callid, EOK, baud_rate, parity, word_length, 891 891 stop_bits); 892 892 break; … … 899 899 ret = ns8250_set_props(dev, baud_rate, parity, word_length, 900 900 stop_bits); 901 ipc_answer_0(callid, ret);901 async_answer_0(callid, ret); 902 902 break; 903 903 904 904 default: 905 ipc_answer_0(callid, ENOTSUP);905 async_answer_0(callid, ENOTSUP); 906 906 } 907 907 } -
uspace/drv/pciintel/pci.c
r78d1525 rfe1776c2 478 478 "the device.\n"); 479 479 delete_pci_bus_data(bus_data); 480 ipc_hangup(dev->parent_phone);480 async_hangup(dev->parent_phone); 481 481 return rc; 482 482 } … … 496 496 printf(NAME ": failed to enable configuration ports.\n"); 497 497 delete_pci_bus_data(bus_data); 498 ipc_hangup(dev->parent_phone);498 async_hangup(dev->parent_phone); 499 499 hw_res_clean_resource_list(&hw_resources); 500 500 return EADDRNOTAVAIL; -
uspace/drv/rootvirt/devices.def
r78d1525 rfe1776c2 22 22 }, 23 23 #endif 24 #ifdef CONFIG_RUN_VIRTUAL_USB_HC 24 25 /* Virtual USB host controller. */ 25 26 { … … 27 28 .match_id = "usb&hc=vhc" 28 29 }, 30 #endif -
uspace/drv/test2/test2.c
r78d1525 rfe1776c2 103 103 if (dev->parent == NULL) { 104 104 fid_t postpone = fibril_create(postponed_birth, dev); 105 if (postpone == 0) { 106 printf(NAME ": fibril_create() error\n"); 107 return ENOMEM; 108 } 105 109 fibril_add_ready(postpone); 106 110 } else { -
uspace/drv/uhci-hcd/main.c
r78d1525 rfe1776c2 1 1 /* 2 * Copyright (c) 201 0 Vojtech Horky2 * Copyright (c) 2011 Vojtech Horky, Jan Vesely 3 3 * All rights reserved. 4 4 * … … 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 #include <usb/hcdhubd.h> 28 /** @addtogroup usb 29 * @{ 30 */ 31 /** @file 32 * @brief UHCI driver 33 */ 34 #include <driver.h> 29 35 #include <usb_iface.h> 36 37 #include <errno.h> 38 30 39 #include <usb/debug.h> 31 #include <errno.h> 32 #include <str_error.h> 33 #include <driver.h> 40 41 #include "iface.h" 42 #include "pci.h" 43 #include "root_hub.h" 34 44 #include "uhci.h" 45 46 #define NAME "uhci-hcd" 35 47 36 48 static int usb_iface_get_hc_handle(device_t *dev, devman_handle_t *handle) … … 54 66 static int uhci_add_device(device_t *device) 55 67 { 56 usb_dprintf(NAME, 1, "uhci_add_device() called\n"); 68 assert(device); 69 70 usb_log_info("uhci_add_device() called\n"); 57 71 device->ops = &uhci_ops; 58 72 … … 65 79 66 80 if (rc != EOK) { 67 fprintf(stderr, 68 NAME ": failed to get I/O registers addresses: %s.\n", 69 str_error(rc)); 81 usb_log_error("Failed(%d) to get I/O registers addresses for device:.\n", 82 rc, device->handle); 70 83 return rc; 71 84 } 72 85 73 usb_ dprintf(NAME, 2,"I/O regs at 0x%X (size %zu), IRQ %d.\n",86 usb_log_info("I/O regs at 0x%X (size %zu), IRQ %d.\n", 74 87 io_reg_base, io_reg_size, irq); 75 88 76 /* 77 * We need to announce the presence of our root hub. 78 */ 79 usb_dprintf(NAME, 2, "adding root hub\n"); 80 usb_hcd_add_root_hub(device); 89 uhci_t *uhci_hc = malloc(sizeof(uhci_t)); 90 if (!uhci_hc) { 91 usb_log_error("Failed to allocaete memory for uhci hcd driver.\n"); 92 return ENOMEM; 93 } 94 95 int ret = uhci_init(uhci_hc, (void*)io_reg_base, io_reg_size); 96 if (ret != EOK) { 97 usb_log_error("Failed to init uhci-hcd.\n"); 98 return ret; 99 } 100 device_t *rh; 101 ret = setup_root_hub(&rh, device); 102 103 if (ret != EOK) { 104 usb_log_error("Failed to setup uhci root hub.\n"); 105 /* TODO: destroy uhci here */ 106 return ret; 107 } 108 109 ret = child_device_register(rh, device); 110 if (ret != EOK) { 111 usb_log_error("Failed to register root hub.\n"); 112 /* TODO: destroy uhci here */ 113 return ret; 114 } 115 116 device->driver_data = uhci_hc; 81 117 82 118 return EOK; … … 98 134 */ 99 135 sleep(5); 100 usb_ dprintf_enable(NAME, 5);136 usb_log_enable(USB_LOG_LEVEL_INFO, NAME); 101 137 102 138 return driver_main(&uhci_driver); 103 139 } 140 /** 141 * @} 142 */ -
uspace/drv/uhci-hcd/pci.c
r78d1525 rfe1776c2 34 34 * PCI related functions needed by the UHCI driver. 35 35 */ 36 #include "uhci.h"37 36 #include <errno.h> 38 37 #include <assert.h> 39 38 #include <devman.h> 40 39 #include <device/hw_res.h> 40 41 #include "pci.h" 41 42 42 43 /** Get address of registers and IRQ for given device. … … 116 117 rc = EOK; 117 118 leave: 118 ipc_hangup(parent_phone);119 async_hangup(parent_phone); 119 120 120 121 return rc; … … 125 126 */ 126 127 128 /** 129 * @} 130 */ -
uspace/drv/uhci-hcd/pci.h
r78d1525 rfe1776c2 33 33 * @brief UHCI driver 34 34 */ 35 #ifndef DRV_UHCI_ UHCI_H36 #define DRV_UHCI_ UHCI_H35 #ifndef DRV_UHCI_PCI_H 36 #define DRV_UHCI_PCI_H 37 37 38 #include <usbhc_iface.h> 39 40 #define NAME "uhci" 41 42 usbhc_iface_t uhci_iface; 38 #include <driver.h> 43 39 44 40 int pci_get_my_registers(device_t *, uintptr_t *, size_t *, int *); … … 48 44 * @} 49 45 */ 46 -
uspace/drv/uhci-rhd/Makefile
r78d1525 rfe1776c2 1 1 # 2 # Copyright (c) 2010 Vojtech Horky2 # Copyright (c) 2010 Jan Vesely 3 3 # All rights reserved. 4 4 # … … 29 29 USPACE_PREFIX = ../.. 30 30 LIBS = $(LIBDRV_PREFIX)/libdrv.a $(LIBUSB_PREFIX)/libusb.a 31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBUSB_PREFIX)/include 32 BINARY = uhci 31 EXTRA_CFLAGS += -I$(LIBDRV_PREFIX)/include -I$(LIBUSB_PREFIX)/include -I. 32 BINARY = uhci-rhd 33 33 34 34 SOURCES = \ 35 35 main.c \ 36 pci.c \ 37 transfers.c 36 port.c \ 37 port_status.c \ 38 root_hub.c 38 39 39 40 include $(USPACE_PREFIX)/Makefile.common -
uspace/drv/usbhid/main.c
r78d1525 rfe1776c2 56 56 #include "layout.h" 57 57 58 #define BUFFER_SIZE 3258 #define BUFFER_SIZE 8 59 59 #define NAME "usbhid" 60 60 … … 83 83 84 84 if (console_callback_phone != -1) { 85 ipc_answer_0(icallid, ELIMIT);85 async_answer_0(icallid, ELIMIT); 86 86 return; 87 87 } 88 88 89 89 console_callback_phone = callback; 90 ipc_answer_0(icallid, EOK);90 async_answer_0(icallid, EOK); 91 91 return; 92 92 } 93 93 94 ipc_answer_0(icallid, EINVAL);94 async_answer_0(icallid, EINVAL); 95 95 } 96 96 … … 262 262 } 263 263 264 # if 0 264 265 /* 265 266 * Kbd functions … … 297 298 return EOK; 298 299 } 299 300 300 static int usbkbd_process_descriptors(usb_hid_dev_kbd_t *kbd_dev) 301 301 { … … 363 363 return EOK; 364 364 } 365 365 #endif 366 366 static usb_hid_dev_kbd_t *usbkbd_init_device(device_t *dev) 367 367 { … … 404 404 */ 405 405 406 406 407 // TODO: get descriptors, parse descriptors and save endpoints 407 usbkbd_process_descriptors(kbd_dev); 408 //usbkbd_process_descriptors(kbd_dev); 409 usb_drv_req_set_configuration( 410 kbd_dev->device->parent_phone, kbd_dev->address, 1); 408 411 409 412 … … 467 470 468 471 while (true) { 469 async_usleep(1000 * 10 00 * 2);472 async_usleep(1000 * 10); 470 473 471 474 sess_rc = usb_endpoint_pipe_start_session(&kbd_dev->poll_pipe); -
uspace/drv/usbhub/main.c
r78d1525 rfe1776c2 65 65 int main(int argc, char *argv[]) 66 66 { 67 usb_ dprintf_enable(NAME, USB_LOG_LEVEL_INFO);67 usb_log_enable(USB_LOG_LEVEL_INFO, NAME); 68 68 69 69 fibril_mutex_initialize(&usb_hub_list_lock); -
uspace/drv/usbhub/usbhub.c
r78d1525 rfe1776c2 199 199 //ports powered, hub seems to be enabled 200 200 201 ipc_hangup(hc);201 async_hangup(hc); 202 202 203 203 //add the hub to list … … 502 502 free(change_bitmap); 503 503 504 ipc_hangup(hc);504 async_hangup(hc); 505 505 fibril_mutex_lock(&usb_hub_list_lock); 506 506 } -
uspace/drv/usbhub/usbhub_private.h
r78d1525 rfe1776c2 65 65 //************ 66 66 #define dprintf(level, format, ...) \ 67 usb_ dprintf(NAME,(level), format "\n", ##__VA_ARGS__)67 usb_log_printf((level), format "\n", ##__VA_ARGS__) 68 68 69 69 -
uspace/drv/vhc/conndev.c
r78d1525 rfe1776c2 90 90 = virtdev_add_device(callback, (sysarg_t)fibril_get_id()); 91 91 if (!dev) { 92 ipc_answer_0(icallid, EEXISTS);93 ipc_hangup(callback);92 async_answer_0(icallid, EEXISTS); 93 async_hangup(callback); 94 94 return; 95 95 } 96 ipc_answer_0(icallid, EOK);96 async_answer_0(icallid, EOK); 97 97 98 98 char devname[DEVICE_NAME_MAXLENGTH + 1]; … … 105 105 } 106 106 107 ipc_answer_0(icallid, EINVAL);107 async_answer_0(icallid, EINVAL); 108 108 } 109 109 -
uspace/drv/vhc/devices.c
r78d1525 rfe1776c2 34 34 */ 35 35 36 #include <ipc/ipc.h>37 36 #include <adt/list.h> 38 37 #include <bool.h> -
uspace/drv/vhc/hc.c
r78d1525 rfe1776c2 34 34 */ 35 35 36 #include <ipc/ipc.h>37 36 #include <adt/list.h> 38 37 #include <bool.h> -
uspace/drv/vhc/hcd.c
r78d1525 rfe1776c2 35 35 36 36 #include <devmap.h> 37 #include <ipc/ipc.h>38 37 #include <async.h> 39 38 #include <unistd.h>
Note:
See TracChangeset
for help on using the changeset viewer.
