mmc: Convert pr_warning to pr_warn
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / core / sd.c
index 2dd359d2242fa811efae1a03d02ca9d9dfba77ca..d90a6de7901d7514550b3c9ed64d383e528244ad 100644 (file)
@@ -127,6 +127,7 @@ static int mmc_decode_csd(struct mmc_card *card)
                csd->read_partial = UNSTUFF_BITS(resp, 79, 1);
                csd->write_misalign = UNSTUFF_BITS(resp, 78, 1);
                csd->read_misalign = UNSTUFF_BITS(resp, 77, 1);
+               csd->dsr_imp = UNSTUFF_BITS(resp, 76, 1);
                csd->r2w_factor = UNSTUFF_BITS(resp, 26, 3);
                csd->write_blkbits = UNSTUFF_BITS(resp, 22, 4);
                csd->write_partial = UNSTUFF_BITS(resp, 21, 1);
@@ -228,8 +229,8 @@ static int mmc_read_ssr(struct mmc_card *card)
        u32 *ssr;
 
        if (!(card->csd.cmdclass & CCC_APP_SPEC)) {
-               pr_warning("%s: card lacks mandatory SD Status "
-                       "function.\n", mmc_hostname(card->host));
+               pr_warn("%s: card lacks mandatory SD Status function\n",
+                       mmc_hostname(card->host));
                return 0;
        }
 
@@ -239,8 +240,8 @@ static int mmc_read_ssr(struct mmc_card *card)
 
        err = mmc_app_sd_status(card, ssr);
        if (err) {
-               pr_warning("%s: problem reading SD Status "
-                       "register.\n", mmc_hostname(card->host));
+               pr_warn("%s: problem reading SD Status register\n",
+                       mmc_hostname(card->host));
                err = 0;
                goto out;
        }
@@ -264,8 +265,8 @@ static int mmc_read_ssr(struct mmc_card *card)
                                card->ssr.erase_offset = eo * 1000;
                        }
                } else {
-                       pr_warning("%s: SD Status: Invalid Allocation Unit size.\n",
-                                  mmc_hostname(card->host));
+                       pr_warn("%s: SD Status: Invalid Allocation Unit size\n",
+                               mmc_hostname(card->host));
                }
        }
 out:
