07 Jun, 2014

40 commits

  • Also add * before function comments (it was not detected by kernel-doc)

    Signed-off-by: Fabian Frederick
    Cc: Vyacheslav Dubeyko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Replace seq_printf where possible

    Signed-off-by: Fabian Frederick
    Cc: Vyacheslav Dubeyko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Also fixes some pr_ formats

    Signed-off-by: Fabian Frederick
    Cc: Vyacheslav Dubeyko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • hfsplus_readdir() incorrectly returned DT_REG for symbolic links and
    special files. Return DT_REG, DT_LNK, DT_FIFO, DT_CHR, DT_BLK, DT_SOCK,
    or DT_UNKNOWN according to mode field in catalog record. Programs
    relying on information from readdir will now work correctly with HFS+.

    Signed-off-by: Sergei Antonov
    Cc: Anton Altaparmakov
    Cc: Al Viro
    Cc: Christoph Hellwig
    Cc: Vyacheslav Dubeyko
    Cc: Hin-Tak Leung
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergei Antonov
     
  • The directory/file catalog b-tree equivalent, hfsplus_build_key_uni(),
    is used by hfsplus_find_cat() for internal referencing between catalog
    records. There is no corresponding usage for attributes - attribute
    records do not refer to one another.

    Signed-off-by: Hin-Tak Leung
    Cc: Sougata Santra
    Cc: Anton Altaparmakov
    Cc: Vyacheslav Dubeyko
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hin-Tak Leung
     
  • HFSPLUS_ATTR_MAX_STRLEN (=127) is the limit of attribute names for the
    number of unicode character (UTF-16BE) storable in the HFS+ file system.
    Almost all the current usage of it is wrong, in relation to NLS to
    on-disk conversion.

    Except for one use calling hfsplus_asc2uni (which should stay the same)
    and its uses in calling hfsplus_uni2asc (which was corrected in the
    earlier patch in this series concerning usage of hfsplus_uni2asc), all
    the other uses are of the forms:

    - char buffer[size]

    - bound check: "if (namespace_adjusted_input_length > size) return failure;"

    Conversion between on-disk unicode representation and NLS char strings
    (in whichever direction) always needs to accommodate the worst-case NLS
    conversion, so all char buffers of that size need to have a
    NLS_MAX_CHARSET_SIZE x .

    The bound checks are all wrong, since they compare nls_length derived
    from strlen() to a unicode length limit.

    It turns out that all the bound-checks do is to protect
    hfsplus_asc2uni(), which can fail if the input is too large.

    There is only one usage of it as far as attributes are concerned, in
    hfsplus_attr_build_key(). It is in turn used by hfsplus_find_attr(),
    hfsplus_create_attr(), hfsplus_delete_attr(). Thus making sure that
    errors from hfsplus_asc2uni() is caught in hfsplus_attr_build_key() and
    propagated is sufficient to replace all the bound checks.

    Unpropagated errors from hfsplus_asc2uni() in the file catalog code was
    addressed recently in an independent patch "hfsplus: fix longname
    handling" by Sougata Santra.

    Before this patch, trying to set a 55 CJK character (in a UTF-8 locale,
    > 127/3=42) attribute plus user prefix fails with:

    $ setfattr -n user.`cat testing-string` -v `cat testing-string` \
    testing-string
    setfattr: testing-string: Operation not supported

    and retrieving a stored long attributes is particular ugly(!):

    find /mnt/* -type f -exec getfattr -d {} \;
    getfattr: /mnt/testing-string: Input/output error

    with console log:
    [268008.389781] hfsplus: unicode conversion failed

    After the patch, both of the above works.

    FYI, the test attribute string is prepared with:

    echo -e -n \
    "\xe9\x80\x99\xe6\x98\xaf\xe4\xb8\x80\xe5\x80\x8b\xe9\x9d\x9e\xe5" \
    "\xb8\xb8\xe6\xbc\xab\xe9\x95\xb7\xe8\x80\x8c\xe6\xa5\xb5\xe5\x85" \
    "\xb6\xe4\xb9\x8f\xe5\x91\xb3\xe5\x92\x8c\xe7\x9b\xb8\xe7\x95\xb6" \
    "\xe7\x84\xa1\xe8\xb6\xa3\xe3\x80\x81\xe4\xbb\xa5\xe5\x8f\x8a\xe7" \
    "\x84\xa1\xe7\x94\xa8\xe7\x9a\x84\xe3\x80\x81\xe5\x86\x8d\xe5\x8a" \
    "\xa0\xe4\xb8\x8a\xe6\xaf\xab\xe7\x84\xa1\xe6\x84\x8f\xe7\xbe\xa9" \
    "\xe7\x9a\x84\xe6\x93\xb4\xe5\xb1\x95\xe5\xb1\xac\xe6\x80\xa7\xef" \
    "\xbc\x8c\xe8\x80\x8c\xe5\x85\xb6\xe5\x94\xaf\xe4\xb8\x80\xe5\x89" \
    "\xb5\xe5\xbb\xba\xe7\x9b\xae\xe7\x9a\x84\xe5\x83\x85\xe6\x98\xaf" \
    "\xe7\x82\xba\xe4\xba\x86\xe6\xb8\xac\xe8\xa9\xa6\xe4\xbd\x9c\xe7" \
    "\x94\xa8\xe3\x80\x82" | tr -d ' '

    (= "pointlessly long attribute for testing", elaborate Chinese in
    UTF-8 enoding).

    However, it is not possible to set double the size (110 + 5 is still
    under 127) in a UTF-8 locale:

    $setfattr -n user.`cat testing-string testing-string` -v \
    `cat testing-string testing-string` testing-string
    setfattr: testing-string: Numerical result out of range

    110 CJK char in UTF-8 is 330 bytes - the generic get/set attribute
    system call code in linux/fs/xattr.c imposes a 255 byte limit. One can
    use a combination of iconv to encode content, changing terminal locale
    for viewing, and an nls=cp932/cp936/cp949/cp950 mount option to fully
    use 127-unicode attribute in a double-byte locale.

    Also, as an additional information, it is possible to (mis-)use unicode
    half-width/full-width forms (U+FFxx) to write attributes which looks
    like english but not actually ascii.

    Thanks Anton Altaparmakov for reviewing the earlier ideas behind this
    change.

    [akpm@linux-foundation.org: fix build]
    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Hin-Tak Leung
    Cc: Anton Altaparmakov
    Cc: Vyacheslav Dubeyko
    Cc: Al Viro
    Cc: Christoph Hellwig
    Cc: Sougata Santra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hin-Tak Leung
     
  • This is a series of 3 patches which corrects issues in HFS+ concerning
    the use of non-english file names and attributes. Names and attributes
    are stored internally as UTF-16 units up to a fixed maximum size, and
    convert to and from user-representation by NLS. The code incorrectly
    assume that NLS string lengths are equal to unicode lengths, which is
    only true for English ascii usage.

    This patch (of 3):

    The HFS Plus Volume Format specification (TN1150) states that file names
    are stored internally as a maximum of 255 unicode characters, as defined
    by The Unicode Standard, Version 2.0 [Unicode, Inc. ISBN
    0-201-48345-9]. File names are converted by the NLS system on Linux
    before presented to the user.

    255 CJK characters converts to UTF-8 with 1 unicode character to up to 3
    bytes, and to GB18030 with 1 unicode character to up to 4 bytes. Thus,
    trying in a UTF-8 locale to list files with names of more than 85 CJK
    characters results in:

    $ ls /mnt
    ls: reading directory /mnt: File name too long

    The receiving buffer to hfsplus_uni2asc() needs to be 255 x
    NLS_MAX_CHARSET_SIZE bytes, not 255 bytes as the code has always been.

    Similar consideration applies to attributes, which are stored internally
    as a maximum of 127 UTF-16BE units. See XNU source for an up-to-date
    reference on attributes.

    Strictly speaking, the maximum value of NLS_MAX_CHARSET_SIZE = 6 is not
    attainable in the case of conversion to UTF-8, as going beyond 3 bytes
    requires the use of surrogate pairs, i.e. consuming two input units.

    Thanks Anton Altaparmakov for reviewing an earlier version of this
    change.

    This patch fixes all callers of hfsplus_uni2asc(), and also enables the
    use of long non-English file names in HFS+. The getting and setting,
    and general usage of long non-English attributes requires further
    forthcoming work, in the following patches of this series.

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Hin-Tak Leung
    Reviewed-by: Anton Altaparmakov
    Cc: Vyacheslav Dubeyko
    Cc: Al Viro
    Cc: Christoph Hellwig
    Cc: Sougata Santra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hin-Tak Leung
     
  • Replace all function names by __func__ in pr_foo()

    Signed-off-by: Fabian Frederick
    Cc: Jan Harkes
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • - Add pr_fmt based on module name.

    - Remove Coda: coda: from pr_foo()

    Signed-off-by: Fabian Frederick
    Cc: Jan Harkes
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • No level printk converted to pr_warn or pr_info

    Signed-off-by: Fabian Frederick
    Cc: Jan Harkes
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Fix some comment errors.

    Signed-off-by: Fabian Frederick
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • sector_t is unsigned.

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • - strncpy + end of string assignement replaced by strlcpy

    - Fix endif };

    - Fix typo

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • strncpy + end of string assignment replaced by strlcpy

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Make of_device_id array const, because all OF functions handle
    it as const.

    Signed-off-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • Make of_device_id array const, because all OF functions handle
    it as const.

    Signed-off-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • When RTC CLKTRCTRL bit is configured in HW_AUTO, module goes to sleep in
    IDLE state.

    The Alarm SWakeup event can be used to wakeup the RTC when it is in IDLE
    state. In order to do so, the alarm needs to be set and enabled before
    RTC enters the IDLE state. Also the wakeup generation for alarm/timer
    event needs to be set (bits [1:0] in RTC_IRQWAKEEN register).

    Currently RTC_IRQWAKEEN bits are set only in suspend/resume paths. With
    this ALARM interrupts are not generated when it enters IDLE state. So
    programming the RTC_IRQWAKEEN bits when ever ALARM is set.

    Signed-off-by: Lokesh Vutla
    Acked-by: Sekhar Nori
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lokesh Vutla
     
  • sam9x5 SoCs have the following errata:
    "RTC: Interrupt Mask Register cannot be used
    Interrupt Mask Register read always returns 0."

    Hence we should not rely on what IMR claims about already masked IRQs
    and just disable all IRQs.

    Signed-off-by: Boris BREZILLON
    Reported-by: Bryan Evenson
    Reviewed-by: Johan Hovold
    Acked-by: Nicolas Ferre
    Cc: Bryan Evenson
    Cc: Andrew Victor
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Alessandro Zummo
    Cc: Mark Roszko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Boris BREZILLON
     
  • The rtc user must wait at least 1 sec between each time/calandar update
    (see atmel's datasheet chapter "Updating Time/Calendar").

    Use the 1Hz interrupt to update the at91_rtc_upd_rdy flag and wait for
    the at91_rtc_wait_upd_rdy event if the rtc is not ready.

    This patch fixes a deadlock in an uninterruptible wait when the RTC is
    updated more than once every second. AFAICT the bug is here from the
    beginning, but I think we should at least backport this fix to 3.10 and
    the following longterm and stable releases.

    Signed-off-by: Boris BREZILLON
    Reported-by: Bryan Evenson
    Tested-by: Bryan Evenson
    Cc: Andrew Victor
    Cc: Nicolas Ferre
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Alessandro Zummo
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Boris BREZILLON
     
  • This enables the setting of a custom clock name for the clock provided by
    the hym8563 rtc.

    Signed-off-by: Heiko Stuebner
    Reviewed-by: Mike Turquette
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Stuebner
     
  • The RTC framework does not let you return an error once a call to
    devm_rtc_device_register has succeeded. Avoid doing that when the IRQ
    request fails as we can still support reading/writing the clock without
    the IRQ.

    Signed-off-by: Mike Frysinger
    Reported-by: Ales Novak
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • Newer versions of OMAP RTC IP such as those found in AM335x and DRA7x
    need an explicit enable of 32khz functional clock which ticks the RTC.

    AM335x support was working so far because of settings done in U-Boot.
    However, the DRA7x U-Boot does no such enable of 32khz clock and this
    patch is need to get the RTC to work on DRA7x at least. In general, it
    is better to not depend on settings done in U-Boot.

    Thanks to Lokesh Vutla for noticing this.

    Signed-off-by: Sekhar Nori
    Cc: Alessandro Zummo
    Cc: Lokesh Vutla
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sekhar Nori
     
  • Use BIT() macro for RTC_HAS_ defines instead of hand-writing
    bit masks.

    Use BIT() macros for register bit field definitions.

    While at it, fix indentation done using spaces.

    No functional change in this patch.

    Signed-off-by: Sekhar Nori
    Cc: Alessandro Zummo
    Cc: Lokesh Vutla
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sekhar Nori
     
  • Remove multiple superfluous device id checks. Since an id_table is
    present in the driver probe() should never encounter an empty device id
    entry. In case of OF style match, of_match_device() returns an matching
    entry.

    For paranoia sake, check for device id entry once and fail probe() if none
    is found. This is much better than checking for it multiple times.

    Signed-off-by: Sekhar Nori
    Cc: Alessandro Zummo
    Cc: Lokesh Vutla
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sekhar Nori
     
  • Add the RTC driver for DA9063.

    [akpm@linux-foundation.org: coding-style tweaks]
    Signed-off-by: Opensource [Steve Twiss]
    Cc: Alessandro Zummo
    Cc: Lee Jones
    Cc: Mark Brown
    Cc: Philipp Zabel
    Cc: Samuel Ortiz
    Cc: David Dajun Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Opensource [Steve Twiss]
     
  • Add driver for SPI RTC Microchip MCP795. Only supports saving/loading
    time from the chip (i. e. no alarms/power events/ID).

    Signed-off-by: Josef Gajdusek
    Cc: Jingoo Han
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josef Gajdusek
     
  • Avoid the potential race condition by avoiding bailing out of driver in
    probe after registering with rtc subsystem

    Also the set_alarm , read_alarm and alarm_irq_enable returns error if irq
    registration fails in probe.

    Also the sysfs will not create entry for alarm if irq registration fails
    in probe.

    Signed-off-by: Raghavendra Chandra Ganiga
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Raghavendra Ganiga
     
  • Fix the following build errors reported by kbuild test robot by selecting
    REGMAP_SPI in Kconfig file

    drivers/built-in.o: In function `ds1343_probe':
    rtc-ds1343.c:(.text+0x1baf8f): undefined reference to `devm_regmap_init_spi'

    Signed-off-by: Raghavendra Chandra Ganiga
    Acked-by: Alessandro Zummo
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Raghavendra Ganiga
     
  • Signed-off-by: Raghavendra Chandra Ganiga
    Cc: Alessandro Zummo
    Cc: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Raghavendra Ganiga
     
  • Make of_device_id array const, because all OF functions handle it as
    const.

    Signed-off-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • Make of_device_id array const, because all OF functions handle it as
    const.

    Signed-off-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • Make of_device_id array const, because all OF functions handle it as
    const.

    Signed-off-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • Make of_device_id array const, because all OF functions handle it as
    const.

    Signed-off-by: Jingoo Han
    Acked-by: Heiko Stbner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • Make of_device_id array const, because all OF functions handle it as
    const.

    Signed-off-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     
  • Setting the alarm to a time not on a minute boundary results in repeated
    interrupts being generated by the DA9052/3 PMIC device until the kernel
    RTC core sees that the alarm has rung. Sometimes the number and frequency
    of interrupts can cause the kernel to disable the IRQ line used by the
    DA9052/3 PMIC with disasterous consequences. This patch fixes the
    problem.

    Even though the DA9052/3 PMIC is capable generating periodic interrupts,
    ie TICKS, the method used to distinguish RTC_AF from RTC_PF events was
    flawed and can not work in conjunction with the regmap_irq kernel core.
    Thus that flawed detection has also been removed by the DA9052/3 PMIC RTC
    driver's irq handler, so that it no longer reports the wrong type of event
    to the kernel RTC core.

    The internal static functions within the DA9052/3 PMIC RTC driver have
    been changed to pass the 'da9052_rtc' structure instead of the 'da9052'
    because there is no backwards pointer from the 'da9052' structure.

    This patch fixes the three issues described above. The first is serious
    because usiing the RTC alarm set to a non minute boundary will eventually
    cause all component drivers that depend on the interrupt line to fail.
    The solution adopted is to round up to alarm time to the next highest
    minute.

    The second bug, reporting a RTC_PF event instead of an RTC_AF event turns
    out to not matter with the current implementation of the kernel RTC core
    as it seems to ignore the event type. However, should that change in the
    future it is better to fix the issue now and not have 'problems waiting to
    happen'

    The third set of changes are to make the da9052_rtc structure available to
    all the local internal functions in the driver. This was done during
    testing so that diagnostic data could be stored there. Should the
    solution to the first issue be found not acceptable, then the alternative
    of using the TICKS interrupt at the fixed one second interval in order to
    step to the exact second of the requested alarm requires an extra (alarm
    time) piece of data to be stored. In devices that use the alarm function
    to wake up from sleep, accuracy to the second will result in the device
    being awake for up to nearly a minute longer than expected.

    Signed-off-by: Anthony Olech
    Cc: David Dajun Chen
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anthony Olech
     
  • Add missing of_node_put() to decrement the reference count.

    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Jingoo Han
    Cc: Haojian Zhuang
    Cc: Sachin Kamat
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • Use of_get_child_by_name() to obtain reference to charger node instead of
    of_find_node_by_name() which can walk outside of the parent node.

    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Jingoo Han
    Cc: Haojian Zhuang
    Cc: Sachin Kamat
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • This adds an RTC platform device for DECstation systems so that they can
    use the rtc-cmos driver for their RTC device.

    Signed-off-by: Maciej W. Rozycki
    Cc: Alessandro Zummo
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maciej W. Rozycki
     
  • This brings in drivers/char/rtc.c functionality required for DECstation
    and, should the maintainers decide to switch, Alpha systems to use
    rtc-cmos.

    Specifically these features are made available:

    * RTC iomem rather than x86/PCI port I/O mapping, controlled with the
    RTC_IOMAPPED macro as with the original driver. The DS1287A chip in all
    DECstation systems is mapped in the host bus address space as a
    contiguous block of 64 32-bit words of which the least significant byte
    accesses the RTC chip for both reads and writes. All the address and
    data window register accesses are made transparently by the chipset glue
    logic so that the device appears directly mapped on the host bus.

    * A way to set the size of the address space explicitly with the
    newly-added `address_space' member of the platform part of the RTC
    device structure. This avoids the unreliable heuristics that does not
    work in a setup where the RTC is not explicitly accessed with the usual
    address and data window register pair.

    * The ability to use the RTC periodic interrupt as a system clock
    device, which is implemented by arch/mips/kernel/cevt-ds1287.c for
    DECstation systems and takes the RTC interrupt away from the RTC driver.
    Eventually hooking back to the clock device's interrupt handler should
    be possible for the purpose of the alarm clock and possibly also
    update-in-progress interrupt, but this is not done by this change.

    o To avoid interfering with the clock interrupt all the places where
    the RTC interrupt mask is fiddled with are only executed if and IRQ
    has been assigned to the RTC driver.

    o To avoid changing the clock setup Register A is not fiddled with
    if CMOS_RTC_FLAGS_NOFREQ is set in the newly-added `flags' member of
    the platform part of the RTC device structure. Originally, in
    drivers/char/rtc.c, this was keyed with the absence of the RTC
    interrupt, just like the interrupt mask, but there only the periodic
    interrupt frequency is set, whereas rtc-cmos also sets the divider
    bits. Therefore a new flag is introduced so that systems where the
    RTC interrupt is not usable rather than used as a system clock device
    can fully initialise the RTC.

    * A small clean-up is made to the IRQ assignment code that makes the IRQ
    number hardcoded to -1 rather than arbitrary -ENXIO (or whatever error
    happens to be returned by platform_get_irq) where no IRQ has been
    assigned to the RTC driver (NO_IRQ might be another candidate, but it
    looks like this macro has inconsistent or missing definitions and
    limited use and might therefore be unsafe).

    Verified to work correctly with a DECstation 5000/240 system.

    [akpm@linux-foundation.org: fix weird code layout]
    Signed-off-by: Maciej W. Rozycki
    Cc: Alessandro Zummo
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maciej W. Rozycki
     
  • Compared source code of rtc-lib.c::rtc_year_days() with
    efirtc.c::rtc_year_days(), found the code in rtc-efi decreases value of
    day twice when it computing year days. rtc-lib.c::rtc_year_days() has
    already decrease days and return the year days from 0 to 365.

    Signed-off-by: Lee, Chun-Yi
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee, Chun-Yi