summaryrefslogtreecommitdiffstats
path: root/drivers/char/hpet.c
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] hpet: hpet driver cleanupsRandy Dunlap2005-10-301-30/+35
| | | | | | | | | | | - Use kzalloc() instead of kmalloc + memset. - Clean/fix some printk's. - Use NULL for pointers instead of 0. - Combine hpet busy searching locations into a function call. Signed-off-by: Randy Dunlap <randy_d_dunlap@linux.intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: use HPET physical addresses for dup. detectionRandy Dunlap2005-10-301-5/+15
| | | | | | | | | | | | - Use HPET physical address to detect duplicates, not logical addresses. Using logical (mapped) addresses fails to detect duplicates because ioremap() returns a new mapped address each time. - iounmap() regions when duplicate/busy areas are found. Signed-off-by: Randy Dunlap <randy_d_dunlap@linux.intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: allow HPET FIXED_MEM32 resource typeRandy Dunlap2005-10-301-0/+17
| | | | | | | | | | | Allow the ACPI HPET description table to use a resource type of FIXED_MEM32 for the HPET reource. Use the fixed resoure size of 1 KB for the HPET resource as per the HPET spec. Signed-off-by: Randy Dunlap <randy_d_dunlap@linux.intel.com> Acked-by: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: simplify initialization messageClemens Ladisch2005-10-301-5/+4
| | | | | | | | | | | When booting, display the timer frequency in Hertz instead of as tick length in nanoseconds. Apart from saving a local variable, this makes the message more easily comprehensible. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: remove superfluous indirectionsClemens Ladisch2005-10-301-2/+2
| | | | | | | | | | In the hpet_ioctl_common() function, devp->hd_hpets is already cached in the hpetp variable, so we can use just that. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: fix access to multiple HPET devicesClemens Ladisch2005-10-301-2/+2
| | | | | | | | | | Fix two instances where a function would access the first HPET device instead of the current one. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: fix uninitialized variable in hpet_register()Clemens Ladisch2005-10-301-0/+2
| | | | | | | | | | | Clear the ht_opaque field in the hpet_register() function before searching for a free timer to prevent the function from incorrectly assuming that the search succeeded afterwards. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: fix division by zero in HPET_INFOClemens Ladisch2005-10-301-2/+5
| | | | | | | | | | Fix a division by zero that happened when the HPET_INFO ioctl was called before a timer frequency had been set. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: fix HPET_INFO calls from kernel spaceClemens Ladisch2005-10-301-2/+6
| | | | | | | | | | Fix a wrong memory access in hpet_ioctl_common(). It was not possible to use the HPET_INFO ioctl from kernel space because it always called copy_to_user(). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: allow shared interruptsClemens Ladisch2005-10-301-7/+21
| | | | | | | | | | | | | | | | This patch adds support for shared HPET interrupts. The driver previously acknowledged interrupts for both edge and level interrupts, but didn't actually allow a shared interrupt in the latter case. We use a new per-timer flag to save whether the timer's interrupt might be shared, and use it to do the processing required for level interrupts only if necessary. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Acked-by: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: allow non-power-of-two frequenciesClemens Ladisch2005-10-301-1/+1
| | | | | | | | | | | It was only the RTC hardware that restricted interrupt frequencies to a power of two. There is no reason to take over this restriction into the HPET driver, so remove the offending check. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Acked-by: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: remove superfluous register readsClemens Ladisch2005-10-301-4/+0
| | | | | | | | | | This patch removes several reads of a timer's config register that serve no purpose whatsoever. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Acked-by: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: remove unused variableClemens Ladisch2005-10-301-3/+2
| | | | | | | | | The variable hpet_ntimer is never read, so remove it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Acked-by: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] HPET: make frequency calculations 32 bit safeClemens Ladisch2005-10-301-13/+19
| | | | | | | | | | | | | | | | | | On 32-bit architectures, the multiplication in the argument for hpet_time_div() often overflows. In the typical case of a 14.32 MHz timer, this happens when the desired frequency exceeds 61 Hz. To avoid this multiplication, we can precompute and store the hardware timer frequency, instead of the period, in the device structure, which leaves us with a simple division when computing the number of timer ticks. As a side effect, this also removes a theoretical bug where the timer interpolator's frequency would be computed as a 32-bit value even if the HPET frequency is greater than 2^32 Hz (the HPET spec allows up to 10 GHz). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] hpet: disallow zero interrupt frequencyClemens Ladisch2005-10-301-1/+4
| | | | | | | | | | Disallow setting an interrupt frequency of zero (which would result in a division by zero), and disallow enabling the interrupt when the frequency hasn't yet been set (which would use an interrupt period of zero). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Fix mmap() of /dev/hpetKeir Fraser2005-09-221-1/+0
| | | | | | | | | | | | | | | | The address passed to io_remap_pfn_range() in hpet_mmap() does not need to be converted using __pa(): it is already a physical address. This bug was found and the patch suggested by Clay Harris. I introduced this particular bug when making io_remap_pfn_range changes a few months ago. In fact mmap()ing /dev/hpet has *never* previously worked: before my changes __pa() was being executed on an ioremap()ed virtual address, which is also invalid. Signed-off-by: Keir Fraser <keir@xensource.com> Cc: Robert Picco <Robert.Picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix unusual placement of inline keyword in hpetAdrian Bunk2005-09-101-2/+2
| | | | | | | | | | | | With gcc -W: drivers/char/hpet.c:102: warning: `inline' is not at beginning of declaration drivers/char/hpet.c:109: warning: `inline' is not at beginning of declaration Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge linux-2.6 with linux-acpi-2.6Len Brown2005-09-081-2/+2
|\
| * [PATCH] hpet: fix drift and urlAlex Williamson2005-09-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The HPET driver is using a parts per second drift factor instead of the standard parts per million drift the time interpolator code expects. This patch fixes that problem and updates the URL for the HPET spec. Signed-off-by: Alex Williamson <alex.williamson@hp.com> Cc: "Robert W. Picco" <bob.picco@hp.com> Acked-by: "Pallipadi, Venkatesh" <venkatesh.pallipadi@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [ACPI] Merge acpi-2.6.12 branch into 2.6.13-rc3Len Brown2005-08-051-2/+6
|\ \ | |/ |/| | | Signed-off-by: Len Brown <len.brown@intel.com>
| * [ACPI] HPET driver now checks for acpi_register_gsi() errorsKenji Kaneshige2005-08-041-2/+6
| | | | | | | | | | | | Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Len Brown <len.brown@intel.com>
* | [PATCH] hpet: do_div fixJon Smirl2005-06-251-1/+1
|/ | | | | | | | We don't need to use do_div() on a 32-bit quantity. Signed-off-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-161-0/+994
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
OpenPOWER on IntegriCloud