Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/nic/rtl8139/driver.c

    re777847 rd87561c  
    2727 */
    2828
     29/* XXX Fix this */
     30#define _DDF_DATA_IMPLANT
     31
    2932#include <assert.h>
    3033#include <errno.h>
    3134#include <align.h>
    3235#include <byteorder.h>
    33 #include <libarch/ddi.h>
    3436#include <libarch/barrier.h>
    3537
     
    3941#include <io/log.h>
    4042#include <nic.h>
    41 #include <packet_client.h>
    4243#include <device/pci.h>
    4344
     
    4647#include <ipc/ns.h>
    4748
    48 #include <net_checksum.h>
    49 
    5049#include <str.h>
    5150
     
    5655/** Global mutex for work with shared irq structure */
    5756FIBRIL_MUTEX_INITIALIZE(irq_reg_lock);
     57
    5858/** Lock interrupt structure mutex */
    59 #define RTL8139_IRQ_STRUCT_LOCK() fibril_mutex_lock(&irq_reg_lock)
     59#define RTL8139_IRQ_STRUCT_LOCK() \
     60        fibril_mutex_lock(&irq_reg_lock)
     61
    6062/** Unlock interrupt structure mutex */
    61 #define RTL8139_IRQ_STRUCT_UNLOCK() fibril_mutex_unlock(&irq_reg_lock)
     63#define RTL8139_IRQ_STRUCT_UNLOCK() \
     64        fibril_mutex_unlock(&irq_reg_lock)
    6265
    6366/** PCI clock frequency in kHz */
    64 #define RTL8139_PCI_FREQ_KHZ 33000
    65 
    66 #define RTL8139_AUTONEG_CAPS (ETH_AUTONEG_10BASE_T_HALF \
    67     | ETH_AUTONEG_10BASE_T_FULL | ETH_AUTONEG_100BASE_TX_HALF \
    68     | ETH_AUTONEG_100BASE_TX_FULL | ETH_AUTONEG_PAUSE_SYMETRIC)
     67#define RTL8139_PCI_FREQ_KHZ  33000
     68
     69#define RTL8139_AUTONEG_CAPS (ETH_AUTONEG_10BASE_T_HALF | \
     70        ETH_AUTONEG_10BASE_T_FULL | ETH_AUTONEG_100BASE_TX_HALF | \
     71        ETH_AUTONEG_100BASE_TX_FULL | ETH_AUTONEG_PAUSE_SYMETRIC)
    6972
    7073/** Lock transmitter and receiver data
    71  *  This function shall be called whenever both transmitter and receiver locking
    72  *  to force safe lock ordering (deadlock prevention)
    73  *
    74  *  @param rtl8139  RTL8139 private data
     74 *
     75 * This function shall be called whenever
     76 * both transmitter and receiver locking
     77 * to force safe lock ordering (deadlock prevention)
     78 *
     79 * @param rtl8139 RTL8139 private data
     80 *
    7581 */
    7682inline static void rtl8139_lock_all(rtl8139_t *rtl8139)
     
    8389/** Unlock transmitter and receiver data
    8490 *
    85  *  @param rtl8139  RTL8139 private data
     91 * @param rtl8139 RTL8139 private data
     92 *
    8693 */
    8794inline static void rtl8139_unlock_all(rtl8139_t *rtl8139)
     
    152159}
    153160
    154 /** Update the mask of accepted packets in the RCR register according to
     161/** Update the mask of accepted frames in the RCR register according to
    155162 * rcr_accept_mode value in rtl8139_t
    156163 *
     
    170177}
    171178
    172 /** Fill the mask of accepted multicast packets in the card registers
     179/** Fill the mask of accepted multicast frames in the card registers
    173180 *
    174181 *  @param rtl8139  The rtl8139 private data
     
    207214        rtl8139_regs_lock(rtl8139->io_port);
    208215
     216        async_sess_t *pci_sess =
     217                ddf_dev_parent_sess_get(nic_get_ddf_dev(rtl8139->nic_data));
     218
    209219        if (bit_val) {
    210                 async_sess_t *pci_sess =
    211                         nic_get_ddf_dev(rtl8139->nic_data)->parent_sess;
    212220                uint8_t pmen;
    213221                pci_config_space_read_8(pci_sess, 0x55, &pmen);
    214222                pci_config_space_write_8(pci_sess, 0x55, pmen | 1 | (1 << 7));
    215223        } else {
    216                 async_sess_t *pci_sess =
    217                         nic_get_ddf_dev(rtl8139->nic_data)->parent_sess;
    218224                uint8_t pmen;
    219225                pci_config_space_read_8(pci_sess, 0x55, &pmen);
     
    394400#define rtl8139_tbuf_busy(tsd) ((pio_read_32(tsd) & TSD_OWN) == 0)
    395401
    396 /** Send packet with the hardware
     402/** Send frame with the hardware
    397403 *
    398404 * note: the main_lock is locked when framework calls this function
     
    412418        ddf_msg(LVL_DEBUG, "Sending frame");
    413419
    414         if (size > RTL8139_PACKET_MAX_LENGTH) {
     420        if (size > RTL8139_FRAME_MAX_LENGTH) {
    415421                ddf_msg(LVL_ERROR, "Send frame: frame too long, %zu bytes",
    416422                    size);
     
    437443        fibril_mutex_unlock(&rtl8139->tx_lock);
    438444
    439         /* Get address of the buffer descriptor and packet data */
     445        /* Get address of the buffer descriptor and frame data */
    440446        void *tsd = rtl8139->io_port + TSD0 + tx_curr * 4;
    441447        void *buf_addr = rtl8139->tx_buff[tx_curr];
     
    458464        pio_write_32(tsd, tsd_value);
    459465        return;
    460 
     466       
    461467err_busy_no_inc:
    462468err_size:
     
    505511}
    506512
    507 /** Create packet structure from the buffer data
     513/** Create frame structure from the buffer data
    508514 *
    509515 * @param nic_data      NIC driver data
    510516 * @param rx_buffer     The receiver buffer
    511517 * @param rx_size       The buffer size
    512  * @param packet_start  The offset where packet data start
    513  * @param packet_size   The size of the packet data
    514  *
    515  * @return The packet   list node (not connected)
    516  */
    517 static nic_frame_t *rtl8139_read_packet(nic_t *nic_data,
    518     void *rx_buffer, size_t rx_size, size_t packet_start, size_t packet_size)
    519 {
    520         nic_frame_t *frame = nic_alloc_frame(nic_data, packet_size);
     518 * @param frame_start   The offset where packet data start
     519 * @param frame_size    The size of the frame data
     520 *
     521 * @return The frame list node (not connected)
     522 *
     523 */
     524static nic_frame_t *rtl8139_read_frame(nic_t *nic_data,
     525    void *rx_buffer, size_t rx_size, size_t frame_start, size_t frame_size)
     526{
     527        nic_frame_t *frame = nic_alloc_frame(nic_data, frame_size);
    521528        if (! frame) {
    522                 ddf_msg(LVL_ERROR, "Can not allocate frame for received packet.");
     529                ddf_msg(LVL_ERROR, "Can not allocate frame for received frame.");
    523530                return NULL;
    524531        }
    525532
    526         void *packet_data = packet_suffix(frame->packet, packet_size);
    527         if (!packet_data) {
    528                 ddf_msg(LVL_ERROR, "Can not get the packet suffix.");
    529                 nic_release_frame(nic_data, frame);
    530                 return NULL;
    531         }
    532 
    533         void *ret = rtl8139_memcpy_wrapped(packet_data, rx_buffer, packet_start,
    534             RxBUF_SIZE, packet_size);
     533        void *ret = rtl8139_memcpy_wrapped(frame->data, rx_buffer, frame_start,
     534            RxBUF_SIZE, frame_size);
    535535        if (ret == NULL) {
    536536                nic_release_frame(nic_data, frame);
     
    568568}
    569569
    570 /** Receive all packets in queue
     570/** Receive all frames in queue
    571571 *
    572572 *  @param nic_data  The controller data
    573  *  @return The linked list of packet_list_t nodes, each containing one packet
    574  */
    575 static nic_frame_list_t *rtl8139_packet_receive(nic_t *nic_data)
     573 *  @return The linked list of nic_frame_list_t nodes, each containing one frame
     574 */
     575static nic_frame_list_t *rtl8139_frame_receive(nic_t *nic_data)
    576576{
    577577        rtl8139_t *rtl8139 = nic_get_specific(nic_data);
     
    581581        nic_frame_list_t *frames = nic_alloc_frame_list();
    582582        if (!frames)
    583                 ddf_msg(LVL_ERROR, "Can not allocate frame list for received packets.");
     583                ddf_msg(LVL_ERROR, "Can not allocate frame list for received frames.");
    584584
    585585        void *rx_buffer = rtl8139->rx_buff_virt;
     
    605605        while (!rtl8139_hw_buffer_empty(rtl8139)) {
    606606                void *rx_ptr = rx_buffer + rx_offset % RxBUF_SIZE;
    607                 uint32_t packet_header = uint32_t_le2host( *((uint32_t*)rx_ptr) );
    608                 uint16_t size = packet_header >> 16;
    609                 uint16_t packet_size = size - RTL8139_CRC_SIZE;
    610                 /* received packet flags in packet header */
    611                 uint16_t rcs = (uint16_t) packet_header;
     607                uint32_t frame_header = uint32_t_le2host( *((uint32_t*)rx_ptr) );
     608                uint16_t size = frame_header >> 16;
     609                uint16_t frame_size = size - RTL8139_CRC_SIZE;
     610                /* received frame flags in frame header */
     611                uint16_t rcs = (uint16_t) frame_header;
    612612
    613613                if (size == RTL8139_EARLY_SIZE) {
    614                         /* The packet copying is still in progress, break receiving */
     614                        /* The frame copying is still in progress, break receiving */
    615615                        ddf_msg(LVL_DEBUG, "Early threshold reached, not completely coppied");
    616616                        break;
     
    618618
    619619                /* Check if the header is valid, otherwise we are lost in the buffer */
    620                 if (size == 0 || size > RTL8139_PACKET_MAX_LENGTH) {
    621                         ddf_msg(LVL_ERROR, "Receiver error -> receiver reset (size: %4"PRIu16", "
    622                             "header 0x%4"PRIx16". Offset: %zu)", size, packet_header,
     620                if (size == 0 || size > RTL8139_FRAME_MAX_LENGTH) {
     621                        ddf_msg(LVL_ERROR, "Receiver error -> receiver reset (size: %4" PRIu16 ", "
     622                            "header 0x%4" PRIx32 ". Offset: %" PRIu16 ")", size, frame_header,
    623623                            rx_offset);
    624624                        goto rx_err;
     
    629629                }
    630630
    631                 cur_read += size + RTL_PACKET_HEADER_SIZE;
     631                cur_read += size + RTL_FRAME_HEADER_SIZE;
    632632                if (cur_read > max_read)
    633633                        break;
    634634
    635635                if (frames) {
    636                         nic_frame_t *frame = rtl8139_read_packet(nic_data, rx_buffer,
    637                             RxBUF_SIZE, rx_offset + RTL_PACKET_HEADER_SIZE, packet_size);
     636                        nic_frame_t *frame = rtl8139_read_frame(nic_data, rx_buffer,
     637                            RxBUF_SIZE, rx_offset + RTL_FRAME_HEADER_SIZE, frame_size);
    638638
    639639                        if (frame)
     
    642642
    643643                /* Update offset */
    644                 rx_offset = ALIGN_UP(rx_offset + size + RTL_PACKET_HEADER_SIZE, 4);
    645 
    646                 /* Write lesser value to prevent overflow into unread packet
     644                rx_offset = ALIGN_UP(rx_offset + size + RTL_FRAME_HEADER_SIZE, 4);
     645
     646                /* Write lesser value to prevent overflow into unread frame
    647647                 * (the recomendation from the RealTech rtl8139 programming guide)
    648648                 */
     
    735735                tx_used++;
    736736
    737                 /* If the packet was sent */
     737                /* If the frame was sent */
    738738                if (tsd_value & TSD_TOK) {
    739739                        size_t size = REG_GET_VAL(tsd_value, TSD_SIZE);
     
    765765}
    766766
    767 /** Receive all packets from the buffer
     767/** Receive all frames from the buffer
    768768 *
    769769 *  @param rtl8139  driver private data
    770770 */
    771 static void rtl8139_receive_packets(nic_t *nic_data)
     771static void rtl8139_receive_frames(nic_t *nic_data)
    772772{
    773773        assert(nic_data);
     
    777777
    778778        fibril_mutex_lock(&rtl8139->rx_lock);
    779         nic_frame_list_t *frames = rtl8139_packet_receive(nic_data);
     779        nic_frame_list_t *frames = rtl8139_frame_receive(nic_data);
    780780        fibril_mutex_unlock(&rtl8139->rx_lock);
    781781
     
    833833        }
    834834
    835         /* Check transmittion interrupts first to allow transmit next packets
     835        /* Check transmittion interrupts first to allow transmit next frames
    836836         * sooner
    837837         */
     
    840840        }
    841841        if (isr & INT_ROK) {
    842                 rtl8139_receive_packets(nic_data);
     842                rtl8139_receive_frames(nic_data);
    843843        }
    844844        if (isr & (INT_RER | INT_RXOVW | INT_FIFOOVW)) {
     
    942942}
    943943
    944 /** Activate the device to receive and transmit packets
     944/** Activate the device to receive and transmit frames
    945945 *
    946946 *  @param nic_data  The nic driver data
     
    10201020        }
    10211021
    1022         bzero(rtl8139, sizeof(rtl8139_t));
     1022        memset(rtl8139, 0, sizeof(rtl8139_t));
    10231023
    10241024        rtl8139->nic_data = nic_data;
     
    10531053        assert(dev);
    10541054
    1055         if (dev->driver_data)
     1055        if (ddf_dev_data_get(dev))
    10561056                nic_unbind_and_destroy(dev);
    1057 
    1058         if (dev->parent_sess != NULL) {
    1059                 async_hangup(dev->parent_sess);
    1060                 dev->parent_sess = NULL;
    1061         }
    10621057}
    10631058
     
    10811076
    10821077        if (hw_resources->irqs.count != 1) {
    1083                 ddf_msg(LVL_ERROR, "%s device: unexpected irq count", dev->name);
     1078                ddf_msg(LVL_ERROR, "%s device: unexpected irq count", ddf_dev_get_name(dev));
    10841079                return EINVAL;
    10851080        };
    10861081        if (hw_resources->io_ranges.count != 1) {
    1087                 ddf_msg(LVL_ERROR, "%s device: unexpected io ranges count", dev->name);
     1082                ddf_msg(LVL_ERROR, "%s device: unexpected io ranges count", ddf_dev_get_name(dev));
    10881083                return EINVAL;
    10891084        }
    10901085
    10911086        rtl8139->irq = hw_resources->irqs.irqs[0];
    1092         ddf_msg(LVL_DEBUG, "%s device: irq 0x%x assigned", dev->name, rtl8139->irq);
     1087        ddf_msg(LVL_DEBUG, "%s device: irq 0x%x assigned", ddf_dev_get_name(dev), rtl8139->irq);
    10931088
    10941089        rtl8139->io_addr = IOADDR_TO_PTR(hw_resources->io_ranges.ranges[0].address);
    10951090        if (hw_resources->io_ranges.ranges[0].size < RTL8139_IO_SIZE) {
    10961091                ddf_msg(LVL_ERROR, "i/o range assigned to the device "
    1097                     "%s is too small.", dev->name);
     1092                    "%s is too small.", ddf_dev_get_name(dev));
    10981093                return EINVAL;
    10991094        }
    1100         ddf_msg(LVL_DEBUG, "%s device: i/o addr %p assigned.", dev->name, rtl8139->io_addr);
     1095        ddf_msg(LVL_DEBUG, "%s device: i/o addr %p assigned.", ddf_dev_get_name(dev), rtl8139->io_addr);
    11011096
    11021097        return EOK;
     
    11661161
    11671162        /* Allocate buffer for receiver */
    1168         ddf_msg(LVL_DEBUG, "Allocating receiver buffer of the size %zu bytes",
     1163        ddf_msg(LVL_DEBUG, "Allocating receiver buffer of the size %d bytes",
    11691164            RxBUF_TOT_LENGTH);
    11701165
     
    11931188static int rtl8139_device_initialize(ddf_dev_t *dev)
    11941189{
    1195         ddf_msg(LVL_DEBUG, "rtl8139_dev_initialize %s", dev->name);
     1190        ddf_msg(LVL_DEBUG, "rtl8139_dev_initialize %s", ddf_dev_get_name(dev));
    11961191
    11971192        int ret = EOK;
     
    12021197        rtl8139_t *rtl8139 = rtl8139_create_dev_data(dev);
    12031198        if (rtl8139 == NULL) {
    1204                 ddf_msg(LVL_ERROR, "Not enough memory for initializing %s.", dev->name);
     1199                ddf_msg(LVL_ERROR, "Not enough memory for initializing %s.", ddf_dev_get_name(dev));
    12051200                return ENOMEM;
    12061201        }
     
    12221217                goto failed;
    12231218
    1224         /* Set default packet acceptance */
     1219        /* Set default frame acceptance */
    12251220        rtl8139->rcr_data.ucast_mask = RTL8139_RCR_UCAST_DEFAULT;
    12261221        rtl8139->rcr_data.mcast_mask = RTL8139_RCR_MCAST_DEFAULT;
    12271222        rtl8139->rcr_data.bcast_mask = RTL8139_RCR_BCAST_DEFAULT;
    12281223        rtl8139->rcr_data.defect_mask = RTL8139_RCR_DEFECT_DEFAULT;
    1229         /* Set receiver early treshold to 8/16 of packet length */
     1224        /* Set receiver early treshold to 8/16 of frame length */
    12301225        rtl8139->rcr_data.rcr_base = (0x8 << RCR_ERTH_SHIFT);
    12311226
    12321227        ddf_msg(LVL_DEBUG, "The device is initialized");
    12331228        return ret;
    1234 
     1229       
    12351230failed:
    12361231        ddf_msg(LVL_ERROR, "The device initialization failed");
     
    12471242static int rtl8139_pio_enable(ddf_dev_t *dev)
    12481243{
    1249         ddf_msg(LVL_DEBUG, NAME ": rtl8139_pio_enable %s", dev->name);
     1244        ddf_msg(LVL_DEBUG, NAME ": rtl8139_pio_enable %s", ddf_dev_get_name(dev));
    12501245
    12511246        rtl8139_t *rtl8139 = nic_get_specific(nic_get_from_ddf_dev(dev));
     
    12531248        /* Gain control over port's registers. */
    12541249        if (pio_enable(rtl8139->io_addr, RTL8139_IO_SIZE, &rtl8139->io_port)) {
    1255                 ddf_msg(LVL_ERROR, "Cannot gain the port %lx for device %s.", rtl8139->io_addr,
    1256                     dev->name);
     1250                ddf_msg(LVL_ERROR, "Cannot gain the port %p for device %s.", rtl8139->io_addr,
     1251                    ddf_dev_get_name(dev));
    12571252                return EADDRNOTAVAIL;
    12581253        }
     
    12971292int rtl8139_dev_add(ddf_dev_t *dev)
    12981293{
     1294        ddf_fun_t *fun;
     1295
    12991296        assert(dev);
    1300         ddf_msg(LVL_NOTE, "RTL8139_dev_add %s (handle = %d)", dev->name, dev->handle);
     1297        ddf_msg(LVL_NOTE, "RTL8139_dev_add %s (handle = %zu)",
     1298            ddf_dev_get_name(dev), ddf_dev_get_handle(dev));
    13011299
    13021300        /* Init device structure for rtl8139 */
     
    13291327        rc = nic_connect_to_services(nic_data);
    13301328        if (rc != EOK) {
    1331                 ddf_msg(LVL_ERROR, "Failed to connect to services", rc);
     1329                ddf_msg(LVL_ERROR, "Failed to connect to services (%d)", rc);
    13321330                goto err_irq;
    13331331        }
    13341332
    1335         rc = nic_register_as_ddf_fun(nic_data, &rtl8139_dev_ops);
     1333        fun = ddf_fun_create(nic_get_ddf_dev(nic_data), fun_exposed, "port0");
     1334        if (fun == NULL) {
     1335                ddf_msg(LVL_ERROR, "Failed creating device function");
     1336                goto err_srv;
     1337        }
     1338        nic_set_ddf_fun(nic_data, fun);
     1339        ddf_fun_set_ops(fun, &rtl8139_dev_ops);
     1340        ddf_fun_data_implant(fun, nic_data);
     1341
     1342        rc = ddf_fun_bind(fun);
    13361343        if (rc != EOK) {
    1337                 ddf_msg(LVL_ERROR, "Failed to register as DDF function - error %d", rc);
    1338                 goto err_irq;
     1344                ddf_msg(LVL_ERROR, "Failed binding device function");
     1345                goto err_fun_create;
     1346        }
     1347        rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
     1348        if (rc != EOK) {
     1349                ddf_msg(LVL_ERROR, "Failed adding function to category");
     1350                goto err_fun_bind;
    13391351        }
    13401352
    13411353        ddf_msg(LVL_NOTE, "The %s device has been successfully initialized.",
    1342             dev->name);
    1343 
    1344         return EOK;
    1345 
     1354            ddf_dev_get_name(dev));
     1355
     1356        return EOK;
     1357       
     1358err_fun_bind:
     1359        ddf_fun_unbind(fun);
     1360err_fun_create:
     1361        ddf_fun_destroy(fun);
     1362err_srv:
     1363        /* XXX Disconnect from services */
    13461364err_irq:
    13471365        unregister_interrupt_handler(dev, rtl8139->irq);
     
    14861504};
    14871505
    1488 /** Check if pause packet operations are valid in current situation
     1506/** Check if pause frame operations are valid in current situation
    14891507 *
    14901508 *  @param rtl8139  RTL8139 private structure
     
    15111529}
    15121530
    1513 /** Get current pause packet configuration
     1531/** Get current pause frame configuration
    15141532 *
    15151533 *  Values are filled with NIC_RESULT_NOT_AVAILABLE if the value has no sense in
     
    15171535 *
    15181536 *  @param[in]  fun         The DDF structure of the RTL8139
    1519  *  @param[out] we_send     Sign if local constroller sends pause packets
    1520  *  @param[out] we_receive  Sign if local constroller receives pause packets
    1521  *  @param[out] time        Time filled in pause packets. 0xFFFF in rtl8139
     1537 *  @param[out] we_send     Sign if local constroller sends pause frame
     1538 *  @param[out] we_receive  Sign if local constroller receives pause frame
     1539 *  @param[out] time        Time filled in pause frames. 0xFFFF in rtl8139
    15221540 *
    15231541 *  @return EOK if succeed
     
    15491567};
    15501568
    1551 /** Set current pause packet configuration
     1569/** Set current pause frame configuration
    15521570 *
    15531571 *  @param fun            The DDF structure of the RTL8139
    1554  *  @param allow_send     Sign if local constroller sends pause packets
    1555  *  @param allow_receive  Sign if local constroller receives pause packets
     1572 *  @param allow_send     Sign if local constroller sends pause frame
     1573 *  @param allow_receive  Sign if local constroller receives pause frames
    15561574 *  @param time           Time to use, ignored (not supported by device)
    15571575 *
    1558  *  @return EOK if succeed, INVAL if the pause packet has no sence
     1576 *  @return EOK if succeed, INVAL if the pause frame has no sence
    15591577 */
    15601578static int rtl8139_pause_set(ddf_fun_t *fun, int allow_send, int allow_receive,
     
    18051823}
    18061824
    1807 /** Set unicast packets acceptance mode
     1825/** Set unicast frames acceptance mode
    18081826 *
    18091827 *  @param nic_data  The nic device to update
     
    18631881}
    18641882
    1865 /** Set multicast packets acceptance mode
     1883/** Set multicast frames acceptance mode
    18661884 *
    18671885 *  @param nic_data  The nic device to update
     
    19081926}
    19091927
    1910 /** Set broadcast packets acceptance mode
     1928/** Set broadcast frames acceptance mode
    19111929 *
    19121930 *  @param nic_data  The nic device to update
     
    19381956}
    19391957
    1940 /** Get state of acceptance of weird packets
     1958/** Get state of acceptance of weird frames
    19411959 *
    19421960 *  @param[in]  device  The device to check
     
    19601978};
    19611979
    1962 /** Set acceptance of weird packets
     1980/** Set acceptance of weird frames
    19631981 *
    19641982 *  @param device  The device to update
     
    21202138                pio_write_32(rtl8139->io_port + TCTR, 0);
    21212139
    2122                 ddf_msg(LVL_DEBUG, "Periodic mode. Interrupt mask %"PRIx16", poll.full_skips %"
    2123                     PRIu32", last timer %"PRIu32".", rtl8139->int_mask,
    2124                     rtl8139->poll_timer.full_skips, rtl8139->poll_timer.last_val);
     2140                ddf_msg(LVL_DEBUG, "Periodic mode. Interrupt mask %" PRIx16 ", "
     2141                    "poll.full_skips %zu, last timer %" PRIu32,
     2142                    rtl8139->int_mask, rtl8139->poll_timer.full_skips,
     2143                    rtl8139->poll_timer.last_val);
    21252144                break;
    21262145        default:
     
    21362155}
    21372156
    2138 /** Force receiving all packets in the receive buffer
     2157/** Force receiving all frames in the receive buffer
    21392158 *
    21402159 *  @param device  The device to receive
     
    21672186                &rtl8139_driver_ops, &rtl8139_dev_ops, &rtl8139_nic_iface);
    21682187
    2169         ddf_log_init(NAME, LVL_ERROR);
     2188        ddf_log_init(NAME);
    21702189        ddf_msg(LVL_NOTE, "HelenOS RTL8139 driver started");
    21712190        return ddf_driver_main(&rtl8139_driver);
Note: See TracChangeset for help on using the changeset viewer.