aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-06-06fs/hfsplus/wrapper.c: replace shift loop by ilog2Fabian Frederick1-3/+1
Replace while blocksize;shift by ilog2 Signed-off-by: Fabian Frederick <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: Joe Perches <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06hfsplus: fix "unused node is not erased" errorSergei Antonov6-7/+28
Zero newly allocated extents in the catalog tree if volume attributes tell us to. Not doing so we risk getting the "unused node is not erased" error. See kHFSUnusedNodeFix flag in Apple's source code for reference. There was a previous commit clearing the node when it is freed: commit 899bed05e9f6 ("hfsplus: fix issue with unzeroed unused b-tree nodes"). But it did not handle newly allocated extents (this patch fixes it). And it zeroed nodes in all trees unconditionally which is an overkill. This patch adds a condition and also switches to 'tree->node_size' as a simpler method of getting the length to zero. Signed-off-by: Sergei Antonov <[email protected]> Cc: Anton Altaparmakov <[email protected]> Cc: Al Viro <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: Hin-Tak Leung <[email protected]> Cc: Kyle Laracey <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/hfsplus/wrapper.c: replace min/casting by min_tFabian Frederick1-3/+3
Also add * before function comments (it was not detected by kernel-doc) Signed-off-by: Fabian Frederick <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/hfsplus/options.c: replace seq_printf by seq_putsFabian Frederick1-5/+4
Replace seq_printf where possible Signed-off-by: Fabian Frederick <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/hfsplus/bnode.c: replace min/casting by min_tFabian Frederick1-17/+15
Also fixes some pr_ formats Signed-off-by: Fabian Frederick <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06hfsplus: emit proper file type from readdirSergei Antonov1-1/+19
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 <[email protected]> Cc: Anton Altaparmakov <[email protected]> Cc: Al Viro <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: Hin-Tak Leung <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06hfsplus: remove unused routine hfsplus_attr_build_key_uniHin-Tak Leung2-28/+0
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 <[email protected]> Cc: Sougata Santra <[email protected]> Cc: Anton Altaparmakov <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: Al Viro <[email protected]> Cc: Christoph Hellwig <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06hfsplus: correct usage of HFSPLUS_ATTR_MAX_STRLEN for non-English attributesHin-Tak Leung5-66/+94
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. [[email protected]: fix build] [[email protected]: fix build] Signed-off-by: Hin-Tak Leung <[email protected]> Cc: Anton Altaparmakov <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: Al Viro <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Sougata Santra <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06hfsplus: fix worst-case unicode to char conversion of file names and attributesHin-Tak Leung2-5/+21
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. [[email protected]: fix build] Signed-off-by: Hin-Tak Leung <[email protected]> Reviewed-by: Anton Altaparmakov <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: Al Viro <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Sougata Santra <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/coda: use __func__Fabian Frederick5-33/+34
Replace all function names by __func__ in pr_foo() Signed-off-by: Fabian Frederick <[email protected]> Cc: Jan Harkes <[email protected]> Cc: Joe Perches <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/coda: logging prefix uniformizationFabian Frederick5-8/+14
- Add pr_fmt based on module name. - Remove Coda: coda: from pr_foo() Signed-off-by: Fabian Frederick <[email protected]> Cc: Jan Harkes <[email protected]> Cc: Joe Perches <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/coda: replace printk by pr_foo()Fabian Frederick6-47/+48
No level printk converted to pr_warn or pr_info Signed-off-by: Fabian Frederick <[email protected]> Cc: Jan Harkes <[email protected]> Cc: Joe Perches <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/befs: kernel-doc fixesFabian Frederick3-11/+11
Fix some comment errors. Signed-off-by: Fabian Frederick <[email protected]> Cc: Randy Dunlap <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/befs/linuxvfs.c: remove positive test on sector_tFabian Frederick1-8/+0
sector_t is unsigned. Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/befs/btree.c: replace strncpy by strlcpy + coding style fixingFabian Frederick1-4/+3
- strncpy + end of string assignement replaced by strlcpy - Fix endif }; - Fix typo Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06fs/befs/linuxvfs.c: replace strncpy by strlcpyFabian Frederick1-3/+2
strncpy + end of string assignment replaced by strlcpy Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-pxa.c: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-sa1100.c: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-omap.c: enable RTC_IRQWAKEEN bits when Alarm is setLokesh Vutla1-34/+33
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 <[email protected]> Acked-by: Sekhar Nori <[email protected]> Cc: Grant Likely <[email protected]> Cc: Rob Herring <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06ARM: at91: fix at91_sysirq_mask_rtc for sam9x5 SoCsBoris BREZILLON1-9/+13
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 <[email protected]> Reported-by: Bryan Evenson <[email protected]> Reviewed-by: Johan Hovold <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Cc: Bryan Evenson <[email protected]> Cc: Andrew Victor <[email protected]> Cc: Jean-Christophe Plagniol-Villard <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Mark Roszko <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irqBoris BREZILLON1-2/+14
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 <[email protected]> Reported-by: Bryan Evenson <[email protected]> Tested-by: Bryan Evenson <[email protected]> Cc: Andrew Victor <[email protected]> Cc: Nicolas Ferre <[email protected]> Cc: Jean-Christophe Plagniol-Villard <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-hym8563.c: add optional clock-output-names propertyHeiko Stuebner2-0/+6
This enables the setting of a custom clock name for the clock provided by the hym8563 rtc. Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Mike Turquette <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-bfin.c: do not abort when requesting irq failsMike Frysinger1-9/+7
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 <[email protected]> Reported-by: Ales Novak <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-omap.c: add support for enabling 32khz clockSekhar Nori1-1/+15
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 <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Lokesh Vutla <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-omap.c: use BIT() macroSekhar Nori1-21/+21
Use BIT() macro for RTC_HAS_<FEATURE> 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 <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Lokesh Vutla <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-omap.c: remove multiple device id checksSekhar Nori1-4/+9
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 <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Lokesh Vutla <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: da9063: RTC driverOpensource [Steve Twiss]3-0/+344
Add the RTC driver for DA9063. [[email protected]: coding-style tweaks] Signed-off-by: Opensource [Steve Twiss] <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Lee Jones <[email protected]> Cc: Mark Brown <[email protected]> Cc: Philipp Zabel <[email protected]> Cc: Samuel Ortiz <[email protected]> Cc: David Dajun Chen <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc: add support for Microchip MCP795Josef Gajdusek3-0/+208
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 <[email protected]> Cc: Jingoo Han <[email protected]> Acked-by: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-ds1343.c: fix potential race conditionRaghavendra Ganiga1-14/+24
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 <[email protected]> Acked-by: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: fix build errorRaghavendra Ganiga1-0/+1
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 <[email protected]> Acked-by: Alessandro Zummo <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc: add support for maxim dallas rtc ds1343 and ds1344Raghavendra Ganiga3-0/+690
Signed-off-by: Raghavendra Chandra Ganiga <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: rtc-palmas: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: rtc-mv: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: isl12057: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: rtc-hym8563: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Acked-by: Heiko Stbner <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06rtc: rtc-ds1742: make of_device_id array constJingoo Han1-1/+1
Make of_device_id array const, because all OF functions handle it as const. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-da9052.c: ALARM causes interrupt stormAnthony Olech1-56/+66
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 <[email protected]> Cc: David Dajun Chen <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-88pm860x.c: add missing of_node_put()Krzysztof Kozlowski1-0/+1
Add missing of_node_put() to decrement the reference count. Signed-off-by: Krzysztof Kozlowski <[email protected]> Acked-by: Jingoo Han <[email protected]> Cc: Haojian Zhuang <[email protected]> Cc: Sachin Kamat <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-88pm860x.c: use of_get_child_by_name()Krzysztof Kozlowski1-1/+1
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 <[email protected]> Acked-by: Jingoo Han <[email protected]> Cc: Haojian Zhuang <[email protected]> Cc: Sachin Kamat <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06arch/mips/dec: switch DECstation systems to rtc-cmosMaciej W. Rozycki2-1/+45
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 <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Ralf Baechle <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-cmos.c: drivers/char/rtc.c features for DECstation supportMaciej W. Rozycki2-25/+64
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. [[email protected]: fix weird code layout] Signed-off-by: Maciej W. Rozycki <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Ralf Baechle <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-efi.c: avoid subtracting day twice when computing year daysLee, Chun-Yi1-1/+1
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 <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-m41t80.c: add support for MicroCrystal rv4162Wolfram Sang2-2/+3
Signed-off-by: Wolfram Sang <[email protected]> Cc: Jingoo Han <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-m41t80.c: propagate error value from smbus functionsWolfram Sang1-14/+23
Don't replace the value we got from the I2C layer, just pass it on. Signed-off-by: Wolfram Sang <[email protected]> Cc: Jingoo Han <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-m41t80.c: clean up error pathsWolfram Sang1-41/+23
There is no cleanup needed when something fails in probe, so no need for goto. Directly return when something fails. Signed-off-by: Wolfram Sang <[email protected]> Cc: Jingoo Han <[email protected]> Acked-by: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/rtc-m41t80.c: remove DRV_VERSION macroWolfram Sang1-6/+0
History is in git, no need for sperate versioning. Also remove the success printout, RTC core does it, too. Signed-off-by: Wolfram Sang <[email protected]> Cc: Jingoo Han <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06arm64: add APM X-Gene SoC RTC DTS entryLoc Ho1-0/+21
This patch adds APM X-Gene SoC RTC DTS entry Signed-off-by: Rameshwar Prasad Sahu <[email protected]> Signed-off-by: Loc Ho <[email protected]> Cc: Jon Masters <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc: add APM X-Gene SoC RTC driverLoc Ho3-0/+288
Add support for the APM X-Gene SoC RTC driver. Signed-off-by: Rameshwar Prasad Sahu <[email protected]> Signed-off-by: Loc Ho <[email protected]> Cc: Jon Masters <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06Documentation/devicetree/bindings: add documentation for the APM X-Gene SoC ↵Loc Ho1-0/+28
RTC DTS binding Signed-off-by: Rameshwar Prasad Sahu <[email protected]> Signed-off-by: Loc Ho <[email protected]> Cc: Jon Masters <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-06drivers/rtc/interface.c: fix infinite loop in initializing the alarmAles Novak1-2/+12
In __rtc_read_alarm(), if the alarm time retrieved by rtc_read_alarm_internal() from the device contains invalid values (e.g. month=2,mday=31) and the year not set (=-1), the initialization will loop infinitely because the year-fixing loop expects the time being invalid due to leap year. Fix reduces the loop to the leap years and adds final validity check. Signed-off-by: Ales Novak <[email protected]> Acked-by: Alessandro Zummo <[email protected]> Reported-by: Jiri Bohac <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>