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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user