From patchwork Thu Aug 5 15:27:26 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Levitsky X-Patchwork-Id: 60996 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id D39DAB6EFF for ; Fri, 6 Aug 2010 01:29:02 +1000 (EST) Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1Oh2MA-0001dk-9F; Thu, 05 Aug 2010 15:27:42 +0000 Received: from mail-fx0-f49.google.com ([209.85.161.49]) by bombadil.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1Oh2M6-0001cV-TQ for linux-mtd@lists.infradead.org; Thu, 05 Aug 2010 15:27:40 +0000 Received: by fxm3 with SMTP id 3so3685641fxm.36 for ; Thu, 05 Aug 2010 08:27:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=YQgB3wsxvTwuGDKOB2rFur1EY8fHvd5ZEK6+NAiItFY=; b=f73WfVANsPqLPCK67i9xv4OolBY1sAfoI9NRiUh2x0gf489JbEIVdSPk1q9jbP1W4E D0l6+J7ktrOqeVz/ECPcYB1XB/5q30CWPYm9+10so2Rpj7uqNNi9NuTDhkUkJsYZ84u2 ljPwrvHB+RECOIsLJvSI7NPmFEspNmhGemRss= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=hmxuueUevgHI5Uv0vZ7143wd72i9FUrbD8744WTqOh8ADcrqfqqE5Srnze8PEBg9wR q8Cx2qqP4AH+puKu5qkw/CCRgAXkUUDVpurFm83qjbWa+b40DHoK0mZ2Sw34nDlN1RGR TfgQZfYgtJjYU2AGHvPr2a0XoC80rVRxNySeU= Received: by 10.223.106.132 with SMTP id x4mr10967794fao.15.1281022056362; Thu, 05 Aug 2010 08:27:36 -0700 (PDT) Received: from localhost.localdomain (IGLD-84-229-241-192.inter.net.il [84.229.241.192]) by mx.google.com with ESMTPS id b36sm145487faq.11.2010.08.05.08.27.34 (version=SSLv3 cipher=RC4-MD5); Thu, 05 Aug 2010 08:27:35 -0700 (PDT) From: Maxim Levitsky To: linux-mtd@lists.infradead.org Subject: [PATCH] MTD: r852: remove useless pci powerup/down from suspend/resume routines. Date: Thu, 5 Aug 2010 18:27:26 +0300 Message-Id: <1281022046-21185-1-git-send-email-maximlevitsky@gmail.com> X-Mailer: git-send-email 1.7.0.4 X-CRM114-Version: 20090807-BlameThorstenAndJenny ( TRE 0.7.6 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20100805_112739_093657_1C971618 X-CRM114-Status: GOOD ( 22.53 ) X-Spam-Score: 2.2 (++) X-Spam-Report: SpamAssassin version 3.3.1 on bombadil.infradead.org summary: Content analysis details: (2.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- 2.3 TVD_SUBJ_WIPE_DEBT TVD_SUBJ_WIPE_DEBT 0.0 FREEMAIL_FROM Sender email is freemail (maximlevitsky[at]gmail.com) -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.0 T_TO_NO_BRKTS_FREEMAIL T_TO_NO_BRKTS_FREEMAIL Cc: Maxim Levitsky X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org It turns out that pci core now handles these, so this code is redundand and can even cause bugs Signed-off-by: Maxim Levitsky --- drivers/mtd/nand/r852.c | 30 +----------------------------- drivers/mtd/nand/r852.h | 2 -- 2 files changed, 1 insertions(+), 31 deletions(-) diff --git a/drivers/mtd/nand/r852.c b/drivers/mtd/nand/r852.c index bcfc851..288715d 100644 --- a/drivers/mtd/nand/r852.c +++ b/drivers/mtd/nand/r852.c @@ -757,11 +757,6 @@ static irqreturn_t r852_irq(int irq, void *data) spin_lock_irqsave(&dev->irqlock, flags); - /* We can recieve shared interrupt while pci is suspended - in that case reads will return 0xFFFFFFFF.... */ - if (dev->insuspend) - goto out; - /* handle card detection interrupts first */ card_status = r852_read_reg(dev, R852_CARD_IRQ_STA); r852_write_reg(dev, R852_CARD_IRQ_STA, card_status); @@ -1035,7 +1030,6 @@ void r852_shutdown(struct pci_dev *pci_dev) int r852_suspend(struct device *device) { struct r852_device *dev = pci_get_drvdata(to_pci_dev(device)); - unsigned long flags; if (dev->ctlreg & R852_CTL_CARDENABLE) return -EBUSY; @@ -1047,43 +1041,22 @@ int r852_suspend(struct device *device) r852_disable_irqs(dev); r852_engine_disable(dev); - spin_lock_irqsave(&dev->irqlock, flags); - dev->insuspend = 1; - spin_unlock_irqrestore(&dev->irqlock, flags); - - /* At that point, even if interrupt handler is running, it will quit */ - /* So wait for this to happen explictly */ - synchronize_irq(dev->irq); - /* If card was pulled off just during the suspend, which is very unlikely, we will remove it on resume, it too late now anyway... */ dev->card_unstable = 0; - - pci_save_state(to_pci_dev(device)); - return pci_prepare_to_sleep(to_pci_dev(device)); + return 0; } int r852_resume(struct device *device) { struct r852_device *dev = pci_get_drvdata(to_pci_dev(device)); - unsigned long flags; - - /* Turn on the hardware */ - pci_back_from_sleep(to_pci_dev(device)); - pci_restore_state(to_pci_dev(device)); r852_disable_irqs(dev); r852_card_update_present(dev); r852_engine_disable(dev); - /* Now its safe for IRQ to run */ - spin_lock_irqsave(&dev->irqlock, flags); - dev->insuspend = 0; - spin_unlock_irqrestore(&dev->irqlock, flags); - - /* If card status changed, just do the work */ if (dev->card_detected != dev->card_registred) { dbg("card was %s during low power state", @@ -1121,7 +1094,6 @@ MODULE_DEVICE_TABLE(pci, r852_pci_id_tbl); SIMPLE_DEV_PM_OPS(r852_pm_ops, r852_suspend, r852_resume); - static struct pci_driver r852_pci_driver = { .name = DRV_NAME, .id_table = r852_pci_id_tbl, diff --git a/drivers/mtd/nand/r852.h b/drivers/mtd/nand/r852.h index 8096cc2..e6a21d9 100644 --- a/drivers/mtd/nand/r852.h +++ b/drivers/mtd/nand/r852.h @@ -140,8 +140,6 @@ struct r852_device { /* interrupt handling */ spinlock_t irqlock; /* IRQ protecting lock */ int irq; /* irq num */ - int insuspend; /* device is suspended */ - /* misc */ void *tmp_buffer; /* temporary buffer */ uint8_t ctlreg; /* cached contents of control reg */