The patch titled omap_hsmmc: add debugfs entry (host registers) has been added to the -mm tree. Its filename is omap_hsmmc-add-debugfs-entry-host-registers.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: omap_hsmmc: add debugfs entry (host registers) From: Denis Karpov <ext-denis.2.karpov@xxxxxxxxx> Adds <debugfs_root>/kernel/debug/mmc<N>/regs entry, contents show registers' state and some driver internal state variables. Signed-off-by: Denis Karpov <ext-denis.2.karpov@xxxxxxxxx> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> Acked-by: Matt Fleming <matt@xxxxxxxxxxxxxxxxx> Cc: Ian Molton <ian@xxxxxxxxxxxxxx> Cc: "Roberto A. Foglietta" <roberto.foglietta@xxxxxxxxx> Cc: Jarkko Lavinen <jarkko.lavinen@xxxxxxxxx> Cc: Denis Karpov <ext-denis.2.karpov@xxxxxxxxx> Cc: Pierre Ossman <pierre@xxxxxxxxx> Cc: Philip Langdale <philipl@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/mmc/host/omap_hsmmc.c | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff -puN drivers/mmc/host/omap_hsmmc.c~omap_hsmmc-add-debugfs-entry-host-registers drivers/mmc/host/omap_hsmmc.c --- a/drivers/mmc/host/omap_hsmmc.c~omap_hsmmc-add-debugfs-entry-host-registers +++ a/drivers/mmc/host/omap_hsmmc.c @@ -17,6 +17,8 @@ #include <linux/module.h> #include <linux/init.h> +#include <linux/debugfs.h> +#include <linux/seq_file.h> #include <linux/interrupt.h> #include <linux/delay.h> #include <linux/dma-mapping.h> @@ -974,6 +976,59 @@ static struct mmc_host_ops mmc_omap_ops /* NYET -- enable_sdio_irq */ }; +#ifdef CONFIG_DEBUG_FS + +static int mmc_regs_show(struct seq_file *s, void *data) +{ + struct mmc_host *mmc = s->private; + struct mmc_omap_host *host = mmc_priv(mmc); + + seq_printf(s, "mmc%d regs:\n", mmc->index); + + seq_printf(s, "SYSCONFIG:\t0x%08x\n", + OMAP_HSMMC_READ(host->base, SYSCONFIG)); + seq_printf(s, "CON:\t\t0x%08x\n", + OMAP_HSMMC_READ(host->base, CON)); + seq_printf(s, "HCTL:\t\t0x%08x\n", + OMAP_HSMMC_READ(host->base, HCTL)); + seq_printf(s, "SYSCTL:\t\t0x%08x\n", + OMAP_HSMMC_READ(host->base, SYSCTL)); + seq_printf(s, "IE:\t\t0x%08x\n", + OMAP_HSMMC_READ(host->base, IE)); + seq_printf(s, "ISE:\t\t0x%08x\n", + OMAP_HSMMC_READ(host->base, ISE)); + seq_printf(s, "CAPA:\t\t0x%08x\n", + OMAP_HSMMC_READ(host->base, CAPA)); + return 0; +} + +static int mmc_regs_open(struct inode *inode, struct file *file) +{ + return single_open(file, mmc_regs_show, inode->i_private); +} + +static const struct file_operations mmc_regs_fops = { + .open = mmc_regs_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void omap_mmc_debugfs(struct mmc_host *mmc) +{ + if (mmc->debugfs_root) + debugfs_create_file("regs", S_IRUSR, mmc->debugfs_root, + mmc, &mmc_regs_fops); +} + +#else + +static void omap_mmc_debugfs(struct mmc_host *mmc) +{ +} + +#endif + static int __init omap_mmc_probe(struct platform_device *pdev) { struct omap_mmc_platform_data *pdata = pdev->dev.platform_data; @@ -1159,6 +1214,8 @@ static int __init omap_mmc_probe(struct goto err_cover_switch; } + omap_mmc_debugfs(mmc); + return 0; err_cover_switch: _ Patches currently in -mm which might be from ext-denis.2.karpov@xxxxxxxxx are mmc-add-enable-and-disable-methods-to-mmc-host.patch mmc-allow-host-claim-release-nesting.patch mmc-add-mmc_cap_nonremovable-host-capability.patch mmc-add-ability-to-save-power-by-powering-off-cards.patch mmc-add-mmc-card-sleep-and-awake-support.patch mmc-power-off-once-at-removal.patch mmc-add-host-capabilities-for-sd-only-and-mmc-only.patch mmc-check-status-after-mmc-switch-command.patch omap_hsmmc-add-debugfs-entry-host-registers.patch omap_hsmmc-make-use-of-new-enable-disable-interface.patch arm-omap-mmc-twl4030-add-context-loss-counter-support.patch omap_hsmmc-keep-track-of-power-mode.patch omap_hsmmc-context-save-restore-support.patch omap_hsmmc-set-open-drain-bit-correctly.patch omap_hsmmc-ensure-workqueues-are-empty-before-suspend.patch omap_hsmmc-fix-scatter-gather-list-sanity-checking.patch omap_hsmmc-make-use-of-new-mmc_cap_nonremovable-host-capability.patch omap_hsmmc-support-for-deeper-power-saving-states.patch arm-omap-mmc-twl4030-add-regulator-sleep-wake-function.patch omap_hsmmc-put-mmc-regulator-to-sleep.patch omap_hsmmc-add-mmc-card-sleep-and-awake-support.patch omap_hsmmc-fix-null-pointer-dereference.patch omap_hsmmc-cleanup-macro-usage.patch omap_hsmmc-clear-interrupt-status-after-init-sequence.patch omap_hsmmc-cater-for-weird-cmd6-behaviour.patch omap_hsmmc-prevent-races-with-irq-handler.patch omap_hsmmc-pass-host-capabilities-for-sd-only-and-mmc-only.patch omap_hsmmc-code-refactoring.patch omap_hsmmc-protect-the-card-when-the-cover-is-open.patch omap_hsmmc-ensure-all-clock-enables-and-disables-are-paired.patch omap_hsmmc-set-a-large-data-timeout-for-commands-with-busy-signal.patch arm-omap-rx51-set-mmc-capabilities-and-power-saving-flag.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html