mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
[PATCH] hpet: allow HPET FIXED_MEM32 resource type
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>
This commit is contained in:
parent
318db8f03b
commit
757c472409
1 changed files with 17 additions and 0 deletions
|
@ -49,6 +49,8 @@
|
||||||
#define HPET_USER_FREQ (64)
|
#define HPET_USER_FREQ (64)
|
||||||
#define HPET_DRIFT (500)
|
#define HPET_DRIFT (500)
|
||||||
|
|
||||||
|
#define HPET_RANGE_SIZE 1024 /* from HPET spec */
|
||||||
|
|
||||||
static u32 hpet_nhpet, hpet_max_freq = HPET_USER_FREQ;
|
static u32 hpet_nhpet, hpet_max_freq = HPET_USER_FREQ;
|
||||||
|
|
||||||
/* A lock for concurrent access by app and isr hpet activity. */
|
/* A lock for concurrent access by app and isr hpet activity. */
|
||||||
|
@ -922,6 +924,21 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data)
|
||||||
for (hpetp = hpets; hpetp; hpetp = hpetp->hp_next)
|
for (hpetp = hpets; hpetp; hpetp = hpetp->hp_next)
|
||||||
if (hpetp->hp_hpet == hdp->hd_address)
|
if (hpetp->hp_hpet == hdp->hd_address)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
} else if (res->id == ACPI_RSTYPE_FIXED_MEM32) {
|
||||||
|
struct acpi_resource_fixed_mem32 *fixmem32;
|
||||||
|
|
||||||
|
fixmem32 = &res->data.fixed_memory32;
|
||||||
|
if (!fixmem32)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
hdp->hd_phys_address = fixmem32->range_base_address;
|
||||||
|
hdp->hd_address = ioremap(fixmem32->range_base_address,
|
||||||
|
HPET_RANGE_SIZE);
|
||||||
|
|
||||||
|
for (hpetp = hpets; hpetp; hpetp = hpetp->hp_next)
|
||||||
|
if (hpetp->hp_hpet == hdp->hd_address) {
|
||||||
|
return -EBUSY;
|
||||||
|
}
|
||||||
} else if (res->id == ACPI_RSTYPE_EXT_IRQ) {
|
} else if (res->id == ACPI_RSTYPE_EXT_IRQ) {
|
||||||
struct acpi_resource_ext_irq *irqp;
|
struct acpi_resource_ext_irq *irqp;
|
||||||
int i;
|
int i;
|
||||||
|
|
Loading…
Add table
Reference in a new issue