charger: fix charger display stuck
1.Retry charger when gr init fail caused by display not ready. 2.Remove meaningless logs which occupy log lines, the logs that really need to be printed cannot be output due to printk suppresses kernel logs. Bug: 197604278 Change-Id: Id9465a0a9c994986192fd39c124d05aed8caa862 Test: Manual. Power off charging.
This commit is contained in:
parent
f98bcdbac0
commit
a40d872989
3 changed files with 16 additions and 15 deletions
|
@ -46,14 +46,6 @@ static int get_split_offset() {
|
|||
|
||||
HealthdDraw::HealthdDraw(animation* anim)
|
||||
: kSplitScreen(get_split_screen()), kSplitOffset(get_split_offset()) {
|
||||
int ret = gr_init();
|
||||
|
||||
if (ret < 0) {
|
||||
LOGE("gr_init failed\n");
|
||||
graphics_available = false;
|
||||
return;
|
||||
}
|
||||
|
||||
graphics_available = true;
|
||||
sys_font = gr_sys_font();
|
||||
if (sys_font == nullptr) {
|
||||
|
@ -235,3 +227,11 @@ void HealthdDraw::draw_unknown(GRSurface* surf_unknown) {
|
|||
LOGW("Charging, level unknown\n");
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<HealthdDraw> HealthdDraw::Create(animation *anim) {
|
||||
if (gr_init() < 0) {
|
||||
LOGE("gr_init failed\n");
|
||||
return nullptr;
|
||||
}
|
||||
return std::unique_ptr<HealthdDraw>(new HealthdDraw(anim));
|
||||
}
|
||||
|
|
|
@ -26,8 +26,6 @@ using namespace android;
|
|||
|
||||
class HealthdDraw {
|
||||
public:
|
||||
// Configures font using given animation.
|
||||
HealthdDraw(animation* anim);
|
||||
virtual ~HealthdDraw();
|
||||
|
||||
// Redraws screen.
|
||||
|
@ -36,6 +34,8 @@ class HealthdDraw {
|
|||
// Blanks screen if true, unblanks if false.
|
||||
virtual void blank_screen(bool blank);
|
||||
|
||||
static std::unique_ptr<HealthdDraw> Create(animation *anim);
|
||||
|
||||
protected:
|
||||
virtual void clear_screen();
|
||||
|
||||
|
@ -76,6 +76,10 @@ class HealthdDraw {
|
|||
|
||||
// true if minui init'ed OK, false if minui init failed
|
||||
bool graphics_available;
|
||||
|
||||
private:
|
||||
// Configures font using given animation.
|
||||
HealthdDraw(animation* anim);
|
||||
};
|
||||
|
||||
#endif // HEALTHD_DRAW_H
|
||||
|
|
|
@ -218,9 +218,7 @@ static void dump_last_kmsg(void) {
|
|||
char* ptr;
|
||||
size_t len;
|
||||
|
||||
LOGW("\n");
|
||||
LOGW("*************** LAST KMSG ***************\n");
|
||||
LOGW("\n");
|
||||
const char* kmsg[] = {
|
||||
// clang-format off
|
||||
"/sys/fs/pstore/console-ramoops-0",
|
||||
|
@ -263,9 +261,7 @@ static void dump_last_kmsg(void) {
|
|||
}
|
||||
|
||||
out:
|
||||
LOGW("\n");
|
||||
LOGW("************* END LAST KMSG *************\n");
|
||||
LOGW("\n");
|
||||
}
|
||||
|
||||
static int request_suspend(bool enable) {
|
||||
|
@ -325,7 +321,8 @@ void Charger::UpdateScreenState(int64_t now) {
|
|||
}
|
||||
}
|
||||
|
||||
healthd_draw_.reset(new HealthdDraw(&batt_anim_));
|
||||
healthd_draw_ = HealthdDraw::Create(&batt_anim_);
|
||||
if (healthd_draw_ == nullptr) return;
|
||||
|
||||
if (android::sysprop::ChargerProperties::disable_init_blank().value_or(false)) {
|
||||
healthd_draw_->blank_screen(true);
|
||||
|
|
Loading…
Reference in a new issue