Received: by 10.223.176.46 with SMTP id f43csp1122163wra; Fri, 26 Jan 2018 12:13:39 -0800 (PST) X-Google-Smtp-Source: AH8x226L0B+7mcCjRG37DWAlcxkVpUgEyUhS7S7K3BiOsP80CzhQ0yNQFARzzCsmMrAIJZEy58Rm X-Received: by 10.99.154.10 with SMTP id o10mr11666590pge.377.1516997619276; Fri, 26 Jan 2018 12:13:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516997619; cv=none; d=google.com; s=arc-20160816; b=DmmpVGYPAwT+jy8KHLj5ePsr6AKnQTCMhnHLh3Z5wvMBvZk0mEur6Io8FlAjbqTTYN IRem6V+6XJTHZvBT3h/2EyJ1b3lKrZi0+rE0RGYBc8XzK7iH7SeWhlCcxoh2AFdOSWUK UVCoUoIa3MyMipT4JQF/9ahmAl67C/Dwg6Mm+/Yd9PzuW+mA7NK6hkRiVtKBSaPJMW1F JxUUTgKJuzoC8Z6/siI86oYxsWz6KOBN222tH8g7CsbSAOB39KfmCtCZF/fE4JiKV8cI f96UcVKJFWk12mrVCTR3mCCGaLg2YWgEs7JEcARpSACJ8RWm8fQ240GAestBDqucfVzv mh8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=VVlj79OHS1cHuMWBpRqBZNzasc+zTmJIfxOaE0BAqKk=; b=Me7rzuvYeTWxiABm4MhJTD58Ie+lDQajMecOvaWA0glFp0LWKEZdS916M7E4XzmF+G 9bwBmPWq4umhOhM6nN8jf7v7EaE5EjSZ+wbdxI/lEFsuUmfrQCTh+6cNSUV07bzzJFwt np+fW5pVtCoNCQdo4ewmnL9G6SJfGV3aHgVGsA1l/g0azoIgw4/MS5lnwUMEUkEr6Pjs aDbVK7QPlUo42v2CV3PrM/7BVeiC/Y7NTTXA0W7J5BuEzZ5NwOwdxymvOqGMd4j/L3TD IhTAq5HjBsgltoT3a5mTxJTJcOWLgqYWbUh51AV91pDZBgPt+eowRLRiF2Xx3Jw7zBTG MVFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=GZQJl1y7; 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 68-v6si4176387pla.767.2018.01.26.12.13.24; Fri, 26 Jan 2018 12:13:39 -0800 (PST) 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; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=GZQJl1y7; 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 S1752000AbeAZUNB (ORCPT + 99 others); Fri, 26 Jan 2018 15:13:01 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:35145 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751734AbeAZUM7 (ORCPT ); Fri, 26 Jan 2018 15:12:59 -0500 Received: by mail-wr0-f195.google.com with SMTP id w50so1534693wrc.2 for ; Fri, 26 Jan 2018 12:12:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=VVlj79OHS1cHuMWBpRqBZNzasc+zTmJIfxOaE0BAqKk=; b=GZQJl1y7Fw1CIu9S61DVGXt55MeMcHpsKctaVQGb5DB5GKBp31XaGtAxkYUK+Aj3SG ON3a3eqdDNxoqSzo/X6jvfNSCbq6DBuxh5UyCIaxeAF2Fl2RrD99PyA+fVva7Bnm2yL0 T2wjSe2Z6SeGBb4gzGcjOpm9qWO1xUPPqBwxBy4l+ZlfnfQe2TsxwR07HpFqKtzR4tnO 0a25LYPpyy0k8Gh8olhAZpnbQ0ALh+nDuM+YVVolQV8dDqrTkGke/6+nFIb7lBR1qoAZ 3HTOpzmdfLDx7dSmcwZSP5bXTqqd3yWx4wGY4CkrYjB1OxwBxKuJIJBMcNZWwTO6y0IM Nqhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=VVlj79OHS1cHuMWBpRqBZNzasc+zTmJIfxOaE0BAqKk=; b=o4Fxb71xPU5wfUBjfhQ72ayyYERjw/nSBDIU/6KBe2M95TOEuNttIim/hhKCU6uD7t UMeptoDGNEd8lkfl5YfAs6bGI1YCBPzCcNj4hH01JYTWvcXKJAaut6giuhPh187TVDyH +uEf4eXD2BIjUD/NF8KiTWO/7hGk1q6YU8nWQoDYg6847s1EjjD6RmXRqoVahuWQSPWY H6xPoEs1AKwXN062HeGxi7YIqHWmnHLa20XlnofT0qIOD5vzobErkRJNpVb5WkVk4FvF I2uBiPwBP6MGfSE4APz0yvEGPVaYirMF/DxdmL9jw8Dkdi9lAUW5zAJ4WKyO401N5nYK bOdg== X-Gm-Message-State: AKwxytcPnbyrY7ZmemnPd/+jRrfrBJ5dngG315MhgAXdVY/Yoijt5Vsw T1+L8vd4jqmAZhOkZ7YKDSgBnw== X-Received: by 10.223.150.208 with SMTP id u74mr2438297wrb.193.1516997578323; Fri, 26 Jan 2018 12:12:58 -0800 (PST) Received: from localhost.localdomain ([51.15.160.169]) by smtp.googlemail.com with ESMTPSA id b9sm5622365wmc.14.2018.01.26.12.12.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 26 Jan 2018 12:12:57 -0800 (PST) From: Corentin Labbe To: axboe@fb.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Corentin Labbe Subject: [PATCH] block: remove smart1,2.h Date: Fri, 26 Jan 2018 20:12:41 +0000 Message-Id: <1516997561-13708-1-git-send-email-clabbe@baylibre.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org smart1,2.h is unused since commit d436641439e0 ("cpqarray: remove it from the kernel") Remove it from tree. Signed-off-by: Corentin Labbe --- drivers/block/smart1,2.h | 278 ----------------------------------------------- 1 file changed, 278 deletions(-) delete mode 100644 drivers/block/smart1,2.h diff --git a/drivers/block/smart1,2.h b/drivers/block/smart1,2.h deleted file mode 100644 index e5565fbaeb30..000000000000 --- a/drivers/block/smart1,2.h +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Disk Array driver for Compaq SMART2 Controllers - * Copyright 1998 Compaq Computer Corporation - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Questions/Comments/Bugfixes to iss_storagedev@hp.com - * - * If you want to make changes, improve or add functionality to this - * driver, you'll probably need the Compaq Array Controller Interface - * Specificiation (Document number ECG086/1198) - */ - -/* - * This file contains the controller communication implementation for - * Compaq SMART-1 and SMART-2 controllers. To the best of my knowledge, - * this should support: - * - * PCI: - * SMART-2/P, SMART-2DH, SMART-2SL, SMART-221, SMART-3100ES, SMART-3200 - * Integerated SMART Array Controller, SMART-4200, SMART-4250ES - * - * EISA: - * SMART-2/E, SMART, IAES, IDA-2, IDA - */ - -/* - * Memory mapped FIFO interface (SMART 42xx cards) - */ -static void smart4_submit_command(ctlr_info_t *h, cmdlist_t *c) -{ - writel(c->busaddr, h->vaddr + S42XX_REQUEST_PORT_OFFSET); -} - -/* - * This card is the opposite of the other cards. - * 0 turns interrupts on... - * 0x08 turns them off... - */ -static void smart4_intr_mask(ctlr_info_t *h, unsigned long val) -{ - if (val) - { /* Turn interrupts on */ - writel(0, h->vaddr + S42XX_REPLY_INTR_MASK_OFFSET); - } else /* Turn them off */ - { - writel( S42XX_INTR_OFF, - h->vaddr + S42XX_REPLY_INTR_MASK_OFFSET); - } -} - -/* - * For older cards FIFO Full = 0. - * On this card 0 means there is room, anything else FIFO Full. - * - */ -static unsigned long smart4_fifo_full(ctlr_info_t *h) -{ - - return (!readl(h->vaddr + S42XX_REQUEST_PORT_OFFSET)); -} - -/* This type of controller returns -1 if the fifo is empty, - * Not 0 like the others. - * And we need to let it know we read a value out - */ -static unsigned long smart4_completed(ctlr_info_t *h) -{ - long register_value - = readl(h->vaddr + S42XX_REPLY_PORT_OFFSET); - - /* Fifo is empty */ - if( register_value == 0xffffffff) - return 0; - - /* Need to let it know we got the reply */ - /* We do this by writing a 0 to the port we just read from */ - writel(0, h->vaddr + S42XX_REPLY_PORT_OFFSET); - - return ((unsigned long) register_value); -} - - /* - * This hardware returns interrupt pending at a different place and - * it does not tell us if the fifo is empty, we will have check - * that by getting a 0 back from the command_completed call. - */ -static unsigned long smart4_intr_pending(ctlr_info_t *h) -{ - unsigned long register_value = - readl(h->vaddr + S42XX_INTR_STATUS); - - if( register_value & S42XX_INTR_PENDING) - return FIFO_NOT_EMPTY; - return 0 ; -} - -static struct access_method smart4_access = { - smart4_submit_command, - smart4_intr_mask, - smart4_fifo_full, - smart4_intr_pending, - smart4_completed, -}; - -/* - * Memory mapped FIFO interface (PCI SMART2 and SMART 3xxx cards) - */ -static void smart2_submit_command(ctlr_info_t *h, cmdlist_t *c) -{ - writel(c->busaddr, h->vaddr + COMMAND_FIFO); -} - -static void smart2_intr_mask(ctlr_info_t *h, unsigned long val) -{ - writel(val, h->vaddr + INTR_MASK); -} - -static unsigned long smart2_fifo_full(ctlr_info_t *h) -{ - return readl(h->vaddr + COMMAND_FIFO); -} - -static unsigned long smart2_completed(ctlr_info_t *h) -{ - return readl(h->vaddr + COMMAND_COMPLETE_FIFO); -} - -static unsigned long smart2_intr_pending(ctlr_info_t *h) -{ - return readl(h->vaddr + INTR_PENDING); -} - -static struct access_method smart2_access = { - smart2_submit_command, - smart2_intr_mask, - smart2_fifo_full, - smart2_intr_pending, - smart2_completed, -}; - -/* - * IO access for SMART-2/E cards - */ -static void smart2e_submit_command(ctlr_info_t *h, cmdlist_t *c) -{ - outl(c->busaddr, h->io_mem_addr + COMMAND_FIFO); -} - -static void smart2e_intr_mask(ctlr_info_t *h, unsigned long val) -{ - outl(val, h->io_mem_addr + INTR_MASK); -} - -static unsigned long smart2e_fifo_full(ctlr_info_t *h) -{ - return inl(h->io_mem_addr + COMMAND_FIFO); -} - -static unsigned long smart2e_completed(ctlr_info_t *h) -{ - return inl(h->io_mem_addr + COMMAND_COMPLETE_FIFO); -} - -static unsigned long smart2e_intr_pending(ctlr_info_t *h) -{ - return inl(h->io_mem_addr + INTR_PENDING); -} - -static struct access_method smart2e_access = { - smart2e_submit_command, - smart2e_intr_mask, - smart2e_fifo_full, - smart2e_intr_pending, - smart2e_completed, -}; - -/* - * IO access for older SMART-1 type cards - */ -#define SMART1_SYSTEM_MASK 0xC8E -#define SMART1_SYSTEM_DOORBELL 0xC8F -#define SMART1_LOCAL_MASK 0xC8C -#define SMART1_LOCAL_DOORBELL 0xC8D -#define SMART1_INTR_MASK 0xC89 -#define SMART1_LISTADDR 0xC90 -#define SMART1_LISTLEN 0xC94 -#define SMART1_TAG 0xC97 -#define SMART1_COMPLETE_ADDR 0xC98 -#define SMART1_LISTSTATUS 0xC9E - -#define CHANNEL_BUSY 0x01 -#define CHANNEL_CLEAR 0x02 - -static void smart1_submit_command(ctlr_info_t *h, cmdlist_t *c) -{ - /* - * This __u16 is actually a bunch of control flags on SMART - * and below. We want them all to be zero. - */ - c->hdr.size = 0; - - outb(CHANNEL_CLEAR, h->io_mem_addr + SMART1_SYSTEM_DOORBELL); - - outl(c->busaddr, h->io_mem_addr + SMART1_LISTADDR); - outw(c->size, h->io_mem_addr + SMART1_LISTLEN); - - outb(CHANNEL_BUSY, h->io_mem_addr + SMART1_LOCAL_DOORBELL); -} - -static void smart1_intr_mask(ctlr_info_t *h, unsigned long val) -{ - if (val == 1) { - outb(0xFD, h->io_mem_addr + SMART1_SYSTEM_DOORBELL); - outb(CHANNEL_BUSY, h->io_mem_addr + SMART1_LOCAL_DOORBELL); - outb(0x01, h->io_mem_addr + SMART1_INTR_MASK); - outb(0x01, h->io_mem_addr + SMART1_SYSTEM_MASK); - } else { - outb(0, h->io_mem_addr + 0xC8E); - } -} - -static unsigned long smart1_fifo_full(ctlr_info_t *h) -{ - unsigned char chan; - chan = inb(h->io_mem_addr + SMART1_SYSTEM_DOORBELL) & CHANNEL_CLEAR; - return chan; -} - -static unsigned long smart1_completed(ctlr_info_t *h) -{ - unsigned char status; - unsigned long cmd; - - if (inb(h->io_mem_addr + SMART1_SYSTEM_DOORBELL) & CHANNEL_BUSY) { - outb(CHANNEL_BUSY, h->io_mem_addr + SMART1_SYSTEM_DOORBELL); - - cmd = inl(h->io_mem_addr + SMART1_COMPLETE_ADDR); - status = inb(h->io_mem_addr + SMART1_LISTSTATUS); - - outb(CHANNEL_CLEAR, h->io_mem_addr + SMART1_LOCAL_DOORBELL); - - /* - * this is x86 (actually compaq x86) only, so it's ok - */ - if (cmd) ((cmdlist_t*)bus_to_virt(cmd))->req.hdr.rcode = status; - } else { - cmd = 0; - } - return cmd; -} - -static unsigned long smart1_intr_pending(ctlr_info_t *h) -{ - unsigned char chan; - chan = inb(h->io_mem_addr + SMART1_SYSTEM_DOORBELL) & CHANNEL_BUSY; - return chan; -} - -static struct access_method smart1_access = { - smart1_submit_command, - smart1_intr_mask, - smart1_fifo_full, - smart1_intr_pending, - smart1_completed, -}; -- 2.13.6