Commit Graph

192 Commits

Author SHA1 Message Date
George Hilliard 7ca8c2c8bb staging: mt7621-mmc: Initialize completions a single time during probe
The module was initializing completions whenever it was going to wait on
them, and not when the completion was allocated.  This is incorrect
according to the completion docs:

    Calling init_completion() on the same completion object twice is
    most likely a bug [...]

Re-initialization is also unnecessary because the module never uses
complete_all().  Fix this by only ever initializing the completion a
single time, and log if the completions are not consumed as intended
(this is not a fatal problem, but should not go unnoticed).

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-27 23:39:31 +09:00
George Hilliard 4195b4f11f staging: mt7621-mmc: Remove obsolete Kconfig flags
These values are not referred to anywhere else in the kernel. Card
detect is controlled by the device tree property "mediatek,cd-poll",
and there is no driver support for eMMC whatsoever.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-27 23:37:30 +09:00
George Hilliard d4223e06b6 staging: mt7621-mmc: Check for nonzero number of scatterlist entries
The buffer descriptor setup loop is correct only if it is setting up at
least one bd struct.  Besides, there is an error if dma_map_sg() returns
0, which is possible and must be handled.

Additionally, remove the BUG_ON() checking sglen, which is unnecessary
because we configure DMA with that constraint during init.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-22 15:20:27 +01:00
George Hilliard f2778bb3cb staging: mt7621-mmc: Fix warning when reloading module with debug msgs enabled
The kernel complained:

    [  510.277151] WARNING: CPU: 0 PID: 395 at fs/proc/generic.c:360 proc_register+0xf0/0x108
    [  510.292891] proc_dir_entry '/proc/msdc_debug' already registered

when doing a modprobe/rmmod/modprobe of this module if debug messages
are compiled in.  Fix this by removing the proc entry when the module is
unloaded.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-22 15:20:27 +01:00
George Hilliard b8585eb51e staging: mt7621-mmc: Only unmap_sg if mapped
A failure while processing the start command could cause dma_unmap_sg()
to be called without first calling dma_map_sg().

Since calling dma_unmap_sg() is only needed when data != NULL, move the
unmap call into the corresponding if {} block.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:18 +01:00
George Hilliard b22f49923a staging: mt7621-mmc: Fix BRUST -> BURST typo
Obvious typo.  It is specified as BURST in the datasheet.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:18 +01:00
George Hilliard 983b2fd723 staging: mt7621-mmc: Immediately notify mmc layer of card change detection
There is no need to delay notifying the mmc layer.  Schedule the delayed
work to run immediately.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:18 +01:00
George Hilliard 6d0e4698c8 staging: mt7621-mmc: Remove redundant host->mmc->f_max write
This is set once during initialization and never changed.  Don't bother
setting it again in the interrupt handler.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:18 +01:00
George Hilliard 472033f591 staging: mt7621-mmc: Bill the caller for I/O time
When waiting on completions, use the _io variant so the caller is
charged as using I/O.

This should have no effect on the module's functionality, only improve
CPU accounting.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:18 +01:00
George Hilliard 64eb131e22 staging: mt7621-mmc: Use pinctrl subsystem to select SDXC pin mode
The driver previously grabbed the SD pins for itself, ignoring the pin
controller.  Remove this, and allow the pinctrl subsystem to set up the
pins using the device tree mappings.  This allows this driver to work on
related devices that have a different pin controller mapping, such as
the MT7688.  The hardcoded bit index was incorrect on that device.

The driver now needs a pin controller reference in its device tree node:

	sdhci: /* ... */ {
		compatible = "ralink,mt7620-sdhci";

		pinctrl-names = "default";
		pinctrl-0 = <&sdhci_pins>;

		// ...
	};

This change could break SD controller functionality on existing devices
whose device trees do not specify a pin controller and state for the SD
node.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:18 +01:00
George Hilliard c62a4073b2 staging: mt7621-mmc: Remove obsolete comments and variables
These comments don't contain useful code or alternate implementation
ideas.  Remove them.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:17 +01:00
George Hilliard ea9420cea3 staging: mt7621-mmc: fix unused variable compiler warning
The compiler complains:

    drivers/staging/mt7621-mmc/dbg.c: In function ‘msdc_debug_proc_write’:
    drivers/staging/mt7621-mmc/dbg.c:237:12: warning: unused variable ‘size’ [-Wunused-variable]
      int mode, size;
                ^~~~
    drivers/staging/mt7621-mmc/dbg.c:237:6: warning: unused variable ‘mode’ [-Wunused-variable]
      int mode, size;
          ^~~~

Remove these declarations.

Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-20 08:23:17 +01:00
Bhanusree Pola c580d1f98e staging: mt7621-mmc: Modify the return type of the function msdc_do_command
Modify the return type of the function msdc_do_command to static int
as the member error of the structure struct mmc_command is of type int.

Signed-off-by: Bhanusree Pola <bhanusreemahesh@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-18 07:47:53 +01:00
Bhanusree Pola 982c34e0c2 staging: mt7621-mmc: Fix ret.cooci warnings
Return the value directly instead of storing it in local variable err.
Remove the unused local variable err.
The semantic patch that fixes the first part of the problem is as follows

// <smpl>
@@
local idexpression ret;
expression e;
@@

-ret =
+return
     e;
-return ret;
// </smpl>

Signed-off-by: Bhanusree Pola <bhanusreemahesh@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-18 07:47:53 +01:00
Wentao Cai 9963412762 staging: mt7621-mmc: delele extra blank lines
Delete extra blank lines to mute checkpatch.pl check:
CHECK: Please don't use multiple blank lines

Signed-off-by: Wentao Cai <etsai042@gmail.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-18 07:06:03 +01:00
Bhanusree Pola f54a740176 staging: mt7621-mmc: Prefer using BIT macro
Use BIT(x) instead of (1<<x), reported by checkpatch.pl.

Signed-off-by: Bhanusree Pola <bhanusreemahesh@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-19 11:18:00 +01:00
YueHaibing db42646990 staging: mt7621-mmc: Remove unused including <linux/version.h>
Remove including <linux/version.h> that don't need it.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-19 11:14:14 +01:00
George Hilliard 9a41352614 staging: Mediatek: Use individual config flags in Makefile
These drivers can be useful on other MT76xx SoCs, which have compatible
peripherals.  The drivers were selectable in Kconfig, but they were
quietly excluded from the build because the SOC_MT7621 chip was not
selected.  So, make the Makefiles use the same flags as Kconfig for
these drivers.

mt7621-dma and mt7621-dts are left alone because they truly do require
that SoC.

I have personally confirmed that the mt7621-spi driver works on the
MT7688, which was what prompted this change.

Cc: linux-kernel@vger.kernel.org
Cc: devel@driverdev.osuosl.org
Cc: NeilBrown <neil@brown.name>
Cc: sergio.paracuellos@gmail.com
Signed-off-by: George Hilliard <thirtythreeforty@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-18 11:01:02 +01:00
Jona Crasselt 215852f4b8 staging: mt7621-mmc: Correct spelling mistakes in comments
Changed "avaiable" to "available" and "interupt" to "interrupt".

Signed-off-by: Jona Crasselt <jona.crasselt@fau.de>
Signed-off-by: Felix Windsheimer <felix.windsheimer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-20 18:11:58 +01:00
Jona Crasselt 012c5e8d81 mt7621-mmc: char * array declaration might be better as static const
Issue reported by checkpatch.pl.

Signed-off-by: Jona Crasselt <jona.crasselt@fau.de>
Signed-off-by: Felix Windsheimer <felix.windsheimer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-20 16:32:13 +01:00
Jona Crasselt 515ba7e7f0 mt7621-mmc: return statement in void function unnecessary
Issue reported by checkpatch.pl.

Signed-off-by: Jona Crasselt <jona.crasselt@fau.de>
Signed-off-by: Felix Windsheimer <felix.windsheimer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-20 16:32:13 +01:00
Jona Crasselt 43c978a16e mt7621-mmc: Alignment should match open parenthesis
Issue reported by checkpatch.pl.

Signed-off-by: Jona Crasselt <jona.crasselt@fau.de>
Signed-off-by: Felix Windsheimer <felix.windsheimer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-20 16:32:13 +01:00
Jona Crasselt 71fbc63016 mt7621-mmc: Removed unnecessary blank lines
Issue reported by checkpatch.pl.

Signed-off-by: Jona Crasselt <jona.crasselt@fau.de>
Signed-off-by: Felix Windsheimer <felix.windsheimer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-20 16:32:13 +01:00
Jona Crasselt 641e96e03a mt7621-mmc: Fix some coding style issues
Fix some comment-related issues reported by checkpatch.pl:
- Block comments use * on subsequent lines
- Block comments use a trailing */ on a separate line

Signed-off-by: Jona Crasselt <jona.crasselt@fau.de>
Signed-off-by: Felix Windsheimer <felix.windsheimer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-20 16:32:13 +01:00
Nishad Kamdar e894075934 staging: mt7621-mmc: Fix incompletely removed #if 0 block in sd.c
Commit 2a54e3259e ("staging: mt7621-mmc: Remove #if 0 blocks in sd.c")
does not completely remove an #if 0 block in sd.c. This causes the function
msdc_select_clksrc() which was eariler not compiled, to be compiled.
That causes an error - MSDC_CLKSRC_REG is not defined.

This patch completely removes the #if 0 block

Reported-by: NeilBrown <neil@brown.name>
Fixes: 2a54e3259e ("staging: mt7621-mmc: Remove #if 0 blocks in sd.c")
Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-12 11:57:41 +01:00
NeilBrown d17f5ff771 staging: mt7621-mmc: fix compile warnging: cmd_buf
cmd_buf is only used when MT6575_SD_DEBUG is defined.
So only declare it in that case.

Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-12 11:55:39 +01:00
NeilBrown a6bf882022 staging: mt7621-mmc: add missing header.
<linux/interrupt.h> is sometimes included by other include files,
and sometimes not, depending on config, particularly CONFIG_HIGHMEM.

