• Serge Semin's avatar
    ata: libahci: Discard redundant force_port_map parameter · 88589772
    Serge Semin authored
    Currently there are four port-map-related fields declared in the
    ahci_host_priv structure and used to setup the HBA ports mapping. First
    the ports-mapping is read from the PI register and immediately stored in
    the saved_port_map field. If forced_port_map is initialized with non-zero
    value then its value will have greater priority over the value read from
    PI, thus it will override the saved_port_map field. That value will be
    then masked by a non-zero mask_port_map field and after some sanity checks
    it will be stored in the ahci_host_priv.port_map field as a final port
    mapping.
    
    As you can see the logic is a bit too complicated for such a simple task.
    We can freely get rid from at least one of the fields with no change to
    the implemented semantic. The force_port_map field can be replaced with
    taking non-zero saved_port_map value into account. So if saved_port_map is
    pre-initialized by the low level drivers (platform drivers) then it will
    have greater priority over the value read from PI register and will be
    used as actual HBA ports mapping later on. Thus the ports map forcing task
    will be just transferred from force_port_map to the saved_port_map field.
    
    This modification will perfectly fit into the feature of having OF-based
    initialization of the HW-init HBA CSR fields we are about to introduce in
    the next commit.
    Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
    88589772
ahci.h 16.9 KB