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