Changeset 0f3e68c in mainline


Ignore:
Timestamp:
2011-03-12T22:36:33Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
335382d
Parents:
dd6f59f (diff), 67352d2 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Minor fixes and refactoring

Location:
uspace/drv
Files:
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/ehci-hcd/pci.c

    rdd6f59f r0f3e68c  
    247247
    248248
    249         if ((value & USBLEGSUP_BIOS_CONTROL) != 0) {
     249        if ((value & USBLEGSUP_BIOS_CONTROL) == 0) {
    250250                usb_log_info("BIOS released control after %d usec.\n", wait);
    251251        } else {
    252252                /* BIOS failed to hand over control, this should not happen. */
    253                 usb_log_warning( "BIOS failed to release control after"
     253                usb_log_warning( "BIOS failed to release control after "
    254254                    "%d usecs, force it.\n", wait);
    255255                ret = async_req_3_0(parent_phone, DEV_IFACE_ID(PCI_DEV_IFACE),
     
    258258                CHECK_RET_HANGUP_RETURN(ret,
    259259                    "Failed(%d) to force OS EHCI control.\n", ret);
    260                 /* TODO: This does not seem to work on my machine */
    261260        }
    262261
     
    280279        usb_log_debug2("USBLEGSUP: %x.\n", value);
    281280
    282 /*
    283  * TURN OFF EHCI FOR NOW, REMOVE IF THE DRIVER IS IMPLEMENTED
    284  */
     281        /*
     282         * TURN OFF EHCI FOR NOW, DRIVER WILL REINITIALIZE IT
     283        */
    285284
    286285        /* Get size of capability registers in memory space. */
  • uspace/drv/uhci-hcd/batch.c

    rdd6f59f r0f3e68c  
    177177                        usb_log_debug("Batch(%p) found error TD(%d):%x.\n",
    178178                            instance, i, instance->tds[i].status);
     179                        td_print_status(&instance->tds[i]);
    179180
    180181                        device_keeper_set_toggle(instance->manager,
     
    318319                ++packet;
    319320        }
    320         instance->tds[packet - 1].status |= TD_STATUS_COMPLETE_INTERRUPT_FLAG;
     321        instance->tds[packet - 1].status |= TD_STATUS_IOC_FLAG;
    321322        device_keeper_set_toggle(instance->manager, instance->target, toggle);
    322323}
     
    371372
    372373
    373         instance->tds[packet].status |= TD_STATUS_COMPLETE_INTERRUPT_FLAG;
     374        instance->tds[packet].status |= TD_STATUS_IOC_FLAG;
    374375        usb_log_debug2("Control last TD status: %x.\n",
    375376            instance->tds[packet].status);
  • uspace/drv/uhci-hcd/uhci.c

    rdd6f59f r0f3e68c  
    436436
    437437                int frnum = pio_read_16(&instance->registers->frnum) & 0x3ff;
    438                 usb_log_debug2("Framelist item: %d \n", frnum );
    439438
    440439                uintptr_t expected_pa = instance->frame_list[frnum] & (~0xf);
    441440                uintptr_t real_pa = addr_to_phys(QH(interrupt));
    442441                if (expected_pa != real_pa) {
    443                         usb_log_debug("Interrupt QH: %p vs. %p.\n",
    444                             expected_pa, real_pa);
     442                        usb_log_debug("Interrupt QH: %p(frame: %d) vs. %p.\n",
     443                            expected_pa, frnum, real_pa);
    445444                }
    446445
  • uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c

    rdd6f59f r0f3e68c  
    8888        }
    8989
    90         usb_log_debug2("Created TD: %X:%X:%X:%X(%p).\n",
    91             instance->next, instance->status, instance->device,
     90        usb_log_debug2("Created TD(%p): %X:%X:%X:%X(%p).\n",
     91            instance, instance->next, instance->status, instance->device,
    9292            instance->buffer_ptr, buffer);
     93        td_print_status(instance);
    9394        if (pid == USB_PID_SETUP) {
    9495                usb_log_debug("SETUP BUFFER: %s\n",
     
    126127        return EOK;
    127128}
     129/*----------------------------------------------------------------------------*/
     130void td_print_status(td_t *instance)
     131{
     132        assert(instance);
     133        const uint32_t s = instance->status;
     134        usb_log_debug2("TD(%p) status(%#x):%s %d,%s%s%s%s%s%s%s%s%s%s%s %d.\n",
     135            instance, instance->status,
     136            (s & TD_STATUS_SPD_FLAG) ? " SPD," : "",
     137            (s >> TD_STATUS_ERROR_COUNT_POS) & TD_STATUS_ERROR_COUNT_MASK,
     138            (s & TD_STATUS_LOW_SPEED_FLAG) ? " LOW SPEED," : "",
     139            (s & TD_STATUS_ISOCHRONOUS_FLAG) ? " ISOCHRONOUS," : "",
     140            (s & TD_STATUS_IOC_FLAG) ? " IOC," : "",
     141            (s & TD_STATUS_ERROR_ACTIVE) ? " ACTIVE," : "",
     142            (s & TD_STATUS_ERROR_STALLED) ? " STALLED," : "",
     143            (s & TD_STATUS_ERROR_BUFFER) ? " BUFFER," : "",
     144            (s & TD_STATUS_ERROR_BABBLE) ? " BABBLE," : "",
     145            (s & TD_STATUS_ERROR_NAK) ? " NAK," : "",
     146            (s & TD_STATUS_ERROR_CRC) ? " CRC/TIMEOUT," : "",
     147            (s & TD_STATUS_ERROR_BIT_STUFF) ? " BIT_STUFF," : "",
     148            (s & TD_STATUS_ERROR_RESERVED) ? " RESERVED," : "",
     149            (s >> TD_STATUS_ACTLEN_POS) & TD_STATUS_ACTLEN_MASK
     150        );
     151}
    128152/**
    129153 * @}
  • uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h

    rdd6f59f r0f3e68c  
    5353#define TD_STATUS_LOW_SPEED_FLAG ( 1 << 26 )
    5454#define TD_STATUS_ISOCHRONOUS_FLAG ( 1 << 25 )
    55 #define TD_STATUS_COMPLETE_INTERRUPT_FLAG ( 1 << 24 )
     55#define TD_STATUS_IOC_FLAG ( 1 << 24 )
    5656
    5757#define TD_STATUS_ERROR_ACTIVE ( 1 << 23 )
     
    127127        return (instance->status & TD_STATUS_ERROR_ACTIVE) != 0;
    128128}
     129
     130void td_print_status(td_t *instance);
    129131#endif
    130132/**
  • uspace/drv/uhci-rhd/port.c

    rdd6f59f r0f3e68c  
    4444
    4545#include "port.h"
    46 #include "port_status.h"
    4746
    4847static int uhci_port_new_device(uhci_port_t *port, usb_speed_t speed);
     
    126125                port_status_t port_status = uhci_port_read_status(instance);
    127126
    128                 print_port_status(instance->id_string, port_status);
     127                /* print the value if it's interesting */
     128                if (port_status & ~STATUS_ALWAYS_ONE)
     129                        uhci_port_print_status(instance, port_status);
    129130
    130131                if ((port_status & STATUS_CONNECTED_CHANGED) == 0)
     
    158159                        /* Write one to WC bits, to ack changes */
    159160                        uhci_port_write_status(instance, port_status);
    160                         usb_log_debug("%s: Change status ACK.\n",
     161                        usb_log_debug("%s: status change ACK.\n",
    161162                            instance->id_string);
    162163                }
  • uspace/drv/uhci-rhd/port.h

    rdd6f59f r0f3e68c  
    3636
    3737#include <assert.h>
     38#include <stdint.h>
    3839#include <ddf/driver.h>
    39 #include <stdint.h>
     40#include <libarch/ddi.h> /* pio_read and pio_write */
    4041#include <usb/usbdevice.h>
    4142
    42 #include "port_status.h"
     43typedef uint16_t port_status_t;
     44
     45#define STATUS_CONNECTED         (1 << 0)
     46#define STATUS_CONNECTED_CHANGED (1 << 1)
     47#define STATUS_ENABLED           (1 << 2)
     48#define STATUS_ENABLED_CHANGED   (1 << 3)
     49#define STATUS_LINE_D_PLUS       (1 << 4)
     50#define STATUS_LINE_D_MINUS      (1 << 5)
     51#define STATUS_RESUME            (1 << 6)
     52#define STATUS_ALWAYS_ONE        (1 << 7)
     53
     54#define STATUS_LOW_SPEED (1 <<  8)
     55#define STATUS_IN_RESET  (1 <<  9)
     56#define STATUS_SUSPEND   (1 << 12)
    4357
    4458typedef struct uhci_port
     
    7286        pio_write_16(port->address, value);
    7387}
     88
     89static inline void uhci_port_print_status(
     90    uhci_port_t *port, const port_status_t value)
     91{
     92        assert(port);
     93        usb_log_debug2("%s Port status(%#x):%s%s%s%s%s%s%s%s%s%s%s.\n",
     94            port->id_string, value,
     95            (value & STATUS_SUSPEND) ? " SUSPENDED," : "",
     96            (value & STATUS_RESUME) ? " IN RESUME," : "",
     97            (value & STATUS_IN_RESET) ? " IN RESET," : "",
     98            (value & STATUS_LINE_D_MINUS) ? " VD-," : "",
     99            (value & STATUS_LINE_D_PLUS) ? " VD+," : "",
     100            (value & STATUS_LOW_SPEED) ? " LOWSPEED," : "",
     101            (value & STATUS_ENABLED_CHANGED) ? " ENABLED-CHANGE," : "",
     102            (value & STATUS_ENABLED) ? " ENABLED," : "",
     103            (value & STATUS_CONNECTED_CHANGED) ? " CONNECTED-CHANGE," : "",
     104            (value & STATUS_CONNECTED) ? " CONNECTED," : "",
     105            (value & STATUS_ALWAYS_ONE) ? " ALWAYS ONE" : " ERROR: NO ALWAYS ONE"
     106        );
     107}
    74108#endif
    75109/**
Note: See TracChangeset for help on using the changeset viewer.