📄 patch-2.4.19-mmc
字号:
diff -ruwN -X dontdiff linux-2.4.19/Documentation/Configure.help linux-2.4.19-mmc1/Documentation/Configure.help--- linux-2.4.19/Documentation/Configure.help Fri Aug 2 20:39:42 2002+++ linux-2.4.19-mmc1/Documentation/Configure.help Fri Aug 9 14:45:17 2002@@ -14257,6 +14257,25 @@ The module will be called bluetooth.o. If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. +MMC/SD Card support+CONFIG_MMC+ Say Y or M here if you want to enable support for Multimedia or+ Secure Digital Cards. You will need an MMC/SD socket and drivers+ for your socket. At the moment, access to the information required+ to write a driver for SD or SDIO requires signing and NDA that+ precludes the release of an open source driver, so only MMC is+ supported at this time. If you want to compile it as a module, say+ M here and read <file:Documentation/modules.txt>.++MMC debugging+CONFIG_MMC_DEBUG+ Say Y here if you want to enable debug output from the MMC drivers.++MMC debugging verbosity+CONFIG_MMC_DEBUG_VERBOSE+ Enter a number from 0 (quiet) to 3 (noisy) here to control the+ verbosity of MMC debug output.+ Minix fs support CONFIG_MINIX_FS Minix is a simple operating system used in many classes about OS's.diff -ruwN -X dontdiff linux-2.4.19/MAINTAINERS linux-2.4.19-mmc1/MAINTAINERS--- linux-2.4.19/MAINTAINERS Fri Aug 2 20:39:42 2002+++ linux-2.4.19-mmc1/MAINTAINERS Fri Aug 9 12:50:27 2002@@ -1013,6 +1013,14 @@ L: linux-kernel@vger.kernel.org S: Maintained +MULTIMEDIA CARD (MMC) SUBSYSTEM+P: Andrew Christian+P: Jamey Hicks+P: George France+L: MMC-Developer's <mmc-dev@handhelds.org>+W: http://www.handhelds.org/pub/linux/mmc/+S: Maintained+ MODULE SUPPORT [GENERAL], KMOD P: Keith Owens M: kaos@ocs.com.audiff -ruwN -X dontdiff linux-2.4.19/arch/alpha/config.in linux-2.4.19-mmc1/arch/alpha/config.in--- linux-2.4.19/arch/alpha/config.in Fri Aug 2 20:39:42 2002+++ linux-2.4.19-mmc1/arch/alpha/config.in Fri Aug 9 12:37:54 2002@@ -404,6 +404,7 @@ source drivers/input/Config.in source net/bluetooth/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/arm/config.in linux-2.4.19-mmc1/arch/arm/config.in--- linux-2.4.19/arch/arm/config.in Fri Aug 2 20:39:42 2002+++ linux-2.4.19-mmc1/arch/arm/config.in Fri Aug 9 12:37:45 2002@@ -630,6 +630,7 @@ source drivers/usb/Config.in source net/bluetooth/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/cris/config.in linux-2.4.19-mmc1/arch/cris/config.in--- linux-2.4.19/arch/cris/config.in Mon Feb 25 14:37:52 2002+++ linux-2.4.19-mmc1/arch/cris/config.in Fri Aug 9 12:38:23 2002@@ -244,6 +244,7 @@ endmenu source drivers/usb/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/i386/config.in linux-2.4.19-mmc1/arch/i386/config.in--- linux-2.4.19/arch/i386/config.in Fri Aug 2 20:39:42 2002+++ linux-2.4.19-mmc1/arch/i386/config.in Fri Aug 9 12:37:32 2002@@ -411,6 +411,7 @@ source drivers/usb/Config.in source net/bluetooth/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/ia64/config.in linux-2.4.19-mmc1/arch/ia64/config.in--- linux-2.4.19/arch/ia64/config.in Fri Aug 2 20:39:42 2002+++ linux-2.4.19-mmc1/arch/ia64/config.in Fri Aug 9 12:38:35 2002@@ -257,6 +257,7 @@ endmenu fi +source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/m68k/config.in linux-2.4.19-mmc1/arch/m68k/config.in--- linux-2.4.19/arch/m68k/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/m68k/config.in Fri Aug 9 12:38:47 2002@@ -554,6 +554,8 @@ endmenu fi +source drivers/mmc/Config.in+ mainmenu_option next_comment comment 'Kernel hacking' diff -ruwN -X dontdiff linux-2.4.19/arch/mips/config.in linux-2.4.19-mmc1/arch/mips/config.in--- linux-2.4.19/arch/mips/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/mips/config.in Fri Aug 9 12:39:00 2002@@ -621,6 +621,8 @@ mainmenu_option next_comment comment 'Kernel hacking' +source drivers/mmc/Config.in+ bool 'Are you using a crosscompiler' CONFIG_CROSSCOMPILE if [ "$CONFIG_SERIAL" = "y" -o "$CONFIG_AU1000_UART" = "y" ]; then bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUGdiff -ruwN -X dontdiff linux-2.4.19/arch/mips64/config.in linux-2.4.19-mmc1/arch/mips64/config.in--- linux-2.4.19/arch/mips64/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/mips64/config.in Fri Aug 9 12:57:31 2002@@ -322,6 +322,7 @@ source drivers/usb/Config.in source net/bluetooth/Config.in+source drivers/mmc/Config.in source drivers/input/Config.in diff -ruwN -X dontdiff linux-2.4.19/arch/parisc/config.in linux-2.4.19-mmc1/arch/parisc/config.in--- linux-2.4.19/arch/parisc/config.in Tue Apr 17 20:19:25 2001+++ linux-2.4.19-mmc1/arch/parisc/config.in Fri Aug 9 12:57:40 2002@@ -201,6 +201,8 @@ fi # endmenu +source drivers/mmc/Config.in+ mainmenu_option next_comment comment 'Kernel hacking' diff -ruwN -X dontdiff linux-2.4.19/arch/ppc/config.in linux-2.4.19-mmc1/arch/ppc/config.in--- linux-2.4.19/arch/ppc/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/ppc/config.in Fri Aug 9 12:57:48 2002@@ -394,6 +394,7 @@ source drivers/usb/Config.in source net/bluetooth/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/ppc64/config.in linux-2.4.19-mmc1/arch/ppc64/config.in--- linux-2.4.19/arch/ppc64/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/ppc64/config.in Fri Aug 9 12:57:57 2002@@ -225,6 +225,7 @@ endmenu source drivers/usb/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/s390/config.in linux-2.4.19-mmc1/arch/s390/config.in--- linux-2.4.19/arch/s390/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/s390/config.in Fri Aug 9 12:58:03 2002@@ -64,6 +64,7 @@ fi source fs/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/s390x/config.in linux-2.4.19-mmc1/arch/s390x/config.in--- linux-2.4.19/arch/s390x/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/s390x/config.in Fri Aug 9 12:58:11 2002@@ -66,6 +66,7 @@ fi source fs/Config.in+source drivers/mmc/Config.in mainmenu_option next_comment comment 'Kernel hacking'diff -ruwN -X dontdiff linux-2.4.19/arch/sh/config.in linux-2.4.19-mmc1/arch/sh/config.in--- linux-2.4.19/arch/sh/config.in Mon Feb 25 14:37:56 2002+++ linux-2.4.19-mmc1/arch/sh/config.in Fri Aug 9 12:58:20 2002@@ -377,6 +377,8 @@ fi endmenu +source drivers/mmc/Config.in+ mainmenu_option next_comment comment 'Kernel hacking' diff -ruwN -X dontdiff linux-2.4.19/arch/sparc/config.in linux-2.4.19-mmc1/arch/sparc/config.in--- linux-2.4.19/arch/sparc/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/sparc/config.in Fri Aug 9 12:58:32 2002@@ -266,6 +266,8 @@ tristate 'Software watchdog' CONFIG_SOFT_WATCHDOG endmenu +source drivers/mmc/Config.in+ mainmenu_option next_comment comment 'Kernel hacking' diff -ruwN -X dontdiff linux-2.4.19/arch/sparc64/config.in linux-2.4.19-mmc1/arch/sparc64/config.in--- linux-2.4.19/arch/sparc64/config.in Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/arch/sparc64/config.in Fri Aug 9 12:58:42 2002@@ -291,6 +291,8 @@ tristate 'Software watchdog' CONFIG_SOFT_WATCHDOG endmenu +source drivers/mmc/Config.in+ mainmenu_option next_comment comment 'Kernel hacking' diff -ruwN -X dontdiff linux-2.4.19/drivers/Makefile linux-2.4.19-mmc1/drivers/Makefile--- linux-2.4.19/drivers/Makefile Fri Aug 2 20:39:43 2002+++ linux-2.4.19-mmc1/drivers/Makefile Fri Aug 9 12:37:12 2002@@ -46,5 +46,6 @@ subdir-$(CONFIG_ACPI) += acpi subdir-$(CONFIG_BLUEZ) += bluetooth+subdir-$(CONFIG_MMC) += mmc include $(TOPDIR)/Rules.makediff -ruwN -X dontdiff linux-2.4.19/drivers/mmc/Config.in linux-2.4.19-mmc1/drivers/mmc/Config.in--- linux-2.4.19/drivers/mmc/Config.in Wed Dec 31 19:00:00 1969+++ linux-2.4.19-mmc1/drivers/mmc/Config.in Tue Jun 18 08:38:40 2002@@ -0,0 +1,15 @@+#+# MMC subsystem configuration+#+mainmenu_option next_comment+comment 'MMC/SD Card support'++tristate 'MMC support' CONFIG_MMC+if [ "$CONFIG_MMC" = "y" -o "$CONFIG_MMC" = "m" ]; then+ bool ' MMC debugging' CONFIG_MMC_DEBUG+ if [ "$CONFIG_MMC_DEBUG" = "y" ]; then+ int ' MMC debugging verbosity (0=quiet, 3=noisy)' CONFIG_MMC_DEBUG_VERBOSE 0+ fi+fi++endmenudiff -ruwN -X dontdiff linux-2.4.19/drivers/mmc/Makefile linux-2.4.19-mmc1/drivers/mmc/Makefile--- linux-2.4.19/drivers/mmc/Makefile Wed Dec 31 19:00:00 1969+++ linux-2.4.19-mmc1/drivers/mmc/Makefile Tue Jun 18 08:38:40 2002@@ -0,0 +1,20 @@+#+# Makefile for the kernel mmc device drivers.+#++O_TARGET := mmc.o++export-objs := mmc_core.o++obj-$(CONFIG_MMC) += mmc_base.o++# Declare multi-part drivers.+list-multi := mmc_base.o+mmc_base-objs := mmc_protocol.o mmc_core.o mmc_media.o++include $(TOPDIR)/Rules.make++# Link rules for multi-part drivers.++mmc_base.o: $(mmc_base-objs)+ $(LD) -r -o $@ $(mmc_base-objs)diff -ruwN -X dontdiff linux-2.4.19/drivers/mmc/mmc_core.c linux-2.4.19-mmc1/drivers/mmc/mmc_core.c--- linux-2.4.19/drivers/mmc/mmc_core.c Wed Dec 31 19:00:00 1969+++ linux-2.4.19-mmc1/drivers/mmc/mmc_core.c Fri Aug 9 16:08:20 2002@@ -0,0 +1,839 @@+/*+ * Core MMC driver functions+ *+ * Copyright (c) 2002 Hewlett-Packard Company+ * + * Permission is hereby granted, free of charge, to any person obtaining a+ * copy of this software and associated documentation files (the+ * "Software"), to deal in the Software without restriction, including+ * without limitation the rights to use, copy, modify, merge, publish,+ * distribute, sublicense, and/or sell copies of the Software, and to+ * permit persons to whom the Software is furnished to do so, subject to+ * the following conditions:+ * + * The above copyright notice and this permission notice shall be included+ * in all copies or substantial portions of the Software.+ * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.+ *+ * Many thanks to Alessandro Rubini and Jonathan Corbet!+ *+ * Author: Andrew Christian+ * 6 May 2002 */++#include <linux/config.h>+#include <linux/module.h>++#include <linux/version.h>+#include <linux/proc_fs.h>+#include <linux/init.h>+#include <linux/interrupt.h>+#include <linux/delay.h>+#include <linux/list.h>+#include <linux/sysctl.h>+#include <linux/pm.h>++#include "mmc_core.h"++#define STATE_CMD_ACTIVE (1<<0)+#define STATE_CMD_DONE (1<<1)+#define STATE_INSERT (1<<2)+#define STATE_EJECT (1<<3)++static struct mmc_dev g_mmc_dev;+static struct proc_dir_entry *proc_mmc_dir;++int g_mmc_debug = CONFIG_MMC_DEBUG_VERBOSE;+EXPORT_SYMBOL(g_mmc_debug);++/**************************************************************************+ * Debugging functions+ **************************************************************************/++static char * mmc_result_strings[] = {+ "NO_RESPONSE",+ "NO_ERROR",+ "ERROR_OUT_OF_RANGE",+ "ERROR_ADDRESS",+ "ERROR_BLOCK_LEN",+ "ERROR_ERASE_SEQ",+ "ERROR_ERASE_PARAM",+ "ERROR_WP_VIOLATION",+ "ERROR_CARD_IS_LOCKED",+ "ERROR_LOCK_UNLOCK_FAILED",+ "ERROR_COM_CRC",+ "ERROR_ILLEGAL_COMMAND",+ "ERROR_CARD_ECC_FAILED",+ "ERROR_CC",+ "ERROR_GENERAL",+ "ERROR_UNDERRUN",+ "ERROR_OVERRUN",+ "ERROR_CID_CSD_OVERWRITE",+ "ERROR_STATE_MISMATCH",+ "ERROR_HEADER_MISMATCH",+ "ERROR_TIMEOUT",+ "ERROR_CRC",+ "ERROR_DRIVER_FAILURE",+};++char * mmc_result_to_string( int i )+{+ return mmc_result_strings[i+1];+}++static char * card_state_strings[] = {+ "empty",+ "idle",+ "ready",+ "ident",+ "stby",+ "tran",+ "data",+ "rcv",+ "prg",+ "dis",+};++static inline char * card_state_to_string( int i )+{+ return card_state_strings[i+1];+}++/**************************************************************************+ * Utility functions+ **************************************************************************/++#define PARSE_U32(_buf,_index) \+ (((u32)_buf[_index]) << 24) | (((u32)_buf[_index+1]) << 16) | \+ (((u32)_buf[_index+2]) << 8) | ((u32)_buf[_index+3]);++#define PARSE_U16(_buf,_index) \+ (((u16)_buf[_index]) << 8) | ((u16)_buf[_index+1]);++int mmc_unpack_csd( struct mmc_request *request, struct mmc_csd *csd )+{+ u8 *buf = request->response;+ + if ( request->result ) return request->result;++ csd->csd_structure = (buf[1] & 0xc0) >> 6;+ csd->spec_vers = (buf[1] & 0x3c) >> 2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -