How to trigger sdio bus probing from user space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Is there a clean way to trigger sdio bus probing from user space?

I have a non removable sdio WiFi/BT module on embedded system that needs
to be tested and calibrated on production line.
In order to speed up production process, I need to be able to replace
the  WiFi/BT modules in run time without reboot.
Modules are connected to the host with a ribbon cable, not with a  sdio
connector.

I came up with fallowing two-part solution:
a)
I extended WiFi driver's /proc interface with a call to
mmc_detect_change()
b)
I also needed to let the sdio host think module is removable by
commenting fallowing in sdhci-mv.c:
sdhci_mv_probe_dt(struct platform_device *pdev)
{
    struct device_node *np = pdev->dev.of_node;
    struct sdhci_host *host = platform_get_drvdata(pdev);

    if (of_get_property(np, "mrvl,card-wired", NULL)) {
        /*
         * RT-RK
         * We need to comment out these in order to be able to
         * trigger sdio bus probing on the fly
         */
        //host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
        //host->mmc->caps |= MMC_CAP_NONREMOVABLE;
    }

This works in situations when working modules are inserted.
Unfortunately, it does not work in case when broken module is inserted
on production line.
In this case production board needs to be rebooted, because the WiFi
driver's /proc interface is gone, and I can not force a call to
mmc_detect_change() any more.

Is there cleaner and better approach?

Best regards,
Bojan

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux