Changes in uspace/drv/nic/rtl8139/driver.c [870841cf:fafb8e5] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/nic/rtl8139/driver.c
r870841cf rfafb8e5 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda3 2 * Copyright (c) 2011 Jiri Michalec 4 3 * All rights reserved. … … 75 74 * 76 75 */ 77 static void rtl8139_lock_all(rtl8139_t *rtl8139)76 inline static void rtl8139_lock_all(rtl8139_t *rtl8139) 78 77 { 79 78 assert(rtl8139); … … 87 86 * 88 87 */ 89 static void rtl8139_unlock_all(rtl8139_t *rtl8139)88 inline static void rtl8139_unlock_all(rtl8139_t *rtl8139) 90 89 { 91 90 assert(rtl8139); … … 128 127 * @param rtl8139 The card private structure 129 128 */ 130 static void rtl8139_hw_int_set(rtl8139_t *rtl8139)129 inline static void rtl8139_hw_int_set(rtl8139_t *rtl8139) 131 130 { 132 131 pio_write_16(rtl8139->io_port + IMR, rtl8139->int_mask); … … 139 138 * @return Nonzero if empty, zero otherwise 140 139 */ 141 static int rtl8139_hw_buffer_empty(rtl8139_t *rtl8139)140 inline static int rtl8139_hw_buffer_empty(rtl8139_t *rtl8139) 142 141 { 143 142 return pio_read_16(rtl8139->io_port + CR) & CR_BUFE; … … 167 166 * @param mask The mask to set 168 167 */ 169 static void rtl8139_hw_set_mcast_mask(rtl8139_t *rtl8139,168 inline static void rtl8139_hw_set_mcast_mask(rtl8139_t *rtl8139, 170 169 uint64_t mask) 171 170 { … … 181 180 * @param bit_val If bit_val is zero pmen is set to 0, otherwise pmen is set to 1 182 181 */ 183 static void rtl8139_hw_pmen_set(rtl8139_t *rtl8139, uint8_t bit_val)182 inline static void rtl8139_hw_pmen_set(rtl8139_t *rtl8139, uint8_t bit_val) 184 183 { 185 184 uint8_t config1 = pio_read_8(rtl8139->io_port + CONFIG1); … … 223 222 * @return EOK if succeed, error code otherwise 224 223 */ 225 static void rtl8139_hw_get_addr(rtl8139_t *rtl8139,224 inline static void rtl8139_hw_get_addr(rtl8139_t *rtl8139, 226 225 nic_address_t *addr) 227 226 { … … 262 261 * @param bits_add The value to or 263 262 */ 264 static void rtl8139_hw_reg_add_8(rtl8139_t *rtl8139, size_t reg_offset,263 inline static void rtl8139_hw_reg_add_8(rtl8139_t *rtl8139, size_t reg_offset, 265 264 uint8_t bits_add) 266 265 { … … 276 275 * @param bits_add The mask of bits to remove 277 276 */ 278 static void rtl8139_hw_reg_rem_8(rtl8139_t *rtl8139, size_t reg_offset,277 inline static void rtl8139_hw_reg_rem_8(rtl8139_t *rtl8139, size_t reg_offset, 279 278 uint8_t bits_add) 280 279 { … … 339 338 340 339 static errno_t rtl8139_dev_add(ddf_dev_t *dev); 341 static errno_t rtl8139_dev_quiesce(ddf_dev_t *dev);342 340 343 341 /** Basic driver operations for RTL8139 driver */ 344 342 static driver_ops_t rtl8139_driver_ops = { 345 343 .dev_add = &rtl8139_dev_add, 346 .dev_quiesce = &rtl8139_dev_quiesce347 344 }; 348 345 … … 435 432 * @param io_base The address of the i/o port mapping start 436 433 */ 437 static void rtl8139_hw_soft_reset(void *io_base)434 inline static void rtl8139_hw_soft_reset(void *io_base) 438 435 { 439 436 pio_write_8(io_base + CR, CR_RST); … … 822 819 * 823 820 * @param icall The IPC call structure 824 * @param arg Argument (nic_t *) 825 * 826 */ 827 static void rtl8139_interrupt_handler(ipc_call_t *icall, void *arg) 828 { 821 * @param dev The rtl8139 device 822 * 823 */ 824 static void rtl8139_interrupt_handler(ipc_call_t *icall, ddf_dev_t *dev) 825 { 826 assert(dev); 827 assert(icall); 828 829 829 uint16_t isr = (uint16_t) ipc_get_arg2(icall); 830 nic_t *nic_data = (nic_t *)arg;830 nic_t *nic_data = nic_get_from_ddf_dev(dev); 831 831 rtl8139_t *rtl8139 = nic_get_specific(nic_data); 832 832 … … 848 848 * @return An error code otherwise. 849 849 */ 850 static errno_t rtl8139_register_int_handler(nic_t *nic_data,850 inline static errno_t rtl8139_register_int_handler(nic_t *nic_data, 851 851 cap_irq_handle_t *handle) 852 852 { … … 861 861 rtl8139_irq_code.cmds[3].addr = rtl8139->io_addr + IMR; 862 862 errno_t rc = register_interrupt_handler(nic_get_ddf_dev(nic_data), 863 rtl8139->irq, rtl8139_interrupt_handler, (void *)nic_data, 864 &rtl8139_irq_code, handle); 863 rtl8139->irq, rtl8139_interrupt_handler, &rtl8139_irq_code, handle); 865 864 866 865 RTL8139_IRQ_STRUCT_UNLOCK(); … … 875 874 * @param rtl8139 The card private data 876 875 */ 877 static void rtl8139_card_up(rtl8139_t *rtl8139)876 inline static void rtl8139_card_up(rtl8139_t *rtl8139) 878 877 { 879 878 void *io_base = rtl8139->io_port; … … 1248 1247 } 1249 1248 } 1250 }1251 1252 static void rtl8139_quiesce(rtl8139_t *rtl8139)1253 {1254 rtl8139_hw_soft_reset(rtl8139->io_port);1255 1249 } 1256 1250 … … 1336 1330 rtl8139_dev_cleanup(dev); 1337 1331 return rc; 1338 }1339 1340 /** Quiesce RTL8139.1341 *1342 * @param dev RTL8139 device.1343 * @return EOK on sucess, or an error code.1344 */1345 errno_t rtl8139_dev_quiesce(ddf_dev_t *dev)1346 {1347 nic_t *nic;1348 rtl8139_t *rtl8139;1349 1350 ddf_msg(LVL_NOTE, "RTL8139_dev_quiesce %s (handle = %zu)",1351 ddf_dev_get_name(dev), ddf_dev_get_handle(dev));1352 1353 nic = nic_get_from_ddf_dev(dev);1354 rtl8139 = nic_get_specific(nic);1355 1356 rtl8139_quiesce(rtl8139);1357 return EOK;1358 1332 } 1359 1333 … … 1794 1768 * @param was_promisc Sign if the promiscuous mode was active before disabling 1795 1769 */ 1796 static void rtl8139_rcx_promics_rem(nic_t *nic_data,1770 inline static void rtl8139_rcx_promics_rem(nic_t *nic_data, 1797 1771 nic_multicast_mode_t mcast_mode, uint8_t was_promisc) 1798 1772 {
Note:
See TracChangeset
for help on using the changeset viewer.