06 Apr, 2013

1 commit

  • This reverts commit 0ef1594c017521ea89278e80fe3f80dafb17abde.

    This patch introduced a few races which cannot be easily fixed with a
    small follow-up patch. Furthermore, the SoC with the broken hardware
    register, which this patch intended to add support for, can only be used
    with device trees, which this driver currently does not support.

    [ Here is the discussion that led to this "revert" patch:
    https://lkml.org/lkml/2013/4/3/176 ]

    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Nicolas Ferre
    Signed-off-by: Linus Torvalds

    Johan Hovold
     

23 Mar, 2013

1 commit

  • On some revisions of AT91 SoCs, the RTC IMR register is not working.
    Instead of elaborating a workaround for that specific SoC or IP version,
    we simply use a software variable to store the Interrupt Mask Register
    and modify it for each enabling/disabling of an interrupt. The overhead
    of this is negligible anyway.

    The interrupt mask register (IMR) for the RTC is broken on the AT91SAM9x5
    sub-family of SoCs (good overview of the members here:
    http://www.eewiki.net/display/linuxonarm/AT91SAM9x5 ). The "user visible
    effect" is the RTC doesn't work.

    That sub-family is less than two years old and only has devicetree (DT)
    support and came online circa lk 3.7 . The dust is yet to settle on the
    DT stuff at least for AT91 SoCs (translation: lots of stuff is still
    broken, so much that it is hard to know where to start).

    The fix in the patch is pretty simple: just shadow the silicon IMR
    register with a variable in the driver. Some older SoCs (pre-DT) use the
    the rtc-at91rm9200 driver (e.g. obviously the AT91RM9200) and they should
    not be impacted by the change. There shouldn't be a large volume of
    interrupts associated with a RTC.

    Signed-off-by: Nicolas Ferre
    Reported-by: Douglas Gilbert
    Cc: Jean-Christophe PLAGNIOL-VILLARD
    Cc: Ludovic Desroches
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     

06 Nov, 2012

1 commit