Hi, > From: linux-acpi-owner@xxxxxxxxxxxxxxx [mailto:linux-acpi-owner@xxxxxxxxxxxxxxx] On Behalf Of Lan Tianyu > Sent: Monday, June 16, 2014 10:12 AM > To: David Rientjes > Cc: rjw@xxxxxxxxxxxxx; lenb@xxxxxxxxxx; naszar@xxxxx; linux-acpi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] ACPI/Battery: Retry to get Battery information if failed during probing > > On 2014年06月14日 05:46, David Rientjes wrote: > > On Fri, 13 Jun 2014, Lan Tianyu wrote: > > > >> How about this? > >> > >> - result = acpi_battery_update(battery, false); > >> - if (result) > >> + > >> + /* > >> + * Some machines'(E,G Lenovo Z480) ECs are not stable Just a reminder. This statement may not be true. The issue may be caused by the EC driver itself. So we need to investigate. > >> + * during boot up and this causes battery driver fails to be > >> + * probed due to failure of getting battery information > >> + * from EC sometimes. After several retries, the operation > >> + * may work. So add retry code here and 20ms sleep between > >> + * every retries. > >> + */ > >> + while (acpi_battery_update(battery, false) && retry--) If EC hardware is stable, why we need to do retry here? Thanks and best regards -Lv > >> + msleep(20); > >> + if (!retry) { > >> + result = -ENODEV; > >> goto fail; > >> + } > >> + > > > > I think you want --retry and not retry--. > > My original purpose is to retry 5 times after the first try fails. > If use "--retry" here, it just retries 4 times. > > > Otherwise it's possible for the > > final call to acpi_battery_update() to succeed and now it's returning > > -ENODEV. > > > > Yes, it maybe and I will change code like the following. > > while ((result = acpi_battery_update(battery, false)) && retry--) > msleep(20); > if (result) > goto fail; > > > -- > Best regards > Tianyu Lan > -- > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html ��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f