lkml.org 
[lkml]   [2015]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 28/32] scsi: hisi_sas: add scan finished and start
    Date
    Add functions for scsi host template scan_finished
    and scan_start methods

    Signed-off-by: John Garry <john.garry@huawei.com>
    ---
    drivers/scsi/hisi_sas/hisi_sas.h | 1 +
    drivers/scsi/hisi_sas/hisi_sas_main.c | 25 +++++++++++++++++++++++++
    2 files changed, 26 insertions(+)

    diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h
    index f2355db..af716e5 100644
    --- a/drivers/scsi/hisi_sas/hisi_sas.h
    +++ b/drivers/scsi/hisi_sas/hisi_sas.h
    @@ -158,6 +158,7 @@ struct hisi_hba {
    u8 sas_addr[SAS_ADDR_SIZE];

    int n_phy;
    + int scan_finished;
    spinlock_t lock;

    struct timer_list timer;
    diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
    index 95535e5..d8ddae0 100644
    --- a/drivers/scsi/hisi_sas/hisi_sas_main.c
    +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
    @@ -403,6 +403,29 @@ static int hisi_sas_dev_found(struct domain_device *device)
    return 0;
    }

    +static void hisi_sas_scan_start(struct Scsi_Host *shost)
    +{
    + struct hisi_hba *hisi_hba = shost_priv(shost);
    + int i;
    +
    + for (i = 0; i < hisi_hba->n_phy; ++i)
    + hisi_sas_bytes_dmaed(hisi_hba, i);
    +
    + hisi_hba->scan_finished = 1;
    +}
    +
    +static int hisi_sas_scan_finished(struct Scsi_Host *shost, unsigned long time)
    +{
    + struct hisi_hba *hisi_hba = shost_priv(shost);
    + struct sas_ha_struct *sha = &hisi_hba->sha;
    +
    + if (hisi_hba->scan_finished == 0)
    + return 0;
    +
    + sas_drain_work(sha);
    + return 1;
    +}
    +
    static void hisi_sas_phyup_work(struct work_struct *work)
    {
    struct hisi_sas_phy *phy =
    @@ -587,6 +610,8 @@ static struct scsi_host_template hisi_sas_sht = {
    .queuecommand = sas_queuecommand,
    .target_alloc = sas_target_alloc,
    .slave_configure = sas_slave_configure,
    + .scan_finished = hisi_sas_scan_finished,
    + .scan_start = hisi_sas_scan_start,
    .change_queue_depth = sas_change_queue_depth,
    .bios_param = sas_bios_param,
    .can_queue = 1,
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-11-09 17:41    [W:4.091 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site