hpet: allow HPET FIXED_MEM32 resource type
PATCH 1/3 hpet: allow HPET FIXED_MEM32 resource type
From: Randy Dunlap <[email protected]>
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 <[email protected]>
Acked-by Bob Picco <[email protected]>
---
drivers/char/hpet.c +17 -0
@@ -49,6 +49,8 @@#define HPET_USER_FREQ (64)#define HPET_DRIFT (500) +#define HPET_RANGE_SIZE 1024/* from HPET spec */ +static u32 hpet_nhpet, hpet_max_freq =HPET_USER_FREQ ;/* A lock for concurrent access by app and isr hpet activity. */
@@ -922,6 +924,21 @@ static acpi_status hpet_resources(structfor (hpetp = hpets; hpetp; hpetp = hpetp->hp_next)if (hpetp->hp_hpet == hdp->hd_address)return -EBUSY ; + }else if (res->type ==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->type ==ACPI_RSTYPE_EXT_IRQ ) {struct acpi_resource_ext_irq *irqp;int i;
---