Changes in uspace/drv/nic/rtl8169/driver.c [fafb8e5:870841cf] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/nic/rtl8169/driver.c
rfafb8e5 r870841cf 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2014 Agnieszka Tabaka 3 4 * All rights reserved. … … 74 75 static errno_t rtl8169_on_stopped(nic_t *nic_data); 75 76 static void rtl8169_send_frame(nic_t *nic_data, void *data, size_t size); 76 static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev);77 static void rtl8169_irq_handler(ipc_call_t *icall, void *); 77 78 static inline errno_t rtl8169_register_int_handler(nic_t *nic_data, 78 79 cap_irq_handle_t *handle); … … 164 165 165 166 static errno_t rtl8169_dev_add(ddf_dev_t *dev); 167 static errno_t rtl8169_dev_quiesce(ddf_dev_t *dev); 166 168 167 169 /** Basic driver operations for RTL8169 driver */ 168 170 static driver_ops_t rtl8169_driver_ops = { 169 171 .dev_add = &rtl8169_dev_add, 172 .dev_quiesce = &rtl8169_dev_quiesce 170 173 }; 171 174 … … 362 365 } 363 366 364 inlinestatic errno_t rtl8169_register_int_handler(nic_t *nic_data,367 static errno_t rtl8169_register_int_handler(nic_t *nic_data, 365 368 cap_irq_handle_t *handle) 366 369 { … … 372 375 rtl8169_irq_code.cmds[3].addr = rtl8169->regs + IMR; 373 376 errno_t rc = register_interrupt_handler(nic_get_ddf_dev(nic_data), 374 rtl8169->irq, rtl8169_irq_handler, &rtl8169_irq_code, handle); 377 rtl8169->irq, rtl8169_irq_handler, (void *)rtl8169, 378 &rtl8169_irq_code, handle); 375 379 376 380 return rc; … … 483 487 } 484 488 489 static errno_t rtl8169_dev_quiesce(ddf_dev_t *dev) 490 { 491 nic_t *nic; 492 rtl8169_t *rtl8169; 493 494 ddf_msg(LVL_NOTE, "RTL8169_dev_quiesce %s (handle = %zu)", 495 ddf_dev_get_name(dev), ddf_dev_get_handle(dev)); 496 497 nic = nic_get_from_ddf_dev(dev); 498 rtl8169 = nic_get_specific(nic); 499 500 /* Reset card */ 501 pio_write_8(rtl8169->regs + CONFIG0, 0); 502 rtl8169_reset(rtl8169); 503 504 return EOK; 505 } 506 485 507 static errno_t rtl8169_set_addr(ddf_fun_t *fun, const nic_address_t *addr) 486 508 { … … 761 783 } 762 784 763 inlinestatic void rtl8169_reset(rtl8169_t *rtl8169)785 static void rtl8169_reset(rtl8169_t *rtl8169) 764 786 { 765 787 pio_write_8(rtl8169->regs + CR, CR_RST); … … 806 828 * @param was_promisc Sign if the promiscuous mode was active before disabling 807 829 */ 808 inlinestatic void rtl8169_rcx_promics_rem(nic_t *nic_data,830 static void rtl8169_rcx_promics_rem(nic_t *nic_data, 809 831 nic_multicast_mode_t mcast_mode, uint8_t was_promisc) 810 832 { … … 1033 1055 } 1034 1056 1035 static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev) 1036 { 1037 assert(dev); 1038 assert(icall); 1039 1057 /** RTL8169 IRQ handler. 1058 * 1059 * @param icall IRQ event notification 1060 * @param arg Argument (rtl8169_t *) 1061 */ 1062 static void rtl8169_irq_handler(ipc_call_t *icall, void *arg) 1063 { 1040 1064 uint16_t isr = (uint16_t) ipc_get_arg2(icall) & INT_KNOWN; 1041 nic_t *nic_data = nic_get_from_ddf_dev(dev); 1042 rtl8169_t *rtl8169 = nic_get_specific(nic_data); 1065 rtl8169_t *rtl8169 = (rtl8169_t *)arg; 1043 1066 1044 1067 ddf_msg(LVL_DEBUG, "rtl8169_irq_handler(): isr=0x%04x", isr); … … 1050 1073 /* Packet underrun or link change */ 1051 1074 if (isr & INT_PUN) { 1052 rtl8169_link_change( dev);1075 rtl8169_link_change(rtl8169->dev); 1053 1076 pio_write_16(rtl8169->regs + ISR, INT_PUN); 1054 1077 } … … 1056 1079 /* Transmit notification */ 1057 1080 if (isr & (INT_TER | INT_TOK | INT_TDU)) { 1058 rtl8169_transmit_done( dev);1081 rtl8169_transmit_done(rtl8169->dev); 1059 1082 pio_write_16(rtl8169->regs + ISR, (INT_TER | INT_TOK | INT_TDU)); 1060 1083 } … … 1072 1095 1073 1096 if (isr & (INT_RER | INT_ROK)) { 1074 rtl8169_receive_done( dev);1097 rtl8169_receive_done(rtl8169->dev); 1075 1098 pio_write_16(rtl8169->regs + ISR, (INT_RER | INT_ROK)); 1076 1099 }
Note:
See TracChangeset
for help on using the changeset viewer.