@@ -285,8 +286,7 @@ static int mmc_read_switch(struct mmc_card *card)
                return 0;
 
        if (!(card->csd.cmdclass & CCC_SWITCH)) {
-               pr_warning("%s: card lacks mandatory switch "
-                       "function, performance might suffer.\n",
+               pr_warn("%s: card lacks mandatory switch function, performance might suffer\n",
                        mmc_hostname(card->host));
                return 0;
        }
@@ -315,7 +315,7 @@ static int mmc_read_switch(struct mmc_card *card)
                if (err != -EINVAL && err != -ENOSYS && err != -EFAULT)
                        goto out;
 
-               pr_warning("%s: problem reading Bus Speed modes.\n",
+               pr_warn("%s: problem reading Bus Speed modes\n",
                        mmc_hostname(card->host));
                err = 0;
 
@@ -371,8 +371,7 @@ int mmc_sd_switch_hs(struct mmc_card *card)
                goto out;
 
        if ((status[16] & 0xF) != 1) {
-               pr_warning("%s: Problem switching card "
-                       "into high-speed mode!\n",
+               pr_warn("%s: Problem switching card into high-speed mode!\n",
                        mmc_hostname(card->host));
                err = 0;
        } else {
@@ -439,7 +438,7 @@ static int sd_select_driver_type(struct mmc_card *card, u8 *status)
                return err;
 
        if ((status[15] & 0xF) != drive_strength) {
-               pr_warning("%s: Problem setting drive strength!\n",
+               pr_warn("%s: Problem setting drive strength!\n",
                        mmc_hostname(card->host));
                return 0;
        }
@@ -517,7 +516,7 @@ static int sd_set_bus_speed_mode(struct mmc_card *card, u8 *status)
                return err;
 
        if ((status[16] & 0xF) != card->sd_bus_speed)
-               pr_warning("%s: Problem setting bus speed mode!\n",
+               pr_warn("%s: Problem setting bus speed mode!\n",
                        mmc_hostname(card->host));
        else {
                mmc_set_timing(card->host, timing);
@@ -597,7 +596,7 @@ static int sd_set_current_limit(struct mmc_card *card, u8 *status)
                        return err;
 
                if (((status[15] >> 4) & 0x0F) != current_limit)
-                       pr_warning("%s: Problem setting current limit!\n",
+                       pr_warn("%s: Problem setting current limit!\n",
                                mmc_hostname(card->host));
 
        }
@@ -707,18 +706,10 @@ static struct attribute *sd_std_attrs[] = {
        &dev_attr_serial.attr,
        NULL,
 };
-
-static struct attribute_group sd_std_attr_group = {
-       .attrs = sd_std_attrs,
-};
-
-static const struct attribute_group *sd_attr_groups[] = {
-       &sd_std_attr_group,
-       NULL,
-};
+ATTRIBUTE_GROUPS(sd_std);
 
 struct device_type sd_type = {
-       .groups = sd_attr_groups,
+       .groups = sd_std_groups,
 };
 
 /*
@@ -734,8 +725,7 @@ int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid, u32 *rocr)
 try_again:
        if (!retries) {
                ocr &= ~SD_OCR_S18R;
-               pr_warning("%s: Skipping voltage switch\n",
-                       mmc_hostname(host));
+               pr_warn("%s: Skipping voltage switch\n", mmc_hostname(host));
        }
 
        /*
@@ -879,9 +869,7 @@ int mmc_sd_setup_card(struct mmc_host *host, struct mmc_card *card,
                }
 
                if (ro < 0) {
-                       pr_warning("%s: host does not "
-                               "support reading read-only "
-                               "switch. assuming write-enable.\n",
+                       pr_warn("%s: host does not support reading read-only switch, assuming write-enable\n",
                                mmc_hostname(host));
                } else if (ro > 0) {
                        mmc_card_set_readonly(card);
@@ -895,7 +883,7 @@ unsigned mmc_sd_get_max_clock(struct mmc_card *card)
 {
        unsigned max_dtr = (unsigned int)-1;
 
-       if (mmc_card_highspeed(card)) {
+       if (mmc_card_hs(card)) {
                if (max_dtr > card->sw_caps.hs_max_dtr)
                        max_dtr = card->sw_caps.hs_max_dtr;
        } else if (max_dtr > card->csd.max_dtr) {
@@ -905,12 +893,6 @@ unsigned mmc_sd_get_max_clock(struct mmc_card *card)
        return max_dtr;
 }
 
-void mmc_sd_go_highspeed(struct mmc_card *card)
-{
-       mmc_card_set_highspeed(card);
-       mmc_set_timing(card->host, MMC_TIMING_SD_HS);
-}
-
 /*
  * Handle the detection and initialisation of a card.
  *
@@ -967,6 +949,13 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
                mmc_decode_cid(card);
        }
 
+       /*
+        * handling only for cards supporting DSR and hosts requesting
+        * DSR configuration
+        */
+       if (card->csd.dsr_imp && host->dsr_req)
+               mmc_set_dsr(host);
+
        /*
         * Select card, as all following commands rely on that.
         */
@@ -985,16 +974,13 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
                err = mmc_sd_init_uhs_card(card);
                if (err)
                        goto free_card;
-
-               /* Card is an ultra-high-speed card */
-               mmc_card_set_uhs(card);
        } else {
                /*
                 * Attempt to change to high-speed (if supported)
                 */
                err = mmc_sd_switch_hs(card);
                if (err > 0)
-                       mmc_sd_go_highspeed(card);
+                       mmc_set_timing(card->host, MMC_TIMING_SD_HS);
                else if (err)
                        goto free_card;
 
@@ -1089,7 +1075,7 @@ static int _mmc_sd_suspend(struct mmc_host *host)
 
        if (!mmc_host_is_spi(host))
                err = mmc_deselect_cards(host);
-       host->card->state &= ~MMC_STATE_HIGHSPEED;
+
        if (!err) {
                mmc_power_off(host);
                mmc_card_set_suspended(host->card);
@@ -1198,7 +1184,6 @@ static int mmc_sd_power_restore(struct mmc_host *host)
 {
        int ret;
 
-       host->card->state &= ~MMC_STATE_HIGHSPEED;
        mmc_claim_host(host);
        ret = mmc_sd_init_card(host, host->card->ocr, host->card);
        mmc_release_host(host);