[PATCH 3/3] HACK: e1000: don't check for FLSWCTL.GLDONE when waiting for idle
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Mon Oct 9 07:24:08 PDT 2017
On Mon, Oct 09, 2017 at 11:36:16AM +0200, Uwe Kleine-König wrote:
> I don't understand all the consequences of this patch yet, but this makes reading
> out the flash chip connected to an i210 work for me.
> ---
> drivers/net/e1000/eeprom.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/e1000/eeprom.c b/drivers/net/e1000/eeprom.c
> index 739bc17a519e..482a969f8d56 100644
> --- a/drivers/net/e1000/eeprom.c
> +++ b/drivers/net/e1000/eeprom.c
> @@ -709,8 +709,8 @@ static int e1000_flash_mode_wait_for_idle(struct e1000_hw *hw)
> * execution by polling only FLSWCTL.DONE */
>
> const int ret = e1000_poll_reg(hw, E1000_FLSWCTL,
> - E1000_FLSWCTL_DONE | E1000_FLSWCTL_GLDONE,
> - E1000_FLSWCTL_DONE | E1000_FLSWCTL_GLDONE,
> + E1000_FLSWCTL_DONE,
> + E1000_FLSWCTL_DONE,
I tested a bit with and without this change at it seems as long as
nothing "strange" happens, testing for both FLSWCTL.DONE and
FLSWCTL.GLDONE (i.e. not applying my HACK patch) works fine.
Still I think only testing for FLSWCTL.DONE is better because it works
well even if the state machine is in the middle of a read request and
then changing the command (which is always done after
e1000_flash_mode_wait_for_idle()) should work well.
I'll resend with a better commit log once I tested this.
Alexey: I didn't understand the comment above the patched line, maybe
I'm missing something?
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the barebox
mailing list