scsi: hisi_sas: add skeleton v3 hw driver
Add skeleton driver for v3 hw in hisi_sas_v3_hw.c File hisi_sas_v3_hw.c will serve 2 purposes: - probing and initialisation of the controller based on pci device - hw layer for v3-based controllers The controller design is quite similar to v2 hw in hip07. However key differences include: -All v2 hw bugs are fixed (hopefully), so workarounds are not required -support for device deregistration -some interrupt modifications -configurable max device support Signed-off-by: John Garry <john.garry@huawei.com> Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
0fa24c19d8
commit
92f61e3bc2
@@ -6,4 +6,12 @@ config SCSI_HISI_SAS
|
|||||||
select BLK_DEV_INTEGRITY
|
select BLK_DEV_INTEGRITY
|
||||||
depends on ATA
|
depends on ATA
|
||||||
help
|
help
|
||||||
This driver supports HiSilicon's SAS HBA
|
This driver supports HiSilicon's SAS HBA, including support based
|
||||||
|
on platform device
|
||||||
|
|
||||||
|
config SCSI_HISI_SAS_PCI
|
||||||
|
tristate "HiSilicon SAS on PCI bus"
|
||||||
|
depends on SCSI_HISI_SAS
|
||||||
|
depends on PCI
|
||||||
|
help
|
||||||
|
This driver supports HiSilicon's SAS HBA based on PCI device
|
||||||
|
@@ -1,2 +1,3 @@
|
|||||||
obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_main.o
|
obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_main.o
|
||||||
obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_v1_hw.o hisi_sas_v2_hw.o
|
obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_v1_hw.o hisi_sas_v2_hw.o
|
||||||
|
obj-$(CONFIG_SCSI_HISI_SAS_PCI) += hisi_sas_v3_hw.o
|
||||||
|
47
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
Normal file
47
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017 Hisilicon Limited.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hisi_sas.h"
|
||||||
|
#define DRV_NAME "hisi_sas_v3_hw"
|
||||||
|
|
||||||
|
static int
|
||||||
|
hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void hisi_sas_v3_remove(struct pci_dev *pdev)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* instances of the controller */
|
||||||
|
hip08,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct pci_device_id sas_v3_pci_table[] = {
|
||||||
|
{ PCI_VDEVICE(HUAWEI, 0xa230), hip08 },
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct pci_driver sas_v3_pci_driver = {
|
||||||
|
.name = DRV_NAME,
|
||||||
|
.id_table = sas_v3_pci_table,
|
||||||
|
.probe = hisi_sas_v3_probe,
|
||||||
|
.remove = hisi_sas_v3_remove,
|
||||||
|
};
|
||||||
|
|
||||||
|
module_pci_driver(sas_v3_pci_driver);
|
||||||
|
|
||||||
|
MODULE_VERSION(DRV_VERSION);
|
||||||
|
MODULE_LICENSE("GPL");
|
||||||
|
MODULE_AUTHOR("John Garry <john.garry@huawei.com>");
|
||||||
|
MODULE_DESCRIPTION("HISILICON SAS controller v3 hw driver based on pci device");
|
||||||
|
MODULE_ALIAS("platform:" DRV_NAME);
|
Reference in New Issue
Block a user