So include it explicitly rather than relying on implicit inclusion.

Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-12 11:55:39 +01:00
NeilBrown 84519a4b0f staging: mt7621-mmc: set correct dma mask.
Since commit f8c55dc6e8 ("MIPS: use generic dma noncoherent ops for
simple noncoherent platforms") changed MIPS dma handling, the mmc
driver fails because it doesn't have a dma mask is set.

So set the correct dma mask.

Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-12 11:55:39 +01:00
Nícolas F. R. A. Prado 4e32a39881 staging: mt7621-mmc: Add blank line after declaration
Correct the following warning from checkpatch.pl:

WARNING: Missing a blank line after declarations
+		struct msdc_host *host = mmc_priv(mmc);
+		msdc_pm(state, (void *)host);

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@protonmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-11-07 12:27:33 +01:00
Nishad Kamdar 370a1b573d staging: mt7621-mmc: Use BIT macro instead of explicit shifting in dbg.h
Replace explicit shifting with BIT macro in dbg.h.
Issue found by checkpatch.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-14 13:30:34 +02:00
Nishad Kamdar 23f5fb5d87 staging: mt7621-mmc: Fix lines over 80 characters in dbg.h
This patch fixes lines over 80 characters in dbg.h.
Issue found by checkpatch.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-14 13:30:33 +02:00
Nishad Kamdar 01378deb37 staging: mt7621-mmc: Fix lines over 80 characters in dbg.c
This patch fixes lines over 80 characters in dbg.c.
Issue found by checkpatch.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-14 13:30:33 +02:00
Jaakko Tyynismaa 6b8b5fa2af staging: mt7621-mmc: Add blank line after declaration
Add blank line after declaration.
Reported by checkpatch.

Signed-off-by: Jaakko Tyynismaa <jaakko.tyynismaa@hotmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-09 15:13:24 +02:00
Nishad Kamdar ecfbc770df staging: mt7621-mmc: Remove #if 0 blocks in dbg.h
This patch removes #if 0 code blocks and usages of
functions defined in the #if 0 blocks in dbg.h.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-09 15:13:24 +02:00
Nishad Kamdar c668906916 staging: mt7621-mmc: Remove #if 0 blocks in dbg.c
This patch removes #if 0 code blocks and usages of
functions defined in the #if 0 blocks in dbg.c

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-09 15:13:24 +02:00
Nishad Kamdar 2a54e3259e staging: mt7621-mmc: Remove #if 0 blocks in sd.c
This patch removes #if 0 code blocks and usages of
functions defined in the #if 0 blocks in sd.c.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-09 15:13:24 +02:00
Nishad Kamdar ee607b8fb5 staging: mt7621-mmc: Remove unused single statement macros
This patch removes unused single statement macros in sd.c

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-02 15:16:20 -07:00
Nishad Kamdar afa163e3f8 staging: mt7621-mmc: Remove single statement macro msdc_irq_restore()
This patch removes the macro msdc_irq_restore() and replaces its
usage with call to the function called in the macro definition.
Issue found by checkpatch.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-02 15:16:20 -07:00
Dafna Hirschfeld 7b6e286c39 staging: mt7621-mmc: replace `printk` with preferred API
Replace calls to `printk` with `dev_info` and `pr_err`
Issues found with checkpatch.pl

Signed-off-by: Dafna Hirschfeld <dafna3@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-02 14:53:18 -07:00
Dafna Hirschfeld ffa8ed13d9 staging: mt7621-mmc: Fix comparison to NULL
Replace comparisons of a variable 'x' to NULL with
either 'x' or '!x'.
Issues found with checkpatch.pl

Signed-off-by: Dafna Hirschfeld <dafna3@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-02 14:53:18 -07:00
Dafna Hirschfeld f259e47af3 staging: mt7621-mmc: remove unnecessary braces from 'if' statements
Remove unnecessary braces from one line 'if' statements.
Issues found with checkpatch.pl

Signed-off-by: Dafna Hirschfeld <dafna3@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-02 14:53:18 -07:00
Nishad Kamdar 5f1a9140dd staging: mt7621-mmc: Delete IRQ_MSG() and its users
This patch removes IRQ_MSG() and its users as currently it is a no-op.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-20 12:28:02 +02:00
Nishad Kamdar bc554d1e94 staging: mt7621-mmc: Fix debug macro ERR_MSG and its usages
Replace all usages of ERR_MSG with with dev_<level> without __func__
or __LINE__ or current->comm and current->pid. Remove the do {}
while(0) loop for the single statement macro. Delete commented
ERR_MSG() usage. Drop ERR_MSG from dbg.h. Issue found by checkpatch.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-10 17:04:21 +02:00
Nishad Kamdar 72536ea687 staging: mt7621-mmc: Delete N_MSG() and all its users
This patch removes N_MSG() and all its users since it is a no-op.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-10 17:02:52 +02:00
Nishad Kamdar 13c7a0ecdf staging: mt7621-mmc: Remove macro INIT_MSG and its usages
Removed all usages of INIT_MSG and dropped it from dbg.h.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-08-27 19:35:51 +02:00
Sumit Pundir b9e50d0cfd staging: mt7621-mmc: place a check for sscanf
Placed a check for the return value of sscanf. -EINVAL is returned if
the value is anything other than expected. Reported by checkpatch.pl

Signed-off-by: Sumit Pundir <pundirsumit11@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-08-27 19:31:59 +02:00
Nishad Kamdar 910ca496b8 staging: mt7621-mmc: Use BIT macro instead of explicit shifting in board.h
Replace explicit shifting with BIT macro in board.h.
Issue found by checkpatch.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-29 10:08:02 +02:00
Sergej Perschin b3cd051dc3 staging: mt7621-mmc: Fix printk() facility level
The patch fixes the following issue:
WARNING: printk() should include KERN_<LEVEL> facility level

Signed-off-by: Sergej Perschin <ser.perschin@gmail.com>
Signed-off-by: Marcel Budoj <marcel.budoj@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-06 17:32:24 +02:00
Christian Lütke-Stetzkamp 370713270e staging: mt7621-mmc: Find response of SD_APP_OP_COND by default
The response type of the SD_APP_OP_COND command is correctly
determined using the mmc_resp_type macro, because the only use of that
opcode, mmc_send_app_op_cond, correctly places MMC_RSP_R3 in cmd.flags.

So there is no need to treat that opcode separately.

Signed-off-by: Christian Lütke-Stetzkamp <christian@lkamp.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-06-28 21:48:05 +09:00
Christian Lütke-Stetzkamp c3f28802a1 staging: mt7621-mmc: Find response of MMC_SEND_OP_COND by default
The response type of the MMC_SEND_OP_COND command is correctly
determined using the mmc_resp_type macro, because the only use of that
opcode, mmc_send_op_cond, correctly places MMC_RSP_R3 in cmd.flags.

So there is no need to treat that opcode separately.

Signed-off-by: Christian Lütke-Stetzkamp <christian@lkamp.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-06-28 21:48:05 +09:00