Changes in uspace/srv/hid/input/port/adb.c [15f3c3f:854eddd6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/input/port/adb.c
r15f3c3f r854eddd6 37 37 #include <ipc/adb.h> 38 38 #include <async.h> 39 #include <async_obsolete.h> 39 40 #include <input.h> 40 41 #include <kbd_port.h> … … 43 44 #include <fcntl.h> 44 45 #include <errno.h> 45 #include <loc.h> 46 #include <devmap.h> 47 #include <devmap_obsolete.h> 46 48 47 49 static void kbd_port_events(ipc_callid_t iid, ipc_call_t *icall, void *arg); … … 61 63 62 64 static kbd_dev_t *kbd_dev; 63 static async_sess_t *dev_sess;65 static int dev_phone; 64 66 65 67 static int adb_port_init(kbd_dev_t *kdev) 66 68 { 67 69 const char *dev = "adb/kbd"; 68 service_id_t service_id; 69 async_exch_t *exch; 70 int rc; 71 70 devmap_handle_t handle; 71 72 72 kbd_dev = kdev; 73 73 74 rc = loc_service_get_id(dev, &service_id, 0); 75 if (rc != EOK) 74 int rc = devmap_device_get_handle(dev, &handle, 0); 75 if (rc == EOK) { 76 dev_phone = devmap_obsolete_device_connect(handle, 0); 77 if (dev_phone < 0) { 78 printf("%s: Failed to connect to device\n", NAME); 79 return dev_phone; 80 } 81 } else 76 82 return rc; 77 83 78 dev_sess = loc_service_connect(EXCHANGE_ATOMIC, service_id, 0);79 if (dev_sess == NULL) {80 printf("%s: Failed to connect to device\n", NAME);81 return ENOENT;82 }83 84 exch = async_exchange_begin(dev_sess);85 if (exch == NULL) {86 printf("%s: Failed starting exchange with device\n", NAME);87 async_hangup(dev_sess);88 return ENOMEM;89 }90 91 84 /* NB: The callback connection is slotted for removal */ 92 rc = async_ connect_to_me(exch, 0, 0, 0, kbd_port_events, NULL);93 async_exchange_end(exch);85 rc = async_obsolete_connect_to_me(dev_phone, 0, 0, 0, kbd_port_events, 86 NULL); 94 87 if (rc != EOK) { 95 printf("%s: Failed to create callback from device\n", NAME); 96 async_hangup(dev_sess); 88 printf(NAME ": Failed to create callback from device\n"); 97 89 return rc; 98 90 } … … 142 134 static void adb_kbd_reg0_data(uint16_t data) 143 135 { 144 uint8_t b0 = (data >> 8) & 0xff; 145 uint8_t b1 = data & 0xff; 146 136 uint8_t b0, b1; 137 138 b0 = (data >> 8) & 0xff; 139 b1 = data & 0xff; 140 147 141 if (b0 != 0xff) 148 kbd_push_data(kbd_dev, b0); 149 142 kbd_push_scancode(kbd_dev, b0); 150 143 if (b1 != 0xff) 151 kbd_push_ data(kbd_dev, b1);144 kbd_push_scancode(kbd_dev, b1); 152 145 } 153 146
Note:
See TracChangeset
for help on using the changeset viewer.