Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1271452 > unrolled thread
| Started by | John Garry <john.garry@huawei.com> |
|---|---|
| First post | 2015-11-17 18:00 +0100 |
| Last post | 2015-11-19 11:00 +0100 |
| Articles | 5 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v5 00/32] HiSilicon SAS driver John Garry <john.garry@huawei.com> - 2015-11-17 18:00 +0100
[PATCH v5 17/32] scsi: hisi_sas: add v1 hw module init John Garry <john.garry@huawei.com> - 2015-11-17 18:00 +0100
Re: [PATCH v5 00/32] HiSilicon SAS driver "Martin K. Petersen" <martin.petersen@oracle.com> - 2015-11-18 18:00 +0100
Re: [PATCH v5 00/32] HiSilicon SAS driver "Martin K. Petersen" <martin.petersen@oracle.com> - 2015-11-19 04:20 +0100
Re: [PATCH v5 00/32] HiSilicon SAS driver John Garry <john.garry@huawei.com> - 2015-11-19 11:00 +0100
| From | John Garry <john.garry@huawei.com> |
|---|---|
| Date | 2015-11-17 18:00 +0100 |
| Subject | [PATCH v5 00/32] HiSilicon SAS driver |
| Message-ID | <qvRst-7rX-5@gated-at.bofh.it> |
This is the driver patchset for the HiSilicon SAS driver. The driver is a platform driver. The driver will support multiple revisions of HW. Currently only "v1" HW is supported. The driver uses libsas framework within the SCSI framework. The v1 HW supports SSP and SMP, but not STP/SATA. A dependency exists on [1]. Differences to v4: - fix kbuild issue with patch 0003 Differences to v3: - update dt bindings for syscon property - change SAS and SCSI deregister order - remove unused phy struct elements Differences to v2: - update device tree bindings - remove while loops when evaluating hba struct - remove _lo and _hi DMA struct fields - revised spinlock usage - fix error handling for when CMPLT_HDR_ERR_RCRD_XFRD set - general coding style and cosmetic fixes Differences to v1: - re-arch driver into main module and hw-specific driver module - allocate hisi_hba in scsi_host_alloc - use of_irq_count get irq count - depends on [1] - use syscon to handle ctrl reg access - get SAS address from device tree - do not set cmd_per_lun to 1 - remove remove controller id - use static wq in phy struct - process control phy in caller context - fix port->port_attached issue for rmmod [1] http://www.spinics.net/lists/arm-kernel/msg452833.html John Garry (32): [SCSI] sas: centralise ssp frame information units devicetree: bindings: scsi: HiSi SAS scsi: hisi_sas: add initial bare main driver scsi: hisi_sas: add scsi host registration scsi: hisi_sas: scan device tree scsi: hisi_sas: add HW DMA structures scsi: hisi_sas: allocate memories and create pools scsi: hisi_sas: add hisi_sas_remove scsi: hisi_sas: add slot init code scsi: hisi_sas: add cq structure initialization scsi: hisi_sas: add phy SAS ADDR initialization scsi: hisi_sas: set dev DMA mask scsi: hisi_sas: add hisi_hba workqueue scsi: hisi_sas: add hisi sas device type scsi: hisi_sas: add phy and port init scsi: hisi_sas: add timer and spinlock init scsi: hisi_sas: add v1 hw module init scsi: hisi_sas: add v1 hardware register definitions scsi: hisi_sas: add v1 HW initialisation code scsi: hisi_sas: add v1 hw interrupt init scsi: hisi_sas: add path from phyup irq to SAS framework scsi: hisi_sas: add ssp command function scsi: hisi_sas: add cq interrupt handler scsi: hisi_sas: add dev_found and dev_gone scsi: hisi_sas: add abnormal irq handler scsi: hisi_sas: add bcast interrupt handler scsi: hisi_sas: add smp protocol support scsi: hisi_sas: add scan finished and start scsi: hisi_sas: add tmf methods scsi: hisi_sas: add control phy handler scsi: hisi_sas: add fatal irq handler MAINTAINERS: add maintainer for HiSi SAS driver .../devicetree/bindings/scsi/hisilicon-sas.txt | 69 + MAINTAINERS | 7 + drivers/scsi/Kconfig | 1 + drivers/scsi/Makefile | 1 + drivers/scsi/aic94xx/aic94xx_sas.h | 49 +- drivers/scsi/hisi_sas/Kconfig | 6 + drivers/scsi/hisi_sas/Makefile | 2 + drivers/scsi/hisi_sas/hisi_sas.h | 345 ++++ drivers/scsi/hisi_sas/hisi_sas_main.c | 1362 ++++++++++++++ drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 1866 ++++++++++++++++++++ include/scsi/sas.h | 74 + 11 files changed, 3739 insertions(+), 43 deletions(-) create mode 100644 Documentation/devicetree/bindings/scsi/hisilicon-sas.txt create mode 100644 drivers/scsi/hisi_sas/Kconfig create mode 100644 drivers/scsi/hisi_sas/Makefile create mode 100644 drivers/scsi/hisi_sas/hisi_sas.h create mode 100644 drivers/scsi/hisi_sas/hisi_sas_main.c create mode 100644 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c Reviewed-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Hannes Reinecke <hare@suse.de> -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | John Garry <john.garry@huawei.com> |
|---|---|
| Date | 2015-11-17 18:00 +0100 |
| Subject | [PATCH v5 17/32] scsi: hisi_sas: add v1 hw module init |
| Message-ID | <qvRLS-7AN-45@gated-at.bofh.it> |
| In reply to | #1271452 |
Add module init code for v1 hw.
Signed-off-by: John Garry <john.garry@huawei.com>
---
drivers/scsi/hisi_sas/Makefile | 1 +
drivers/scsi/hisi_sas/hisi_sas.h | 3 ++
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 53 ++++++++++++++++++++++++++++++++++
3 files changed, 57 insertions(+)
create mode 100644 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
diff --git a/drivers/scsi/hisi_sas/Makefile b/drivers/scsi/hisi_sas/Makefile
index d86b05e..3e70eae 100644
--- a/drivers/scsi/hisi_sas/Makefile
+++ b/drivers/scsi/hisi_sas/Makefile
@@ -1 +1,2 @@
obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_main.o
+obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas_v1_hw.o
diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h
index 3749c46..72533ca 100644
--- a/drivers/scsi/hisi_sas/hisi_sas.h
+++ b/drivers/scsi/hisi_sas/hisi_sas.h
@@ -269,5 +269,8 @@ union hisi_sas_command_table {
struct hisi_sas_command_table_smp smp;
struct hisi_sas_command_table_stp stp;
};
+extern int hisi_sas_probe(struct platform_device *pdev,
+ const struct hisi_sas_hw *ops);
+extern int hisi_sas_remove(struct platform_device *pdev);
#endif
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
new file mode 100644
index 0000000..e9aebce
--- /dev/null
+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2015 Linaro Ltd.
+ * Copyright (c) 2015 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_v1_hw"
+
+
+struct hisi_sas_complete_v1_hdr {
+ __le32 data;
+};
+static const struct hisi_sas_hw hisi_sas_v1_hw = {
+ .complete_hdr_size = sizeof(struct hisi_sas_complete_v1_hdr),
+};
+
+static int hisi_sas_v1_probe(struct platform_device *pdev)
+{
+ return hisi_sas_probe(pdev, &hisi_sas_v1_hw);
+}
+
+static int hisi_sas_v1_remove(struct platform_device *pdev)
+{
+ return hisi_sas_remove(pdev);
+}
+
+static const struct of_device_id sas_v1_of_match[] = {
+ { .compatible = "hisilicon,hip05-sas-v1",},
+ {},
+};
+MODULE_DEVICE_TABLE(of, sas_v1_of_match);
+
+static struct platform_driver hisi_sas_v1_driver = {
+ .probe = hisi_sas_v1_probe,
+ .remove = hisi_sas_v1_remove,
+ .driver = {
+ .name = DRV_NAME,
+ .of_match_table = sas_v1_of_match,
+ },
+};
+
+module_platform_driver(hisi_sas_v1_driver);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("John Garry <john.garry@huawei.com>");
+MODULE_DESCRIPTION("HISILICON SAS controller v1 hw driver");
+MODULE_ALIAS("platform:" DRV_NAME);
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Martin K. Petersen" <martin.petersen@oracle.com> |
|---|---|
| Date | 2015-11-18 18:00 +0100 |
| Message-ID | <qwefp-5yL-23@gated-at.bofh.it> |
| In reply to | #1271452 |
>>>>> "John" == John Garry <john.garry@huawei.com> writes: John> This is the driver patchset for the HiSilicon SAS driver. The John> driver is a platform driver. I have staged this driver for 4.5. Changes as a result of Rob's comments to patch 20 should be made as an incremental patch. -- Martin K. Petersen Oracle Linux Engineering -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Martin K. Petersen" <martin.petersen@oracle.com> |
|---|---|
| Date | 2015-11-19 04:20 +0100 |
| Message-ID | <qwnVo-3Op-3@gated-at.bofh.it> |
| In reply to | #1272383 |
>>>>> "John" == John Garry <john.garry@huawei.com> writes: John> thanks, please note that we still have the dependency on John> http://www.spinics.net/lists/arm-kernel/msg452833.html John> Without it the driver can only be built into the kernel, and not John> as a module. I have your driver in a staging branch rather than the main 4.5 SCSI queue because I wanted to see what kind of additional fallout I'd get from the zeroday testing. It's not a problem for me to wait for that patch to go in (or take it through SCSI if that makes things easier). -- Martin K. Petersen Oracle Linux Engineering -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | John Garry <john.garry@huawei.com> |
|---|---|
| Date | 2015-11-19 11:00 +0100 |
| Message-ID | <qwuav-7Bg-19@gated-at.bofh.it> |
| In reply to | #1272775 |
On 19/11/2015 03:15, Martin K. Petersen wrote: >>>>>> "John" == John Garry <john.garry@huawei.com> writes: > > John> thanks, please note that we still have the dependency on > John> http://www.spinics.net/lists/arm-kernel/msg452833.html > > John> Without it the driver can only be built into the kernel, and not > John> as a module. > > I have your driver in a staging branch rather than the main 4.5 SCSI > queue because I wanted to see what kind of additional fallout I'd get > from the zeroday testing. > > It's not a problem for me to wait for that patch to go in (or take it > through SCSI if that makes things easier). > The issue is the I don't know if Rob will approve the requested patch. As an alternative I can make my driver not depend on it. So I could make a v6 patchset or just send a supplementary patch on top of v5 patchset. Thanks, John -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web