isci: uplevel port infrastructure

* Move port configuration agent implementation
* Merge core/scic_sds_port.[ch] into port.[ch]

Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Esse commit está contido em:
Dan Williams
2011-05-10 02:28:46 -07:00
commit e2f8db509f
17 arquivos alterados com 2934 adições e 3430 exclusões

Ver arquivo

@@ -55,7 +55,6 @@
#ifndef _SCI_HOST_H_
#define _SCI_HOST_H_
#include "scic_config_parameters.h"
#include "remote_device.h"
#include "phy.h"
#include "pool.h"
@@ -64,11 +63,12 @@
#include "registers.h"
#include "scu_unsolicited_frame.h"
#include "unsolicited_frame_control.h"
#include "scic_sds_port_configuration_agent.h"
#include "probe_roms.h"
struct scic_sds_request;
struct scu_task_context;
/**
* struct scic_power_control -
*
@@ -107,6 +107,24 @@ struct scic_power_control {
};
struct scic_sds_port_configuration_agent;
typedef void (*port_config_fn)(struct scic_sds_controller *,
struct scic_sds_port_configuration_agent *,
struct scic_sds_port *, struct scic_sds_phy *);
struct scic_sds_port_configuration_agent {
u16 phy_configured_mask;
u16 phy_ready_mask;
struct {
u8 min_index;
u8 max_index;
} phy_valid_port_range[SCI_MAX_PHYS];
bool timer_pending;
port_config_fn link_up_handler;
port_config_fn link_down_handler;
void *timer;
};
/**
* struct scic_sds_controller -
*
@@ -800,4 +818,11 @@ u16 scic_controller_allocate_io_tag(
enum sci_status scic_controller_free_io_tag(
struct scic_sds_controller *scic,
u16 io_tag);
void scic_sds_port_configuration_agent_construct(
struct scic_sds_port_configuration_agent *port_agent);
enum sci_status scic_sds_port_configuration_agent_initialize(
struct scic_sds_controller *controller,
struct scic_sds_port_configuration_agent *port_agent);
#endif