From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752361AbbFHNeT (ORCPT ); Mon, 8 Jun 2015 09:34:19 -0400 Received: from shed.galexander.org ([64.62.190.177]:38285 "EHLO shed.galexander.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751818AbbFHNeA (ORCPT ); Mon, 8 Jun 2015 09:34:00 -0400 X-Greylist: delayed 376 seconds by postgrey-1.27 at vger.kernel.org; Mon, 08 Jun 2015 09:34:00 EDT Date: Mon, 8 Jun 2015 09:27:43 -0400 From: Greg Alexander To: linux-kernel@vger.kernel.org Cc: ossman@cendio.se Subject: [PATCH] mmc, kernel 4.0.5, SDIO power management error message Message-ID: <20150608132743.GD15825@galexander.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On suspend, SDIO (MMC) power management fails and removes a card ("mmc2: card 0001 removed") if any of the card's functions don't support power management. Then nothing ever resumes it, so the card is lost forever. With this patch, it will also provide a useful error message ("btsdio mmc2:0001:3: pre_suspend failed (driver has no PM)"). This will save hours of diagnostic effort for anyone whose SDIO cards disappear on suspend. --- drivers/mmc/core/sdio.c.orig 2015-06-06 11:21:22.000000000 -0400 +++ drivers/mmc/core/sdio.c 2015-06-08 09:21:00.000000000 -0400 @@ -918,6 +918,8 @@ const struct dev_pm_ops *pmops = func->dev.driver->pm; if (!pmops || !pmops->suspend || !pmops->resume) { /* force removal of entire card in that case */ + dev_err(&func->dev, "pre_suspend failed " + "(driver has no PM)\n"); err = -ENOSYS; break; }