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:
parent
0fa24c19d8
commit
92f61e3bc2
@ -6,4 +6,12 @@ config SCSI_HISI_SAS
|
||||
select BLK_DEV_INTEGRITY
|
||||
depends on ATA
|
||||
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_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);
|
Loading…
Reference in New Issue
Block a user