24 Aug, 2011

1 commit

  • The unsolicited frame control infrastructure requires a table of dma
    addresses for the hardware to lookup the frame buffer location by an
    index. The hardware expects the elements of this table to be 64-bit
    quantities, so we cannot reference these elements as dma_addr_t. All
    unsolicited frame protocols are affected, particularly SATA-PIO and SMP
    which prevented direct-attached SATA drives and expander-attached drives
    to not be discovered.

    Cc:
    Reported-by: Jacek Danecki
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

03 Jul, 2011

6 commits

  • The distinction between scic_sds_ scic_ and sci_ are no longer relevant
    so just unify the prefixes on sci_. The distinction between isci_ and
    sci_ is historically significant, and useful for comparing the old
    'core' to the current Linux driver. 'sci_' represents the former core as
    well as the routines that are closer to the hardware and protocol than
    their 'isci_' brethren. sci == sas controller interface.

    Also unwind the 'sds1' out of the parameter structs.

    Reported-by: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Remove the distinction between these two implementations and unify on
    isci_host (local instances named ihost). Hmmm, we had two
    'oem_parameters' instances, one was unused... nice.

    Reported-by: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Every single i/o or event completion incurs a test and branch to see if
    the cycle bit changed. For power-of-2 queue sizes the cycle bit can be
    read directly from the rollover of the queue pointer.

    Likely premature optimization, but the hidden if() and hidden
    assignments / side-effects in the macros were already asking to be
    cleaned up.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • The old 'core' had aspirations of running in severely memory constrained
    environments like bios option-rom, it's not needed for Linux and gets in
    the way of other cleanups (like unifying/reducing the number of structure
    members in scic_sds_controller/isci_host).

    This also fixes a theoretical bug in that the driver would blindly override
    the silicon advertised limits for number of ports, task contexts, and remote
    node contexts.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • * Consolidate tiny header files
    * Move files out of core/ (drop core/scic_sds_ prefix)
    * Merge core/scic_sds_request.[ch] into request.[ch]
    * Cleanup request.c namespace (clean forward declarations and global
    namespace pollution)

    Reported-by: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Reported-by: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams