tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git gpio-descriptors-mmc-cd-wp head: fcf12e570a8286150c15701bc1d8e82ce37c9f77 commit: b320303d17758d5100d73723ddb7673ea009ac74 [1/3] mmc: mmci: Drop support for pdata GPIO numbers config: arm64-defconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout b320303d17758d5100d73723ddb7673ea009ac74 # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=arm64 All errors (new ones prefixed by >>): drivers/mmc/host/mmci.c: In function 'mmci_of_parse': >> drivers/mmc/host/mmci.c:1507:6: error: implicit declaration of function 'of_get_property'; did you mean '__get_order'? [-Werror=implicit-function-declaration] if (of_get_property(np, "st,sig-dir-dat0", NULL)) ^~~~~~~~~~~~~~~ __get_order drivers/mmc/host/mmci.c: In function 'mmci_probe': >> drivers/mmc/host/mmci.c:1678:12: error: 'struct mmci_platform_data' has no member named 'cd_invert' if (!plat->cd_invert) ^~ cc1: some warnings being treated as errors vim +1507 drivers/mmc/host/mmci.c ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1498 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1499 static int mmci_of_parse(struct device_node *np, struct mmc_host *mmc) 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1500 { 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1501 struct mmci_host *host = mmc_priv(mmc); 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1502 int ret = mmc_of_parse(mmc); 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1503 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1504 if (ret) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1505 return ret; 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1506 ae94cafe2 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-18 @1507 if (of_get_property(np, "st,sig-dir-dat0", NULL)) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1508 host->pwr_reg_add |= MCI_ST_DATA0DIREN; ae94cafe2 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-18 1509 if (of_get_property(np, "st,sig-dir-dat2", NULL)) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1510 host->pwr_reg_add |= MCI_ST_DATA2DIREN; ae94cafe2 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-18 1511 if (of_get_property(np, "st,sig-dir-dat31", NULL)) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1512 host->pwr_reg_add |= MCI_ST_DATA31DIREN; ae94cafe2 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-18 1513 if (of_get_property(np, "st,sig-dir-dat74", NULL)) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1514 host->pwr_reg_add |= MCI_ST_DATA74DIREN; ae94cafe2 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-18 1515 if (of_get_property(np, "st,sig-dir-cmd", NULL)) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1516 host->pwr_reg_add |= MCI_ST_CMDDIREN; 1a7e99c1f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-31 1517 if (of_get_property(np, "st,sig-pin-fbclk", NULL)) 4593df29b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1518 host->pwr_reg_add |= MCI_ST_FBCLKEN; 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1519 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1520 if (of_get_property(np, "mmc-cap-mmc-highspeed", NULL)) 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1521 mmc->caps |= MMC_CAP_MMC_HIGHSPEED; 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1522 if (of_get_property(np, "mmc-cap-sd-highspeed", NULL)) 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1523 mmc->caps |= MMC_CAP_SD_HIGHSPEED; 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1524 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1525 return 0; c0a120a4b drivers/mmc/host/mmci.c Lee Jones 2012-05-08 1526 } 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1527 c3be1efd4 drivers/mmc/host/mmci.c Bill Pemberton 2012-11-19 1528 static int mmci_probe(struct amba_device *dev, aa25afad2 drivers/mmc/host/mmci.c Russell King 2011-02-19 1529 const struct amba_id *id) ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1530 { 6ef297f86 drivers/mmc/host/mmci.c Linus Walleij 2009-09-22 1531 struct mmci_platform_data *plat = dev->dev.platform_data; 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1532 struct device_node *np = dev->dev.of_node; 4956e1090 drivers/mmc/host/mmci.c Rabin Vincent 2010-07-21 1533 struct variant_data *variant = id->data; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1534 struct mmci_host *host; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1535 struct mmc_host *mmc; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1536 int ret; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1537 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1538 /* Must have platform data or Device Tree. */ 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1539 if (!plat && !np) { 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1540 dev_err(&dev->dev, "No plat data or DT found\n"); 000bc9d5e drivers/mmc/host/mmci.c Lee Jones 2012-04-16 1541 return -EINVAL; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1542 } ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1543 b9b52918a drivers/mmc/host/mmci.c Lee Jones 2012-06-12 1544 if (!plat) { b9b52918a drivers/mmc/host/mmci.c Lee Jones 2012-06-12 1545 plat = devm_kzalloc(&dev->dev, sizeof(*plat), GFP_KERNEL); b9b52918a drivers/mmc/host/mmci.c Lee Jones 2012-06-12 1546 if (!plat) b9b52918a drivers/mmc/host/mmci.c Lee Jones 2012-06-12 1547 return -ENOMEM; b9b52918a drivers/mmc/host/mmci.c Lee Jones 2012-06-12 1548 } b9b52918a drivers/mmc/host/mmci.c Lee Jones 2012-06-12 1549 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1550 mmc = mmc_alloc_host(sizeof(struct mmci_host), &dev->dev); ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1551 if (!mmc) ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1552 return -ENOMEM; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1553 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1554 ret = mmci_of_parse(np, mmc); 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1555 if (ret) 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1556 goto host_free; 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1557 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1558 host = mmc_priv(mmc); 4ea580f1d drivers/mmc/host/mmci.c Rabin Vincent 2009-04-17 1559 host->mmc = mmc; 012b7d339 drivers/mmc/host/mmci.c Russell King 2009-07-09 1560 f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1561 /* f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1562 * Some variant (STM32) doesn't have opendrain bit, nevertheless f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1563 * pins can be set accordingly using pinctrl f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1564 */ f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1565 if (!variant->opendrain) { f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1566 host->pinctrl = devm_pinctrl_get(&dev->dev); f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1567 if (IS_ERR(host->pinctrl)) { f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1568 dev_err(&dev->dev, "failed to get pinctrl"); 310eb252a drivers/mmc/host/mmci.c Wei Yongjun 2018-01-23 1569 ret = PTR_ERR(host->pinctrl); f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1570 goto host_free; f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1571 } f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1572 f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1573 host->pins_default = pinctrl_lookup_state(host->pinctrl, f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1574 PINCTRL_STATE_DEFAULT); f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1575 if (IS_ERR(host->pins_default)) { f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1576 dev_err(mmc_dev(mmc), "Can't select default pins\n"); 310eb252a drivers/mmc/host/mmci.c Wei Yongjun 2018-01-23 1577 ret = PTR_ERR(host->pins_default); f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1578 goto host_free; f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1579 } f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1580 f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1581 host->pins_opendrain = pinctrl_lookup_state(host->pinctrl, f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1582 MMCI_PINCTRL_STATE_OPENDRAIN); f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1583 if (IS_ERR(host->pins_opendrain)) { f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1584 dev_err(mmc_dev(mmc), "Can't select opendrain pins\n"); 310eb252a drivers/mmc/host/mmci.c Wei Yongjun 2018-01-23 1585 ret = PTR_ERR(host->pins_opendrain); f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1586 goto host_free; f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1587 } f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1588 } f9bb304ce drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1589 012b7d339 drivers/mmc/host/mmci.c Russell King 2009-07-09 1590 host->hw_designer = amba_manf(dev); 012b7d339 drivers/mmc/host/mmci.c Russell King 2009-07-09 1591 host->hw_revision = amba_rev(dev); 64de02894 drivers/mmc/host/mmci.c Linus Walleij 2010-02-19 1592 dev_dbg(mmc_dev(mmc), "designer ID = 0x%02x\n", host->hw_designer); 64de02894 drivers/mmc/host/mmci.c Linus Walleij 2010-02-19 1593 dev_dbg(mmc_dev(mmc), "revision = 0x%01x\n", host->hw_revision); 012b7d339 drivers/mmc/host/mmci.c Russell King 2009-07-09 1594 665ba56fd drivers/mmc/host/mmci.c Ulf Hansson 2013-05-13 1595 host->clk = devm_clk_get(&dev->dev, NULL); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1596 if (IS_ERR(host->clk)) { ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1597 ret = PTR_ERR(host->clk); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1598 goto host_free; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1599 } ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1600 ac940938d drivers/mmc/host/mmci.c Julia Lawall 2012-08-26 1601 ret = clk_prepare_enable(host->clk); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1602 if (ret) 665ba56fd drivers/mmc/host/mmci.c Ulf Hansson 2013-05-13 1603 goto host_free; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1604 9c34b73de drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1605 if (variant->qcom_fifo) 9c34b73de drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1606 host->get_rx_fifocnt = mmci_qcom_get_rx_fifocnt; 9c34b73de drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1607 else 9c34b73de drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1608 host->get_rx_fifocnt = mmci_get_rx_fifocnt; 9c34b73de drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1609 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1610 host->plat = plat; 4956e1090 drivers/mmc/host/mmci.c Rabin Vincent 2010-07-21 1611 host->variant = variant; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1612 host->mclk = clk_get_rate(host->clk); c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1613 /* c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1614 * According to the spec, mclk is max 100 MHz, c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1615 * so we try to adjust the clock down to this, c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1616 * (if possible). c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1617 */ dc6500bfe drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1618 if (host->mclk > variant->f_max) { dc6500bfe drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1619 ret = clk_set_rate(host->clk, variant->f_max); c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1620 if (ret < 0) c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1621 goto clk_disable; c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1622 host->mclk = clk_get_rate(host->clk); 64de02894 drivers/mmc/host/mmci.c Linus Walleij 2010-02-19 1623 dev_dbg(mmc_dev(mmc), "eventual mclk rate: %u Hz\n", 64de02894 drivers/mmc/host/mmci.c Linus Walleij 2010-02-19 1624 host->mclk); c8df9a53e drivers/mmc/host/mmci.c Linus Walleij 2008-04-29 1625 } ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1626 c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1627 host->phybase = dev->res.start; ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1628 host->base = devm_ioremap_resource(&dev->dev, &dev->res); ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1629 if (IS_ERR(host->base)) { ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1630 ret = PTR_ERR(host->base); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1631 goto clk_disable; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1632 } ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1633 ed9067fd5 drivers/mmc/host/mmci.c Ulf Hansson 2018-07-13 1634 if (variant->init) ed9067fd5 drivers/mmc/host/mmci.c Ulf Hansson 2018-07-13 1635 variant->init(host); ed9067fd5 drivers/mmc/host/mmci.c Ulf Hansson 2018-07-13 1636 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1637 /* 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1638 * The ARM and ST versions of the block have slightly different 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1639 * clock divider equations which means that the minimum divider 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1640 * differs too. 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1641 * on Qualcomm like controllers get the nearest minimum clock to 100Khz 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1642 */ 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1643 if (variant->st_clkdiv) 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1644 mmc->f_min = DIV_ROUND_UP(host->mclk, 257); 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1645 else if (variant->explicit_mclk_control) 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1646 mmc->f_min = clk_round_rate(host->clk, 100000); 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1647 else 7f294e498 drivers/mmc/host/mmci.c Linus Walleij 2011-07-08 1648 mmc->f_min = DIV_ROUND_UP(host->mclk, 512); 808d97ccb drivers/mmc/host/mmci.c Linus Walleij 2010-04-08 1649 /* 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1650 * If no maximum operating frequency is supplied, fall back to use 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1651 * the module parameter, which has a (low) default value in case it 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1652 * is not specified. Either value must not exceed the clock rate into 5080a08d0 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-21 1653 * the block, of course. 808d97ccb drivers/mmc/host/mmci.c Linus Walleij 2010-04-08 1654 */ 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1655 if (mmc->f_max) 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1656 mmc->f_max = variant->explicit_mclk_control ? 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1657 min(variant->f_max, mmc->f_max) : 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1658 min(host->mclk, mmc->f_max); 808d97ccb drivers/mmc/host/mmci.c Linus Walleij 2010-04-08 1659 else 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1660 mmc->f_max = variant->explicit_mclk_control ? 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1661 fmax : min(host->mclk, fmax); 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1662 3f4e6f7b9 drivers/mmc/host/mmci.c Srinivas Kandagatla 2014-06-02 1663 64de02894 drivers/mmc/host/mmci.c Linus Walleij 2010-02-19 1664 dev_dbg(mmc_dev(mmc), "clocking block at %u Hz\n", mmc->f_max); 64de02894 drivers/mmc/host/mmci.c Linus Walleij 2010-02-19 1665 599c1d5c7 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1666 /* Get regulators and the supported OCR mask */ 9369c97cc drivers/mmc/host/mmci.c Bjorn Andersson 2015-03-24 1667 ret = mmc_regulator_get_supply(mmc); 510069527 drivers/mmc/host/mmci.c Wolfram Sang 2017-10-14 1668 if (ret) 9369c97cc drivers/mmc/host/mmci.c Bjorn Andersson 2015-03-24 1669 goto clk_disable; 9369c97cc drivers/mmc/host/mmci.c Bjorn Andersson 2015-03-24 1670 599c1d5c7 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1671 if (!mmc->ocr_avail) ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1672 mmc->ocr_avail = plat->ocr_mask; 599c1d5c7 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1673 else if (plat->ocr_mask) 599c1d5c7 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1674 dev_warn(mmc_dev(mmc), "Platform OCR mask is ignored\n"); 599c1d5c7 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1675 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1676 /* DT takes precedence over platform data. */ 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1677 if (!np) { d27620901 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 @1678 if (!plat->cd_invert) d27620901 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1679 mmc->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH; d27620901 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1680 mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH; 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1681 } ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1682 9dd8a8b81 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-19 1683 /* We support these capabilities. */ 9dd8a8b81 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-19 1684 mmc->caps |= MMC_CAP_CMD23; 9dd8a8b81 drivers/mmc/host/mmci.c Ulf Hansson 2014-03-19 1685 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1686 /* 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1687 * Enable busy detection. 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1688 */ 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1689 if (variant->busy_detect) { 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1690 mmci_ops.card_busy = mmci_card_busy; 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1691 /* 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1692 * Not all variants have a flag to enable busy detection 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1693 * in the DPSM, but if they do, set it here. 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1694 */ 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1695 if (variant->busy_dpsm_flag) 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1696 mmci_write_datactrlreg(host, 49adc0cac drivers/mmc/host/mmci.c Linus Walleij 2016-10-25 1697 host->variant->busy_dpsm_flag); 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1698 mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY; 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1699 mmc->max_busy_timeout = 0; 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1700 } 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1701 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1702 mmc->ops = &mmci_ops; 8d94b54d9 drivers/mmc/host/mmci.c Ulf Hansson 2014-01-13 1703 70be208f0 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1704 /* We support these PM capabilities. */ 78f87df2b drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1705 mmc->pm_caps |= MMC_PM_KEEP_POWER; 70be208f0 drivers/mmc/host/mmci.c Ulf Hansson 2013-01-07 1706 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1707 /* ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1708 * We can do SGIO ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1709 */ a36274e01 drivers/mmc/host/mmci.c Martin K. Petersen 2010-09-10 1710 mmc->max_segs = NR_SG; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1711 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1712 /* 08458ef6e drivers/mmc/host/mmci.c Rabin Vincent 2010-07-21 1713 * Since only a certain number of bits are valid in the data length 08458ef6e drivers/mmc/host/mmci.c Rabin Vincent 2010-07-21 1714 * register, we must ensure that we don't exceed 2^num-1 bytes in a 08458ef6e drivers/mmc/host/mmci.c Rabin Vincent 2010-07-21 1715 * single request. ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1716 */ 08458ef6e drivers/mmc/host/mmci.c Rabin Vincent 2010-07-21 1717 mmc->max_req_size = (1 << variant->datalength_bits) - 1; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1718 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1719 /* ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1720 * Set the maximum segment size. Since we aren't doing DMA ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1721 * (yet) we are only limited by the data length register. ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1722 */ 55db890a8 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1723 mmc->max_seg_size = mmc->max_req_size; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1724 fe4a3c7a2 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1725 /* fe4a3c7a2 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1726 * Block size can be up to 2048 bytes, but must be a power of two. fe4a3c7a2 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1727 */ 8f7f6b7e4 drivers/mmc/host/mmci.c Will Deacon 2012-02-24 1728 mmc->max_blk_size = 1 << 11; fe4a3c7a2 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1729 55db890a8 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1730 /* 8f7f6b7e4 drivers/mmc/host/mmci.c Will Deacon 2012-02-24 1731 * Limit the number of blocks transferred so that we don't overflow 8f7f6b7e4 drivers/mmc/host/mmci.c Will Deacon 2012-02-24 1732 * the maximum request size. 55db890a8 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1733 */ 8f7f6b7e4 drivers/mmc/host/mmci.c Will Deacon 2012-02-24 1734 mmc->max_blk_count = mmc->max_req_size >> 11; 55db890a8 drivers/mmc/mmci.c Pierre Ossman 2006-11-21 1735 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1736 spin_lock_init(&host->lock); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1737 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1738 writel(0, host->base + MMCIMASK0); 6ea9cdf39 drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1739 6ea9cdf39 drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1740 if (variant->mmcimask1) ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1741 writel(0, host->base + MMCIMASK1); 6ea9cdf39 drivers/mmc/host/mmci.c Patrice Chotard 2018-01-18 1742 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1743 writel(0xfff, host->base + MMCICLEAR); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1744 ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1745 /* ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1746 * If: ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1747 * - not using DT but using a descriptor table, or ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1748 * - using a table of descriptors ALONGSIDE DT, or ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1749 * look up these descriptors named "cd" and "wp" right here, fail b320303d1 drivers/mmc/host/mmci.c Linus Walleij 2018-09-19 1750 * silently of these do not exist ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1751 */ ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1752 if (!np) { 89168b489 drivers/mmc/host/mmci.c Linus Walleij 2014-10-02 1753 ret = mmc_gpiod_request_cd(mmc, "cd", 0, false, 0, NULL); ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1754 if (ret == -EPROBE_DEFER) ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1755 goto clk_disable; ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1756 89168b489 drivers/mmc/host/mmci.c Linus Walleij 2014-10-02 1757 ret = mmc_gpiod_request_ro(mmc, "wp", 0, false, 0, NULL); ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1758 if (ret == -EPROBE_DEFER) ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1759 goto clk_disable; ce437aa45 drivers/mmc/host/mmci.c Linus Walleij 2014-08-27 1760 } 890014469 drivers/mmc/host/mmci.c Russell King 2009-07-09 1761 ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1762 ret = devm_request_irq(&dev->dev, dev->irq[0], mmci_irq, IRQF_SHARED, ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1763 DRIVER_NAME " (cmd)", host); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1764 if (ret) ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1765 goto clk_disable; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1766 dfb85185b drivers/mmc/host/mmci.c Russell King 2012-05-03 1767 if (!dev->irq[1]) 2686b4b40 drivers/mmc/host/mmci.c Linus Walleij 2010-10-19 1768 host->singleirq = true; 2686b4b40 drivers/mmc/host/mmci.c Linus Walleij 2010-10-19 1769 else { ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1770 ret = devm_request_irq(&dev->dev, dev->irq[1], mmci_pio_irq, ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1771 IRQF_SHARED, DRIVER_NAME " (pio)", host); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1772 if (ret) ef289982f drivers/mmc/host/mmci.c Ulf Hansson 2014-03-17 1773 goto clk_disable; 2686b4b40 drivers/mmc/host/mmci.c Linus Walleij 2010-10-19 1774 } ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1775 8cb281557 drivers/mmc/host/mmci.c Linus Walleij 2011-01-24 1776 writel(MCI_IRQENABLE, host->base + MMCIMASK0); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1777 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1778 amba_set_drvdata(dev, mmc); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1779 c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1780 dev_info(&dev->dev, "%s: PL%03x manf %x rev%u at 0x%08llx irq %d,%d (pio)\n", c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1781 mmc_hostname(mmc), amba_part(dev), amba_manf(dev), c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1782 amba_rev(dev), (unsigned long long)dev->res.start, c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1783 dev->irq[0], dev->irq[1]); c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1784 c8ebae370 drivers/mmc/host/mmci.c Russell King 2011-01-11 1785 mmci_dma_setup(host); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1786 2cd976c46 drivers/mmc/host/mmci.c Ulf Hansson 2011-12-13 1787 pm_runtime_set_autosuspend_delay(&dev->dev, 50); 2cd976c46 drivers/mmc/host/mmci.c Ulf Hansson 2011-12-13 1788 pm_runtime_use_autosuspend(&dev->dev); 1c3be369c drivers/mmc/host/mmci.c Russell King 2011-08-14 1789 8c11a94d8 drivers/mmc/host/mmci.c Russell King 2010-12-28 1790 mmc_add_host(mmc); 8c11a94d8 drivers/mmc/host/mmci.c Russell King 2010-12-28 1791 6f2d3c89d drivers/mmc/host/mmci.c Ulf Hansson 2014-12-11 1792 pm_runtime_put(&dev->dev); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1793 return 0; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1794 ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1795 clk_disable: ac940938d drivers/mmc/host/mmci.c Julia Lawall 2012-08-26 1796 clk_disable_unprepare(host->clk); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1797 host_free: ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1798 mmc_free_host(mmc); ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1799 return ret; ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1800 } ^1da177e4 drivers/mmc/mmci.c Linus Torvalds 2005-04-16 1801 :::::: The code at line 1507 was first introduced by commit :::::: ae94cafe293343c2680c638c7af8499d708e4d71 mmc: mmci: Add DT bindings for signal direction :::::: TO: Ulf Hansson <ulf.hansson@xxxxxxxxxx> :::::: CC: Ulf Hansson <ulf.hansson@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip