Changes in uspace/drv/hid/ps2mouse/ps2mouse.c [c8ea6eca:fafb8e5] in mainline
- File:
-
- 1 edited
-
uspace/drv/hid/ps2mouse/ps2mouse.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/hid/ps2mouse/ps2mouse.c
rc8ea6eca rfafb8e5 49 49 #define PS2_MOUSE_SET_SAMPLE_RATE 0xf3 50 50 #define PS2_MOUSE_ENABLE_DATA_REPORT 0xf4 51 #define PS2_MOUSE_DISABLE_DATA_REPORT 0xf5 51 52 #define PS2_MOUSE_ACK 0xfa 52 53 … … 77 78 uint8_t data = 0; \ 78 79 size_t nread; \ 79 const errno_t rc = chardev_read((mouse)->chardev, &data, 1, &nread); \ 80 const errno_t rc = chardev_read((mouse)->chardev, &data, 1, &nread, \ 81 chardev_f_none); \ 80 82 if (rc != EOK) { \ 81 83 ddf_msg(LVL_ERROR, "Failed reading byte: %s", str_error_name(rc));\ … … 164 166 } 165 167 168 /* Disable mouse data reporting. */ 169 uint8_t report = PS2_MOUSE_ENABLE_DATA_REPORT; 170 size_t nwr; 171 rc = chardev_write(mouse->chardev, &report, 1, &nwr); 172 if (rc != EOK) { 173 ddf_msg(LVL_ERROR, "Failed to enable data reporting."); 174 rc = EIO; 175 goto error; 176 } 177 178 /* Drain input buffer */ 179 size_t nread; 180 uint8_t b; 181 do { 182 rc = chardev_read(mouse->chardev, &b, 1, &nread, chardev_f_nonblock); 183 if (rc != EOK) { 184 ddf_msg(LVL_ERROR, "Failed to drain input buffer.\n"); 185 rc = EIO; 186 goto error; 187 } 188 } while (nread > 0); 189 166 190 /* Probe IntelliMouse extensions. */ 167 191 errno_t (*polling_f)(void *) = polling_ps2; … … 174 198 175 199 /* Enable mouse data reporting. */ 176 uint8_t report = PS2_MOUSE_ENABLE_DATA_REPORT; 177 size_t nwr; 200 report = PS2_MOUSE_ENABLE_DATA_REPORT; 178 201 rc = chardev_write(mouse->chardev, &report, 1, &nwr); 179 202 if (rc != EOK) { … … 183 206 } 184 207 185 size_t nread; 186 rc = chardev_read(mouse->chardev, &report, 1, &nread); 208 rc = chardev_read(mouse->chardev, &report, 1, &nread, chardev_f_none); 187 209 if (rc != EOK || report != PS2_MOUSE_ACK) { 188 210 ddf_msg(LVL_ERROR, "Failed to confirm data reporting: %hhx.", … … 232 254 while (pos < psize) { 233 255 rc = chardev_read(mouse->chardev, pbuf + pos, psize - pos, 234 &nread );256 &nread, chardev_f_none); 235 257 if (rc != EOK) { 236 258 ddf_msg(LVL_WARN, "Error reading packet."); … … 407 429 void default_connection_handler(ddf_fun_t *fun, ipc_call_t *icall) 408 430 { 409 const sysarg_t method = IPC_GET_IMETHOD(*icall);431 const sysarg_t method = ipc_get_imethod(icall); 410 432 ps2_mouse_t *mouse = ddf_dev_data_get(ddf_fun_get_dev(fun)); 411 433 async_sess_t *sess;
Note:
See TracChangeset
for help on using the changeset viewer.
