aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/host.c
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2011-03-16 14:57:23 -0700
committerDan Williams <dan.j.williams@intel.com>2011-07-03 03:58:14 -0700
commitb5f18a201ed82ed3776c9950646689b93713ae57 (patch)
treeac393f2212c942b87539d99e985d498ad2b8ad39 /drivers/scsi/isci/host.c
parent4711ba10b13891edf228944a9d0a21dfe7fe90f0 (diff)
downloadkernel_samsung_smdk4412-b5f18a201ed82ed3776c9950646689b93713ae57.zip
kernel_samsung_smdk4412-b5f18a201ed82ed3776c9950646689b93713ae57.tar.gz
kernel_samsung_smdk4412-b5f18a201ed82ed3776c9950646689b93713ae57.tar.bz2
isci: exposing user parameters via module params
Exposing the user config parameters through the kernel module parameters. The kernel module params will have the default values set and we will no longer pulling the default values for user params from the core. Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/host.c')
-rw-r--r--drivers/scsi/isci/host.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/drivers/scsi/isci/host.c b/drivers/scsi/isci/host.c
index d6e2a73..79515be 100644
--- a/drivers/scsi/isci/host.c
+++ b/drivers/scsi/isci/host.c
@@ -413,6 +413,32 @@ static void __iomem *smu_base(struct isci_host *isci_host)
return pcim_iomap_table(pdev)[SCI_SMU_BAR * 2] + SCI_SMU_BAR_SIZE * id;
}
+static void isci_user_parameters_get(
+ struct isci_host *isci_host,
+ union scic_user_parameters *scic_user_params)
+{
+ struct scic_sds_user_parameters *u = &scic_user_params->sds1;
+ int i;
+
+ for (i = 0; i < SCI_MAX_PHYS; i++) {
+ struct sci_phy_user_params *u_phy = &u->phys[i];
+
+ u_phy->max_speed_generation = phy_gen;
+
+ /* we are not exporting these for now */
+ u_phy->align_insertion_frequency = 0x7f;
+ u_phy->in_connection_align_insertion_frequency = 0xff;
+ u_phy->notify_enable_spin_up_insertion_frequency = 0x33;
+ }
+
+ u->stp_inactivity_timeout = stp_inactive_to;
+ u->ssp_inactivity_timeout = ssp_inactive_to;
+ u->stp_max_occupancy_timeout = stp_max_occ_to;
+ u->ssp_max_occupancy_timeout = ssp_max_occ_to;
+ u->no_outbound_task_timeout = no_outbound_task_to;
+ u->max_number_concurrent_device_spin_up = max_concurr_spinup;
+}
+
int isci_host_init(struct isci_host *isci_host)
{
int err = 0, i;
@@ -462,7 +488,7 @@ int isci_host_init(struct isci_host *isci_host)
* grab initial values stored in the controller object for OEM and USER
* parameters
*/
- scic_user_parameters_get(controller, &scic_user_params);
+ isci_user_parameters_get(isci_host, &scic_user_params);
status = scic_user_parameters_set(isci_host->core_controller,
&scic_user_params);
if (status != SCI_SUCCESS) {