修复 rk3288 android9 的一些问题
生活随笔
收集整理的這篇文章主要介紹了
修复 rk3288 android9 的一些问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.視頻播放卡,有時播放H265視頻HDMI顯示花屏。
&route_hdmi{status = "okay";
};&lvds_in_vopb {status = "disabled"; // LVDS使用vopl, 關閉vopb
};&hdmi_in_vopl {status = "disabled";
};\sdk-9.0\kernel\drivers\gpu\drm\rockchip\dw_hdmi-rockchip.c+530 if(!strcmp(mode->name, "4096x2160") || !strcmp(mode->name, "3840x2160")){
+531 printk(KERN_ERR"bad mode:%s, vrefresh:%d\n",mode->name, mode->vrefresh);
+532 return MODE_BAD;
+533 }關閉4k以上的分辨率
會出現桌面切換緩慢,hdmi閃黑屏,播放4k視頻花屏。原因是當插上hdmi后,會自動識別hdmi的分辨率,當屏的分辨率與hdmi輸出的分辨率不一致時,容易發生異常。但也不是絕對的,閃黑屏可以打補丁解決,但4k p30 的分辨率在板子上運行是不太流暢的,所以我想讓它默認低分辨率輸出,有4k需求的時候再設置4k分辨率。(1)解決閃黑屏補丁
(u-boot)
diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c
index ab346ef539..ede89a7445 100644
--- a/drivers/clk/rockchip/clk_rk3288.c
+++ b/drivers/clk/rockchip/clk_rk3288.c
@@ -169,7 +169,7 @@ enum {/* Keep divisors as low as possible to reduce jitter and power usage */static const struct pll_div apll_init_cfg = PLL_DIVISORS(APLL_HZ, 1, 1);
-static const struct pll_div gpll_init_cfg = PLL_DIVISORS(GPLL_HZ, 2, 4);
+static const struct pll_div gpll_init_cfg = PLL_DIVISORS(GPLL_HZ, 1, 8);static const struct pll_div cpll_init_cfg = PLL_DIVISORS(CPLL_HZ, 1, 2);(kernel)
\sdk-9.0\kernel\drivers\gpu\drm\rockchip\dw_hdmi-rockchip.cstatic const struct dw_hdmi_plat_data rk3288_hdmi_drv_data = {.mode_valid = dw_hdmi_rockchip_mode_valid,.mpll_cfg = rockchip_mpll_cfg,
+ .mpll_cfg_420 = rockchip_mpll_cfg_420, //rockchip_rk3288w_mpll_cfg_420,.cur_ctr = rockchip_cur_ctr,.phy_config = rockchip_phy_config,.dev_type = RK3288_HDMI,.tmds_n_table = rockchip_werid_tmds_n_table,
};\sdk-9.0\kernel\drivers\clk\rockchip\clk-rk3288.c- RK3066_PLL_RATE_NB(594000000, 2, 198, 4, 1),
+ RK3066_PLL_RATE_NB(594000000, 1, 198, 8, 1),
+
\sdk-9.0\kernel\arch\arm\boot\dts\rk3288-evb-android-act8846-edp.dtsivdd_10: REG10 {regulator-name = "VDD_10";
- regulator-min-microvolt = <1000000>;
- regulator-max-microvolt = <1000000>;+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1100000>;regulator-always-on;};
(2) 設置主副屏,為副屏hdmi設置默認分辨率\sdk-9.0\device\rockchip\rk3288\device.mk
PRODUCT_PROPERTY_OVERRIDES += \vendor.hwc.device.primary=LVDS \vendor.hwc.device.extend=HDMI-A \persist.vendor.resolution.aux=1920x1080p60 (3)打開配置\sdk-9.0\device\rockchip\rk3288\BoardConfig.mkBOARD_SHOW_HDMI_SETTING = true(4)添加服務(查看自己使用的是哪個manifest.xml)\sdk-9.0\device\rockchip\common\4g_modem\manifest.xml<hal format="hidl"><name>rockchip.hardware.outputmanager</name><transport>hwbinder</transport><version>1.0</version><interface><name>IRkOutputManager</name><instance>default</instance></interface></hal>5.發現hdmi顯示正常了,但4k分辨率情況下,播放高清視頻會花屏。(關閉hwc測試)\sdk-9.0\device\rockchip\rk3288\device.mk
PRODUCT_PROPERTY_OVERRIDES += \vendor.hwc.compose_policy=0 \
2.WIFI與藍牙不穩定,有時啟動之后無法打開,硬件的問題性比較大舊版本的AP6212穩定。改版為AP6356之后經常打不開。待定
3.gps不支持,系統顯示測試應用版本太低。$: logcat
發現/dev/ttyS3沒有權限\sdk-9.0\device\rockchip\common\init.rk30board.rc
+ chmod 777 /dev/ttyS3刪除老舊的應用
4.SATA不支持。SATA供電腳沒有電。
&i2c0 {act8846: act8846@5a {sata-enable-gpio = <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;//usb_hub_reset_gpio = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;//sata_reset_gpio = <&gpio8 RK_PA7 GPIO_ACTIVE_HIGH>;....}}sdk-9.0\kernel\drivers\regulator\act8865-regulator.cstatic int act8865_pmic_probe(struct i2c_client *client,const struct i2c_device_id *i2c_id)
{......
+ int sata_enable;
+ enum of_gpio_flags flags;......if (IS_ERR(rdev)) {dev_err(dev, "failed to register %s\n", desc->name);return PTR_ERR(rdev);}}+ sata_enable = of_get_named_gpio_flags(client->dev.of_node, "sata-enable-gpio", 0, &flags);
+ //GPIO7_B7_D //sata enable
+ if(!gpio_request(sata_enable, "")){
+ gpio_direction_output(sata_enable, 0);
+ gpio_set_value(sata_enable,1);
+ printk("rk3288 sata_enable gpio ok\n");
+ }else{
+ printk("rk3288 gpio erro\n");
+ }
.......
}還存在有事連接不上的問題
參照android7.1 修改 act8865-regulator.c 驅動后問題已解決。
5.RTC時間可運行斷電能保存,但不能跟網絡時間同步.$:make ARCH=arm menuconfig
# 使用rtc芯片,關掉系統自帶的rtcDevice Drivers → Real Time Clock<*> Haoyu Microelectronics HYM8563 < > Rockchip RK808/RK816 RTC 以上方法尚未解決,待定。重新編譯配置后,沒有進行更換,導致時間不同步CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set測試發現 rtc并未同步。logcat :
05-10 03:44:36.580 436 1384 D SntpClient: request time failed: java.net.SocketTimeoutException: Poll timed out
05-10 03:44:36.581 436 1384 E NtpTimeHelper: requestTime failed
05-10 03:44:37.125 1305 1305 W ServiceManagement: Waited one second for android.hardware.radio@1.0::IRadio/slot1. Waiting another..
ntp 連接不上,參照android7修改地址。做一下修改
sdk-9.0\frameworks\base\core\res\res\values\config.xml
+ <!-- <string translatable="false" name="config_ntpServer">time.android.com</string> -->
+ <string translatable="false" name="config_ntpServer">2.android.pool.ntp.org</string>已解決。曾修改用蘋果的地址,發現gps受影響。
6.系統運行比較卡界面切換響應較慢。系統在啟動或者運行中一直報VCCIO_SD的電壓問題打印影響終端的使用如附件所示.\sdk-9.0\kernel\drivers\power\avs\rockchip-io-domain.c
+162 //dev_info(supply->iod->dev, "Setting to %d done\n", uV);\sdk-9.0\kernel\drivers\regulator\core.cif (*min_uV > *max_uV) {
+256 //rdev_err(rdev, "Restricting voltage, %u-%uuV\n",
+266 //*min_uV, *max_uV);return -EINVAL;}系統運行比較卡界面切換響應較慢,尚未解決。更新:由于hdmi處于4kp30分辨率下,系統運行比較卡,已經切換到低分辨率。
總結
以上是生活随笔為你收集整理的修复 rk3288 android9 的一些问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git如何新建分支
- 下一篇: c语言if else嵌套,C语言if e