wx__p0Nx0b 发表于 2023-3-15 09:43:32

自行编译的固件烧录不能进入安卓桌面,卡在android的logo上,最后重启进入recovery

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-port.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-port.dtsi
index f50fd7497b..f173b49371 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-port.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-port.dtsi
@@ -190,7 +190,8 @@
};

&csi2_dphy_hw {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";
};

&csi2_dphy0 {
@@ -247,15 +248,18 @@
};

&rkisp {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";
};

&rkisp_mmu {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";
};

&rkisp_vir0 {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";
      port {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -268,7 +272,8 @@
};

&rkisp_vir1 {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";

         port {
                reg = <0>;
@@ -355,7 +360,8 @@
};

&mipi_csi2 {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";

      ports {
                #address-cells = <1>;
@@ -388,7 +394,8 @@
};

&rkcif_mipi_lvds {
-       status = "okay";
+       //status = "okay";
+       status = "disabled";
      port {
                cif_mipi_in: endpoint {
                        remote-endpoint = <&mipi_csi2_output>;
-----------
diff --git a/kernel/drivers/mmc/core/block.c b/kernel/drivers/mmc/core/block.c
index 1c6552b2f8..39a5337753 100644
--- a/kernel/drivers/mmc/core/block.c
+++ b/kernel/drivers/mmc/core/block.c
@@ -49,7 +49,6 @@

#include "queue.h"
#include "block.h"
-#include "block_data.h"
#include "core.h"
#include "card.h"
#include "crypto.h"
@@ -98,7 +97,6 @@ static int max_devices;
static DEFINE_IDA(mmc_blk_ida);
static DEFINE_IDA(mmc_rpmb_ida);

-#ifndef _MMC_CORE_BLOCK_DATA_H
/*
* There is one mmc_blk_data per slot.
*/
@@ -138,7 +136,6 @@ struct mmc_blk_data {
      struct dentry *status_dentry;
      struct dentry *ext_csd_dentry;
};
-#endif /* _MMC_CORE_BLOCK_DATA_H */

/* Device type for RPMB character devices */
static dev_t mmc_rpmb_devt;
@@ -148,7 +145,6 @@ static struct bus_type mmc_rpmb_bus_type = {
      .name = "mmc_rpmb",
};

-#ifndef _MMC_CORE_BLOCK_DATA_H
/**
* struct mmc_rpmb_data - special RPMB device type for these areas
* @dev: the device for the RPMB area
@@ -166,7 +162,6 @@ struct mmc_rpmb_data {
      struct mmc_blk_data *md;
      struct list_head node;
};
-#endif /* _MMC_CORE_BLOCK_DATA_H */

static DEFINE_MUTEX(open_lock);

@@ -347,14 +342,12 @@ mmc_blk_getgeo(struct block_device *bdev, struct hd_geometry *geo)
      return 0;
}

-#ifndef _MMC_CORE_BLOCK_DATA_H
struct mmc_blk_ioc_data {
      struct mmc_ioc_cmd ic;
      unsigned char *buf;
      u64 buf_bytes;
      struct mmc_rpmb_data *rpmb;
};
-#endif /* _MMC_CORE_BLOCK_DATA_H */

static struct mmc_blk_ioc_data *mmc_blk_ioctl_copy_from_user(
      struct mmc_ioc_cmd __user *user)
@@ -1694,31 +1687,31 @@ static void mmc_blk_read_single(struct mmc_queue *mq, struct request *req)
      struct mmc_card *card = mq->card;
      struct mmc_host *host = card->host;
      blk_status_t error = BLK_STS_OK;
-       int retries = 0;

      do {
                u32 status;
                int err;
+               int retries = 0;

-               mmc_blk_rw_rq_prep(mqrq, card, 1, mq);
+               while (retries++ <= MMC_READ_SINGLE_RETRIES) {
+                     mmc_blk_rw_rq_prep(mqrq, card, 1, mq);

-               mmc_wait_for_req(host, mrq);
+                     mmc_wait_for_req(host, mrq);

-               err = mmc_send_status(card, &status);
-               if (err)
-                     goto error_exit;
-
-               if (!mmc_host_is_spi(host) &&
-                   !mmc_blk_in_tran_state(status)) {
-                     err = mmc_blk_fix_state(card, req);
+                     err = mmc_send_status(card, &status);
                        if (err)
                              goto error_exit;
-               }

-               if (mrq->cmd->error && retries++ < MMC_READ_SINGLE_RETRIES)
-                     continue;
+                     if (!mmc_host_is_spi(host) &&
+                           !mmc_blk_in_tran_state(status)) {
+                               err = mmc_blk_fix_state(card, req);
+                               if (err)
+                                       goto error_exit;
+                     }

-               retries = 0;
+                     if (!mrq->cmd->error)
+                               break;
+               }

                if (mrq->cmd->error ||
                  mrq->data->error ||
@@ -2962,10 +2955,6 @@ static int mmc_blk_probe(struct mmc_card *card)
                        goto out;
      }

-    if (card->host->restrict_caps & RESTRICT_CARD_TYPE_EMMC) {
-      mmc_blk_data_init(md);
-    }
-
      /* Add two debugfs entries */
      mmc_blk_add_debugfs(card, md);

@@ -3000,10 +2989,6 @@ static void mmc_blk_remove(struct mmc_card *card)
                this_card = NULL;
      #endif

-    if (card->host->restrict_caps & RESTRICT_CARD_TYPE_EMMC) {
-      mmc_blk_data_deinit(md);
-    }
-
      mmc_blk_remove_parts(card, md);
      pm_runtime_get_sync(&card->dev);
      if (md->part_curr != md->part_type) {

-------------




页: [1]
查看完整版本: 自行编译的固件烧录不能进入安卓桌面,卡在android的logo上,最后重启进入recovery