Merge branch 'fixes' into next
This commit is contained in:
commit
fdb7ef5b7d
@ -20,6 +20,8 @@
|
|||||||
#include "sdio_cis.h"
|
#include "sdio_cis.h"
|
||||||
#include "sdio_ops.h"
|
#include "sdio_ops.h"
|
||||||
|
|
||||||
|
#define SDIO_READ_CIS_TIMEOUT_MS (10 * 1000) /* 10s */
|
||||||
|
|
||||||
static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func,
|
static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func,
|
||||||
const unsigned char *buf, unsigned size)
|
const unsigned char *buf, unsigned size)
|
||||||
{
|
{
|
||||||
@ -274,6 +276,8 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
unsigned char tpl_code, tpl_link;
|
unsigned char tpl_code, tpl_link;
|
||||||
|
unsigned long timeout = jiffies +
|
||||||
|
msecs_to_jiffies(SDIO_READ_CIS_TIMEOUT_MS);
|
||||||
|
|
||||||
ret = mmc_io_rw_direct(card, 0, 0, ptr++, 0, &tpl_code);
|
ret = mmc_io_rw_direct(card, 0, 0, ptr++, 0, &tpl_code);
|
||||||
if (ret)
|
if (ret)
|
||||||
@ -326,6 +330,8 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
|
|||||||
prev = &this->next;
|
prev = &this->next;
|
||||||
|
|
||||||
if (ret == -ENOENT) {
|
if (ret == -ENOENT) {
|
||||||
|
if (time_after(jiffies, timeout))
|
||||||
|
break;
|
||||||
/* warn about unknown tuples */
|
/* warn about unknown tuples */
|
||||||
pr_warn_ratelimited("%s: queuing unknown"
|
pr_warn_ratelimited("%s: queuing unknown"
|
||||||
" CIS tuple 0x%02x (%u bytes)\n",
|
" CIS tuple 0x%02x (%u bytes)\n",
|
||||||
|
@ -111,8 +111,13 @@ static inline void *sdhci_pltfm_priv(struct sdhci_pltfm_host *host)
|
|||||||
return host->private;
|
return host->private;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern const struct dev_pm_ops sdhci_pltfm_pmops;
|
||||||
|
#ifdef CONFIG_PM_SLEEP
|
||||||
int sdhci_pltfm_suspend(struct device *dev);
|
int sdhci_pltfm_suspend(struct device *dev);
|
||||||
int sdhci_pltfm_resume(struct device *dev);
|
int sdhci_pltfm_resume(struct device *dev);
|
||||||
extern const struct dev_pm_ops sdhci_pltfm_pmops;
|
#else
|
||||||
|
static inline int sdhci_pltfm_suspend(struct device *dev) { return 0; }
|
||||||
|
static inline int sdhci_pltfm_resume(struct device *dev) { return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */
|
#endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user