From f397c8d80a5e413984bd9ccdf4161c7156b365ce Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Thu, 8 Dec 2016 11:23:49 +0100 Subject: [PATCH] mmc: block: Move files to core Once upon a time it made sense to keep the mmc block device driver and its related code, in its own directory called card. Over time, more an more functions/structures have become shared through generic mmc header files, between the core and the card directory. In other words, the relationship between them has become closer. By sharing functions/structures via generic header files, it becomes easy for outside users to abuse them. In a way to avoid that from happen, let's move the files from card directory into the core directory, as it enables us to move definitions of functions/structures into mmc core specific header files. Note, this is only the first step in providing a cleaner mmc interface for outside users. Following changes will do the actual cleanup, as that is not part of this change. Signed-off-by: Ulf Hansson Reviewed-by: Linus Walleij --- drivers/mmc/Kconfig | 2 - drivers/mmc/Makefile | 1 - drivers/mmc/card/Kconfig | 70 -------------------------- drivers/mmc/card/Makefile | 10 ---- drivers/mmc/core/Kconfig | 66 ++++++++++++++++++++++++ drivers/mmc/core/Makefile | 4 ++ drivers/mmc/{card => core}/block.c | 0 drivers/mmc/{card => core}/block.h | 0 drivers/mmc/{card => core}/mmc_test.c | 2 - drivers/mmc/{card => core}/queue.c | 2 - drivers/mmc/{card => core}/queue.h | 0 drivers/mmc/{card => core}/sdio_uart.c | 2 +- 12 files changed, 71 insertions(+), 88 deletions(-) delete mode 100644 drivers/mmc/card/Kconfig delete mode 100644 drivers/mmc/card/Makefile rename drivers/mmc/{card => core}/block.c (100%) rename drivers/mmc/{card => core}/block.h (100%) rename drivers/mmc/{card => core}/mmc_test.c (99%) rename drivers/mmc/{card => core}/queue.c (99%) rename drivers/mmc/{card => core}/queue.h (100%) rename drivers/mmc/{card => core}/sdio_uart.c (99%) diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index f2eeb38efa65..7e803fc454d1 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -23,8 +23,6 @@ if MMC source "drivers/mmc/core/Kconfig" -source "drivers/mmc/card/Kconfig" - source "drivers/mmc/host/Kconfig" endif # MMC diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 400756ec7c49..416b6d1c9ec6 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile @@ -5,5 +5,4 @@ subdir-ccflags-$(CONFIG_MMC_DEBUG) := -DDEBUG obj-$(CONFIG_MMC) += core/ -obj-$(CONFIG_MMC) += card/ obj-$(subst m,y,$(CONFIG_MMC)) += host/ diff --git a/drivers/mmc/card/Kconfig b/drivers/mmc/card/Kconfig deleted file mode 100644 index 5562308699bc..000000000000 --- a/drivers/mmc/card/Kconfig +++ /dev/null @@ -1,70 +0,0 @@ -# -# MMC/SD card drivers -# - -comment "MMC/SD/SDIO Card Drivers" - -config MMC_BLOCK - tristate "MMC block device driver" - depends on BLOCK - default y - help - Say Y here to enable the MMC block device driver support. - This provides a block device driver, which you can use to - mount the filesystem. Almost everyone wishing MMC support - should say Y or M here. - -config MMC_BLOCK_MINORS - int "Number of minors per block device" - depends on MMC_BLOCK - range 4 256 - default 8 - help - Number of minors per block device. One is needed for every - partition on the disk (plus one for the whole disk). - - Number of total MMC minors available is 256, so your number - of supported block devices will be limited to 256 divided - by this number. - - Default is 8 to be backwards compatible with previous - hardwired device numbering. - - If unsure, say 8 here. - -config MMC_BLOCK_BOUNCE - bool "Use bounce buffer for simple hosts" - depends on MMC_BLOCK - default y - help - SD/MMC is a high latency protocol where it is crucial to - send large requests in order to get high performance. Many - controllers, however, are restricted to continuous memory - (i.e. they can't do scatter-gather), something the kernel - rarely can provide. - - Say Y here to help these restricted hosts by bouncing - requests back and forth from a large buffer. You will get - a big performance gain at the cost of up to 64 KiB of - physical memory. - - If unsure, say Y here. - -config SDIO_UART - tristate "SDIO UART/GPS class support" - depends on TTY - help - SDIO function driver for SDIO cards that implements the UART - class, as well as the GPS class which appears like a UART. - -config MMC_TEST - tristate "MMC host test driver" - help - Development driver that performs a series of reads and writes - to a memory card in order to expose certain well known bugs - in host controllers. The tests are executed by writing to the - "test" file in debugfs under each card. Note that whatever is - on your card will be overwritten by these tests. - - This driver is only of interest to those developing or - testing a host driver. Most people should say N here. diff --git a/drivers/mmc/card/Makefile b/drivers/mmc/card/Makefile deleted file mode 100644 index c73b406a06cd..000000000000 --- a/drivers/mmc/card/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# -# Makefile for MMC/SD card drivers -# - -obj-$(CONFIG_MMC_BLOCK) += mmc_block.o -mmc_block-objs := block.o queue.o -obj-$(CONFIG_MMC_TEST) += mmc_test.o - -obj-$(CONFIG_SDIO_UART) += sdio_uart.o - diff --git a/drivers/mmc/core/Kconfig b/drivers/mmc/core/Kconfig index 250f223aaa80..cdfa8520a4b1 100644 --- a/drivers/mmc/core/Kconfig +++ b/drivers/mmc/core/Kconfig @@ -22,3 +22,69 @@ config PWRSEQ_SIMPLE This driver can also be built as a module. If so, the module will be called pwrseq_simple. + +config MMC_BLOCK + tristate "MMC block device driver" + depends on BLOCK + default y + help + Say Y here to enable the MMC block device driver support. + This provides a block device driver, which you can use to + mount the filesystem. Almost everyone wishing MMC support + should say Y or M here. + +config MMC_BLOCK_MINORS + int "Number of minors per block device" + depends on MMC_BLOCK + range 4 256 + default 8 + help + Number of minors per block device. One is needed for every + partition on the disk (plus one for the whole disk). + + Number of total MMC minors available is 256, so your number + of supported block devices will be limited to 256 divided + by this number. + + Default is 8 to be backwards compatible with previous + hardwired device numbering. + + If unsure, say 8 here. + +config MMC_BLOCK_BOUNCE + bool "Use bounce buffer for simple hosts" + depends on MMC_BLOCK + default y + help + SD/MMC is a high latency protocol where it is crucial to + send large requests in order to get high performance. Many + controllers, however, are restricted to continuous memory + (i.e. they can't do scatter-gather), something the kernel + rarely can provide. + + Say Y here to help these restricted hosts by bouncing + requests back and forth from a large buffer. You will get + a big performance gain at the cost of up to 64 KiB of + physical memory. + + If unsure, say Y here. + +config SDIO_UART + tristate "SDIO UART/GPS class support" + depends on TTY + help + SDIO function driver for SDIO cards that implements the UART + class, as well as the GPS class which appears like a UART. + +config MMC_TEST + tristate "MMC host test driver" + help + Development driver that performs a series of reads and writes + to a memory card in order to expose certain well known bugs + in host controllers. The tests are executed by writing to the + "test" file in debugfs under each card. Note that whatever is + on your card will be overwritten by these tests. + + This driver is only of interest to those developing or + testing a host driver. Most people should say N here. + diff --git a/drivers/mmc/core/Makefile b/drivers/mmc/core/Makefile index f007151dfdc6..b2a257dc644f 100644 --- a/drivers/mmc/core/Makefile +++ b/drivers/mmc/core/Makefile @@ -12,3 +12,7 @@ mmc_core-$(CONFIG_OF) += pwrseq.o obj-$(CONFIG_PWRSEQ_SIMPLE) += pwrseq_simple.o obj-$(CONFIG_PWRSEQ_EMMC) += pwrseq_emmc.o mmc_core-$(CONFIG_DEBUG_FS) += debugfs.o +obj-$(CONFIG_MMC_BLOCK) += mmc_block.o +mmc_block-objs := block.o queue.o +obj-$(CONFIG_MMC_TEST) += mmc_test.o +obj-$(CONFIG_SDIO_UART) += sdio_uart.o diff --git a/drivers/mmc/card/block.c b/drivers/mmc/core/block.c similarity index 100% rename from drivers/mmc/card/block.c rename to drivers/mmc/core/block.c diff --git a/drivers/mmc/card/block.h b/drivers/mmc/core/block.h similarity index 100% rename from drivers/mmc/card/block.h rename to drivers/mmc/core/block.h diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/core/mmc_test.c similarity index 99% rename from drivers/mmc/card/mmc_test.c rename to drivers/mmc/core/mmc_test.c index ec1d1c46eb90..3ab6e52d106c 100644 --- a/drivers/mmc/card/mmc_test.c +++ b/drivers/mmc/core/mmc_test.c @@ -1,6 +1,4 @@ /* - * linux/drivers/mmc/card/mmc_test.c - * * Copyright 2007-2008 Pierre Ossman * * This program is free software; you can redistribute it and/or modify diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/core/queue.c similarity index 99% rename from drivers/mmc/card/queue.c rename to drivers/mmc/core/queue.c index cf29809f69e4..f4e3d76792f3 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/core/queue.c @@ -1,6 +1,4 @@ /* - * linux/drivers/mmc/card/queue.c - * * Copyright (C) 2003 Russell King, All Rights Reserved. * Copyright 2006-2007 Pierre Ossman * diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/core/queue.h similarity index 100% rename from drivers/mmc/card/queue.h rename to drivers/mmc/core/queue.h diff --git a/drivers/mmc/card/sdio_uart.c b/drivers/mmc/core/sdio_uart.c similarity index 99% rename from drivers/mmc/card/sdio_uart.c rename to drivers/mmc/core/sdio_uart.c index 491c187744f5..d3c91f412b69 100644 --- a/drivers/mmc/card/sdio_uart.c +++ b/drivers/mmc/core/sdio_uart.c @@ -1,5 +1,5 @@ /* - * linux/drivers/mmc/card/sdio_uart.c - SDIO UART/GPS driver + * SDIO UART/GPS driver * * Based on drivers/serial/8250.c and drivers/serial/serial_core.c * by Russell King. -- 2.39.5