Messages in this thread Patch in this message | | | Date | Tue, 18 Oct 2005 13:54:46 -0700 | From | Randy Dunlap <> | Subject | [PATCH 1/3 -mm] hpet: allow HPET FIXED_MEM32 resource type |
| |
From: Randy Dunlap <randy_d_dunlap@linux.intel.com>
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> ---
Index: linux-2614-rc4-mm1/drivers/char/hpet.c =================================================================== --- linux-2614-rc4-mm1.orig/drivers/char/hpet.c +++ linux-2614-rc4-mm1/drivers/char/hpet.c @@ -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(struct for (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;
--- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |