From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Wahren Subject: Re: [PATCH] mmc: core: Use maximum timeout values in case TACC field is zero Date: Wed, 02 Apr 2014 10:42:25 +0200 Message-ID: <533BCD71.2090800@i2se.com> References: <1395934368-29207-1-git-send-email-stefan.wahren@i2se.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: Received: from moutng.kundenserver.de ([212.227.126.130]:56846 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758093AbaDBImn (ORCPT ); Wed, 2 Apr 2014 04:42:43 -0400 In-Reply-To: Sender: linux-mmc-owner@vger.kernel.org List-Id: linux-mmc@vger.kernel.org To: Fabio Estevam Cc: Fabio Estevam , Chris Ball , Otavio Salvador , Sascha Hauer , "linux-mmc@vger.kernel.org" Am 27.03.2014 16:41, schrieb Fabio Estevam: > On Thu, Mar 27, 2014 at 12:32 PM, Stefan Wahren wrote: >> When plugging a specific micro SD card at MMC socket of a custom i.MX28 board, >> we get the following kernel warning: >> >> WARNING: CPU: 0 PID: 30 at drivers/mmc/host/mxs-mmc.c:342 mxs_mmc_start_cmd+0x34c/0x378() >> Modules linked in: >> CPU: 0 PID: 30 Comm: kworker/u2:1 Not tainted 3.14.0-rc5 #8 >> Workqueue: kmmcd mmc_rescan >> [] (unwind_backtrace) from [] (show_stack+0x10/0x14) >> [] (show_stack) from [] (warn_slowpath_common+0x6c/0x8c) >> [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24) >> [] (warn_slowpath_null) from [] (mxs_mmc_start_cmd+0x34c/0x378) >> [] (mxs_mmc_start_cmd) from [] (mmc_start_request+0xc4/0xf4) >> [] (mmc_start_request) from [] (mmc_wait_for_req+0x50/0x164) >> [] (mmc_wait_for_req) from [] (mmc_app_send_scr+0x158/0x1c8) >> [] (mmc_app_send_scr) from [] (mmc_sd_setup_card+0x80/0x3c8) >> [] (mmc_sd_setup_card) from [] (mmc_sd_init_card+0x124/0x66c) >> [] (mmc_sd_init_card) from [] (mmc_attach_sd+0xac/0x174) >> [] (mmc_attach_sd) from [] (mmc_rescan+0x25c/0x2d8) >> [] (mmc_rescan) from [] (process_one_work+0x1b4/0x4ec) >> [] (process_one_work) from [] (worker_thread+0x130/0x464) >> [] (worker_thread) from [] (kthread+0xb4/0xd0) >> [] (kthread) from [] (ret_from_fork+0x14/0x34) >> >> The error is due to an invalid value in CSD register of a specific 2GB micro >> SD card. The CSD version of this card is 1.0 but the TACC field has the invalid >> value 0. Since the kernel is making use of this TACC field to calculate the >> SD card timeout, an invalid value 0 leads to a warning at mxs_ns_to_ssp_ticks() >> and later the following misleading error messages appears in a loop: >> >> mxs-mmc 80010000.ssp: card claims to support voltages below defined range >> mxs-mmc 80010000.ssp: no support for card's volts >> mmc0: error -22 whilst initialising MMC card >> >> This error is only found on this 2GB SD card on mxs platform. >> On x86 this card works without any problems. > Thanks for the patch, Stefan. > >> The following patch based on the work of Peter Chen and Otavio Salvador. It > It was Peter Chan, not Peter Chen. Oops, i will fix that but i don't have his mail address. Beside that, are there any other opinions about this patch? > > Regards, > > Fabio Estevam Best regards, Stefan Wahren