pc: export applesmc IO port/len
IO port and length will be used in following patch to correctly generate SMC ACPI device in SSDT. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
7056045332
commit
1142e45ffd
@ -145,7 +145,7 @@ static void acpi_get_dsdt(AcpiMiscInfo *info)
|
|||||||
|
|
||||||
/* Patch in appropriate value for AppleSMC _STA */
|
/* Patch in appropriate value for AppleSMC _STA */
|
||||||
*(uint8_t *)(info->dsdt_code + *applesmc_sta) =
|
*(uint8_t *)(info->dsdt_code + *applesmc_sta) =
|
||||||
applesmc_find() ? 0x0b : 0x00;
|
applesmc_port() ? 0x0b : 0x00;
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
|
@ -43,7 +43,6 @@
|
|||||||
/* command/status port used by Apple SMC */
|
/* command/status port used by Apple SMC */
|
||||||
#define APPLESMC_CMD_PORT 0x4
|
#define APPLESMC_CMD_PORT 0x4
|
||||||
#define APPLESMC_NR_PORTS 32
|
#define APPLESMC_NR_PORTS 32
|
||||||
#define APPLESMC_MAX_DATA_LENGTH 32
|
|
||||||
|
|
||||||
#define APPLESMC_READ_CMD 0x10
|
#define APPLESMC_READ_CMD 0x10
|
||||||
#define APPLESMC_WRITE_CMD 0x11
|
#define APPLESMC_WRITE_CMD 0x11
|
||||||
@ -249,7 +248,7 @@ static void applesmc_isa_realize(DeviceState *dev, Error **errp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Property applesmc_isa_properties[] = {
|
static Property applesmc_isa_properties[] = {
|
||||||
DEFINE_PROP_UINT32("iobase", AppleSMCState, iobase,
|
DEFINE_PROP_UINT32(APPLESMC_PROP_IO_BASE, AppleSMCState, iobase,
|
||||||
APPLESMC_DEFAULT_IOBASE),
|
APPLESMC_DEFAULT_IOBASE),
|
||||||
DEFINE_PROP_STRING("osk", AppleSMCState, osk),
|
DEFINE_PROP_STRING("osk", AppleSMCState, osk),
|
||||||
DEFINE_PROP_END_OF_LIST(),
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
|
@ -21,10 +21,17 @@
|
|||||||
#define ISA_BUS(obj) OBJECT_CHECK(ISABus, (obj), TYPE_ISA_BUS)
|
#define ISA_BUS(obj) OBJECT_CHECK(ISABus, (obj), TYPE_ISA_BUS)
|
||||||
|
|
||||||
#define TYPE_APPLE_SMC "isa-applesmc"
|
#define TYPE_APPLE_SMC "isa-applesmc"
|
||||||
|
#define APPLESMC_MAX_DATA_LENGTH 32
|
||||||
|
#define APPLESMC_PROP_IO_BASE "iobase"
|
||||||
|
|
||||||
static inline bool applesmc_find(void)
|
static inline uint16_t applesmc_port(void)
|
||||||
{
|
{
|
||||||
return object_resolve_path_type("", TYPE_APPLE_SMC, NULL);
|
Object *obj = object_resolve_path_type("", TYPE_APPLE_SMC, NULL);
|
||||||
|
|
||||||
|
if (obj) {
|
||||||
|
return object_property_get_int(obj, APPLESMC_PROP_IO_BASE, NULL);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct ISADeviceClass {
|
typedef struct ISADeviceClass {
|
||||||
|
Loading…
Reference in New Issue
Block a user