Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp6613512yba; Tue, 14 May 2019 10:25:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqz+lK8ZbdNNnU9xFp9tze5Hd9cRDFtPRUf08rfIdwYrhrYy4WdaXjIBdM2bU2+GqrQu/FDM X-Received: by 2002:a17:902:2983:: with SMTP id h3mr12915630plb.267.1557854710565; Tue, 14 May 2019 10:25:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557854710; cv=none; d=google.com; s=arc-20160816; b=qJCgoIuVRmlFB6+973lbxMloUp6ZW2CM8xE1nR/ioQ2k4Gc+nSrUtUoPVZsahiEGhD 4B7835fdhHwbU+efBCZubYPjDDMykcc42YP0YnB6uE4ytfHVueBLKb1k95EQFIALB0TG teOezPXyiVsI7MNEoMEJo4kDc3Z+pjRG98ylc2T9W/KR3qAFZyCTac6mYUgHLBVHMmoe ThWxTkMnMzVl+UHOyU14mXd7yobkAGn0KNP+G+YhhX5wnyqXsmPdGGgd7/qijzqabmPZ 8qZTMSb6/rOgKwbm9qhW7CstiITwHlQhqDK7mHta6jxLMEIZA35eRFcVWQErCQQZ4/bv XvUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=LM613xEn91i2efSUCJyUEyUwQCRaghenqhOJ5TA3uiM=; b=iRCw1mSntWFKXd1NgwCfdUySpWVsArOQeBaBSEP1312ApTXGW8uiQv9/AP1Mt+D6Ca PYtqzD5v1WCX0d9WAimpoWSDHyDe7xI6j0lhou3Dwo7zJel3eocYO7Gbz0OU8K7gLCe/ FkBlqdcm/pz27wiy0wtxTJ/vJ90pj2KH+9gHoOU+0f9XvOt3ZZgc5/N+20Zf2Yq7XoXK owiWqRG2OunhZAIAwaRR0HtgmDKhdg32XopkVgMxPyJrxKDcUlo1aM5gZAJ0xdRtRQUF ga/RswsTmvE9fGFM576xGuwqV8MJlbSH/rgv0tDq1nVoLlg6JIF/UGcwt88BTgzjRaZn 5QdA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 21si10643955pfc.98.2019.05.14.10.24.56; Tue, 14 May 2019 10:25:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726907AbfENRXS (ORCPT + 99 others); Tue, 14 May 2019 13:23:18 -0400 Received: from hosting.gsystem.sk ([212.5.213.30]:41762 "EHLO hosting.gsystem.sk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726251AbfENRXS (ORCPT ); Tue, 14 May 2019 13:23:18 -0400 Received: from gsql.ggedos.sk (off-20.infotel.telecom.sk [212.5.213.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by hosting.gsystem.sk (Postfix) with ESMTPSA id AA9F47A045F; Tue, 14 May 2019 19:23:16 +0200 (CEST) From: Ondrej Zary To: "Martin K . Petersen" , Christoph Hellwig Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/3] fdomain: Resurrect driver (PCI support) Date: Tue, 14 May 2019 19:23:08 +0200 Message-Id: <20190514172309.12874-3-linux@zary.sk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190514172309.12874-1-linux@zary.sk> References: <20190514172309.12874-1-linux@zary.sk> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Future Domain TMC-3260/AHA-2920A PCI card support. Tested on Adaptec AHA-2920A PCI card. Signed-off-by: Ondrej Zary Reviewed-by: Christoph Hellwig --- drivers/scsi/Kconfig | 17 ++++++++++++ drivers/scsi/Makefile | 1 + drivers/scsi/fdomain_pci.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 drivers/scsi/fdomain_pci.c diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 3d6b1f47cbb5..f9d058a07e2a 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig @@ -667,6 +667,23 @@ config SCSI_FDOMAIN tristate depends on SCSI +config SCSI_FDOMAIN_PCI + tristate "Future Domain TMC-3260/AHA-2920A PCI SCSI support" + depends on PCI && SCSI + select SCSI_FDOMAIN + help + This is support for Future Domain's PCI SCSI host adapters (TMC-3260) + and other adapters with PCI bus based on the Future Domain chipsets + (Adaptec AHA-2920A). + + NOTE: Newer Adaptec AHA-2920C boards use the Adaptec AIC-7850 chip + and should use the aic7xxx driver ("Adaptec AIC7xxx chipset SCSI + controller support"). This Future Domain driver works with the older + Adaptec AHA-2920A boards with a Future Domain chip on them. + + To compile this driver as a module, choose M here: the + module will be called fdomain_pci. + config SCSI_GDTH tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" depends on PCI && SCSI diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile index b8fbc6d2de54..f6cc4fbe6957 100644 --- a/drivers/scsi/Makefile +++ b/drivers/scsi/Makefile @@ -77,6 +77,7 @@ obj-$(CONFIG_SCSI_PM8001) += pm8001/ obj-$(CONFIG_SCSI_ISCI) += isci/ obj-$(CONFIG_SCSI_IPS) += ips.o obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o +obj-$(CONFIG_SCSI_FDOMAIN_PCI) += fdomain_pci.o obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o diff --git a/drivers/scsi/fdomain_pci.c b/drivers/scsi/fdomain_pci.c new file mode 100644 index 000000000000..3e05ce7b89e5 --- /dev/null +++ b/drivers/scsi/fdomain_pci.c @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include "fdomain.h" + +static int fdomain_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *d) +{ + int err; + struct Scsi_Host *sh; + + err = pci_enable_device(pdev); + if (err) + goto fail; + + err = pci_request_regions(pdev, "fdomain_pci"); + if (err) + goto disable_device; + + err = -ENODEV; + if (pci_resource_len(pdev, 0) == 0) + goto release_region; + + sh = fdomain_create(pci_resource_start(pdev, 0), pdev->irq, 7, + &pdev->dev); + if (!sh) + goto release_region; + + pci_set_drvdata(pdev, sh); + return 0; + +release_region: + pci_release_regions(pdev); +disable_device: + pci_disable_device(pdev); +fail: + return err; +} + +static void fdomain_pci_remove(struct pci_dev *pdev) +{ + struct Scsi_Host *sh = pci_get_drvdata(pdev); + + fdomain_destroy(sh); + pci_release_regions(pdev); + pci_disable_device(pdev); +} + +static struct pci_device_id fdomain_pci_table[] = { + { PCI_DEVICE(PCI_VENDOR_ID_FD, PCI_DEVICE_ID_FD_36C70) }, + {} +}; +MODULE_DEVICE_TABLE(pci, fdomain_pci_table); + +static struct pci_driver fdomain_pci_driver = { + .name = "fdomain_pci", + .id_table = fdomain_pci_table, + .probe = fdomain_pci_probe, + .remove = fdomain_pci_remove, + .driver.pm = FDOMAIN_PM_OPS, +}; + +module_pci_driver(fdomain_pci_driver); + +MODULE_AUTHOR("Ondrej Zary, Rickard E. Faith"); +MODULE_DESCRIPTION("Future Domain TMC-3260 PCI SCSI driver"); +MODULE_LICENSE("GPL"); -- Ondrej Zary