* [PATCH 0/9] I2C ACPI operation region handler support @ 2014-04-16 13:24 Lan Tianyu 2014-04-16 13:24 ` [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu ` (11 more replies) 0 siblings, 12 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan Cc: linux-i2c, linux-kernel ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. It allows ACPI aml code able to access such kind of devices to implement some ACPI standard method. On the Asus T100TA, Bios use GenericSerialBus operation region to access i2c device to get battery info. So battery function depends on the I2C operation region support. Here is the bug link. https://bugzilla.kernel.org/show_bug.cgi?id=69011 This patchset is to add I2C ACPI operation region handler support. [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to [PATCH 5/9] I2C: Add smbus quick read/write helper function [PATCH 6/9] I2C: Add smbus word/block process call helper function [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config ^ permalink raw reply [flat|nested] 79+ messages in thread
* [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-21 21:38 ` Rafael J. Wysocki 2014-04-16 13:24 ` [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu ` (10 subsequent siblings) 11 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan, robert.moore, lv.zheng, rafael.j.wysocki Cc: linux-i2c, linux-kernel, linux-acpi, devel From: Lv Zheng <lv.zheng@intel.com> The size of the buffer allocated for generic_serial_bus region access is not correct. This patch introduces acpi_ex_get_serial_access_length() to be invoked to obtain correct data buffer length. Reported by Lan Tianyu, Fixed by Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/acpica/exfield.c | 104 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c index 68d9744..12878e1 100644 --- a/drivers/acpi/acpica/exfield.c +++ b/drivers/acpi/acpica/exfield.c @@ -45,10 +45,71 @@ #include "accommon.h" #include "acdispat.h" #include "acinterp.h" +#include "amlcode.h" #define _COMPONENT ACPI_EXECUTER ACPI_MODULE_NAME("exfield") +/* Local prototypes */ +static u32 +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length); + +/******************************************************************************* + * + * FUNCTION: acpi_get_serial_access_bytes + * + * PARAMETERS: accessor_type - The type of the protocol indicated by region + * field access attributes + * access_length - The access length of the region field + * + * RETURN: Decoded access length + * + * DESCRIPTION: This routine returns the length of the generic_serial_bus + * protocol bytes + * + ******************************************************************************/ + +static u32 +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length) +{ + u32 length; + + switch (accessor_type) { + case AML_FIELD_ATTRIB_QUICK: + + length = 0; + break; + + case AML_FIELD_ATTRIB_SEND_RCV: + case AML_FIELD_ATTRIB_BYTE: + + length = 1; + break; + + case AML_FIELD_ATTRIB_WORD: + case AML_FIELD_ATTRIB_WORD_CALL: + + length = 2; + break; + + case AML_FIELD_ATTRIB_MULTIBYTE: + case AML_FIELD_ATTRIB_RAW_BYTES: + case AML_FIELD_ATTRIB_RAW_PROCESS: + + length = access_length; + break; + + case AML_FIELD_ATTRIB_BLOCK: + case AML_FIELD_ATTRIB_BLOCK_CALL: + default: + + length = ACPI_GSBUS_BUFFER_SIZE; + break; + } + + return (length); +} + /******************************************************************************* * * FUNCTION: acpi_ex_read_data_from_field @@ -63,8 +124,9 @@ ACPI_MODULE_NAME("exfield") * Buffer, depending on the size of the field. * ******************************************************************************/ + acpi_status -acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, +acpi_ex_read_data_from_field(struct acpi_walk_state * walk_state, union acpi_operand_object *obj_desc, union acpi_operand_object **ret_buffer_desc) { @@ -73,6 +135,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, acpi_size length; void *buffer; u32 function; + u16 accessor_type; ACPI_FUNCTION_TRACE_PTR(ex_read_data_from_field, obj_desc); @@ -116,9 +179,22 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, ACPI_READ | (obj_desc->field.attribute << 16); } else if (obj_desc->field.region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) { - length = ACPI_GSBUS_BUFFER_SIZE; - function = - ACPI_READ | (obj_desc->field.attribute << 16); + accessor_type = obj_desc->field.attribute; + length = acpi_ex_get_serial_access_length(accessor_type, + obj_desc-> + field. + access_length); + + /* + * Add additional 2 bytes for modeled generic_serial_bus data buffer: + * typedef struct { + * BYTEStatus; // Byte 0 of the data buffer + * BYTELength; // Byte 1 of the data buffer + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, + * } + */ + length += 2; + function = ACPI_READ | (accessor_type << 16); } else { /* IPMI */ length = ACPI_IPMI_BUFFER_SIZE; @@ -231,6 +307,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, void *buffer; union acpi_operand_object *buffer_desc; u32 function; + u16 accessor_type; ACPI_FUNCTION_TRACE_PTR(ex_write_data_to_field, obj_desc); @@ -284,9 +361,22 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, ACPI_WRITE | (obj_desc->field.attribute << 16); } else if (obj_desc->field.region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) { - length = ACPI_GSBUS_BUFFER_SIZE; - function = - ACPI_WRITE | (obj_desc->field.attribute << 16); + accessor_type = obj_desc->field.attribute; + length = acpi_ex_get_serial_access_length(accessor_type, + obj_desc-> + field. + access_length); + + /* + * Add additional 2 bytes for modeled generic_serial_bus data buffer: + * typedef struct { + * BYTEStatus; // Byte 0 of the data buffer + * BYTELength; // Byte 1 of the data buffer + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, + * } + */ + length += 2; + function = ACPI_WRITE | (accessor_type << 16); } else { /* IPMI */ length = ACPI_IPMI_BUFFER_SIZE; -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-16 13:24 ` [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu @ 2014-04-21 21:38 ` Rafael J. Wysocki 2014-04-22 1:14 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Rafael J. Wysocki @ 2014-04-21 21:38 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, lenb, mika.westerberg, awilliam, robert.moore, lv.zheng, rafael.j.wysocki, linux-i2c, linux-kernel, linux-acpi, devel Hi, On Wednesday, April 16, 2014 09:24:34 PM Lan Tianyu wrote: > From: Lv Zheng <lv.zheng@intel.com> > > The size of the buffer allocated for generic_serial_bus region access > is not correct. This patch introduces acpi_ex_get_serial_access_length() > to be invoked to obtain correct data buffer length. Reported by > Lan Tianyu, Fixed by Lv Zheng. > > Signed-off-by: Lv Zheng <lv.zheng@intel.com> > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> I'm queueing up this patch as a fix for 3.15, but can you please resend the whole series with a CC to linux-acpi? > --- > drivers/acpi/acpica/exfield.c | 104 +++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 97 insertions(+), 7 deletions(-) > > diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c > index 68d9744..12878e1 100644 > --- a/drivers/acpi/acpica/exfield.c > +++ b/drivers/acpi/acpica/exfield.c > @@ -45,10 +45,71 @@ > #include "accommon.h" > #include "acdispat.h" > #include "acinterp.h" > +#include "amlcode.h" > > #define _COMPONENT ACPI_EXECUTER > ACPI_MODULE_NAME("exfield") > > +/* Local prototypes */ > +static u32 > +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length); > + > +/******************************************************************************* > + * > + * FUNCTION: acpi_get_serial_access_bytes > + * > + * PARAMETERS: accessor_type - The type of the protocol indicated by region > + * field access attributes > + * access_length - The access length of the region field > + * > + * RETURN: Decoded access length > + * > + * DESCRIPTION: This routine returns the length of the generic_serial_bus > + * protocol bytes > + * > + ******************************************************************************/ > + > +static u32 > +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length) > +{ > + u32 length; > + > + switch (accessor_type) { > + case AML_FIELD_ATTRIB_QUICK: > + > + length = 0; > + break; > + > + case AML_FIELD_ATTRIB_SEND_RCV: > + case AML_FIELD_ATTRIB_BYTE: > + > + length = 1; > + break; > + > + case AML_FIELD_ATTRIB_WORD: > + case AML_FIELD_ATTRIB_WORD_CALL: > + > + length = 2; > + break; > + > + case AML_FIELD_ATTRIB_MULTIBYTE: > + case AML_FIELD_ATTRIB_RAW_BYTES: > + case AML_FIELD_ATTRIB_RAW_PROCESS: > + > + length = access_length; > + break; > + > + case AML_FIELD_ATTRIB_BLOCK: > + case AML_FIELD_ATTRIB_BLOCK_CALL: > + default: > + > + length = ACPI_GSBUS_BUFFER_SIZE; > + break; > + } > + > + return (length); > +} > + > /******************************************************************************* > * > * FUNCTION: acpi_ex_read_data_from_field > @@ -63,8 +124,9 @@ ACPI_MODULE_NAME("exfield") > * Buffer, depending on the size of the field. > * > ******************************************************************************/ > + > acpi_status > -acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, > +acpi_ex_read_data_from_field(struct acpi_walk_state * walk_state, > union acpi_operand_object *obj_desc, > union acpi_operand_object **ret_buffer_desc) > { > @@ -73,6 +135,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, > acpi_size length; > void *buffer; > u32 function; > + u16 accessor_type; > > ACPI_FUNCTION_TRACE_PTR(ex_read_data_from_field, obj_desc); > > @@ -116,9 +179,22 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, > ACPI_READ | (obj_desc->field.attribute << 16); > } else if (obj_desc->field.region_obj->region.space_id == > ACPI_ADR_SPACE_GSBUS) { > - length = ACPI_GSBUS_BUFFER_SIZE; > - function = > - ACPI_READ | (obj_desc->field.attribute << 16); > + accessor_type = obj_desc->field.attribute; > + length = acpi_ex_get_serial_access_length(accessor_type, > + obj_desc-> > + field. > + access_length); > + > + /* > + * Add additional 2 bytes for modeled generic_serial_bus data buffer: > + * typedef struct { > + * BYTEStatus; // Byte 0 of the data buffer > + * BYTELength; // Byte 1 of the data buffer > + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, > + * } > + */ > + length += 2; > + function = ACPI_READ | (accessor_type << 16); > } else { /* IPMI */ > > length = ACPI_IPMI_BUFFER_SIZE; > @@ -231,6 +307,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, > void *buffer; > union acpi_operand_object *buffer_desc; > u32 function; > + u16 accessor_type; > > ACPI_FUNCTION_TRACE_PTR(ex_write_data_to_field, obj_desc); > > @@ -284,9 +361,22 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, > ACPI_WRITE | (obj_desc->field.attribute << 16); > } else if (obj_desc->field.region_obj->region.space_id == > ACPI_ADR_SPACE_GSBUS) { > - length = ACPI_GSBUS_BUFFER_SIZE; > - function = > - ACPI_WRITE | (obj_desc->field.attribute << 16); > + accessor_type = obj_desc->field.attribute; > + length = acpi_ex_get_serial_access_length(accessor_type, > + obj_desc-> > + field. > + access_length); > + > + /* > + * Add additional 2 bytes for modeled generic_serial_bus data buffer: > + * typedef struct { > + * BYTEStatus; // Byte 0 of the data buffer > + * BYTELength; // Byte 1 of the data buffer > + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, > + * } > + */ > + length += 2; > + function = ACPI_WRITE | (accessor_type << 16); > } else { /* IPMI */ > > length = ACPI_IPMI_BUFFER_SIZE; > -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-21 21:38 ` Rafael J. Wysocki @ 2014-04-22 1:14 ` Lan Tianyu 0 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 1:14 UTC (permalink / raw) To: Rafael J. Wysocki Cc: wsa, lenb, mika.westerberg, awilliam, robert.moore, lv.zheng, rafael.j.wysocki, linux-i2c, linux-kernel, linux-acpi, devel On 2014年04月22日 05:38, Rafael J. Wysocki wrote: > Hi, > > On Wednesday, April 16, 2014 09:24:34 PM Lan Tianyu wrote: >> From: Lv Zheng <lv.zheng@intel.com> >> >> The size of the buffer allocated for generic_serial_bus region access >> is not correct. This patch introduces acpi_ex_get_serial_access_length() >> to be invoked to obtain correct data buffer length. Reported by >> Lan Tianyu, Fixed by Lv Zheng. >> >> Signed-off-by: Lv Zheng <lv.zheng@intel.com> >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > I'm queueing up this patch as a fix for 3.15, but can you please resend the > whole series with a CC to linux-acpi? > Ok. I will do that. > >> --- >> drivers/acpi/acpica/exfield.c | 104 +++++++++++++++++++++++++++++++++++++++--- >> 1 file changed, 97 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c >> index 68d9744..12878e1 100644 >> --- a/drivers/acpi/acpica/exfield.c >> +++ b/drivers/acpi/acpica/exfield.c >> @@ -45,10 +45,71 @@ >> #include "accommon.h" >> #include "acdispat.h" >> #include "acinterp.h" >> +#include "amlcode.h" >> >> #define _COMPONENT ACPI_EXECUTER >> ACPI_MODULE_NAME("exfield") >> >> +/* Local prototypes */ >> +static u32 >> +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length); >> + >> +/******************************************************************************* >> + * >> + * FUNCTION: acpi_get_serial_access_bytes >> + * >> + * PARAMETERS: accessor_type - The type of the protocol indicated by region >> + * field access attributes >> + * access_length - The access length of the region field >> + * >> + * RETURN: Decoded access length >> + * >> + * DESCRIPTION: This routine returns the length of the generic_serial_bus >> + * protocol bytes >> + * >> + ******************************************************************************/ >> + >> +static u32 >> +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length) >> +{ >> + u32 length; >> + >> + switch (accessor_type) { >> + case AML_FIELD_ATTRIB_QUICK: >> + >> + length = 0; >> + break; >> + >> + case AML_FIELD_ATTRIB_SEND_RCV: >> + case AML_FIELD_ATTRIB_BYTE: >> + >> + length = 1; >> + break; >> + >> + case AML_FIELD_ATTRIB_WORD: >> + case AML_FIELD_ATTRIB_WORD_CALL: >> + >> + length = 2; >> + break; >> + >> + case AML_FIELD_ATTRIB_MULTIBYTE: >> + case AML_FIELD_ATTRIB_RAW_BYTES: >> + case AML_FIELD_ATTRIB_RAW_PROCESS: >> + >> + length = access_length; >> + break; >> + >> + case AML_FIELD_ATTRIB_BLOCK: >> + case AML_FIELD_ATTRIB_BLOCK_CALL: >> + default: >> + >> + length = ACPI_GSBUS_BUFFER_SIZE; >> + break; >> + } >> + >> + return (length); >> +} >> + >> /******************************************************************************* >> * >> * FUNCTION: acpi_ex_read_data_from_field >> @@ -63,8 +124,9 @@ ACPI_MODULE_NAME("exfield") >> * Buffer, depending on the size of the field. >> * >> ******************************************************************************/ >> + >> acpi_status >> -acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, >> +acpi_ex_read_data_from_field(struct acpi_walk_state * walk_state, >> union acpi_operand_object *obj_desc, >> union acpi_operand_object **ret_buffer_desc) >> { >> @@ -73,6 +135,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, >> acpi_size length; >> void *buffer; >> u32 function; >> + u16 accessor_type; >> >> ACPI_FUNCTION_TRACE_PTR(ex_read_data_from_field, obj_desc); >> >> @@ -116,9 +179,22 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, >> ACPI_READ | (obj_desc->field.attribute << 16); >> } else if (obj_desc->field.region_obj->region.space_id == >> ACPI_ADR_SPACE_GSBUS) { >> - length = ACPI_GSBUS_BUFFER_SIZE; >> - function = >> - ACPI_READ | (obj_desc->field.attribute << 16); >> + accessor_type = obj_desc->field.attribute; >> + length = acpi_ex_get_serial_access_length(accessor_type, >> + obj_desc-> >> + field. >> + access_length); >> + >> + /* >> + * Add additional 2 bytes for modeled generic_serial_bus data buffer: >> + * typedef struct { >> + * BYTEStatus; // Byte 0 of the data buffer >> + * BYTELength; // Byte 1 of the data buffer >> + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, >> + * } >> + */ >> + length += 2; >> + function = ACPI_READ | (accessor_type << 16); >> } else { /* IPMI */ >> >> length = ACPI_IPMI_BUFFER_SIZE; >> @@ -231,6 +307,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, >> void *buffer; >> union acpi_operand_object *buffer_desc; >> u32 function; >> + u16 accessor_type; >> >> ACPI_FUNCTION_TRACE_PTR(ex_write_data_to_field, obj_desc); >> >> @@ -284,9 +361,22 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, >> ACPI_WRITE | (obj_desc->field.attribute << 16); >> } else if (obj_desc->field.region_obj->region.space_id == >> ACPI_ADR_SPACE_GSBUS) { >> - length = ACPI_GSBUS_BUFFER_SIZE; >> - function = >> - ACPI_WRITE | (obj_desc->field.attribute << 16); >> + accessor_type = obj_desc->field.attribute; >> + length = acpi_ex_get_serial_access_length(accessor_type, >> + obj_desc-> >> + field. >> + access_length); >> + >> + /* >> + * Add additional 2 bytes for modeled generic_serial_bus data buffer: >> + * typedef struct { >> + * BYTEStatus; // Byte 0 of the data buffer >> + * BYTELength; // Byte 1 of the data buffer >> + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, >> + * } >> + */ >> + length += 2; >> + function = ACPI_WRITE | (accessor_type << 16); >> } else { /* IPMI */ >> >> length = ACPI_IPMI_BUFFER_SIZE; >> > -- Best regards Tianyu Lan ^ permalink raw reply [flat|nested] 79+ messages in thread
* [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu 2014-04-16 13:24 ` [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu ` (9 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan, robert.moore, lv.zheng, rafael.j.wysocki Cc: linux-i2c, linux-kernel, linux-acpi, devel The acpi_buffer_to_resource is needed in i2c module to convert aml buffer to struct acpi_resource Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/acpica/rscreate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/acpica/rscreate.c b/drivers/acpi/acpica/rscreate.c index 75d3690..5828649 100644 --- a/drivers/acpi/acpica/rscreate.c +++ b/drivers/acpi/acpica/rscreate.c @@ -112,6 +112,7 @@ acpi_buffer_to_resource(u8 *aml_buffer, return (status); } +ACPI_EXPORT_SYMBOL(acpi_buffer_to_resource); /******************************************************************************* * -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu 2014-04-16 13:24 ` [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu 2014-04-16 13:24 ` [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu ` (8 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan, robert.moore, lv.zheng Cc: linux-i2c, linux-kernel, linux-acpi, devel There is already acpi_bus_get_private_data() to get ACPI handle data which is associated with acpi_bus_private_data_handler(). This patch is to add acpi_bus_attach_private_data() to make a pair and facilitate to attach and get data to/from ACPI handle. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/bus.c | 18 +++++++++++++++++- include/acpi/acpi_bus.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index e7e5844..4ed8d48 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -132,6 +132,22 @@ void acpi_bus_private_data_handler(acpi_handle handle, } EXPORT_SYMBOL(acpi_bus_private_data_handler); +int acpi_bus_attach_private_data(acpi_handle handle, void *data) +{ + acpi_status status; + + status = acpi_attach_data(handle, + acpi_bus_private_data_handler, data); + if (ACPI_FAILURE(status)) { + ACPI_ERROR((AE_INFO, "Error attaching device[%p] data\n", + handle)); + return -ENODEV; + } + + return 0; +} +EXPORT_SYMBOL(acpi_bus_attach_private_data); + int acpi_bus_get_private_data(acpi_handle handle, void **data) { acpi_status status; @@ -141,7 +157,7 @@ int acpi_bus_get_private_data(acpi_handle handle, void **data) status = acpi_get_data(handle, acpi_bus_private_data_handler, data); if (ACPI_FAILURE(status) || !*data) { - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No context for object [%p]\n", + ACPI_ERROR((AE_INFO, "No context for object [%p]\n", handle)); return -ENODEV; } diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 84a2e29..a1f6fec 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -406,6 +406,7 @@ extern struct kobject *acpi_kobj; extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int); void acpi_bus_private_data_handler(acpi_handle, void *); int acpi_bus_get_private_data(acpi_handle, void **); +int acpi_bus_attach_private_data(acpi_handle, void *); void acpi_bus_no_hotplug(acpi_handle handle); extern int acpi_notifier_call_chain(struct acpi_device *, u32, u32); extern int register_acpi_notifier(struct notifier_block *); -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (2 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu ` (7 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan, rui.zhang Cc: linux-i2c, linux-kernel, linux-acpi Use acpi_bus_attach_private_data() to attach private data instead of acpi_attach_data(). Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/thermal.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index c1e31a4..7ab9392 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -925,13 +925,10 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) if (result) return result; - status = acpi_attach_data(tz->device->handle, - acpi_bus_private_data_handler, - tz->thermal_zone); - if (ACPI_FAILURE(status)) { - pr_err(PREFIX "Error attaching device data\n"); + status = acpi_bus_attach_private_data(tz->device->handle, + tz->thermal_zone); + if (ACPI_FAILURE(status)) return -ENODEV; - } tz->tz_enabled = 1; -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 5/9] I2C: Add smbus quick read/write helper function 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (3 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 6/9] I2C: Add smbus word/block process call " Lan Tianyu ` (6 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan Cc: linux-i2c, linux-kernel Add i2c_smbus_quick_write/read() helper function. These will be used in the implementation of i2c ACPI address space handler. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-core.c | 30 ++++++++++++++++++++++++++++++ include/linux/i2c.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 7c7f4b8..3bf0048 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2162,6 +2162,36 @@ static int i2c_smbus_check_pec(u8 cpec, struct i2c_msg *msg) } /** + * i2c_smbus_quick_write - SMBus "quick write" protocol + * @client: Handle to slave device + * + * This executes the SMBus "quick write" protocol, returning negative errno + * else zero on success. + */ +s32 i2c_smbus_quick_write(const struct i2c_client *client) +{ + return i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_WRITE, 0, + I2C_SMBUS_QUICK, NULL); +} +EXPORT_SYMBOL_GPL(i2c_smbus_quick_write); + +/** + * i2c_smbus_quick_read - SMBus "quick read" protocol + * @client: Handle to slave device + * + * This executes the SMBus "quick read" protocol, returning negative errno + * else zero on success. + */ +s32 i2c_smbus_quick_read(const struct i2c_client *client) +{ + return i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, 0, + I2C_SMBUS_QUICK, NULL); +} +EXPORT_SYMBOL_GPL(i2c_smbus_quick_read); + +/** * i2c_smbus_read_byte - SMBus "receive byte" protocol * @client: Handle to slave device * diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b556e0a..3e6ea90 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -82,6 +82,8 @@ extern s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, /* Now follow the 'nice' access routines. These also document the calling conventions of i2c_smbus_xfer. */ +extern s32 i2c_smbus_quick_write(const struct i2c_client *client); +extern s32 i2c_smbus_quick_read(const struct i2c_client *client); extern s32 i2c_smbus_read_byte(const struct i2c_client *client); extern s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value); extern s32 i2c_smbus_read_byte_data(const struct i2c_client *client, -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 6/9] I2C: Add smbus word/block process call helper function 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (4 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu ` (5 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan Cc: linux-i2c, linux-kernel Add i2c_smbus_word/block_proc_call() helper function. These will be used in the implementation of i2c ACPI address space handler. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-core.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/i2c.h | 4 ++++ 2 files changed, 60 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 3bf0048..638befd 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2306,6 +2306,30 @@ s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, EXPORT_SYMBOL(i2c_smbus_write_word_data); /** + * i2c_smbus_word_proc_call - SMBus "word proc call" protocol + * @client: Handle to slave device + * @command: Byte interpreted by slave + * @value: 16-bit "word" being written + * + * This executes the SMBus "word proc all" protocol, returning negative errno + * else a 16-bit unsigned "word" received from the device. + */ +s32 i2c_smbus_word_proc_call(const struct i2c_client *client, u8 command, + u16 value) +{ + union i2c_smbus_data data; + int status; + + data.word = value; + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, command, + I2C_SMBUS_PROC_CALL, &data); + + return (status < 0) ? status : data.word; +} +EXPORT_SYMBOL(i2c_smbus_word_proc_call); + +/** * i2c_smbus_read_block_data - SMBus "block read" protocol * @client: Handle to slave device * @command: Byte interpreted by slave @@ -2362,6 +2386,38 @@ s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, } EXPORT_SYMBOL(i2c_smbus_write_block_data); +/** + * i2c_smbus_block_proc_call - SMBus "block write" protocol + * @client: Handle to slave device + * @command: Byte interpreted by slave + * @length: Size of data block; SMBus allows at most 32 bytes + * @values: Byte array which will be written. + * + * This executes the SMBus "block proc call" protocol, returning negative errno + * else the number of read bytes. + */ +s32 i2c_smbus_block_proc_call(const struct i2c_client *client, u8 command, + u8 length, u8 *values) +{ + union i2c_smbus_data data; + int status; + + if (length > I2C_SMBUS_BLOCK_MAX) + length = I2C_SMBUS_BLOCK_MAX; + data.block[0] = length; + memcpy(&data.block[1], values, length); + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, command, + I2C_SMBUS_BLOCK_PROC_CALL, &data); + + if (status < 0) + return status; + + memcpy(values, &data.block[1], data.block[0]); + return data.block[0]; +} +EXPORT_SYMBOL(i2c_smbus_block_proc_call); + /* Returns the number of read bytes */ s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, u8 command, u8 length, u8 *values) diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 3e6ea90..724440a 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -94,6 +94,10 @@ extern s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command); extern s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, u16 value); +extern s32 i2c_smbus_word_proc_call(const struct i2c_client *client, + u8 command, u16 value); +extern s32 i2c_smbus_block_proc_call(const struct i2c_client *client, + u8 command, u8 length, u8 *values); static inline s32 i2c_smbus_read_word_swapped(const struct i2c_client *client, u8 command) -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (5 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 6/9] I2C: Add smbus word/block process call " Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu ` (4 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan Cc: linux-i2c, linux-kernel, linux-acpi ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. It allows ACPI aml code able to access such kind of devices to implement some ACPI standard method. ACPI Spec defines some access attribute to associate with i2c protocol. AttribQuick Read/Write Quick Protocol AttribSendReceive Send/Receive Byte Protocol AttribByte Read/Write Byte Protocol AttribWord Read/Write Word Protocol AttribBlock Read/Write Block Protocol AttribBytes Read/Write N-Bytes Protocol AttribProcessCall Process Call Protocol AttribBlockProcessCall Write Block-Read Block Process Call Protocol AttribRawBytes Raw Read/Write N-BytesProtocol AttribRawProcessBytes Raw Process Call Protocol On the Asus T100TA, Bios use GenericSerialBus operation region to access i2c device to get battery info. Sample code From Asus T100TA Scope (_SB.I2C1) { Name (UMPC, ResourceTemplate () { I2cSerialBus (0x0066, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2C1", 0x00, ResourceConsumer, , ) }) ... OperationRegion (DVUM, GenericSerialBus, Zero, 0x0100) Field (DVUM, BufferAcc, NoLock, Preserve) { Connection (UMPC), Offset (0x81), AccessAs (BufferAcc, AttribBytes (0x3E)), FGC0, 8 } ... } Device (BATC) { Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID ... Method (_BST, 0, NotSerialized) // _BST: Battery Status { If (LEqual (AVBL, One)) { Store (FGC0, BFFG) If (LNotEqual (STAT, One)) { ShiftRight (CHST, 0x04, Local0) And (Local0, 0x03, Local0) If (LOr (LEqual (Local0, One), LEqual (Local0, 0x02))) { Store (0x02, Local1) } ... } The i2c operation region is defined under I2C1 scope. _BST method under battery device BATC read battery status from the field "FCG0". The request would be sent to i2c operation region handler. This patch is to add i2c ACPI operation region support. Due to there are only "Byte" and "N-Bytes" protocol access on the Asus T100TA, other protocols have not been tested. About RawBytes and RawProcessBytes protocol, they needs specific drivers to interpret reference data from AML code according ACPI 5.0 SPEC(5.5.2.4.5.3.9 and 5.5.2.4.5.3.10). So far, not found such case and will add when find real case. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/Makefile | 5 +- drivers/i2c/i2c-acpi.c | 282 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 2 + include/linux/acpi.h | 11 ++ include/linux/i2c.h | 10 ++ 5 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 drivers/i2c/i2c-acpi.c diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 1722f50..80db307 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -2,8 +2,11 @@ # Makefile for the i2c core. # +i2ccore-y := i2c-core.o +i2ccore-$(CONFIG_ACPI) += i2c-acpi.o + obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o -obj-$(CONFIG_I2C) += i2c-core.o +obj-$(CONFIG_I2C) += i2ccore.o obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o obj-$(CONFIG_I2C_MUX) += i2c-mux.o diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c new file mode 100644 index 0000000..942abdf --- /dev/null +++ b/drivers/i2c/i2c-acpi.c @@ -0,0 +1,282 @@ +/* + * I2C ACPI code + * + * Copyright (C) 2014 Intel Corp + * + * Author: Lan Tianyu <tianyu.lan@intel.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ +#define pr_fmt(fmt) "I2C/ACPI : " fmt + +#include <linux/kernel.h> +#include <linux/errno.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/acpi.h> + +struct acpi_i2c_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; +} __packed; + +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + u8 data[0]; + }; +} __packed; + +static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, + u8 cmd, u8 *data, u8 data_len) +{ + + struct i2c_msg msgs[2]; + int ret; + u8 *buffer; + + buffer = kzalloc(data_len, GFP_KERNEL); + if (!buffer) + return AE_NO_MEMORY; + + msgs[0].addr = client->addr; + msgs[0].flags = client->flags; + msgs[0].len = 1; + msgs[0].buf = &cmd; + + msgs[1].addr = client->addr; + msgs[1].flags = client->flags | I2C_M_RD; + msgs[1].len = data_len; + msgs[1].buf = buffer; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + pr_err("i2c read failed\n"); + else + memcpy(data, buffer, data_len); + + kfree(buffer); + return ret; +} + +static int acpi_gsb_i2c_write_bytes(struct i2c_client *client, + u8 cmd, u8 *data, u8 data_len) +{ + + struct i2c_msg msgs[1]; + u8 *buffer; + int ret = AE_OK; + + buffer = kzalloc(data_len + 1, GFP_KERNEL); + if (!buffer) + return AE_NO_MEMORY; + + buffer[0] = cmd; + memcpy(buffer + 1, data, data_len); + + msgs[0].addr = client->addr; + msgs[0].flags = client->flags; + msgs[0].len = data_len + 1; + msgs[0].buf = buffer; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + pr_err("i2c write failed\n"); + + kfree(buffer); + return ret; +} + +static acpi_status +acpi_i2c_space_handler(u32 function, acpi_physical_address command, + u32 bits, u64 *value64, + void *handler_context, void *region_context) +{ + struct gsb_buffer *gsb = (struct gsb_buffer *)value64; + struct acpi_i2c_handler_data *data = handler_context; + struct acpi_connection_info *info = &data->info; + struct acpi_resource_i2c_serialbus *sb; + struct i2c_adapter *adapter = data->adapter; + struct i2c_client client; + struct acpi_resource *ares; + u32 accessor_type = function >> 16; + u8 action = function & ACPI_IO_MASK; + int status; + + acpi_buffer_to_resource(info->connection, info->length, &ares); + if (!value64 || ares->type != ACPI_RESOURCE_TYPE_SERIAL_BUS) + return AE_BAD_PARAMETER; + + sb = &ares->data.i2c_serial_bus; + if (sb->type != ACPI_RESOURCE_SERIAL_TYPE_I2C) + return AE_BAD_PARAMETER; + + client.adapter = adapter; + client.addr = sb->slave_address; + client.flags = 0; + + if (sb->access_mode == ACPI_I2C_10BIT_MODE) + client.flags |= I2C_CLIENT_TEN; + + switch (accessor_type) { + case ACPI_GSB_ACCESS_ATTRIB_QUICK: + if (action == ACPI_READ) + status = i2c_smbus_quick_read(&client); + else + status = i2c_smbus_quick_write(&client); + break; + + case ACPI_GSB_ACCESS_ATTRIB_SEND_RCV: + if (action == ACPI_READ) { + status = i2c_smbus_read_byte(&client); + if (status >= 0) { + gsb->bdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_byte(&client, gsb->bdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BYTE: + if (action == ACPI_READ) { + status = i2c_smbus_read_byte_data(&client, command); + if (status >= 0) { + gsb->bdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_byte_data(&client, command, + gsb->bdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_WORD: + if (action == ACPI_READ) { + status = i2c_smbus_read_word_data(&client, command); + if (status >= 0) { + gsb->wdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_word_data(&client, command, + gsb->wdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BLOCK: + if (action == ACPI_READ) { + status = i2c_smbus_read_block_data(&client, command, + gsb->data); + if (status >= 0) { + gsb->len = status; + status = 0; + } + } else { + status = i2c_smbus_write_block_data(&client, command, + gsb->len, gsb->data); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE: + if (action == ACPI_READ) { + status = acpi_gsb_i2c_read_bytes(&client, command, + gsb->data, info->access_length); + if (status > 0) + status = 0; + } else { + status = acpi_gsb_i2c_write_bytes(&client, command, + gsb->data, info->access_length); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_WORD_CALL: + status = i2c_smbus_word_proc_call(&client, command, gsb->wdata); + if (status >= 0) { + gsb->wdata = status; + status = 0; + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL: + status = i2c_smbus_block_proc_call(&client, command, gsb->len, + gsb->data); + if (status > 0) { + gsb->len = status; + status = 0; + } + break; + + default: + pr_info("protocl(0x%02x) is not supported.\n", accessor_type); + return AE_BAD_PARAMETER; + } + + gsb->status = status; + return AE_OK; +} + + +int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) +{ + acpi_handle handle = ACPI_HANDLE(adapter->dev.parent); + struct acpi_i2c_handler_data *data; + acpi_status status; + + if (!handle) + return -ENODEV; + + data = kzalloc(sizeof(struct acpi_i2c_handler_data), + GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->adapter = adapter; + status = acpi_bus_attach_private_data(handle, (void *)data); + if (ACPI_FAILURE(status)) { + kfree(data); + return -ENOMEM; + } + + status = acpi_install_address_space_handler(handle, + ACPI_ADR_SPACE_GSBUS, + &acpi_i2c_space_handler, + NULL, + data); + if (ACPI_FAILURE(status)) { + pr_err("Error installing i2c space handler\n"); + acpi_bus_attach_private_data(handle, NULL); + kfree(data); + return -ENOMEM; + } + + return 0; +} + +void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) +{ + acpi_handle handle = ACPI_HANDLE(adapter->dev.parent); + struct acpi_i2c_handler_data *data; + acpi_status status; + + if (!handle) + return; + + acpi_remove_address_space_handler(handle, + ACPI_ADR_SPACE_GSBUS, + &acpi_i2c_space_handler); + + status = acpi_bus_get_private_data(handle, (void **)&data); + if (ACPI_SUCCESS(status)) + kfree(data); +} diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 638befd..bb9dc56 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -1293,6 +1293,7 @@ exit_recovery: /* create pre-declared device nodes */ of_i2c_register_devices(adap); acpi_i2c_register_devices(adap); + acpi_i2c_install_space_handler(adap); if (adap->nr < __i2c_first_dynamic_bus_num) i2c_scan_static_board_info(adap); @@ -1466,6 +1467,7 @@ void i2c_del_adapter(struct i2c_adapter *adap) return; } + acpi_i2c_remove_space_handler(adap); /* Tell drivers about this removal */ mutex_lock(&core_lock); bus_for_each_drv(&i2c_bus_type, NULL, adap, diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7a8f2cd..ea53b9b 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -361,6 +361,17 @@ extern bool osc_sb_apei_support_acked; #define OSC_PCI_EXPRESS_CAPABILITY_CONTROL 0x00000010 #define OSC_PCI_CONTROL_MASKS 0x0000001f +#define ACPI_GSB_ACCESS_ATTRIB_QUICK 0x00000002 +#define ACPI_GSB_ACCESS_ATTRIB_SEND_RCV 0x00000004 +#define ACPI_GSB_ACCESS_ATTRIB_BYTE 0x00000006 +#define ACPI_GSB_ACCESS_ATTRIB_WORD 0x00000008 +#define ACPI_GSB_ACCESS_ATTRIB_BLOCK 0x0000000A +#define ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE 0x0000000B +#define ACPI_GSB_ACCESS_ATTRIB_WORD_CALL 0x0000000C +#define ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL 0x0000000D +#define ACPI_GSB_ACCESS_ATTRIB_RAW_BYTES 0x0000000E +#define ACPI_GSB_ACCESS_ATTRIB_RAW_PROCESS 0x0000000F + extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 *mask, u32 req); diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 724440a..681e689 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -583,4 +583,14 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node } #endif /* CONFIG_OF */ +#ifdef CONFIG_ACPI +int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); +void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); +#else +static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) +{ } +static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) +{ return 0; } +#endif + #endif /* _LINUX_I2C_H */ -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (6 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu ` (3 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan Cc: linux-i2c, linux-kernel Clean up ACPI related code in the i2c core. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-acpi.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 95 -------------------------------------------------- include/linux/i2c.h | 3 ++ 3 files changed, 92 insertions(+), 95 deletions(-) diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c index 942abdf..a0ae867 100644 --- a/drivers/i2c/i2c-acpi.c +++ b/drivers/i2c/i2c-acpi.c @@ -37,6 +37,95 @@ struct gsb_buffer { }; } __packed; +static int acpi_i2c_add_resource(struct acpi_resource *ares, void *data) +{ + struct i2c_board_info *info = data; + + if (ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { + struct acpi_resource_i2c_serialbus *sb; + + sb = &ares->data.i2c_serial_bus; + if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) { + info->addr = sb->slave_address; + if (sb->access_mode == ACPI_I2C_10BIT_MODE) + info->flags |= I2C_CLIENT_TEN; + } + } else if (info->irq < 0) { + struct resource r; + + if (acpi_dev_resource_interrupt(ares, 0, &r)) + info->irq = r.start; + } + + /* Tell the ACPI core to skip this resource */ + return 1; +} + +static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level, + void *data, void **return_value) +{ + struct i2c_adapter *adapter = data; + struct list_head resource_list; + struct i2c_board_info info; + struct acpi_device *adev; + int ret; + + if (acpi_bus_get_device(handle, &adev)) + return AE_OK; + if (acpi_bus_get_status(adev) || !adev->status.present) + return AE_OK; + + memset(&info, 0, sizeof(info)); + info.acpi_node.companion = adev; + info.irq = -1; + + INIT_LIST_HEAD(&resource_list); + ret = acpi_dev_get_resources(adev, &resource_list, + acpi_i2c_add_resource, &info); + acpi_dev_free_resource_list(&resource_list); + + if (ret < 0 || !info.addr) + return AE_OK; + + adev->power.flags.ignore_parent = true; + strlcpy(info.type, dev_name(&adev->dev), sizeof(info.type)); + if (!i2c_new_device(adapter, &info)) { + adev->power.flags.ignore_parent = false; + dev_err(&adapter->dev, + "failed to add I2C device %s from ACPI\n", + dev_name(&adev->dev)); + } + + return AE_OK; +} + +/** + * acpi_i2c_register_devices - enumerate I2C slave devices behind adapter + * @adap: pointer to adapter + * + * Enumerate all I2C slave devices behind this adapter by walking the ACPI + * namespace. When a device is found it will be added to the Linux device + * model and bound to the corresponding ACPI handle. + */ +void acpi_i2c_register_devices(struct i2c_adapter *adap) +{ + acpi_handle handle; + acpi_status status; + + if (!adap->dev.parent) + return; + + handle = ACPI_HANDLE(adap->dev.parent); + if (!handle) + return; + + status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, + acpi_i2c_add_device, NULL, + adap, NULL); + if (ACPI_FAILURE(status)) + dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); +} + static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, u8 cmd, u8 *data, u8 data_len) { diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index bb9dc56..9ca50c8 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -1092,101 +1092,6 @@ EXPORT_SYMBOL(of_find_i2c_adapter_by_node); static void of_i2c_register_devices(struct i2c_adapter *adap) { } #endif /* CONFIG_OF */ -/* ACPI support code */ - -#if IS_ENABLED(CONFIG_ACPI) -static int acpi_i2c_add_resource(struct acpi_resource *ares, void *data) -{ - struct i2c_board_info *info = data; - - if (ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { - struct acpi_resource_i2c_serialbus *sb; - - sb = &ares->data.i2c_serial_bus; - if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) { - info->addr = sb->slave_address; - if (sb->access_mode == ACPI_I2C_10BIT_MODE) - info->flags |= I2C_CLIENT_TEN; - } - } else if (info->irq < 0) { - struct resource r; - - if (acpi_dev_resource_interrupt(ares, 0, &r)) - info->irq = r.start; - } - - /* Tell the ACPI core to skip this resource */ - return 1; -} - -static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level, - void *data, void **return_value) -{ - struct i2c_adapter *adapter = data; - struct list_head resource_list; - struct i2c_board_info info; - struct acpi_device *adev; - int ret; - - if (acpi_bus_get_device(handle, &adev)) - return AE_OK; - if (acpi_bus_get_status(adev) || !adev->status.present) - return AE_OK; - - memset(&info, 0, sizeof(info)); - info.acpi_node.companion = adev; - info.irq = -1; - - INIT_LIST_HEAD(&resource_list); - ret = acpi_dev_get_resources(adev, &resource_list, - acpi_i2c_add_resource, &info); - acpi_dev_free_resource_list(&resource_list); - - if (ret < 0 || !info.addr) - return AE_OK; - - adev->power.flags.ignore_parent = true; - strlcpy(info.type, dev_name(&adev->dev), sizeof(info.type)); - if (!i2c_new_device(adapter, &info)) { - adev->power.flags.ignore_parent = false; - dev_err(&adapter->dev, - "failed to add I2C device %s from ACPI\n", - dev_name(&adev->dev)); - } - - return AE_OK; -} - -/** - * acpi_i2c_register_devices - enumerate I2C slave devices behind adapter - * @adap: pointer to adapter - * - * Enumerate all I2C slave devices behind this adapter by walking the ACPI - * namespace. When a device is found it will be added to the Linux device - * model and bound to the corresponding ACPI handle. - */ -static void acpi_i2c_register_devices(struct i2c_adapter *adap) -{ - acpi_handle handle; - acpi_status status; - - if (!adap->dev.parent) - return; - - handle = ACPI_HANDLE(adap->dev.parent); - if (!handle) - return; - - status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, - acpi_i2c_add_device, NULL, - adap, NULL); - if (ACPI_FAILURE(status)) - dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); -} -#else -static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {} -#endif /* CONFIG_ACPI */ - static int i2c_do_add_adapter(struct i2c_driver *driver, struct i2c_adapter *adap) { diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 681e689..fc1ef42 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -586,7 +586,10 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node #ifdef CONFIG_ACPI int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); +void acpi_i2c_register_devices(struct i2c_adapter *adap); #else +static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {}; + static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) { } static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (7 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu @ 2014-04-16 13:24 ` Lan Tianyu 2014-04-16 13:33 ` [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (2 subsequent siblings) 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:24 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam, tianyu.lan Cc: linux-i2c, linux-kernel This patch is to add CONFIG_I2C_ACPI. Current there is a race between removing I2C ACPI operation region and ACPI AML code accessing. So make i2c core built-in if CONFIG_I2C_ACPI is set. The race will be fixed later in the ACPICA. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/Kconfig | 16 +++++++++++++++- drivers/i2c/Makefile | 2 +- include/linux/i2c.h | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 7b7ea32..15d782e 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -2,7 +2,9 @@ # I2C subsystem configuration # -menuconfig I2C +menu "I2C support" + +config I2C tristate "I2C support" select RT_MUTEXES ---help--- @@ -21,6 +23,16 @@ menuconfig I2C This I2C support can also be built as a module. If so, the module will be called i2c-core. +config I2C_ACPI + bool "I2C ACPI support" + select I2C + depends on ACPI + help + Say Y here if you want to enable I2C ACPI function. ACPI table + provides I2C slave devices' information to enumerate these devices. + This option also allows ACPI AML code to access I2C slave devices + via I2C ACPI operation region to fulfill ACPI method. + if I2C config I2C_BOARDINFO @@ -124,3 +136,5 @@ config I2C_DEBUG_BUS on. endif # I2C + +endmenu diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 80db307..37464ee 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -3,7 +3,7 @@ # i2ccore-y := i2c-core.o -i2ccore-$(CONFIG_ACPI) += i2c-acpi.o +i2ccore-$(CONFIG_I2C_ACPI) += i2c-acpi.o obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o obj-$(CONFIG_I2C) += i2ccore.o diff --git a/include/linux/i2c.h b/include/linux/i2c.h index fc1ef42..d0ece9f 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -583,7 +583,7 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node } #endif /* CONFIG_OF */ -#ifdef CONFIG_ACPI +#ifdef CONFIG_I2C_ACPI int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); void acpi_i2c_register_devices(struct i2c_adapter *adap); -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [PATCH 0/9] I2C ACPI operation region handler support 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (8 preceding siblings ...) 2014-04-16 13:24 ` [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu @ 2014-04-16 13:33 ` Lan Tianyu 2014-04-16 16:35 ` Adam Williamson 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu 11 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-16 13:33 UTC (permalink / raw) To: wsa, rjw, lenb, mika.westerberg, awilliam; +Cc: linux-i2c, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1278 bytes --] On 04/16/2014 09:24 PM, Lan Tianyu wrote: > ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation > region. It allows ACPI aml code able to access such kind of devices to > implement some ACPI standard method. > > On the Asus T100TA, Bios use GenericSerialBus operation region to access > i2c device to get battery info. So battery function depends on the I2C > operation region support. Here is the bug link. > https://bugzilla.kernel.org/show_bug.cgi?id=69011 Completely fixing battery issue on the Asus T100TA also needs ACPI _DEP support. The feature is under developing. Attach a temporary patch for test. > > This patchset is to add I2C ACPI operation region handler support. > > [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for > [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol > [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to > [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to > [PATCH 5/9] I2C: Add smbus quick read/write helper function > [PATCH 6/9] I2C: Add smbus word/block process call helper function > [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support > [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c > [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config > [-- Attachment #2: 0001-ACPI-temporary-dep-solution-for-battery-support.patch --] [-- Type: text/x-patch, Size: 4184 bytes --] >From bbadbc67de278123e28dd6f9ee7e88b6ada56ce4 Mon Sep 17 00:00:00 2001 From: Lan Tianyu <tianyu.lan@intel.com> Date: Fri, 21 Mar 2014 16:42:12 +0800 Subject: [PATCH] ACPI: temporary dep solution for battery support This is a dep workaround for battery support on Asus T100TA and the formal dep solution is under developing. This patch is just for test and will not be upstreamed. --- drivers/acpi/scan.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++--- drivers/i2c/i2c-acpi.c | 1 + include/linux/acpi.h | 1 + 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 7efe546..254afb7 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -36,6 +36,7 @@ bool acpi_force_hot_remove; static const char *dummy_hid = "device"; +static LIST_HEAD(acpi_bus_dep_device_list); static LIST_HEAD(acpi_bus_id_list); static DEFINE_MUTEX(acpi_scan_lock); static LIST_HEAD(acpi_scan_handlers_list); @@ -43,6 +44,12 @@ DEFINE_MUTEX(acpi_device_lock); LIST_HEAD(acpi_wakeup_device_list); static DEFINE_MUTEX(acpi_hp_context_lock); + +struct acpi_dep_handle { + struct list_head node; + acpi_handle handle; +}; + struct acpi_device_bus_id{ char bus_id[15]; unsigned int instance_no; @@ -2027,10 +2034,22 @@ static void acpi_scan_init_hotplug(struct acpi_device *adev) } } + +static int acpi_dep_device_check(acpi_handle handle) +{ + struct acpi_dep_handle *dep; + + list_for_each_entry(dep, &acpi_bus_dep_device_list, node) + if (dep->handle == handle) + return -EEXIST; + return 0; +} + static acpi_status acpi_bus_check_add(acpi_handle handle, u32 lvl_not_used, void *not_used, void **return_value) { struct acpi_device *device = NULL; + struct acpi_dep_handle *dep = NULL; int type; unsigned long long sta; int result; @@ -2048,9 +2067,24 @@ static acpi_status acpi_bus_check_add(acpi_handle handle, u32 lvl_not_used, return AE_OK; } - acpi_add_single_object(&device, handle, type, sta); - if (!device) - return AE_CTRL_DEPTH; + if (!acpi_dep_device_check(handle) + && acpi_has_method(handle, "_BIX") + && acpi_has_method(handle, "_DEP")) { + dep = kmalloc(sizeof(struct acpi_dep_handle), GFP_KERNEL); + if (!dep) + return AE_CTRL_DEPTH; + dep->handle = handle; + list_add_tail(&dep->node , &acpi_bus_dep_device_list); + + acpi_handle_info(dep->handle, + "is added to dep device list.\n"); + + return AE_OK; + } else { + acpi_add_single_object(&device, handle, type, sta); + if (!device) + return AE_CTRL_DEPTH; + } acpi_scan_init_hotplug(device); @@ -2061,6 +2095,30 @@ static acpi_status acpi_bus_check_add(acpi_handle handle, u32 lvl_not_used, return AE_OK; } +int acpi_walk_dep_device_list(void) +{ + struct acpi_dep_handle *dep, *tmp; + acpi_status status; + unsigned long long sta; + + list_for_each_entry_safe(dep, tmp, &acpi_bus_dep_device_list, node) { + status = acpi_evaluate_integer(dep->handle, "_STA", NULL, &sta); + + if (ACPI_FAILURE(status)) { + acpi_handle_warn(dep->handle, + "Status check failed (0x%x)\n", status); + } else if (sta & ACPI_STA_DEVICE_ENABLED) { + acpi_bus_scan(dep->handle); + acpi_handle_info(dep->handle, + "Device is readly\n"); + list_del(&dep->node); + kfree(dep); + } + } + return 0; +} +EXPORT_SYMBOL_GPL(acpi_walk_dep_device_list); + static int acpi_scan_attach_handler(struct acpi_device *device) { struct acpi_hardware_id *hwid; diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c index a0ae867..471490a 100644 --- a/drivers/i2c/i2c-acpi.c +++ b/drivers/i2c/i2c-acpi.c @@ -349,6 +349,7 @@ int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) return -ENOMEM; } + acpi_walk_dep_device_list(); return 0; } diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 667204c..66ad0dd 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -115,6 +115,7 @@ int acpi_boot_init (void); void acpi_boot_table_init (void); int acpi_mps_check (void); int acpi_numa_init (void); +int acpi_walk_dep_device_list(void); int acpi_table_init (void); int acpi_table_parse(char *id, acpi_tbl_table_handler handler); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [PATCH 0/9] I2C ACPI operation region handler support 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (9 preceding siblings ...) 2014-04-16 13:33 ` [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu @ 2014-04-16 16:35 ` Adam Williamson 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu 11 siblings, 0 replies; 79+ messages in thread From: Adam Williamson @ 2014-04-16 16:35 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, lenb, mika.westerberg, linux-i2c, linux-kernel On Wed, 2014-04-16 at 21:24 +0800, Lan Tianyu wrote: > ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation > region. It allows ACPI aml code able to access such kind of devices to > implement some ACPI standard method. > > On the Asus T100TA, Bios use GenericSerialBus operation region to access > i2c device to get battery info. So battery function depends on the I2C > operation region support. Here is the bug link. > https://bugzilla.kernel.org/show_bug.cgi?id=69011 > > This patchset is to add I2C ACPI operation region handler support. > > [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for > [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol > [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to > [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to > [PATCH 5/9] I2C: Add smbus quick read/write helper function > [PATCH 6/9] I2C: Add smbus word/block process call helper function > [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support > [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c > [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config I've tested the version of these changes that's available as https://bugzilla.kernel.org/attachment.cgi?id=131321 on my Venue 8 Pro and found it gives apparently accurate battery stats (and doesn't seem to make anything else explode). I'll try this form of the change out today if I can. -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net http://www.happyassassin.net ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 0/9] I2C ACPI operation region handler support 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu ` (10 preceding siblings ...) 2014-04-16 16:35 ` Adam Williamson @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 6:24 ` [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu ` (10 more replies) 11 siblings, 11 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. It allows ACPI aml code able to access such kind of devices to implement some ACPI standard method. On the Asus T100TA, Bios use GenericSerialBus operation region to access i2c device to get battery info. So battery function depends on the I2C operation region support. Here is the bug link. https://bugzilla.kernel.org/show_bug.cgi?id=69011 This patchset is to add I2C ACPI operation region handler support. [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() [Resend Patch 5/9] I2C: Add smbus quick read/write helper function [Resend Patch 6/9] I2C: Add smbus word/block process call helper [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config drivers/acpi/acpica/exfield.c | 104 +++++++++++++++++++++++++++++++++++++++++++++---- drivers/acpi/acpica/rscreate.c | 1 + drivers/acpi/bus.c | 18 ++++++++- drivers/acpi/thermal.c | 9 ++--- drivers/i2c/Kconfig | 17 +++++++- drivers/i2c/Makefile | 5 ++- drivers/i2c/i2c-acpi.c | 371 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 183 +++++++++++++++++++++++++++++++++++++++++-------------------------------------------- include/acpi/acpi_bus.h | 1 + include/linux/acpi.h | 11 ++++++ include/linux/i2c.h | 19 +++++++++ 11 files changed, 628 insertions(+), 111 deletions(-) ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:21 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu ` (9 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan, Lv Zheng From: Lv Zheng <lv.zheng@intel.com> The size of the buffer allocated for generic_serial_bus region access is not correct. This patch introduces acpi_ex_get_serial_access_length() to be invoked to obtain correct data buffer length. Reported by Lan Tianyu, Fixed by Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/acpica/exfield.c | 104 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c index 68d9744..12878e1 100644 --- a/drivers/acpi/acpica/exfield.c +++ b/drivers/acpi/acpica/exfield.c @@ -45,10 +45,71 @@ #include "accommon.h" #include "acdispat.h" #include "acinterp.h" +#include "amlcode.h" #define _COMPONENT ACPI_EXECUTER ACPI_MODULE_NAME("exfield") +/* Local prototypes */ +static u32 +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length); + +/******************************************************************************* + * + * FUNCTION: acpi_get_serial_access_bytes + * + * PARAMETERS: accessor_type - The type of the protocol indicated by region + * field access attributes + * access_length - The access length of the region field + * + * RETURN: Decoded access length + * + * DESCRIPTION: This routine returns the length of the generic_serial_bus + * protocol bytes + * + ******************************************************************************/ + +static u32 +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length) +{ + u32 length; + + switch (accessor_type) { + case AML_FIELD_ATTRIB_QUICK: + + length = 0; + break; + + case AML_FIELD_ATTRIB_SEND_RCV: + case AML_FIELD_ATTRIB_BYTE: + + length = 1; + break; + + case AML_FIELD_ATTRIB_WORD: + case AML_FIELD_ATTRIB_WORD_CALL: + + length = 2; + break; + + case AML_FIELD_ATTRIB_MULTIBYTE: + case AML_FIELD_ATTRIB_RAW_BYTES: + case AML_FIELD_ATTRIB_RAW_PROCESS: + + length = access_length; + break; + + case AML_FIELD_ATTRIB_BLOCK: + case AML_FIELD_ATTRIB_BLOCK_CALL: + default: + + length = ACPI_GSBUS_BUFFER_SIZE; + break; + } + + return (length); +} + /******************************************************************************* * * FUNCTION: acpi_ex_read_data_from_field @@ -63,8 +124,9 @@ ACPI_MODULE_NAME("exfield") * Buffer, depending on the size of the field. * ******************************************************************************/ + acpi_status -acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, +acpi_ex_read_data_from_field(struct acpi_walk_state * walk_state, union acpi_operand_object *obj_desc, union acpi_operand_object **ret_buffer_desc) { @@ -73,6 +135,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, acpi_size length; void *buffer; u32 function; + u16 accessor_type; ACPI_FUNCTION_TRACE_PTR(ex_read_data_from_field, obj_desc); @@ -116,9 +179,22 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, ACPI_READ | (obj_desc->field.attribute << 16); } else if (obj_desc->field.region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) { - length = ACPI_GSBUS_BUFFER_SIZE; - function = - ACPI_READ | (obj_desc->field.attribute << 16); + accessor_type = obj_desc->field.attribute; + length = acpi_ex_get_serial_access_length(accessor_type, + obj_desc-> + field. + access_length); + + /* + * Add additional 2 bytes for modeled generic_serial_bus data buffer: + * typedef struct { + * BYTEStatus; // Byte 0 of the data buffer + * BYTELength; // Byte 1 of the data buffer + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, + * } + */ + length += 2; + function = ACPI_READ | (accessor_type << 16); } else { /* IPMI */ length = ACPI_IPMI_BUFFER_SIZE; @@ -231,6 +307,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, void *buffer; union acpi_operand_object *buffer_desc; u32 function; + u16 accessor_type; ACPI_FUNCTION_TRACE_PTR(ex_write_data_to_field, obj_desc); @@ -284,9 +361,22 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, ACPI_WRITE | (obj_desc->field.attribute << 16); } else if (obj_desc->field.region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) { - length = ACPI_GSBUS_BUFFER_SIZE; - function = - ACPI_WRITE | (obj_desc->field.attribute << 16); + accessor_type = obj_desc->field.attribute; + length = acpi_ex_get_serial_access_length(accessor_type, + obj_desc-> + field. + access_length); + + /* + * Add additional 2 bytes for modeled generic_serial_bus data buffer: + * typedef struct { + * BYTEStatus; // Byte 0 of the data buffer + * BYTELength; // Byte 1 of the data buffer + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, + * } + */ + length += 2; + function = ACPI_WRITE | (accessor_type << 16); } else { /* IPMI */ length = ACPI_IPMI_BUFFER_SIZE; -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-22 6:24 ` [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu @ 2014-04-22 11:21 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:21 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi, Lv Zheng On Tue, Apr 22, 2014 at 02:24:07PM +0800, Lan Tianyu wrote: > From: Lv Zheng <lv.zheng@intel.com> > > The size of the buffer allocated for generic_serial_bus region access > is not correct. This patch introduces acpi_ex_get_serial_access_length() > to be invoked to obtain correct data buffer length. Reported by > Lan Tianyu, Fixed by Lv Zheng. > > Signed-off-by: Lv Zheng <lv.zheng@intel.com> > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu 2014-04-22 6:24 ` [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:21 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu ` (8 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan The acpi_buffer_to_resource is needed in i2c module to convert aml buffer to struct acpi_resource Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/acpica/rscreate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/acpica/rscreate.c b/drivers/acpi/acpica/rscreate.c index 75d3690..5828649 100644 --- a/drivers/acpi/acpica/rscreate.c +++ b/drivers/acpi/acpica/rscreate.c @@ -112,6 +112,7 @@ acpi_buffer_to_resource(u8 *aml_buffer, return (status); } +ACPI_EXPORT_SYMBOL(acpi_buffer_to_resource); /******************************************************************************* * -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol 2014-04-22 6:24 ` [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu @ 2014-04-22 11:21 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:21 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:08PM +0800, Lan Tianyu wrote: > The acpi_buffer_to_resource is needed in i2c module > to convert aml buffer to struct acpi_resource > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu 2014-04-22 6:24 ` [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu 2014-04-22 6:24 ` [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:23 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu ` (7 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan There is already acpi_bus_get_private_data() to get ACPI handle data which is associated with acpi_bus_private_data_handler(). This patch is to add acpi_bus_attach_private_data() to make a pair and facilitate to attach and get data to/from ACPI handle. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/bus.c | 18 +++++++++++++++++- include/acpi/acpi_bus.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index e7e5844..4ed8d48 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -132,6 +132,22 @@ void acpi_bus_private_data_handler(acpi_handle handle, } EXPORT_SYMBOL(acpi_bus_private_data_handler); +int acpi_bus_attach_private_data(acpi_handle handle, void *data) +{ + acpi_status status; + + status = acpi_attach_data(handle, + acpi_bus_private_data_handler, data); + if (ACPI_FAILURE(status)) { + ACPI_ERROR((AE_INFO, "Error attaching device[%p] data\n", + handle)); + return -ENODEV; + } + + return 0; +} +EXPORT_SYMBOL(acpi_bus_attach_private_data); + int acpi_bus_get_private_data(acpi_handle handle, void **data) { acpi_status status; @@ -141,7 +157,7 @@ int acpi_bus_get_private_data(acpi_handle handle, void **data) status = acpi_get_data(handle, acpi_bus_private_data_handler, data); if (ACPI_FAILURE(status) || !*data) { - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No context for object [%p]\n", + ACPI_ERROR((AE_INFO, "No context for object [%p]\n", handle)); return -ENODEV; } diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 84a2e29..a1f6fec 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -406,6 +406,7 @@ extern struct kobject *acpi_kobj; extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int); void acpi_bus_private_data_handler(acpi_handle, void *); int acpi_bus_get_private_data(acpi_handle, void **); +int acpi_bus_attach_private_data(acpi_handle, void *); void acpi_bus_no_hotplug(acpi_handle handle); extern int acpi_notifier_call_chain(struct acpi_device *, u32, u32); extern int register_acpi_notifier(struct notifier_block *); -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle 2014-04-22 6:24 ` [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu @ 2014-04-22 11:23 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:23 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:09PM +0800, Lan Tianyu wrote: > There is already acpi_bus_get_private_data() to get ACPI handle data > which is associated with acpi_bus_private_data_handler(). This patch > is to add acpi_bus_attach_private_data() to make a pair and facilitate > to attach and get data to/from ACPI handle. > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > --- > drivers/acpi/bus.c | 18 +++++++++++++++++- > include/acpi/acpi_bus.h | 1 + > 2 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c > index e7e5844..4ed8d48 100644 > --- a/drivers/acpi/bus.c > +++ b/drivers/acpi/bus.c > @@ -132,6 +132,22 @@ void acpi_bus_private_data_handler(acpi_handle handle, > } > EXPORT_SYMBOL(acpi_bus_private_data_handler); > > +int acpi_bus_attach_private_data(acpi_handle handle, void *data) > +{ > + acpi_status status; > + > + status = acpi_attach_data(handle, > + acpi_bus_private_data_handler, data); > + if (ACPI_FAILURE(status)) { > + ACPI_ERROR((AE_INFO, "Error attaching device[%p] data\n", > + handle)); > + return -ENODEV; > + } > + > + return 0; > +} > +EXPORT_SYMBOL(acpi_bus_attach_private_data); When I added GPIO operation region support, Rafael mentioned that we might want to add this private data to the struct acpi_device instead. Either way, looks good to me, Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (2 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:24 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu ` (6 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Use acpi_bus_attach_private_data() to attach private data instead of acpi_attach_data(). Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/thermal.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index c1e31a4..7ab9392 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -925,13 +925,10 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) if (result) return result; - status = acpi_attach_data(tz->device->handle, - acpi_bus_private_data_handler, - tz->thermal_zone); - if (ACPI_FAILURE(status)) { - pr_err(PREFIX "Error attaching device data\n"); + status = acpi_bus_attach_private_data(tz->device->handle, + tz->thermal_zone); + if (ACPI_FAILURE(status)) return -ENODEV; - } tz->tz_enabled = 1; -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data 2014-04-22 6:24 ` [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu @ 2014-04-22 11:24 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:24 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:10PM +0800, Lan Tianyu wrote: > Use acpi_bus_attach_private_data() to attach private data > instead of acpi_attach_data(). > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 5/9] I2C: Add smbus quick read/write helper function 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (3 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:24 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 6/9] I2C: Add smbus word/block process call " Lan Tianyu ` (5 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Add i2c_smbus_quick_write/read() helper function. These will be used in the implementation of i2c ACPI address space handler. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-core.c | 30 ++++++++++++++++++++++++++++++ include/linux/i2c.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 7c7f4b8..3bf0048 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2162,6 +2162,36 @@ static int i2c_smbus_check_pec(u8 cpec, struct i2c_msg *msg) } /** + * i2c_smbus_quick_write - SMBus "quick write" protocol + * @client: Handle to slave device + * + * This executes the SMBus "quick write" protocol, returning negative errno + * else zero on success. + */ +s32 i2c_smbus_quick_write(const struct i2c_client *client) +{ + return i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_WRITE, 0, + I2C_SMBUS_QUICK, NULL); +} +EXPORT_SYMBOL_GPL(i2c_smbus_quick_write); + +/** + * i2c_smbus_quick_read - SMBus "quick read" protocol + * @client: Handle to slave device + * + * This executes the SMBus "quick read" protocol, returning negative errno + * else zero on success. + */ +s32 i2c_smbus_quick_read(const struct i2c_client *client) +{ + return i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, 0, + I2C_SMBUS_QUICK, NULL); +} +EXPORT_SYMBOL_GPL(i2c_smbus_quick_read); + +/** * i2c_smbus_read_byte - SMBus "receive byte" protocol * @client: Handle to slave device * diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b556e0a..3e6ea90 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -82,6 +82,8 @@ extern s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, /* Now follow the 'nice' access routines. These also document the calling conventions of i2c_smbus_xfer. */ +extern s32 i2c_smbus_quick_write(const struct i2c_client *client); +extern s32 i2c_smbus_quick_read(const struct i2c_client *client); extern s32 i2c_smbus_read_byte(const struct i2c_client *client); extern s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value); extern s32 i2c_smbus_read_byte_data(const struct i2c_client *client, -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 5/9] I2C: Add smbus quick read/write helper function 2014-04-22 6:24 ` [Resend Patch 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu @ 2014-04-22 11:24 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:24 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:11PM +0800, Lan Tianyu wrote: > Add i2c_smbus_quick_write/read() helper function. These will be used > in the implementation of i2c ACPI address space handler. > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 6/9] I2C: Add smbus word/block process call helper function 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (4 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:26 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu ` (4 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Add i2c_smbus_word/block_proc_call() helper function. These will be used in the implementation of i2c ACPI address space handler. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-core.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/i2c.h | 4 ++++ 2 files changed, 60 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 3bf0048..638befd 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2306,6 +2306,30 @@ s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, EXPORT_SYMBOL(i2c_smbus_write_word_data); /** + * i2c_smbus_word_proc_call - SMBus "word proc call" protocol + * @client: Handle to slave device + * @command: Byte interpreted by slave + * @value: 16-bit "word" being written + * + * This executes the SMBus "word proc all" protocol, returning negative errno + * else a 16-bit unsigned "word" received from the device. + */ +s32 i2c_smbus_word_proc_call(const struct i2c_client *client, u8 command, + u16 value) +{ + union i2c_smbus_data data; + int status; + + data.word = value; + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, command, + I2C_SMBUS_PROC_CALL, &data); + + return (status < 0) ? status : data.word; +} +EXPORT_SYMBOL(i2c_smbus_word_proc_call); + +/** * i2c_smbus_read_block_data - SMBus "block read" protocol * @client: Handle to slave device * @command: Byte interpreted by slave @@ -2362,6 +2386,38 @@ s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, } EXPORT_SYMBOL(i2c_smbus_write_block_data); +/** + * i2c_smbus_block_proc_call - SMBus "block write" protocol + * @client: Handle to slave device + * @command: Byte interpreted by slave + * @length: Size of data block; SMBus allows at most 32 bytes + * @values: Byte array which will be written. + * + * This executes the SMBus "block proc call" protocol, returning negative errno + * else the number of read bytes. + */ +s32 i2c_smbus_block_proc_call(const struct i2c_client *client, u8 command, + u8 length, u8 *values) +{ + union i2c_smbus_data data; + int status; + + if (length > I2C_SMBUS_BLOCK_MAX) + length = I2C_SMBUS_BLOCK_MAX; + data.block[0] = length; + memcpy(&data.block[1], values, length); + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, command, + I2C_SMBUS_BLOCK_PROC_CALL, &data); + + if (status < 0) + return status; + + memcpy(values, &data.block[1], data.block[0]); + return data.block[0]; +} +EXPORT_SYMBOL(i2c_smbus_block_proc_call); + /* Returns the number of read bytes */ s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, u8 command, u8 length, u8 *values) diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 3e6ea90..724440a 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -94,6 +94,10 @@ extern s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command); extern s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, u16 value); +extern s32 i2c_smbus_word_proc_call(const struct i2c_client *client, + u8 command, u16 value); +extern s32 i2c_smbus_block_proc_call(const struct i2c_client *client, + u8 command, u8 length, u8 *values); static inline s32 i2c_smbus_read_word_swapped(const struct i2c_client *client, u8 command) -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 6/9] I2C: Add smbus word/block process call helper function 2014-04-22 6:24 ` [Resend Patch 6/9] I2C: Add smbus word/block process call " Lan Tianyu @ 2014-04-22 11:26 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:26 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:12PM +0800, Lan Tianyu wrote: > Add i2c_smbus_word/block_proc_call() helper function. These will be used > in the implementation of i2c ACPI address space handler. > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (5 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 6/9] I2C: Add smbus word/block process call " Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:36 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu ` (3 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. It allows ACPI aml code able to access such kind of devices to implement some ACPI standard method. ACPI Spec defines some access attribute to associate with i2c protocol. AttribQuick Read/Write Quick Protocol AttribSendReceive Send/Receive Byte Protocol AttribByte Read/Write Byte Protocol AttribWord Read/Write Word Protocol AttribBlock Read/Write Block Protocol AttribBytes Read/Write N-Bytes Protocol AttribProcessCall Process Call Protocol AttribBlockProcessCall Write Block-Read Block Process Call Protocol AttribRawBytes Raw Read/Write N-BytesProtocol AttribRawProcessBytes Raw Process Call Protocol On the Asus T100TA, Bios use GenericSerialBus operation region to access i2c device to get battery info. Sample code From Asus T100TA Scope (_SB.I2C1) { Name (UMPC, ResourceTemplate () { I2cSerialBus (0x0066, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2C1", 0x00, ResourceConsumer, , ) }) ... OperationRegion (DVUM, GenericSerialBus, Zero, 0x0100) Field (DVUM, BufferAcc, NoLock, Preserve) { Connection (UMPC), Offset (0x81), AccessAs (BufferAcc, AttribBytes (0x3E)), FGC0, 8 } ... } Device (BATC) { Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID ... Method (_BST, 0, NotSerialized) // _BST: Battery Status { If (LEqual (AVBL, One)) { Store (FGC0, BFFG) If (LNotEqual (STAT, One)) { ShiftRight (CHST, 0x04, Local0) And (Local0, 0x03, Local0) If (LOr (LEqual (Local0, One), LEqual (Local0, 0x02))) { Store (0x02, Local1) } ... } The i2c operation region is defined under I2C1 scope. _BST method under battery device BATC read battery status from the field "FCG0". The request would be sent to i2c operation region handler. This patch is to add i2c ACPI operation region support. Due to there are only "Byte" and "Bytes" protocol access on the Asus T100TA, other protocols have not been tested. About RawBytes and RawProcessBytes protocol, they needs specific drivers to interpret reference data from AML code according ACPI 5.0 SPEC(5.5.2.4.5.3.9 and 5.5.2.4.5.3.10). So far, not found such case and will add when find real case. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/Makefile | 5 +- drivers/i2c/i2c-acpi.c | 282 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 2 + include/linux/acpi.h | 11 ++ include/linux/i2c.h | 10 ++ 5 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 drivers/i2c/i2c-acpi.c diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 1722f50..80db307 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -2,8 +2,11 @@ # Makefile for the i2c core. # +i2ccore-y := i2c-core.o +i2ccore-$(CONFIG_ACPI) += i2c-acpi.o + obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o -obj-$(CONFIG_I2C) += i2c-core.o +obj-$(CONFIG_I2C) += i2ccore.o obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o obj-$(CONFIG_I2C_MUX) += i2c-mux.o diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c new file mode 100644 index 0000000..942abdf --- /dev/null +++ b/drivers/i2c/i2c-acpi.c @@ -0,0 +1,282 @@ +/* + * I2C ACPI code + * + * Copyright (C) 2014 Intel Corp + * + * Author: Lan Tianyu <tianyu.lan@intel.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ +#define pr_fmt(fmt) "I2C/ACPI : " fmt + +#include <linux/kernel.h> +#include <linux/errno.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/acpi.h> + +struct acpi_i2c_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; +} __packed; + +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + u8 data[0]; + }; +} __packed; + +static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, + u8 cmd, u8 *data, u8 data_len) +{ + + struct i2c_msg msgs[2]; + int ret; + u8 *buffer; + + buffer = kzalloc(data_len, GFP_KERNEL); + if (!buffer) + return AE_NO_MEMORY; + + msgs[0].addr = client->addr; + msgs[0].flags = client->flags; + msgs[0].len = 1; + msgs[0].buf = &cmd; + + msgs[1].addr = client->addr; + msgs[1].flags = client->flags | I2C_M_RD; + msgs[1].len = data_len; + msgs[1].buf = buffer; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + pr_err("i2c read failed\n"); + else + memcpy(data, buffer, data_len); + + kfree(buffer); + return ret; +} + +static int acpi_gsb_i2c_write_bytes(struct i2c_client *client, + u8 cmd, u8 *data, u8 data_len) +{ + + struct i2c_msg msgs[1]; + u8 *buffer; + int ret = AE_OK; + + buffer = kzalloc(data_len + 1, GFP_KERNEL); + if (!buffer) + return AE_NO_MEMORY; + + buffer[0] = cmd; + memcpy(buffer + 1, data, data_len); + + msgs[0].addr = client->addr; + msgs[0].flags = client->flags; + msgs[0].len = data_len + 1; + msgs[0].buf = buffer; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + pr_err("i2c write failed\n"); + + kfree(buffer); + return ret; +} + +static acpi_status +acpi_i2c_space_handler(u32 function, acpi_physical_address command, + u32 bits, u64 *value64, + void *handler_context, void *region_context) +{ + struct gsb_buffer *gsb = (struct gsb_buffer *)value64; + struct acpi_i2c_handler_data *data = handler_context; + struct acpi_connection_info *info = &data->info; + struct acpi_resource_i2c_serialbus *sb; + struct i2c_adapter *adapter = data->adapter; + struct i2c_client client; + struct acpi_resource *ares; + u32 accessor_type = function >> 16; + u8 action = function & ACPI_IO_MASK; + int status; + + acpi_buffer_to_resource(info->connection, info->length, &ares); + if (!value64 || ares->type != ACPI_RESOURCE_TYPE_SERIAL_BUS) + return AE_BAD_PARAMETER; + + sb = &ares->data.i2c_serial_bus; + if (sb->type != ACPI_RESOURCE_SERIAL_TYPE_I2C) + return AE_BAD_PARAMETER; + + client.adapter = adapter; + client.addr = sb->slave_address; + client.flags = 0; + + if (sb->access_mode == ACPI_I2C_10BIT_MODE) + client.flags |= I2C_CLIENT_TEN; + + switch (accessor_type) { + case ACPI_GSB_ACCESS_ATTRIB_QUICK: + if (action == ACPI_READ) + status = i2c_smbus_quick_read(&client); + else + status = i2c_smbus_quick_write(&client); + break; + + case ACPI_GSB_ACCESS_ATTRIB_SEND_RCV: + if (action == ACPI_READ) { + status = i2c_smbus_read_byte(&client); + if (status >= 0) { + gsb->bdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_byte(&client, gsb->bdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BYTE: + if (action == ACPI_READ) { + status = i2c_smbus_read_byte_data(&client, command); + if (status >= 0) { + gsb->bdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_byte_data(&client, command, + gsb->bdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_WORD: + if (action == ACPI_READ) { + status = i2c_smbus_read_word_data(&client, command); + if (status >= 0) { + gsb->wdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_word_data(&client, command, + gsb->wdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BLOCK: + if (action == ACPI_READ) { + status = i2c_smbus_read_block_data(&client, command, + gsb->data); + if (status >= 0) { + gsb->len = status; + status = 0; + } + } else { + status = i2c_smbus_write_block_data(&client, command, + gsb->len, gsb->data); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE: + if (action == ACPI_READ) { + status = acpi_gsb_i2c_read_bytes(&client, command, + gsb->data, info->access_length); + if (status > 0) + status = 0; + } else { + status = acpi_gsb_i2c_write_bytes(&client, command, + gsb->data, info->access_length); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_WORD_CALL: + status = i2c_smbus_word_proc_call(&client, command, gsb->wdata); + if (status >= 0) { + gsb->wdata = status; + status = 0; + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL: + status = i2c_smbus_block_proc_call(&client, command, gsb->len, + gsb->data); + if (status > 0) { + gsb->len = status; + status = 0; + } + break; + + default: + pr_info("protocl(0x%02x) is not supported.\n", accessor_type); + return AE_BAD_PARAMETER; + } + + gsb->status = status; + return AE_OK; +} + + +int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) +{ + acpi_handle handle = ACPI_HANDLE(adapter->dev.parent); + struct acpi_i2c_handler_data *data; + acpi_status status; + + if (!handle) + return -ENODEV; + + data = kzalloc(sizeof(struct acpi_i2c_handler_data), + GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->adapter = adapter; + status = acpi_bus_attach_private_data(handle, (void *)data); + if (ACPI_FAILURE(status)) { + kfree(data); + return -ENOMEM; + } + + status = acpi_install_address_space_handler(handle, + ACPI_ADR_SPACE_GSBUS, + &acpi_i2c_space_handler, + NULL, + data); + if (ACPI_FAILURE(status)) { + pr_err("Error installing i2c space handler\n"); + acpi_bus_attach_private_data(handle, NULL); + kfree(data); + return -ENOMEM; + } + + return 0; +} + +void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) +{ + acpi_handle handle = ACPI_HANDLE(adapter->dev.parent); + struct acpi_i2c_handler_data *data; + acpi_status status; + + if (!handle) + return; + + acpi_remove_address_space_handler(handle, + ACPI_ADR_SPACE_GSBUS, + &acpi_i2c_space_handler); + + status = acpi_bus_get_private_data(handle, (void **)&data); + if (ACPI_SUCCESS(status)) + kfree(data); +} diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 638befd..bb9dc56 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -1293,6 +1293,7 @@ exit_recovery: /* create pre-declared device nodes */ of_i2c_register_devices(adap); acpi_i2c_register_devices(adap); + acpi_i2c_install_space_handler(adap); if (adap->nr < __i2c_first_dynamic_bus_num) i2c_scan_static_board_info(adap); @@ -1466,6 +1467,7 @@ void i2c_del_adapter(struct i2c_adapter *adap) return; } + acpi_i2c_remove_space_handler(adap); /* Tell drivers about this removal */ mutex_lock(&core_lock); bus_for_each_drv(&i2c_bus_type, NULL, adap, diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7a8f2cd..ea53b9b 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -361,6 +361,17 @@ extern bool osc_sb_apei_support_acked; #define OSC_PCI_EXPRESS_CAPABILITY_CONTROL 0x00000010 #define OSC_PCI_CONTROL_MASKS 0x0000001f +#define ACPI_GSB_ACCESS_ATTRIB_QUICK 0x00000002 +#define ACPI_GSB_ACCESS_ATTRIB_SEND_RCV 0x00000004 +#define ACPI_GSB_ACCESS_ATTRIB_BYTE 0x00000006 +#define ACPI_GSB_ACCESS_ATTRIB_WORD 0x00000008 +#define ACPI_GSB_ACCESS_ATTRIB_BLOCK 0x0000000A +#define ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE 0x0000000B +#define ACPI_GSB_ACCESS_ATTRIB_WORD_CALL 0x0000000C +#define ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL 0x0000000D +#define ACPI_GSB_ACCESS_ATTRIB_RAW_BYTES 0x0000000E +#define ACPI_GSB_ACCESS_ATTRIB_RAW_PROCESS 0x0000000F + extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 *mask, u32 req); diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 724440a..681e689 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -583,4 +583,14 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node } #endif /* CONFIG_OF */ +#ifdef CONFIG_ACPI +int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); +void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); +#else +static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) +{ } +static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) +{ return 0; } +#endif + #endif /* _LINUX_I2C_H */ -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-22 6:24 ` [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu @ 2014-04-22 11:36 ` Mika Westerberg 2014-04-23 1:53 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:36 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:13PM +0800, Lan Tianyu wrote: > diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c > new file mode 100644 > index 0000000..942abdf > --- /dev/null > +++ b/drivers/i2c/i2c-acpi.c > @@ -0,0 +1,282 @@ > +/* > + * I2C ACPI code > + * > + * Copyright (C) 2014 Intel Corp > + * > + * Author: Lan Tianyu <tianyu.lan@intel.com> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, but > + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY > + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > + * for more details. > + */ > +#define pr_fmt(fmt) "I2C/ACPI : " fmt > + > +#include <linux/kernel.h> > +#include <linux/errno.h> > +#include <linux/err.h> > +#include <linux/i2c.h> > +#include <linux/acpi.h> > + > +struct acpi_i2c_handler_data { > + struct acpi_connection_info info; > + struct i2c_adapter *adapter; > +} __packed; Why __packed? > + > +struct gsb_buffer { > + u8 status; > + u8 len; > + union { > + u16 wdata; > + u8 bdata; > + u8 data[0]; > + }; > +} __packed; > + > +static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, > + u8 cmd, u8 *data, u8 data_len) > +{ > + > + struct i2c_msg msgs[2]; > + int ret; > + u8 *buffer; You seem to have two spaces here. > + > + buffer = kzalloc(data_len, GFP_KERNEL); > + if (!buffer) > + return AE_NO_MEMORY; > + > + msgs[0].addr = client->addr; > + msgs[0].flags = client->flags; > + msgs[0].len = 1; > + msgs[0].buf = &cmd; > + > + msgs[1].addr = client->addr; > + msgs[1].flags = client->flags | I2C_M_RD; > + msgs[1].len = data_len; > + msgs[1].buf = buffer; > + > + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); > + if (ret < 0) > + pr_err("i2c read failed\n"); > + else > + memcpy(data, buffer, data_len); > + > + kfree(buffer); > + return ret; > +} > + > +static int acpi_gsb_i2c_write_bytes(struct i2c_client *client, > + u8 cmd, u8 *data, u8 data_len) > +{ > + > + struct i2c_msg msgs[1]; > + u8 *buffer; Ditto. > + int ret = AE_OK; > + > + buffer = kzalloc(data_len + 1, GFP_KERNEL); > + if (!buffer) > + return AE_NO_MEMORY; > + > + buffer[0] = cmd; > + memcpy(buffer + 1, data, data_len); > + > + msgs[0].addr = client->addr; > + msgs[0].flags = client->flags; > + msgs[0].len = data_len + 1; > + msgs[0].buf = buffer; > + > + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); > + if (ret < 0) > + pr_err("i2c write failed\n"); Since you have pointer to the adapter, can't you use dev_err() instead? > + > + kfree(buffer); > + return ret; > +} > + > +static acpi_status > +acpi_i2c_space_handler(u32 function, acpi_physical_address command, > + u32 bits, u64 *value64, > + void *handler_context, void *region_context) > +{ > + struct gsb_buffer *gsb = (struct gsb_buffer *)value64; > + struct acpi_i2c_handler_data *data = handler_context; > + struct acpi_connection_info *info = &data->info; > + struct acpi_resource_i2c_serialbus *sb; > + struct i2c_adapter *adapter = data->adapter; > + struct i2c_client client; > + struct acpi_resource *ares; > + u32 accessor_type = function >> 16; > + u8 action = function & ACPI_IO_MASK; > + int status; > + > + acpi_buffer_to_resource(info->connection, info->length, &ares); > + if (!value64 || ares->type != ACPI_RESOURCE_TYPE_SERIAL_BUS) > + return AE_BAD_PARAMETER; > + > + sb = &ares->data.i2c_serial_bus; > + if (sb->type != ACPI_RESOURCE_SERIAL_TYPE_I2C) > + return AE_BAD_PARAMETER; Do you leak the resource buffer here? > + > + client.adapter = adapter; > + client.addr = sb->slave_address; > + client.flags = 0; I'm not sure if this is the correct way to use struct i2c_client (allocating it from stack and passing forward to functions that might expect a real i2c_client structure). It has ->dev and all. I'm wondering if you can use i2c_transfer() and i2c_smbus_xfer() here instead, passing just the adapter pointer? > + > + if (sb->access_mode == ACPI_I2C_10BIT_MODE) > + client.flags |= I2C_CLIENT_TEN; > + > + switch (accessor_type) { > + case ACPI_GSB_ACCESS_ATTRIB_QUICK: > + if (action == ACPI_READ) > + status = i2c_smbus_quick_read(&client); > + else > + status = i2c_smbus_quick_write(&client); > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_SEND_RCV: > + if (action == ACPI_READ) { > + status = i2c_smbus_read_byte(&client); > + if (status >= 0) { > + gsb->bdata = status; > + status = 0; > + } > + } else { > + status = i2c_smbus_write_byte(&client, gsb->bdata); > + } > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_BYTE: > + if (action == ACPI_READ) { > + status = i2c_smbus_read_byte_data(&client, command); > + if (status >= 0) { > + gsb->bdata = status; > + status = 0; > + } > + } else { > + status = i2c_smbus_write_byte_data(&client, command, > + gsb->bdata); > + } > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_WORD: > + if (action == ACPI_READ) { > + status = i2c_smbus_read_word_data(&client, command); > + if (status >= 0) { > + gsb->wdata = status; > + status = 0; > + } > + } else { > + status = i2c_smbus_write_word_data(&client, command, > + gsb->wdata); > + } > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_BLOCK: > + if (action == ACPI_READ) { > + status = i2c_smbus_read_block_data(&client, command, > + gsb->data); > + if (status >= 0) { > + gsb->len = status; > + status = 0; > + } > + } else { > + status = i2c_smbus_write_block_data(&client, command, > + gsb->len, gsb->data); > + } > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE: > + if (action == ACPI_READ) { > + status = acpi_gsb_i2c_read_bytes(&client, command, > + gsb->data, info->access_length); > + if (status > 0) > + status = 0; > + } else { > + status = acpi_gsb_i2c_write_bytes(&client, command, > + gsb->data, info->access_length); > + } > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_WORD_CALL: > + status = i2c_smbus_word_proc_call(&client, command, gsb->wdata); > + if (status >= 0) { > + gsb->wdata = status; > + status = 0; > + } > + break; > + > + case ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL: > + status = i2c_smbus_block_proc_call(&client, command, gsb->len, > + gsb->data); > + if (status > 0) { > + gsb->len = status; > + status = 0; > + } > + break; > + > + default: > + pr_info("protocl(0x%02x) is not supported.\n", accessor_type); protocl -> protocol > + return AE_BAD_PARAMETER; > + } > + > + gsb->status = status; > + return AE_OK; > +} ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-22 11:36 ` Mika Westerberg @ 2014-04-23 1:53 ` Lan Tianyu 2014-04-23 7:28 ` Mika Westerberg 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-23 1:53 UTC (permalink / raw) To: Mika Westerberg Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi Hi Mika: Thanks a lot for your review. On 2014年04月22日 19:36, Mika Westerberg wrote: >> > + >> > + client.adapter = adapter; >> > + client.addr = sb->slave_address; >> > + client.flags = 0; > I'm not sure if this is the correct way to use struct i2c_client > (allocating it from stack and passing forward to functions that might > expect a real i2c_client structure). It has ->dev and all. I check all i2c_smbus_xxx helper functions and they are simple wrappers of i2c_smbus_xfer(). Only adapter, addr and flags of struct client are used in these functions. > > I'm wondering if you can use i2c_transfer() and i2c_smbus_xfer() here > instead, passing just the adapter pointer? > Yes, I can do that but this needs to copy all codes of i2c_smbus_xxx helper function in the i2c-core.c here. This seems duplicated? -- Best regards Tianyu Lan ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-23 1:53 ` Lan Tianyu @ 2014-04-23 7:28 ` Mika Westerberg 2014-04-23 7:17 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Mika Westerberg @ 2014-04-23 7:28 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Wed, Apr 23, 2014 at 09:53:21AM +0800, Lan Tianyu wrote: > Hi Mika: > Thanks a lot for your review. > > On 2014年04月22日 19:36, Mika Westerberg wrote: > >> > + > >> > + client.adapter = adapter; > >> > + client.addr = sb->slave_address; > >> > + client.flags = 0; > > I'm not sure if this is the correct way to use struct i2c_client > > (allocating it from stack and passing forward to functions that might > > expect a real i2c_client structure). It has ->dev and all. > > I check all i2c_smbus_xxx helper functions and they are simple wrappers > of i2c_smbus_xfer(). Only adapter, addr and flags of struct client are > used in these functions. In that case I suppose it is OK to (ab)use the client structure like this. I think you still want to initialize the whole structure (unused fields with zero) before passing it to the wrappers. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-23 7:28 ` Mika Westerberg @ 2014-04-23 7:17 ` Lan Tianyu 0 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-23 7:17 UTC (permalink / raw) To: Mika Westerberg Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 2014年04月23日 15:28, Mika Westerberg wrote: > On Wed, Apr 23, 2014 at 09:53:21AM +0800, Lan Tianyu wrote: >> Hi Mika: >> Thanks a lot for your review. >> >> On 2014年04月22日 19:36, Mika Westerberg wrote: >>>>> + >>>>> + client.adapter = adapter; >>>>> + client.addr = sb->slave_address; >>>>> + client.flags = 0; >>> I'm not sure if this is the correct way to use struct i2c_client >>> (allocating it from stack and passing forward to functions that might >>> expect a real i2c_client structure). It has ->dev and all. >> >> I check all i2c_smbus_xxx helper functions and they are simple wrappers >> of i2c_smbus_xfer(). Only adapter, addr and flags of struct client are >> used in these functions. > > In that case I suppose it is OK to (ab)use the client structure like this. > > I think you still want to initialize the whole structure (unused fields > with zero) before passing it to the wrappers. > Ok. I will do that. -- Best regards Tianyu Lan ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (6 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:38 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu ` (2 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Clean up ACPI related code in the i2c core. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-acpi.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 95 -------------------------------------------------- include/linux/i2c.h | 3 ++ 3 files changed, 92 insertions(+), 95 deletions(-) diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c index 942abdf..a0ae867 100644 --- a/drivers/i2c/i2c-acpi.c +++ b/drivers/i2c/i2c-acpi.c @@ -37,6 +37,95 @@ struct gsb_buffer { }; } __packed; +static int acpi_i2c_add_resource(struct acpi_resource *ares, void *data) +{ + struct i2c_board_info *info = data; + + if (ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { + struct acpi_resource_i2c_serialbus *sb; + + sb = &ares->data.i2c_serial_bus; + if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) { + info->addr = sb->slave_address; + if (sb->access_mode == ACPI_I2C_10BIT_MODE) + info->flags |= I2C_CLIENT_TEN; + } + } else if (info->irq < 0) { + struct resource r; + + if (acpi_dev_resource_interrupt(ares, 0, &r)) + info->irq = r.start; + } + + /* Tell the ACPI core to skip this resource */ + return 1; +} + +static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level, + void *data, void **return_value) +{ + struct i2c_adapter *adapter = data; + struct list_head resource_list; + struct i2c_board_info info; + struct acpi_device *adev; + int ret; + + if (acpi_bus_get_device(handle, &adev)) + return AE_OK; + if (acpi_bus_get_status(adev) || !adev->status.present) + return AE_OK; + + memset(&info, 0, sizeof(info)); + info.acpi_node.companion = adev; + info.irq = -1; + + INIT_LIST_HEAD(&resource_list); + ret = acpi_dev_get_resources(adev, &resource_list, + acpi_i2c_add_resource, &info); + acpi_dev_free_resource_list(&resource_list); + + if (ret < 0 || !info.addr) + return AE_OK; + + adev->power.flags.ignore_parent = true; + strlcpy(info.type, dev_name(&adev->dev), sizeof(info.type)); + if (!i2c_new_device(adapter, &info)) { + adev->power.flags.ignore_parent = false; + dev_err(&adapter->dev, + "failed to add I2C device %s from ACPI\n", + dev_name(&adev->dev)); + } + + return AE_OK; +} + +/** + * acpi_i2c_register_devices - enumerate I2C slave devices behind adapter + * @adap: pointer to adapter + * + * Enumerate all I2C slave devices behind this adapter by walking the ACPI + * namespace. When a device is found it will be added to the Linux device + * model and bound to the corresponding ACPI handle. + */ +void acpi_i2c_register_devices(struct i2c_adapter *adap) +{ + acpi_handle handle; + acpi_status status; + + if (!adap->dev.parent) + return; + + handle = ACPI_HANDLE(adap->dev.parent); + if (!handle) + return; + + status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, + acpi_i2c_add_device, NULL, + adap, NULL); + if (ACPI_FAILURE(status)) + dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); +} + static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, u8 cmd, u8 *data, u8 data_len) { diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index bb9dc56..9ca50c8 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -1092,101 +1092,6 @@ EXPORT_SYMBOL(of_find_i2c_adapter_by_node); static void of_i2c_register_devices(struct i2c_adapter *adap) { } #endif /* CONFIG_OF */ -/* ACPI support code */ - -#if IS_ENABLED(CONFIG_ACPI) -static int acpi_i2c_add_resource(struct acpi_resource *ares, void *data) -{ - struct i2c_board_info *info = data; - - if (ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { - struct acpi_resource_i2c_serialbus *sb; - - sb = &ares->data.i2c_serial_bus; - if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) { - info->addr = sb->slave_address; - if (sb->access_mode == ACPI_I2C_10BIT_MODE) - info->flags |= I2C_CLIENT_TEN; - } - } else if (info->irq < 0) { - struct resource r; - - if (acpi_dev_resource_interrupt(ares, 0, &r)) - info->irq = r.start; - } - - /* Tell the ACPI core to skip this resource */ - return 1; -} - -static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level, - void *data, void **return_value) -{ - struct i2c_adapter *adapter = data; - struct list_head resource_list; - struct i2c_board_info info; - struct acpi_device *adev; - int ret; - - if (acpi_bus_get_device(handle, &adev)) - return AE_OK; - if (acpi_bus_get_status(adev) || !adev->status.present) - return AE_OK; - - memset(&info, 0, sizeof(info)); - info.acpi_node.companion = adev; - info.irq = -1; - - INIT_LIST_HEAD(&resource_list); - ret = acpi_dev_get_resources(adev, &resource_list, - acpi_i2c_add_resource, &info); - acpi_dev_free_resource_list(&resource_list); - - if (ret < 0 || !info.addr) - return AE_OK; - - adev->power.flags.ignore_parent = true; - strlcpy(info.type, dev_name(&adev->dev), sizeof(info.type)); - if (!i2c_new_device(adapter, &info)) { - adev->power.flags.ignore_parent = false; - dev_err(&adapter->dev, - "failed to add I2C device %s from ACPI\n", - dev_name(&adev->dev)); - } - - return AE_OK; -} - -/** - * acpi_i2c_register_devices - enumerate I2C slave devices behind adapter - * @adap: pointer to adapter - * - * Enumerate all I2C slave devices behind this adapter by walking the ACPI - * namespace. When a device is found it will be added to the Linux device - * model and bound to the corresponding ACPI handle. - */ -static void acpi_i2c_register_devices(struct i2c_adapter *adap) -{ - acpi_handle handle; - acpi_status status; - - if (!adap->dev.parent) - return; - - handle = ACPI_HANDLE(adap->dev.parent); - if (!handle) - return; - - status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, - acpi_i2c_add_device, NULL, - adap, NULL); - if (ACPI_FAILURE(status)) - dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); -} -#else -static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {} -#endif /* CONFIG_ACPI */ - static int i2c_do_add_adapter(struct i2c_driver *driver, struct i2c_adapter *adap) { diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 681e689..fc1ef42 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -586,7 +586,10 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node #ifdef CONFIG_ACPI int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); +void acpi_i2c_register_devices(struct i2c_adapter *adap); #else +static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {}; + static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) { } static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c 2014-04-22 6:24 ` [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu @ 2014-04-22 11:38 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:38 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:14PM +0800, Lan Tianyu wrote: > diff --git a/include/linux/i2c.h b/include/linux/i2c.h > index 681e689..fc1ef42 100644 > --- a/include/linux/i2c.h > +++ b/include/linux/i2c.h > @@ -586,7 +586,10 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node > #ifdef CONFIG_ACPI > int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); > void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); > +void acpi_i2c_register_devices(struct i2c_adapter *adap); > #else > +static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {}; Semicolon is not needed here. Apart from that, Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (7 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu @ 2014-04-22 6:24 ` Lan Tianyu 2014-04-22 11:45 ` Mika Westerberg 2014-04-23 23:03 ` [Resend Patch 0/9] I2C ACPI operation region handler support Adam Williamson 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-22 6:24 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan This patch is to add CONFIG_I2C_ACPI. Current there is a race between removing I2C ACPI operation region and ACPI AML code accessing. So make i2c core built-in if CONFIG_I2C_ACPI is set. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/Kconfig | 17 ++++++++++++++++- drivers/i2c/Makefile | 2 +- include/linux/i2c.h | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 7b7ea32..c670d49 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -2,7 +2,9 @@ # I2C subsystem configuration # -menuconfig I2C +menu "I2C support" + +config I2C tristate "I2C support" select RT_MUTEXES ---help--- @@ -21,6 +23,17 @@ menuconfig I2C This I2C support can also be built as a module. If so, the module will be called i2c-core. +config I2C_ACPI + bool "I2C ACPI support" + select I2C + depends on ACPI + default y + help + Say Y here if you want to enable I2C ACPI function. ACPI table + provides I2C slave devices' information to enumerate these devices. + This option also allows ACPI AML code to access I2C slave devices + via I2C ACPI operation region to fulfill ACPI method. + if I2C config I2C_BOARDINFO @@ -124,3 +137,5 @@ config I2C_DEBUG_BUS on. endif # I2C + +endmenu diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 80db307..37464ee 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -3,7 +3,7 @@ # i2ccore-y := i2c-core.o -i2ccore-$(CONFIG_ACPI) += i2c-acpi.o +i2ccore-$(CONFIG_I2C_ACPI) += i2c-acpi.o obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o obj-$(CONFIG_I2C) += i2ccore.o diff --git a/include/linux/i2c.h b/include/linux/i2c.h index fc1ef42..d0ece9f 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -583,7 +583,7 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node } #endif /* CONFIG_OF */ -#ifdef CONFIG_ACPI +#ifdef CONFIG_I2C_ACPI int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); void acpi_i2c_register_devices(struct i2c_adapter *adap); -- 1.8.4.rc0.1.g8f6a3e5.dirty ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-22 6:24 ` [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu @ 2014-04-22 11:45 ` Mika Westerberg 2014-04-23 5:39 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Mika Westerberg @ 2014-04-22 11:45 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, Apr 22, 2014 at 02:24:15PM +0800, Lan Tianyu wrote: > This patch is to add CONFIG_I2C_ACPI. Current there is a race between > removing I2C ACPI operation region and ACPI AML code accessing. > So make i2c core built-in if CONFIG_I2C_ACPI is set. > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > --- > drivers/i2c/Kconfig | 17 ++++++++++++++++- > drivers/i2c/Makefile | 2 +- > include/linux/i2c.h | 2 +- > 3 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > index 7b7ea32..c670d49 100644 > --- a/drivers/i2c/Kconfig > +++ b/drivers/i2c/Kconfig > @@ -2,7 +2,9 @@ > # I2C subsystem configuration > # > > -menuconfig I2C > +menu "I2C support" > + > +config I2C > tristate "I2C support" > select RT_MUTEXES > ---help--- > @@ -21,6 +23,17 @@ menuconfig I2C > This I2C support can also be built as a module. If so, the module > will be called i2c-core. > > +config I2C_ACPI > + bool "I2C ACPI support" > + select I2C > + depends on ACPI > + default y > + help > + Say Y here if you want to enable I2C ACPI function. ACPI table > + provides I2C slave devices' information to enumerate these devices. > + This option also allows ACPI AML code to access I2C slave devices > + via I2C ACPI operation region to fulfill ACPI method. > + I'm wondering, can we provide some sort of wrapper function from ACPI core that is guaranteed to be built in to the kernel image and use it instead of adding new Kconfig options? ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-22 11:45 ` Mika Westerberg @ 2014-04-23 5:39 ` Lan Tianyu 2014-04-23 6:47 ` Zheng, Lv 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-23 5:39 UTC (permalink / raw) To: Mika Westerberg Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi, Zheng, Lv On 2014年04月22日 19:45, Mika Westerberg wrote: > On Tue, Apr 22, 2014 at 02:24:15PM +0800, Lan Tianyu wrote: >> This patch is to add CONFIG_I2C_ACPI. Current there is a race between >> removing I2C ACPI operation region and ACPI AML code accessing. >> So make i2c core built-in if CONFIG_I2C_ACPI is set. >> >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> >> --- >> drivers/i2c/Kconfig | 17 ++++++++++++++++- >> drivers/i2c/Makefile | 2 +- >> include/linux/i2c.h | 2 +- >> 3 files changed, 18 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig >> index 7b7ea32..c670d49 100644 >> --- a/drivers/i2c/Kconfig >> +++ b/drivers/i2c/Kconfig >> @@ -2,7 +2,9 @@ >> # I2C subsystem configuration >> # >> >> -menuconfig I2C >> +menu "I2C support" >> + >> +config I2C >> tristate "I2C support" >> select RT_MUTEXES >> ---help--- >> @@ -21,6 +23,17 @@ menuconfig I2C >> This I2C support can also be built as a module. If so, the module >> will be called i2c-core. >> >> +config I2C_ACPI >> + bool "I2C ACPI support" >> + select I2C >> + depends on ACPI >> + default y >> + help >> + Say Y here if you want to enable I2C ACPI function. ACPI table >> + provides I2C slave devices' information to enumerate these devices. >> + This option also allows ACPI AML code to access I2C slave devices >> + via I2C ACPI operation region to fulfill ACPI method. >> + > > I'm wondering, can we provide some sort of wrapper function from ACPI core > that is guaranteed to be built in to the kernel image and use it instead of > adding new Kconfig options? > Cc: LV LV tried to fix the issue via wrapper solution in the ACPI code before. https://lkml.org/lkml/2013/7/23/87 He has a plan to resolve the issue in ACPICA later. Other choice is to increase the i2c-core module count to prevent it being unloaded when i2c operation region handler is installed. Remove the code When LV finish his job. -- Best regards Tianyu Lan ^ permalink raw reply [flat|nested] 79+ messages in thread
* RE: [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-23 5:39 ` Lan Tianyu @ 2014-04-23 6:47 ` Zheng, Lv 2014-04-23 7:40 ` Mika Westerberg 0 siblings, 1 reply; 79+ messages in thread From: Zheng, Lv @ 2014-04-23 6:47 UTC (permalink / raw) To: Lan, Tianyu, Mika Westerberg Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2997 bytes --] Hi, Tianyu > From: Lan, Tianyu > Sent: Wednesday, April 23, 2014 1:40 PM > > On 2014å¹´04æ22æ¥ 19:45, Mika Westerberg wrote: > > On Tue, Apr 22, 2014 at 02:24:15PM +0800, Lan Tianyu wrote: > >> This patch is to add CONFIG_I2C_ACPI. Current there is a race between > >> removing I2C ACPI operation region and ACPI AML code accessing. > >> So make i2c core built-in if CONFIG_I2C_ACPI is set. > >> > >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > >> --- > >> drivers/i2c/Kconfig | 17 ++++++++++++++++- > >> drivers/i2c/Makefile | 2 +- > >> include/linux/i2c.h | 2 +- > >> 3 files changed, 18 insertions(+), 3 deletions(-) > >> > >> diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > >> index 7b7ea32..c670d49 100644 > >> --- a/drivers/i2c/Kconfig > >> +++ b/drivers/i2c/Kconfig > >> @@ -2,7 +2,9 @@ > >> # I2C subsystem configuration > >> # > >> > >> -menuconfig I2C > >> +menu "I2C support" > >> + > >> +config I2C > >> tristate "I2C support" > >> select RT_MUTEXES > >> ---help--- > >> @@ -21,6 +23,17 @@ menuconfig I2C > >> This I2C support can also be built as a module. If so, the module > >> will be called i2c-core. > >> > >> +config I2C_ACPI > >> + bool "I2C ACPI support" > >> + select I2C > >> + depends on ACPI > >> + default y > >> + help > >> + Say Y here if you want to enable I2C ACPI function. ACPI table > >> + provides I2C slave devices' information to enumerate these devices. > >> + This option also allows ACPI AML code to access I2C slave devices > >> + via I2C ACPI operation region to fulfill ACPI method. > >> + > > > > I'm wondering, can we provide some sort of wrapper function from ACPI core > > that is guaranteed to be built in to the kernel image and use it instead of > > adding new Kconfig options? > > > Cc: LV > > LV tried to fix the issue via wrapper solution in the ACPI code before. > https://lkml.org/lkml/2013/7/23/87 > > He has a plan to resolve the issue in ACPICA later. > > Other choice is to increase the i2c-core module count to prevent it > being unloaded when i2c operation region handler is installed. Remove > the code When LV finish his job. You may see it implemented in ACPICA after several release. If you need a fix for now, you can use the patch pointed to by the link you've provided, Or you could find an updated one here: acpi-ipmi13.patch archived in (https://bugzilla.kernel.org/attachment.cgi?id=112611) I think the solution you've provided in this patch is also reasonable for now. IPMI also uses a similar solution to solve this issue. Please refer to the CONFIG_ACPI_IPMI. The story can be found at: http://www.spinics.net/lists/linux-acpi/msg49044.html And the similar solution can be found at: http://www.spinics.net/lists/linux-acpi/msg49184.html Thanks and best regards -Lv > > -- > Best regards > Tianyu Lan ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥ ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-23 6:47 ` Zheng, Lv @ 2014-04-23 7:40 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-23 7:40 UTC (permalink / raw) To: Zheng, Lv Cc: Lan, Tianyu, wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Wed, Apr 23, 2014 at 06:47:05AM +0000, Zheng, Lv wrote: > Hi, Tianyu > > > From: Lan, Tianyu > > Sent: Wednesday, April 23, 2014 1:40 PM > > > > On 2014年04月22日 19:45, Mika Westerberg wrote: > > > On Tue, Apr 22, 2014 at 02:24:15PM +0800, Lan Tianyu wrote: > > >> This patch is to add CONFIG_I2C_ACPI. Current there is a race between > > >> removing I2C ACPI operation region and ACPI AML code accessing. > > >> So make i2c core built-in if CONFIG_I2C_ACPI is set. > > >> > > >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > >> --- > > >> drivers/i2c/Kconfig | 17 ++++++++++++++++- > > >> drivers/i2c/Makefile | 2 +- > > >> include/linux/i2c.h | 2 +- > > >> 3 files changed, 18 insertions(+), 3 deletions(-) > > >> > > >> diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > > >> index 7b7ea32..c670d49 100644 > > >> --- a/drivers/i2c/Kconfig > > >> +++ b/drivers/i2c/Kconfig > > >> @@ -2,7 +2,9 @@ > > >> # I2C subsystem configuration > > >> # > > >> > > >> -menuconfig I2C > > >> +menu "I2C support" > > >> + > > >> +config I2C > > >> tristate "I2C support" > > >> select RT_MUTEXES > > >> ---help--- > > >> @@ -21,6 +23,17 @@ menuconfig I2C > > >> This I2C support can also be built as a module. If so, the module > > >> will be called i2c-core. > > >> > > >> +config I2C_ACPI > > >> + bool "I2C ACPI support" > > >> + select I2C > > >> + depends on ACPI > > >> + default y > > >> + help > > >> + Say Y here if you want to enable I2C ACPI function. ACPI table > > >> + provides I2C slave devices' information to enumerate these devices. > > >> + This option also allows ACPI AML code to access I2C slave devices > > >> + via I2C ACPI operation region to fulfill ACPI method. > > >> + > > > > > > I'm wondering, can we provide some sort of wrapper function from ACPI core > > > that is guaranteed to be built in to the kernel image and use it instead of > > > adding new Kconfig options? > > > > > Cc: LV > > > > LV tried to fix the issue via wrapper solution in the ACPI code before. > > https://lkml.org/lkml/2013/7/23/87 > > > > He has a plan to resolve the issue in ACPICA later. > > > > Other choice is to increase the i2c-core module count to prevent it > > being unloaded when i2c operation region handler is installed. Remove > > the code When LV finish his job. > > You may see it implemented in ACPICA after several release. > If you need a fix for now, you can use the patch pointed to by the link you've provided, > Or you could find an updated one here: > acpi-ipmi13.patch archived in (https://bugzilla.kernel.org/attachment.cgi?id=112611) > > I think the solution you've provided in this patch is also reasonable for now. > IPMI also uses a similar solution to solve this issue. > Please refer to the CONFIG_ACPI_IPMI. > > The story can be found at: > http://www.spinics.net/lists/linux-acpi/msg49044.html > And the similar solution can be found at: > http://www.spinics.net/lists/linux-acpi/msg49184.html Thanks for the pointers. Given that the IPMI problem was solved like this I guess I2C operation regions can follow the same pattern if there is no better solution available. Out of curiousity: how did you plan to fix this in ACPICA? ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Resend Patch 0/9] I2C ACPI operation region handler support 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (8 preceding siblings ...) 2014-04-22 6:24 ` [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu @ 2014-04-23 23:03 ` Adam Williamson 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu 10 siblings, 0 replies; 79+ messages in thread From: Adam Williamson @ 2014-04-23 23:03 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, lenb, linux-i2c, linux-kernel, linux-acpi On Tue, 2014-04-22 at 14:24 +0800, Lan Tianyu wrote: > ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation > region. It allows ACPI aml code able to access such kind of devices to > implement some ACPI standard method. > > On the Asus T100TA, Bios use GenericSerialBus operation region to access > i2c device to get battery info. So battery function depends on the I2C > operation region support. Here is the bug link. > https://bugzilla.kernel.org/show_bug.cgi?id=69011 > > This patchset is to add I2C ACPI operation region handler support. For what it's worth, I've tested this patchset with the exception of patch 9/9 - which I leave out because it would require annoying fiddling with my kernel builds - and it gives apparently-accurate battery/AC information on my Venue 8 Pro. It doesn't *obviously* cause any other problems, though there are a few other issues I'm dealing with ATM. If any of them turn out to be related to this patch set, I'll send a follow-up. -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net http://www.happyassassin.net ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Patch V2 0/9] I2C ACPI operation region handler support 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu ` (9 preceding siblings ...) 2014-04-23 23:03 ` [Resend Patch 0/9] I2C ACPI operation region handler support Adam Williamson @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-28 14:27 ` [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu ` (10 more replies) 10 siblings, 11 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. It allows ACPI aml code able to access such kind of devices to implement some ACPI standard method. On the Asus T100TA, Bios use GenericSerialBus operation region to access i2c device to get battery info. So battery function depends on the I2C operation region support. Here is the bug link. https://bugzilla.kernel.org/show_bug.cgi?id=69011 This patchset is to add I2C ACPI operation region handler support. Change Since V1: Fix some code style and memory leak issues in Patch 7 [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for [Patch V2 2/9] ACPICA: Export acpi_buffer_to_resource symbol [Patch V2 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate [Patch V2 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to [Patch V2 5/9] I2C: Add smbus quick read/write helper function [Patch V2 6/9] I2C: Add smbus word/block process call helper function [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support [Patch V2 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config drivers/acpi/acpica/exfield.c | 104 ++++++++++++++++++++++++++++++++++--- drivers/acpi/acpica/rscreate.c | 1 + drivers/acpi/bus.c | 18 ++++++- drivers/acpi/thermal.c | 9 ++-- drivers/i2c/Kconfig | 17 ++++++- drivers/i2c/Makefile | 5 +- drivers/i2c/i2c-acpi.c | 384 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 183 ++++++++++++++++++++++++++++++++--------------------------------- include/acpi/acpi_bus.h | 1 + include/linux/acpi.h | 11 ++++ include/linux/i2c.h | 18 +++++++ 11 files changed, 640 insertions(+), 111 deletions(-) ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-28 17:52 ` Adam Williamson 2014-04-28 14:27 ` [Patch V2 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu ` (9 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan, Lv Zheng From: Lv Zheng <lv.zheng@intel.com> The size of the buffer allocated for generic_serial_bus region access is not correct. This patch introduces acpi_ex_get_serial_access_length() to be invoked to obtain correct data buffer length. Reported by Lan Tianyu, Fixed by Lv Zheng. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/acpica/exfield.c | 104 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c index 68d9744..12878e1 100644 --- a/drivers/acpi/acpica/exfield.c +++ b/drivers/acpi/acpica/exfield.c @@ -45,10 +45,71 @@ #include "accommon.h" #include "acdispat.h" #include "acinterp.h" +#include "amlcode.h" #define _COMPONENT ACPI_EXECUTER ACPI_MODULE_NAME("exfield") +/* Local prototypes */ +static u32 +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length); + +/******************************************************************************* + * + * FUNCTION: acpi_get_serial_access_bytes + * + * PARAMETERS: accessor_type - The type of the protocol indicated by region + * field access attributes + * access_length - The access length of the region field + * + * RETURN: Decoded access length + * + * DESCRIPTION: This routine returns the length of the generic_serial_bus + * protocol bytes + * + ******************************************************************************/ + +static u32 +acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length) +{ + u32 length; + + switch (accessor_type) { + case AML_FIELD_ATTRIB_QUICK: + + length = 0; + break; + + case AML_FIELD_ATTRIB_SEND_RCV: + case AML_FIELD_ATTRIB_BYTE: + + length = 1; + break; + + case AML_FIELD_ATTRIB_WORD: + case AML_FIELD_ATTRIB_WORD_CALL: + + length = 2; + break; + + case AML_FIELD_ATTRIB_MULTIBYTE: + case AML_FIELD_ATTRIB_RAW_BYTES: + case AML_FIELD_ATTRIB_RAW_PROCESS: + + length = access_length; + break; + + case AML_FIELD_ATTRIB_BLOCK: + case AML_FIELD_ATTRIB_BLOCK_CALL: + default: + + length = ACPI_GSBUS_BUFFER_SIZE; + break; + } + + return (length); +} + /******************************************************************************* * * FUNCTION: acpi_ex_read_data_from_field @@ -63,8 +124,9 @@ ACPI_MODULE_NAME("exfield") * Buffer, depending on the size of the field. * ******************************************************************************/ + acpi_status -acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, +acpi_ex_read_data_from_field(struct acpi_walk_state * walk_state, union acpi_operand_object *obj_desc, union acpi_operand_object **ret_buffer_desc) { @@ -73,6 +135,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, acpi_size length; void *buffer; u32 function; + u16 accessor_type; ACPI_FUNCTION_TRACE_PTR(ex_read_data_from_field, obj_desc); @@ -116,9 +179,22 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state, ACPI_READ | (obj_desc->field.attribute << 16); } else if (obj_desc->field.region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) { - length = ACPI_GSBUS_BUFFER_SIZE; - function = - ACPI_READ | (obj_desc->field.attribute << 16); + accessor_type = obj_desc->field.attribute; + length = acpi_ex_get_serial_access_length(accessor_type, + obj_desc-> + field. + access_length); + + /* + * Add additional 2 bytes for modeled generic_serial_bus data buffer: + * typedef struct { + * BYTEStatus; // Byte 0 of the data buffer + * BYTELength; // Byte 1 of the data buffer + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, + * } + */ + length += 2; + function = ACPI_READ | (accessor_type << 16); } else { /* IPMI */ length = ACPI_IPMI_BUFFER_SIZE; @@ -231,6 +307,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, void *buffer; union acpi_operand_object *buffer_desc; u32 function; + u16 accessor_type; ACPI_FUNCTION_TRACE_PTR(ex_write_data_to_field, obj_desc); @@ -284,9 +361,22 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc, ACPI_WRITE | (obj_desc->field.attribute << 16); } else if (obj_desc->field.region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) { - length = ACPI_GSBUS_BUFFER_SIZE; - function = - ACPI_WRITE | (obj_desc->field.attribute << 16); + accessor_type = obj_desc->field.attribute; + length = acpi_ex_get_serial_access_length(accessor_type, + obj_desc-> + field. + access_length); + + /* + * Add additional 2 bytes for modeled generic_serial_bus data buffer: + * typedef struct { + * BYTEStatus; // Byte 0 of the data buffer + * BYTELength; // Byte 1 of the data buffer + * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer, + * } + */ + length += 2; + function = ACPI_WRITE | (accessor_type << 16); } else { /* IPMI */ length = ACPI_IPMI_BUFFER_SIZE; -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-28 14:27 ` [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu @ 2014-04-28 17:52 ` Adam Williamson 2014-04-28 18:08 ` Adam Williamson 0 siblings, 1 reply; 79+ messages in thread From: Adam Williamson @ 2014-04-28 17:52 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, lenb, linux-i2c, linux-kernel, linux-acpi, Lv Zheng On Mon, 2014-04-28 at 22:27 +0800, Lan Tianyu wrote: > From: Lv Zheng <lv.zheng@intel.com> > > The size of the buffer allocated for generic_serial_bus region access > is not correct. This patch introduces acpi_ex_get_serial_access_length() > to be invoked to obtain correct data buffer length. Reported by > Lan Tianyu, Fixed by Lv Zheng. > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > Signed-off-by: Lv Zheng <lv.zheng@intel.com> > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Very superficial issue, and sorry I forgot to mention it for v1, but the summary line for this patch (1/9) ends with a period - "...region field accesses." - which I think is not the correct style? -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net http://www.happyassassin.net ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-28 17:52 ` Adam Williamson @ 2014-04-28 18:08 ` Adam Williamson 2014-04-28 22:50 ` Rafael J. Wysocki 0 siblings, 1 reply; 79+ messages in thread From: Adam Williamson @ 2014-04-28 18:08 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, lenb, linux-i2c, linux-kernel, linux-acpi, Lv Zheng On Mon, 2014-04-28 at 10:52 -0700, Adam Williamson wrote: > On Mon, 2014-04-28 at 22:27 +0800, Lan Tianyu wrote: > > From: Lv Zheng <lv.zheng@intel.com> > > > > The size of the buffer allocated for generic_serial_bus region access > > is not correct. This patch introduces acpi_ex_get_serial_access_length() > > to be invoked to obtain correct data buffer length. Reported by > > Lan Tianyu, Fixed by Lv Zheng. > > > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > > Signed-off-by: Lv Zheng <lv.zheng@intel.com> > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > Very superficial issue, and sorry I forgot to mention it for v1, but the > summary line for this patch (1/9) ends with a period - "...region field > accesses." - which I think is not the correct style? In fact, it seems this patch already got merged into Linus' tree somehow: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/acpi/acpica/exfield.c?id=6273f00e6ecbd60494a979033b7e5271a29a0436 the others do not seem to have been merged yet. -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net http://www.happyassassin.net ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-28 18:08 ` Adam Williamson @ 2014-04-28 22:50 ` Rafael J. Wysocki 2014-04-29 11:31 ` Wolfram Sang 0 siblings, 1 reply; 79+ messages in thread From: Rafael J. Wysocki @ 2014-04-28 22:50 UTC (permalink / raw) To: Adam Williamson Cc: Lan Tianyu, wsa, mika.westerberg, lenb, linux-i2c, linux-kernel, linux-acpi, Lv Zheng On Monday, April 28, 2014 11:08:25 AM Adam Williamson wrote: > On Mon, 2014-04-28 at 10:52 -0700, Adam Williamson wrote: > > On Mon, 2014-04-28 at 22:27 +0800, Lan Tianyu wrote: > > > From: Lv Zheng <lv.zheng@intel.com> > > > > > > The size of the buffer allocated for generic_serial_bus region access > > > is not correct. This patch introduces acpi_ex_get_serial_access_length() > > > to be invoked to obtain correct data buffer length. Reported by > > > Lan Tianyu, Fixed by Lv Zheng. > > > > > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > > > Signed-off-by: Lv Zheng <lv.zheng@intel.com> > > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > > > Very superficial issue, and sorry I forgot to mention it for v1, but the > > summary line for this patch (1/9) ends with a period - "...region field > > accesses." - which I think is not the correct style? Well, some people do that, but is it really a problem? > In fact, it seems this patch already got merged into Linus' tree > somehow: > > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/acpi/acpica/exfield.c?id=6273f00e6ecbd60494a979033b7e5271a29a0436 Yes, I wanted to have it in there now. > the others do not seem to have been merged yet. The rest has been queued up for 3.16. -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-28 22:50 ` Rafael J. Wysocki @ 2014-04-29 11:31 ` Wolfram Sang 2014-04-29 21:37 ` Rafael J. Wysocki 0 siblings, 1 reply; 79+ messages in thread From: Wolfram Sang @ 2014-04-29 11:31 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Adam Williamson, Lan Tianyu, mika.westerberg, lenb, linux-i2c, linux-kernel, linux-acpi, Lv Zheng [-- Attachment #1: Type: text/plain, Size: 158 bytes --] > The rest has been queued up for 3.16. I also aim for 3.16, yet it may take 1 or 2 weeks more until I'll be able to review the I2C part of those patches. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses. 2014-04-29 11:31 ` Wolfram Sang @ 2014-04-29 21:37 ` Rafael J. Wysocki 0 siblings, 0 replies; 79+ messages in thread From: Rafael J. Wysocki @ 2014-04-29 21:37 UTC (permalink / raw) To: Wolfram Sang Cc: Adam Williamson, Lan Tianyu, mika.westerberg, lenb, linux-i2c, linux-kernel, linux-acpi, Lv Zheng On Tuesday, April 29, 2014 01:31:28 PM Wolfram Sang wrote: > > --3MwIy2ne0vdjdPXF > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > > > > The rest has been queued up for 3.16. > > I also aim for 3.16, yet it may take 1 or 2 weeks more until I'll be > able to review the I2C part of those patches. That's fine, they can stay in my bleeding-edge branch till then. -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Patch V2 2/9] ACPICA: Export acpi_buffer_to_resource symbol 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu 2014-04-28 14:27 ` [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-28 14:27 ` [Patch V2 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu ` (8 subsequent siblings) 10 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan The acpi_buffer_to_resource is needed in i2c module to convert aml buffer to struct acpi_resource Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/acpica/rscreate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/acpica/rscreate.c b/drivers/acpi/acpica/rscreate.c index 75d3690..5828649 100644 --- a/drivers/acpi/acpica/rscreate.c +++ b/drivers/acpi/acpica/rscreate.c @@ -112,6 +112,7 @@ acpi_buffer_to_resource(u8 *aml_buffer, return (status); } +ACPI_EXPORT_SYMBOL(acpi_buffer_to_resource); /******************************************************************************* * -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Patch V2 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu 2014-04-28 14:27 ` [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu 2014-04-28 14:27 ` [Patch V2 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-28 14:27 ` [Patch V2 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu ` (7 subsequent siblings) 10 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan There is already acpi_bus_get_private_data() to get ACPI handle data which is associated with acpi_bus_private_data_handler(). This patch is to add acpi_bus_attach_private_data() to make a pair and facilitate to attach and get data to/from ACPI handle. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/bus.c | 18 +++++++++++++++++- include/acpi/acpi_bus.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index e7e5844..4ed8d48 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -132,6 +132,22 @@ void acpi_bus_private_data_handler(acpi_handle handle, } EXPORT_SYMBOL(acpi_bus_private_data_handler); +int acpi_bus_attach_private_data(acpi_handle handle, void *data) +{ + acpi_status status; + + status = acpi_attach_data(handle, + acpi_bus_private_data_handler, data); + if (ACPI_FAILURE(status)) { + ACPI_ERROR((AE_INFO, "Error attaching device[%p] data\n", + handle)); + return -ENODEV; + } + + return 0; +} +EXPORT_SYMBOL(acpi_bus_attach_private_data); + int acpi_bus_get_private_data(acpi_handle handle, void **data) { acpi_status status; @@ -141,7 +157,7 @@ int acpi_bus_get_private_data(acpi_handle handle, void **data) status = acpi_get_data(handle, acpi_bus_private_data_handler, data); if (ACPI_FAILURE(status) || !*data) { - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No context for object [%p]\n", + ACPI_ERROR((AE_INFO, "No context for object [%p]\n", handle)); return -ENODEV; } diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 84a2e29..a1f6fec 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -406,6 +406,7 @@ extern struct kobject *acpi_kobj; extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int); void acpi_bus_private_data_handler(acpi_handle, void *); int acpi_bus_get_private_data(acpi_handle, void **); +int acpi_bus_attach_private_data(acpi_handle, void *); void acpi_bus_no_hotplug(acpi_handle handle); extern int acpi_notifier_call_chain(struct acpi_device *, u32, u32); extern int register_acpi_notifier(struct notifier_block *); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Patch V2 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (2 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-28 14:27 ` [Patch V2 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu ` (6 subsequent siblings) 10 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Use acpi_bus_attach_private_data() to attach private data instead of acpi_attach_data(). Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/thermal.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index c1e31a4..7ab9392 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -925,13 +925,10 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) if (result) return result; - status = acpi_attach_data(tz->device->handle, - acpi_bus_private_data_handler, - tz->thermal_zone); - if (ACPI_FAILURE(status)) { - pr_err(PREFIX "Error attaching device data\n"); + status = acpi_bus_attach_private_data(tz->device->handle, + tz->thermal_zone); + if (ACPI_FAILURE(status)) return -ENODEV; - } tz->tz_enabled = 1; -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Patch V2 5/9] I2C: Add smbus quick read/write helper function 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (3 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-05-17 9:41 ` Wolfram Sang 2014-04-28 14:27 ` [Patch V2 6/9] I2C: Add smbus word/block process call " Lan Tianyu ` (5 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Add i2c_smbus_quick_write/read() helper function. These will be used in the implementation of i2c ACPI address space handler. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-core.c | 30 ++++++++++++++++++++++++++++++ include/linux/i2c.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 7c7f4b8..3bf0048 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2162,6 +2162,36 @@ static int i2c_smbus_check_pec(u8 cpec, struct i2c_msg *msg) } /** + * i2c_smbus_quick_write - SMBus "quick write" protocol + * @client: Handle to slave device + * + * This executes the SMBus "quick write" protocol, returning negative errno + * else zero on success. + */ +s32 i2c_smbus_quick_write(const struct i2c_client *client) +{ + return i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_WRITE, 0, + I2C_SMBUS_QUICK, NULL); +} +EXPORT_SYMBOL_GPL(i2c_smbus_quick_write); + +/** + * i2c_smbus_quick_read - SMBus "quick read" protocol + * @client: Handle to slave device + * + * This executes the SMBus "quick read" protocol, returning negative errno + * else zero on success. + */ +s32 i2c_smbus_quick_read(const struct i2c_client *client) +{ + return i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, 0, + I2C_SMBUS_QUICK, NULL); +} +EXPORT_SYMBOL_GPL(i2c_smbus_quick_read); + +/** * i2c_smbus_read_byte - SMBus "receive byte" protocol * @client: Handle to slave device * diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b556e0a..3e6ea90 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -82,6 +82,8 @@ extern s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, /* Now follow the 'nice' access routines. These also document the calling conventions of i2c_smbus_xfer. */ +extern s32 i2c_smbus_quick_write(const struct i2c_client *client); +extern s32 i2c_smbus_quick_read(const struct i2c_client *client); extern s32 i2c_smbus_read_byte(const struct i2c_client *client); extern s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value); extern s32 i2c_smbus_read_byte_data(const struct i2c_client *client, -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 5/9] I2C: Add smbus quick read/write helper function 2014-04-28 14:27 ` [Patch V2 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu @ 2014-05-17 9:41 ` Wolfram Sang 2014-05-17 13:13 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Wolfram Sang @ 2014-05-17 9:41 UTC (permalink / raw) To: Lan Tianyu Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 907 bytes --] On Mon, Apr 28, 2014 at 10:27:44PM +0800, Lan Tianyu wrote: > Add i2c_smbus_quick_write/read() helper function. These will be used > in the implementation of i2c ACPI address space handler. > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> We had such a function once but removed because of no users. Please check 67c2e66571c383404a5acd08189194da660da942 what it takes to bring them back. Especially missing are documentation updates... > +s32 i2c_smbus_quick_write(const struct i2c_client *client) ... and I like the original function much better. 1) It is named *_write_quick which follows other function name patterns 2) It uses a parameter for the r/w bit. Make sense to me, since this bit is the information we send to the device. quick_read doesn't make sense to me. We don't receive a bit from the device. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 5/9] I2C: Add smbus quick read/write helper function 2014-05-17 9:41 ` Wolfram Sang @ 2014-05-17 13:13 ` Lan Tianyu 2014-05-17 17:15 ` Wolfram Sang 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-05-17 13:13 UTC (permalink / raw) To: Wolfram Sang Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 05/17/2014 05:41 PM, Wolfram Sang wrote: > On Mon, Apr 28, 2014 at 10:27:44PM +0800, Lan Tianyu wrote: >> Add i2c_smbus_quick_write/read() helper function. These will be used >> in the implementation of i2c ACPI address space handler. >> >> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > We had such a function once but removed because of no users. Please > check 67c2e66571c383404a5acd08189194da660da942 what it takes to bring > them back. Especially missing are documentation updates... > >> +s32 i2c_smbus_quick_write(const struct i2c_client *client) > > ... and I like the original function much better. > > 1) It is named *_write_quick which follows other function name patterns > 2) It uses a parameter for the r/w bit. Make sense to me, since this bit > is the information we send to the device. quick_read doesn't make sense > to me. We don't receive a bit from the device. > Hi Wolfram: Great thanks for your review. Ok. I will follow commit 67c2e665 to bring i2c_smbus_write_quick(struct i2c_client *client, u8 value) back. BTW, how about i2c_probe_func_quick_read()? Should we replace it with the original i2c_smbus_write_quick()? ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 5/9] I2C: Add smbus quick read/write helper function 2014-05-17 13:13 ` Lan Tianyu @ 2014-05-17 17:15 ` Wolfram Sang 0 siblings, 0 replies; 79+ messages in thread From: Wolfram Sang @ 2014-05-17 17:15 UTC (permalink / raw) To: Lan Tianyu Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 658 bytes --] > >2) It uses a parameter for the r/w bit. Make sense to me, since this bit > >is the information we send to the device. quick_read doesn't make sense > >to me. We don't receive a bit from the device. > > > > Hi Wolfram: > Great thanks for your review. Ok. I will follow commit 67c2e665 to > bring i2c_smbus_write_quick(struct i2c_client *client, u8 value) > back. > > BTW, how about i2c_probe_func_quick_read()? Should we replace it > with the original i2c_smbus_write_quick()? As said above "quick_read doesn't make sense to me. We don't receive a bit from the device." Start implementing and you will see why we don't need it :) [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Patch V2 6/9] I2C: Add smbus word/block process call helper function 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (4 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-05-17 10:21 ` Wolfram Sang 2014-04-28 14:27 ` [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu ` (4 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Add i2c_smbus_word/block_proc_call() helper function. These will be used in the implementation of i2c ACPI address space handler. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-core.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/i2c.h | 4 ++++ 2 files changed, 60 insertions(+) diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 3bf0048..638befd 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2306,6 +2306,30 @@ s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, EXPORT_SYMBOL(i2c_smbus_write_word_data); /** + * i2c_smbus_word_proc_call - SMBus "word proc call" protocol + * @client: Handle to slave device + * @command: Byte interpreted by slave + * @value: 16-bit "word" being written + * + * This executes the SMBus "word proc all" protocol, returning negative errno + * else a 16-bit unsigned "word" received from the device. + */ +s32 i2c_smbus_word_proc_call(const struct i2c_client *client, u8 command, + u16 value) +{ + union i2c_smbus_data data; + int status; + + data.word = value; + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, command, + I2C_SMBUS_PROC_CALL, &data); + + return (status < 0) ? status : data.word; +} +EXPORT_SYMBOL(i2c_smbus_word_proc_call); + +/** * i2c_smbus_read_block_data - SMBus "block read" protocol * @client: Handle to slave device * @command: Byte interpreted by slave @@ -2362,6 +2386,38 @@ s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, } EXPORT_SYMBOL(i2c_smbus_write_block_data); +/** + * i2c_smbus_block_proc_call - SMBus "block write" protocol + * @client: Handle to slave device + * @command: Byte interpreted by slave + * @length: Size of data block; SMBus allows at most 32 bytes + * @values: Byte array which will be written. + * + * This executes the SMBus "block proc call" protocol, returning negative errno + * else the number of read bytes. + */ +s32 i2c_smbus_block_proc_call(const struct i2c_client *client, u8 command, + u8 length, u8 *values) +{ + union i2c_smbus_data data; + int status; + + if (length > I2C_SMBUS_BLOCK_MAX) + length = I2C_SMBUS_BLOCK_MAX; + data.block[0] = length; + memcpy(&data.block[1], values, length); + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, + I2C_SMBUS_READ, command, + I2C_SMBUS_BLOCK_PROC_CALL, &data); + + if (status < 0) + return status; + + memcpy(values, &data.block[1], data.block[0]); + return data.block[0]; +} +EXPORT_SYMBOL(i2c_smbus_block_proc_call); + /* Returns the number of read bytes */ s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client, u8 command, u8 length, u8 *values) diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 3e6ea90..724440a 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -94,6 +94,10 @@ extern s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command); extern s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, u16 value); +extern s32 i2c_smbus_word_proc_call(const struct i2c_client *client, + u8 command, u16 value); +extern s32 i2c_smbus_block_proc_call(const struct i2c_client *client, + u8 command, u8 length, u8 *values); static inline s32 i2c_smbus_read_word_swapped(const struct i2c_client *client, u8 command) -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 6/9] I2C: Add smbus word/block process call helper function 2014-04-28 14:27 ` [Patch V2 6/9] I2C: Add smbus word/block process call " Lan Tianyu @ 2014-05-17 10:21 ` Wolfram Sang 2014-05-17 13:59 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Wolfram Sang @ 2014-05-17 10:21 UTC (permalink / raw) To: Lan Tianyu Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 3076 bytes --] On Mon, Apr 28, 2014 at 10:27:45PM +0800, Lan Tianyu wrote: > Add i2c_smbus_word/block_proc_call() helper function. These will be used > in the implementation of i2c ACPI address space handler. > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > --- > drivers/i2c/i2c-core.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ > include/linux/i2c.h | 4 ++++ > 2 files changed, 60 insertions(+) > > diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c > index 3bf0048..638befd 100644 > --- a/drivers/i2c/i2c-core.c > +++ b/drivers/i2c/i2c-core.c > @@ -2306,6 +2306,30 @@ s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, > EXPORT_SYMBOL(i2c_smbus_write_word_data); > > /** > + * i2c_smbus_word_proc_call - SMBus "word proc call" protocol > + * @client: Handle to slave device > + * @command: Byte interpreted by slave > + * @value: 16-bit "word" being written > + * > + * This executes the SMBus "word proc all" protocol, returning negative errno > + * else a 16-bit unsigned "word" received from the device. > + */ > +s32 i2c_smbus_word_proc_call(const struct i2c_client *client, u8 command, > + u16 value) > +{ > + union i2c_smbus_data data; > + int status; > + > + data.word = value; > + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, > + I2C_SMBUS_READ, command, > + I2C_SMBUS_PROC_CALL, &data); > + > + return (status < 0) ? status : data.word; > +} > +EXPORT_SYMBOL(i2c_smbus_word_proc_call); > + > +/** Same as smbus_quick function before, documentation updates are missing. Also similar, we had such a function before which was removed due to no users? It looks very much like the function here, so we should stick to the old naming IMO. Is it the old one? Such information would be nice since it affects reviewing. > * i2c_smbus_read_block_data - SMBus "block read" protocol > * @client: Handle to slave device > * @command: Byte interpreted by slave > @@ -2362,6 +2386,38 @@ s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, > } > EXPORT_SYMBOL(i2c_smbus_write_block_data); > > +/** > + * i2c_smbus_block_proc_call - SMBus "block write" protocol > + * @client: Handle to slave device > + * @command: Byte interpreted by slave > + * @length: Size of data block; SMBus allows at most 32 bytes > + * @values: Byte array which will be written. > + * > + * This executes the SMBus "block proc call" protocol, returning negative errno > + * else the number of read bytes. > + */ > +s32 i2c_smbus_block_proc_call(const struct i2c_client *client, u8 command, > + u8 length, u8 *values) Please rename to "i2c_smbus_block_process_call" as the old function was named. Needs documentation updates. > + if (length > I2C_SMBUS_BLOCK_MAX) > + length = I2C_SMBUS_BLOCK_MAX; I think we should return an error here. BTW what were your test scenarios for these functions and smbus quick? [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 6/9] I2C: Add smbus word/block process call helper function 2014-05-17 10:21 ` Wolfram Sang @ 2014-05-17 13:59 ` Lan Tianyu 2014-05-17 17:17 ` Wolfram Sang 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-05-17 13:59 UTC (permalink / raw) To: Wolfram Sang Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 05/17/2014 06:21 PM, Wolfram Sang wrote: > On Mon, Apr 28, 2014 at 10:27:45PM +0800, Lan Tianyu wrote: >> Add i2c_smbus_word/block_proc_call() helper function. These will be used >> in the implementation of i2c ACPI address space handler. >> >> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> >> --- >> drivers/i2c/i2c-core.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ >> include/linux/i2c.h | 4 ++++ >> 2 files changed, 60 insertions(+) >> >> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c >> index 3bf0048..638befd 100644 >> --- a/drivers/i2c/i2c-core.c >> +++ b/drivers/i2c/i2c-core.c >> @@ -2306,6 +2306,30 @@ s32 i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, >> EXPORT_SYMBOL(i2c_smbus_write_word_data); >> >> /** >> + * i2c_smbus_word_proc_call - SMBus "word proc call" protocol >> + * @client: Handle to slave device >> + * @command: Byte interpreted by slave >> + * @value: 16-bit "word" being written >> + * >> + * This executes the SMBus "word proc all" protocol, returning negative errno >> + * else a 16-bit unsigned "word" received from the device. >> + */ >> +s32 i2c_smbus_word_proc_call(const struct i2c_client *client, u8 command, >> + u16 value) >> +{ >> + union i2c_smbus_data data; >> + int status; >> + >> + data.word = value; >> + status = i2c_smbus_xfer(client->adapter, client->addr, client->flags, >> + I2C_SMBUS_READ, command, >> + I2C_SMBUS_PROC_CALL, &data); >> + >> + return (status < 0) ? status : data.word; >> +} >> +EXPORT_SYMBOL(i2c_smbus_word_proc_call); >> + >> +/** > > Same as smbus_quick function before, documentation updates are missing. > Also similar, we had such a function before which was removed due to no > users? It looks very much like the function here, so we should stick to > the old naming IMO. Is it the old one? Such information would be nice > since it affects reviewing. Yes, there was an old function and commit c8110933 removed it. Sorry, I didn't that before. I will bring the old one back. > >> * i2c_smbus_read_block_data - SMBus "block read" protocol >> * @client: Handle to slave device >> * @command: Byte interpreted by slave >> @@ -2362,6 +2386,38 @@ s32 i2c_smbus_write_block_data(const struct i2c_client *client, u8 command, >> } >> EXPORT_SYMBOL(i2c_smbus_write_block_data); >> >> +/** >> + * i2c_smbus_block_proc_call - SMBus "block write" protocol >> + * @client: Handle to slave device >> + * @command: Byte interpreted by slave >> + * @length: Size of data block; SMBus allows at most 32 bytes >> + * @values: Byte array which will be written. >> + * >> + * This executes the SMBus "block proc call" protocol, returning negative errno >> + * else the number of read bytes. >> + */ >> +s32 i2c_smbus_block_proc_call(const struct i2c_client *client, u8 command, >> + u8 length, u8 *values) > > Please rename to "i2c_smbus_block_process_call" as the old function was > named. Needs documentation updates. > >> + if (length > I2C_SMBUS_BLOCK_MAX) >> + length = I2C_SMBUS_BLOCK_MAX; > > I think we should return an error here. Ok. > > BTW what were your test scenarios for these functions and smbus quick? > From ACPI spec, Read/Write quick and Word/Block process call protocol will be used by Bios ACPI code. But so far, I don't find such machines. So these functions has not been tested. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 6/9] I2C: Add smbus word/block process call helper function 2014-05-17 13:59 ` Lan Tianyu @ 2014-05-17 17:17 ` Wolfram Sang 2014-05-19 9:23 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Wolfram Sang @ 2014-05-17 17:17 UTC (permalink / raw) To: Lan Tianyu Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 474 bytes --] > >BTW what were your test scenarios for these functions and smbus quick? > > > > From ACPI spec, Read/Write quick and Word/Block process call > protocol will be used by Bios ACPI code. But so far, I don't find > such machines. So these functions has not been tested. Uh oh, I have some trouble adding untested code. Can't we add until we have a user to verify it? BTW I have to review the other patches later, so please wait before resending the series. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 6/9] I2C: Add smbus word/block process call helper function 2014-05-17 17:17 ` Wolfram Sang @ 2014-05-19 9:23 ` Lan Tianyu 0 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-05-19 9:23 UTC (permalink / raw) To: Wolfram Sang Cc: rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 05/18/2014 01:17 AM, Wolfram Sang wrote: > >>> BTW what were your test scenarios for these functions and smbus quick? >>> >> >> From ACPI spec, Read/Write quick and Word/Block process call >> protocol will be used by Bios ACPI code. But so far, I don't find >> such machines. So these functions has not been tested. > > Uh oh, I have some trouble adding untested code. Can't we add until we > have a user to verify it? Ok. I will remove these patches from this patchset since currently there are no users. > > BTW I have to review the other patches later, so please wait before > resending the series. > ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (5 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 6/9] I2C: Add smbus word/block process call " Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-29 8:02 ` Mika Westerberg 2014-04-28 14:27 ` [Patch V2 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu ` (3 subsequent siblings) 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. It allows ACPI aml code able to access such kind of devices to implement some ACPI standard method. ACPI Spec defines some access attribute to associate with i2c protocol. AttribQuick Read/Write Quick Protocol AttribSendReceive Send/Receive Byte Protocol AttribByte Read/Write Byte Protocol AttribWord Read/Write Word Protocol AttribBlock Read/Write Block Protocol AttribBytes Read/Write N-Bytes Protocol AttribProcessCall Process Call Protocol AttribBlockProcessCall Write Block-Read Block Process Call Protocol AttribRawBytes Raw Read/Write N-BytesProtocol AttribRawProcessBytes Raw Process Call Protocol On the Asus T100TA, Bios use GenericSerialBus operation region to access i2c device to get battery info. Sample code From Asus T100TA Scope (_SB.I2C1) { Name (UMPC, ResourceTemplate () { I2cSerialBus (0x0066, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2C1", 0x00, ResourceConsumer, , ) }) ... OperationRegion (DVUM, GenericSerialBus, Zero, 0x0100) Field (DVUM, BufferAcc, NoLock, Preserve) { Connection (UMPC), Offset (0x81), AccessAs (BufferAcc, AttribBytes (0x3E)), FGC0, 8 } ... } Device (BATC) { Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID ... Method (_BST, 0, NotSerialized) // _BST: Battery Status { If (LEqual (AVBL, One)) { Store (FGC0, BFFG) If (LNotEqual (STAT, One)) { ShiftRight (CHST, 0x04, Local0) And (Local0, 0x03, Local0) If (LOr (LEqual (Local0, One), LEqual (Local0, 0x02))) { Store (0x02, Local1) } ... } The i2c operation region is defined under I2C1 scope. _BST method under battery device BATC read battery status from the field "FCG0". The request would be sent to i2c operation region handler. This patch is to add i2c ACPI operation region support. Due to there are only "Byte" and "Bytes" protocol access on the Asus T100TA, other protocols have not been tested. About RawBytes and RawProcessBytes protocol, they needs specific drivers to interpret reference data from AML code according ACPI 5.0 SPEC(5.5.2.4.5.3.9 and 5.5.2.4.5.3.10). So far, not found such case and will add when find real case. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/Makefile | 5 +- drivers/i2c/i2c-acpi.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 2 + include/linux/acpi.h | 11 ++ include/linux/i2c.h | 10 ++ 5 files changed, 322 insertions(+), 1 deletion(-) create mode 100644 drivers/i2c/i2c-acpi.c diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 1722f50..80db307 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -2,8 +2,11 @@ # Makefile for the i2c core. # +i2ccore-y := i2c-core.o +i2ccore-$(CONFIG_ACPI) += i2c-acpi.o + obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o -obj-$(CONFIG_I2C) += i2c-core.o +obj-$(CONFIG_I2C) += i2ccore.o obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o obj-$(CONFIG_I2C_MUX) += i2c-mux.o diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c new file mode 100644 index 0000000..ab0272e --- /dev/null +++ b/drivers/i2c/i2c-acpi.c @@ -0,0 +1,295 @@ +/* + * I2C ACPI code + * + * Copyright (C) 2014 Intel Corp + * + * Author: Lan Tianyu <tianyu.lan@intel.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ +#define pr_fmt(fmt) "I2C/ACPI : " fmt + +#include <linux/kernel.h> +#include <linux/errno.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/acpi.h> + +struct acpi_i2c_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; +}; + +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + u8 data[0]; + }; +} __packed; + +static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, + u8 cmd, u8 *data, u8 data_len) +{ + + struct i2c_msg msgs[2]; + int ret; + u8 *buffer; + + buffer = kzalloc(data_len, GFP_KERNEL); + if (!buffer) + return AE_NO_MEMORY; + + msgs[0].addr = client->addr; + msgs[0].flags = client->flags; + msgs[0].len = 1; + msgs[0].buf = &cmd; + + msgs[1].addr = client->addr; + msgs[1].flags = client->flags | I2C_M_RD; + msgs[1].len = data_len; + msgs[1].buf = buffer; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + dev_err(&client->adapter->dev, "i2c read failed\n"); + else + memcpy(data, buffer, data_len); + + kfree(buffer); + return ret; +} + +static int acpi_gsb_i2c_write_bytes(struct i2c_client *client, + u8 cmd, u8 *data, u8 data_len) +{ + + struct i2c_msg msgs[1]; + u8 *buffer; + int ret = AE_OK; + + buffer = kzalloc(data_len + 1, GFP_KERNEL); + if (!buffer) + return AE_NO_MEMORY; + + buffer[0] = cmd; + memcpy(buffer + 1, data, data_len); + + msgs[0].addr = client->addr; + msgs[0].flags = client->flags; + msgs[0].len = data_len + 1; + msgs[0].buf = buffer; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + dev_err(&client->adapter->dev, "i2c write failed\n"); + + kfree(buffer); + return ret; +} + +static acpi_status +acpi_i2c_space_handler(u32 function, acpi_physical_address command, + u32 bits, u64 *value64, + void *handler_context, void *region_context) +{ + struct gsb_buffer *gsb = (struct gsb_buffer *)value64; + struct acpi_i2c_handler_data *data = handler_context; + struct acpi_connection_info *info = &data->info; + struct acpi_resource_i2c_serialbus *sb; + struct i2c_adapter *adapter = data->adapter; + struct i2c_client client; + struct acpi_resource *ares; + u32 accessor_type = function >> 16; + u8 action = function & ACPI_IO_MASK; + acpi_status ret = AE_OK; + int status; + + ret = acpi_buffer_to_resource(info->connection, info->length, &ares); + if (ACPI_FAILURE(ret)) + return ret; + + if (!value64 || ares->type != ACPI_RESOURCE_TYPE_SERIAL_BUS) { + ret = AE_BAD_PARAMETER; + goto err; + } + + sb = &ares->data.i2c_serial_bus; + if (sb->type != ACPI_RESOURCE_SERIAL_TYPE_I2C) { + ret = AE_BAD_PARAMETER; + goto err; + } + + memset(&client, 0, sizeof(client)); + client.adapter = adapter; + client.addr = sb->slave_address; + client.flags = 0; + + if (sb->access_mode == ACPI_I2C_10BIT_MODE) + client.flags |= I2C_CLIENT_TEN; + + switch (accessor_type) { + case ACPI_GSB_ACCESS_ATTRIB_QUICK: + if (action == ACPI_READ) + status = i2c_smbus_quick_read(&client); + else + status = i2c_smbus_quick_write(&client); + break; + + case ACPI_GSB_ACCESS_ATTRIB_SEND_RCV: + if (action == ACPI_READ) { + status = i2c_smbus_read_byte(&client); + if (status >= 0) { + gsb->bdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_byte(&client, gsb->bdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BYTE: + if (action == ACPI_READ) { + status = i2c_smbus_read_byte_data(&client, command); + if (status >= 0) { + gsb->bdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_byte_data(&client, command, + gsb->bdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_WORD: + if (action == ACPI_READ) { + status = i2c_smbus_read_word_data(&client, command); + if (status >= 0) { + gsb->wdata = status; + status = 0; + } + } else { + status = i2c_smbus_write_word_data(&client, command, + gsb->wdata); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BLOCK: + if (action == ACPI_READ) { + status = i2c_smbus_read_block_data(&client, command, + gsb->data); + if (status >= 0) { + gsb->len = status; + status = 0; + } + } else { + status = i2c_smbus_write_block_data(&client, command, + gsb->len, gsb->data); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE: + if (action == ACPI_READ) { + status = acpi_gsb_i2c_read_bytes(&client, command, + gsb->data, info->access_length); + if (status > 0) + status = 0; + } else { + status = acpi_gsb_i2c_write_bytes(&client, command, + gsb->data, info->access_length); + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_WORD_CALL: + status = i2c_smbus_word_proc_call(&client, command, gsb->wdata); + if (status >= 0) { + gsb->wdata = status; + status = 0; + } + break; + + case ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL: + status = i2c_smbus_block_proc_call(&client, command, gsb->len, + gsb->data); + if (status > 0) { + gsb->len = status; + status = 0; + } + break; + + default: + pr_info("protocol(0x%02x) is not supported.\n", accessor_type); + ret = AE_BAD_PARAMETER; + goto err; + } + + gsb->status = status; + + err: + ACPI_FREE(ares); + return ret; +} + + +int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) +{ + acpi_handle handle = ACPI_HANDLE(adapter->dev.parent); + struct acpi_i2c_handler_data *data; + acpi_status status; + + if (!handle) + return -ENODEV; + + data = kzalloc(sizeof(struct acpi_i2c_handler_data), + GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->adapter = adapter; + status = acpi_bus_attach_private_data(handle, (void *)data); + if (ACPI_FAILURE(status)) { + kfree(data); + return -ENOMEM; + } + + status = acpi_install_address_space_handler(handle, + ACPI_ADR_SPACE_GSBUS, + &acpi_i2c_space_handler, + NULL, + data); + if (ACPI_FAILURE(status)) { + dev_err(&adapter->dev, "Error installing i2c space handler\n"); + acpi_bus_attach_private_data(handle, NULL); + kfree(data); + return -ENOMEM; + } + + return 0; +} + +void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) +{ + acpi_handle handle = ACPI_HANDLE(adapter->dev.parent); + struct acpi_i2c_handler_data *data; + acpi_status status; + + if (!handle) + return; + + acpi_remove_address_space_handler(handle, + ACPI_ADR_SPACE_GSBUS, + &acpi_i2c_space_handler); + + status = acpi_bus_get_private_data(handle, (void **)&data); + if (ACPI_SUCCESS(status)) + kfree(data); +} diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 638befd..bb9dc56 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -1293,6 +1293,7 @@ exit_recovery: /* create pre-declared device nodes */ of_i2c_register_devices(adap); acpi_i2c_register_devices(adap); + acpi_i2c_install_space_handler(adap); if (adap->nr < __i2c_first_dynamic_bus_num) i2c_scan_static_board_info(adap); @@ -1466,6 +1467,7 @@ void i2c_del_adapter(struct i2c_adapter *adap) return; } + acpi_i2c_remove_space_handler(adap); /* Tell drivers about this removal */ mutex_lock(&core_lock); bus_for_each_drv(&i2c_bus_type, NULL, adap, diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7a8f2cd..ea53b9b 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -361,6 +361,17 @@ extern bool osc_sb_apei_support_acked; #define OSC_PCI_EXPRESS_CAPABILITY_CONTROL 0x00000010 #define OSC_PCI_CONTROL_MASKS 0x0000001f +#define ACPI_GSB_ACCESS_ATTRIB_QUICK 0x00000002 +#define ACPI_GSB_ACCESS_ATTRIB_SEND_RCV 0x00000004 +#define ACPI_GSB_ACCESS_ATTRIB_BYTE 0x00000006 +#define ACPI_GSB_ACCESS_ATTRIB_WORD 0x00000008 +#define ACPI_GSB_ACCESS_ATTRIB_BLOCK 0x0000000A +#define ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE 0x0000000B +#define ACPI_GSB_ACCESS_ATTRIB_WORD_CALL 0x0000000C +#define ACPI_GSB_ACCESS_ATTRIB_BLOCK_CALL 0x0000000D +#define ACPI_GSB_ACCESS_ATTRIB_RAW_BYTES 0x0000000E +#define ACPI_GSB_ACCESS_ATTRIB_RAW_PROCESS 0x0000000F + extern acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 *mask, u32 req); diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 724440a..681e689 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -583,4 +583,14 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node } #endif /* CONFIG_OF */ +#ifdef CONFIG_ACPI +int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); +void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); +#else +static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) +{ } +static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) +{ return 0; } +#endif + #endif /* _LINUX_I2C_H */ -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support 2014-04-28 14:27 ` [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu @ 2014-04-29 8:02 ` Mika Westerberg 0 siblings, 0 replies; 79+ messages in thread From: Mika Westerberg @ 2014-04-29 8:02 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Mon, Apr 28, 2014 at 10:27:46PM +0800, Lan Tianyu wrote: > ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation region. > It allows ACPI aml code able to access such kind of devices to implement > some ACPI standard method. Looks good to me now, Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* [Patch V2 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (6 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-28 14:27 ` [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu ` (2 subsequent siblings) 10 siblings, 0 replies; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan Clean up ACPI related code in the i2c core. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/i2c-acpi.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/i2c/i2c-core.c | 95 -------------------------------------------------- include/linux/i2c.h | 2 ++ 3 files changed, 91 insertions(+), 95 deletions(-) diff --git a/drivers/i2c/i2c-acpi.c b/drivers/i2c/i2c-acpi.c index ab0272e..e2ad72d 100644 --- a/drivers/i2c/i2c-acpi.c +++ b/drivers/i2c/i2c-acpi.c @@ -37,6 +37,95 @@ struct gsb_buffer { }; } __packed; +static int acpi_i2c_add_resource(struct acpi_resource *ares, void *data) +{ + struct i2c_board_info *info = data; + + if (ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { + struct acpi_resource_i2c_serialbus *sb; + + sb = &ares->data.i2c_serial_bus; + if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) { + info->addr = sb->slave_address; + if (sb->access_mode == ACPI_I2C_10BIT_MODE) + info->flags |= I2C_CLIENT_TEN; + } + } else if (info->irq < 0) { + struct resource r; + + if (acpi_dev_resource_interrupt(ares, 0, &r)) + info->irq = r.start; + } + + /* Tell the ACPI core to skip this resource */ + return 1; +} + +static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level, + void *data, void **return_value) +{ + struct i2c_adapter *adapter = data; + struct list_head resource_list; + struct i2c_board_info info; + struct acpi_device *adev; + int ret; + + if (acpi_bus_get_device(handle, &adev)) + return AE_OK; + if (acpi_bus_get_status(adev) || !adev->status.present) + return AE_OK; + + memset(&info, 0, sizeof(info)); + info.acpi_node.companion = adev; + info.irq = -1; + + INIT_LIST_HEAD(&resource_list); + ret = acpi_dev_get_resources(adev, &resource_list, + acpi_i2c_add_resource, &info); + acpi_dev_free_resource_list(&resource_list); + + if (ret < 0 || !info.addr) + return AE_OK; + + adev->power.flags.ignore_parent = true; + strlcpy(info.type, dev_name(&adev->dev), sizeof(info.type)); + if (!i2c_new_device(adapter, &info)) { + adev->power.flags.ignore_parent = false; + dev_err(&adapter->dev, + "failed to add I2C device %s from ACPI\n", + dev_name(&adev->dev)); + } + + return AE_OK; +} + +/** + * acpi_i2c_register_devices - enumerate I2C slave devices behind adapter + * @adap: pointer to adapter + * + * Enumerate all I2C slave devices behind this adapter by walking the ACPI + * namespace. When a device is found it will be added to the Linux device + * model and bound to the corresponding ACPI handle. + */ +void acpi_i2c_register_devices(struct i2c_adapter *adap) +{ + acpi_handle handle; + acpi_status status; + + if (!adap->dev.parent) + return; + + handle = ACPI_HANDLE(adap->dev.parent); + if (!handle) + return; + + status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, + acpi_i2c_add_device, NULL, + adap, NULL); + if (ACPI_FAILURE(status)) + dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); +} + static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, u8 cmd, u8 *data, u8 data_len) { diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index bb9dc56..9ca50c8 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -1092,101 +1092,6 @@ EXPORT_SYMBOL(of_find_i2c_adapter_by_node); static void of_i2c_register_devices(struct i2c_adapter *adap) { } #endif /* CONFIG_OF */ -/* ACPI support code */ - -#if IS_ENABLED(CONFIG_ACPI) -static int acpi_i2c_add_resource(struct acpi_resource *ares, void *data) -{ - struct i2c_board_info *info = data; - - if (ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { - struct acpi_resource_i2c_serialbus *sb; - - sb = &ares->data.i2c_serial_bus; - if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_I2C) { - info->addr = sb->slave_address; - if (sb->access_mode == ACPI_I2C_10BIT_MODE) - info->flags |= I2C_CLIENT_TEN; - } - } else if (info->irq < 0) { - struct resource r; - - if (acpi_dev_resource_interrupt(ares, 0, &r)) - info->irq = r.start; - } - - /* Tell the ACPI core to skip this resource */ - return 1; -} - -static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level, - void *data, void **return_value) -{ - struct i2c_adapter *adapter = data; - struct list_head resource_list; - struct i2c_board_info info; - struct acpi_device *adev; - int ret; - - if (acpi_bus_get_device(handle, &adev)) - return AE_OK; - if (acpi_bus_get_status(adev) || !adev->status.present) - return AE_OK; - - memset(&info, 0, sizeof(info)); - info.acpi_node.companion = adev; - info.irq = -1; - - INIT_LIST_HEAD(&resource_list); - ret = acpi_dev_get_resources(adev, &resource_list, - acpi_i2c_add_resource, &info); - acpi_dev_free_resource_list(&resource_list); - - if (ret < 0 || !info.addr) - return AE_OK; - - adev->power.flags.ignore_parent = true; - strlcpy(info.type, dev_name(&adev->dev), sizeof(info.type)); - if (!i2c_new_device(adapter, &info)) { - adev->power.flags.ignore_parent = false; - dev_err(&adapter->dev, - "failed to add I2C device %s from ACPI\n", - dev_name(&adev->dev)); - } - - return AE_OK; -} - -/** - * acpi_i2c_register_devices - enumerate I2C slave devices behind adapter - * @adap: pointer to adapter - * - * Enumerate all I2C slave devices behind this adapter by walking the ACPI - * namespace. When a device is found it will be added to the Linux device - * model and bound to the corresponding ACPI handle. - */ -static void acpi_i2c_register_devices(struct i2c_adapter *adap) -{ - acpi_handle handle; - acpi_status status; - - if (!adap->dev.parent) - return; - - handle = ACPI_HANDLE(adap->dev.parent); - if (!handle) - return; - - status = acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, - acpi_i2c_add_device, NULL, - adap, NULL); - if (ACPI_FAILURE(status)) - dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); -} -#else -static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {} -#endif /* CONFIG_ACPI */ - static int i2c_do_add_adapter(struct i2c_driver *driver, struct i2c_adapter *adap) { diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 681e689..4b6fcdb 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -586,7 +586,9 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node #ifdef CONFIG_ACPI int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); +void acpi_i2c_register_devices(struct i2c_adapter *adap); #else +static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) { } static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) { } static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (7 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu @ 2014-04-28 14:27 ` Lan Tianyu 2014-04-29 8:16 ` Mika Westerberg 2014-04-28 22:51 ` [Patch V2 0/9] I2C ACPI operation region handler support Rafael J. Wysocki 2014-05-13 13:09 ` Rolf Eike Beer 10 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-28 14:27 UTC (permalink / raw) To: wsa, rjw, mika.westerberg, awilliam, lenb Cc: linux-i2c, linux-kernel, linux-acpi, tianyu.lan This patch is to add CONFIG_I2C_ACPI. Current there is a race between removing I2C ACPI operation region and ACPI AML code accessing. So make i2c core built-in if CONFIG_I2C_ACPI is set. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/i2c/Kconfig | 17 ++++++++++++++++- drivers/i2c/Makefile | 2 +- include/linux/i2c.h | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 7b7ea32..c670d49 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -2,7 +2,9 @@ # I2C subsystem configuration # -menuconfig I2C +menu "I2C support" + +config I2C tristate "I2C support" select RT_MUTEXES ---help--- @@ -21,6 +23,17 @@ menuconfig I2C This I2C support can also be built as a module. If so, the module will be called i2c-core. +config I2C_ACPI + bool "I2C ACPI support" + select I2C + depends on ACPI + default y + help + Say Y here if you want to enable I2C ACPI function. ACPI table + provides I2C slave devices' information to enumerate these devices. + This option also allows ACPI AML code to access I2C slave devices + via I2C ACPI operation region to fulfill ACPI method. + if I2C config I2C_BOARDINFO @@ -124,3 +137,5 @@ config I2C_DEBUG_BUS on. endif # I2C + +endmenu diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 80db307..37464ee 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -3,7 +3,7 @@ # i2ccore-y := i2c-core.o -i2ccore-$(CONFIG_ACPI) += i2c-acpi.o +i2ccore-$(CONFIG_I2C_ACPI) += i2c-acpi.o obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o obj-$(CONFIG_I2C) += i2ccore.o diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 4b6fcdb..8c2d9b5 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -583,7 +583,7 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node } #endif /* CONFIG_OF */ -#ifdef CONFIG_ACPI +#ifdef CONFIG_I2C_ACPI int acpi_i2c_install_space_handler(struct i2c_adapter *adapter); void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter); void acpi_i2c_register_devices(struct i2c_adapter *adap); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-28 14:27 ` [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu @ 2014-04-29 8:16 ` Mika Westerberg 2014-05-17 17:48 ` Wolfram Sang 0 siblings, 1 reply; 79+ messages in thread From: Mika Westerberg @ 2014-04-29 8:16 UTC (permalink / raw) To: Lan Tianyu; +Cc: wsa, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Mon, Apr 28, 2014 at 10:27:48PM +0800, Lan Tianyu wrote: > This patch is to add CONFIG_I2C_ACPI. Current there is a race between > removing I2C ACPI operation region and ACPI AML code accessing. > So make i2c core built-in if CONFIG_I2C_ACPI is set. > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > --- > drivers/i2c/Kconfig | 17 ++++++++++++++++- > drivers/i2c/Makefile | 2 +- > include/linux/i2c.h | 2 +- > 3 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > index 7b7ea32..c670d49 100644 > --- a/drivers/i2c/Kconfig > +++ b/drivers/i2c/Kconfig > @@ -2,7 +2,9 @@ > # I2C subsystem configuration > # > > -menuconfig I2C > +menu "I2C support" > + > +config I2C > tristate "I2C support" > select RT_MUTEXES > ---help--- > @@ -21,6 +23,17 @@ menuconfig I2C > This I2C support can also be built as a module. If so, the module > will be called i2c-core. > > +config I2C_ACPI > + bool "I2C ACPI support" > + select I2C > + depends on ACPI > + default y > + help > + Say Y here if you want to enable I2C ACPI function. ACPI table > + provides I2C slave devices' information to enumerate these devices. > + This option also allows ACPI AML code to access I2C slave devices > + via I2C ACPI operation region to fulfill ACPI method. I would prefer something like: Say Y here if you want to enable ACPI I2C support. This includes support for automatic enumeration of I2C slave devices and support for ACPI I2C Operation Regions. Operation Regions allow firmware (BIOS) code to access I2C slave devices, such as smart batteries through an I2C host controller driver. But it is really up to you so, Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-04-29 8:16 ` Mika Westerberg @ 2014-05-17 17:48 ` Wolfram Sang 2014-05-19 8:49 ` Mika Westerberg 0 siblings, 1 reply; 79+ messages in thread From: Wolfram Sang @ 2014-05-17 17:48 UTC (permalink / raw) To: Mika Westerberg Cc: Lan Tianyu, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 2114 bytes --] On Tue, Apr 29, 2014 at 11:16:09AM +0300, Mika Westerberg wrote: > On Mon, Apr 28, 2014 at 10:27:48PM +0800, Lan Tianyu wrote: > > This patch is to add CONFIG_I2C_ACPI. Current there is a race between > > removing I2C ACPI operation region and ACPI AML code accessing. > > So make i2c core built-in if CONFIG_I2C_ACPI is set. > > > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > --- > > drivers/i2c/Kconfig | 17 ++++++++++++++++- > > drivers/i2c/Makefile | 2 +- > > include/linux/i2c.h | 2 +- > > 3 files changed, 18 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > > index 7b7ea32..c670d49 100644 > > --- a/drivers/i2c/Kconfig > > +++ b/drivers/i2c/Kconfig > > @@ -2,7 +2,9 @@ > > # I2C subsystem configuration > > # > > > > -menuconfig I2C > > +menu "I2C support" > > + > > +config I2C > > tristate "I2C support" > > select RT_MUTEXES > > ---help--- > > @@ -21,6 +23,17 @@ menuconfig I2C > > This I2C support can also be built as a module. If so, the module > > will be called i2c-core. > > > > +config I2C_ACPI > > + bool "I2C ACPI support" > > + select I2C > > + depends on ACPI > > + default y > > + help > > + Say Y here if you want to enable I2C ACPI function. ACPI table > > + provides I2C slave devices' information to enumerate these devices. > > + This option also allows ACPI AML code to access I2C slave devices > > + via I2C ACPI operation region to fulfill ACPI method. > > I would prefer something like: > > Say Y here if you want to enable ACPI I2C support. This includes support > for automatic enumeration of I2C slave devices and support for ACPI I2C > Operation Regions. Operation Regions allow firmware (BIOS) code to > access I2C slave devices, such as smart batteries through an I2C host > controller driver. > > But it is really up to you so, > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> How does this fit into the context of 55e71edb81b2b45273e7b284cce13ff24bde846f ("i2c: move ACPI helpers into the core")? [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-05-17 17:48 ` Wolfram Sang @ 2014-05-19 8:49 ` Mika Westerberg 2014-05-19 9:44 ` Lan Tianyu 0 siblings, 1 reply; 79+ messages in thread From: Mika Westerberg @ 2014-05-19 8:49 UTC (permalink / raw) To: Wolfram Sang Cc: Lan Tianyu, rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Sat, May 17, 2014 at 07:48:34PM +0200, Wolfram Sang wrote: > On Tue, Apr 29, 2014 at 11:16:09AM +0300, Mika Westerberg wrote: > > On Mon, Apr 28, 2014 at 10:27:48PM +0800, Lan Tianyu wrote: > > > This patch is to add CONFIG_I2C_ACPI. Current there is a race between > > > removing I2C ACPI operation region and ACPI AML code accessing. > > > So make i2c core built-in if CONFIG_I2C_ACPI is set. > > > > > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > > > --- > > > drivers/i2c/Kconfig | 17 ++++++++++++++++- > > > drivers/i2c/Makefile | 2 +- > > > include/linux/i2c.h | 2 +- > > > 3 files changed, 18 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > > > index 7b7ea32..c670d49 100644 > > > --- a/drivers/i2c/Kconfig > > > +++ b/drivers/i2c/Kconfig > > > @@ -2,7 +2,9 @@ > > > # I2C subsystem configuration > > > # > > > > > > -menuconfig I2C > > > +menu "I2C support" > > > + > > > +config I2C > > > tristate "I2C support" > > > select RT_MUTEXES > > > ---help--- > > > @@ -21,6 +23,17 @@ menuconfig I2C > > > This I2C support can also be built as a module. If so, the module > > > will be called i2c-core. > > > > > > +config I2C_ACPI > > > + bool "I2C ACPI support" > > > + select I2C > > > + depends on ACPI > > > + default y > > > + help > > > + Say Y here if you want to enable I2C ACPI function. ACPI table > > > + provides I2C slave devices' information to enumerate these devices. > > > + This option also allows ACPI AML code to access I2C slave devices > > > + via I2C ACPI operation region to fulfill ACPI method. > > > > I would prefer something like: > > > > Say Y here if you want to enable ACPI I2C support. This includes support > > for automatic enumeration of I2C slave devices and support for ACPI I2C > > Operation Regions. Operation Regions allow firmware (BIOS) code to > > access I2C slave devices, such as smart batteries through an I2C host > > controller driver. > > > > But it is really up to you so, > > > > Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > > How does this fit into the context of > 55e71edb81b2b45273e7b284cce13ff24bde846f ("i2c: move ACPI helpers into > the core")? With that commit we moved ACPI code to live inside I2C module (given that it was compiled as a module). However, you still can remove that module from userspace. With this patch we make sure that the I2C core can't be removed if you have ACPI enabled. This prevents the potential race. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-05-19 8:49 ` Mika Westerberg @ 2014-05-19 9:44 ` Lan Tianyu 2014-05-19 20:23 ` Rafael J. Wysocki 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-05-19 9:44 UTC (permalink / raw) To: Mika Westerberg, Wolfram Sang Cc: rjw, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 05/19/2014 04:49 PM, Mika Westerberg wrote: > On Sat, May 17, 2014 at 07:48:34PM +0200, Wolfram Sang wrote: >> On Tue, Apr 29, 2014 at 11:16:09AM +0300, Mika Westerberg wrote: >>> On Mon, Apr 28, 2014 at 10:27:48PM +0800, Lan Tianyu wrote: >>>> This patch is to add CONFIG_I2C_ACPI. Current there is a race between >>>> removing I2C ACPI operation region and ACPI AML code accessing. >>>> So make i2c core built-in if CONFIG_I2C_ACPI is set. >>>> >>>> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> >>>> --- >>>> drivers/i2c/Kconfig | 17 ++++++++++++++++- >>>> drivers/i2c/Makefile | 2 +- >>>> include/linux/i2c.h | 2 +- >>>> 3 files changed, 18 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig >>>> index 7b7ea32..c670d49 100644 >>>> --- a/drivers/i2c/Kconfig >>>> +++ b/drivers/i2c/Kconfig >>>> @@ -2,7 +2,9 @@ >>>> # I2C subsystem configuration >>>> # >>>> >>>> -menuconfig I2C >>>> +menu "I2C support" >>>> + >>>> +config I2C >>>> tristate "I2C support" >>>> select RT_MUTEXES >>>> ---help--- >>>> @@ -21,6 +23,17 @@ menuconfig I2C >>>> This I2C support can also be built as a module. If so, the module >>>> will be called i2c-core. >>>> >>>> +config I2C_ACPI >>>> + bool "I2C ACPI support" >>>> + select I2C >>>> + depends on ACPI >>>> + default y >>>> + help >>>> + Say Y here if you want to enable I2C ACPI function. ACPI table >>>> + provides I2C slave devices' information to enumerate these devices. >>>> + This option also allows ACPI AML code to access I2C slave devices >>>> + via I2C ACPI operation region to fulfill ACPI method. >>> >>> I would prefer something like: >>> >>> Say Y here if you want to enable ACPI I2C support. This includes support >>> for automatic enumeration of I2C slave devices and support for ACPI I2C >>> Operation Regions. Operation Regions allow firmware (BIOS) code to >>> access I2C slave devices, such as smart batteries through an I2C host >>> controller driver. >>> >>> But it is really up to you so, >>> >>> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> >> >> How does this fit into the context of >> 55e71edb81b2b45273e7b284cce13ff24bde846f ("i2c: move ACPI helpers into >> the core")? > > With that commit we moved ACPI code to live inside I2C module (given > that it was compiled as a module). However, you still can remove that > module from userspace. > > With this patch we make sure that the I2C core can't be removed if you > have ACPI enabled. This prevents the potential race. > Yes, these are the two patches' purposes. Thanks Mika's explanation. If you like, I can merge them into one patch. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config 2014-05-19 9:44 ` Lan Tianyu @ 2014-05-19 20:23 ` Rafael J. Wysocki 0 siblings, 0 replies; 79+ messages in thread From: Rafael J. Wysocki @ 2014-05-19 20:23 UTC (permalink / raw) To: Lan Tianyu Cc: Mika Westerberg, Wolfram Sang, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Monday, May 19, 2014 05:44:47 PM Lan Tianyu wrote: > On 05/19/2014 04:49 PM, Mika Westerberg wrote: > > On Sat, May 17, 2014 at 07:48:34PM +0200, Wolfram Sang wrote: > >> On Tue, Apr 29, 2014 at 11:16:09AM +0300, Mika Westerberg wrote: > >>> On Mon, Apr 28, 2014 at 10:27:48PM +0800, Lan Tianyu wrote: > >>>> This patch is to add CONFIG_I2C_ACPI. Current there is a race between > >>>> removing I2C ACPI operation region and ACPI AML code accessing. > >>>> So make i2c core built-in if CONFIG_I2C_ACPI is set. > >>>> > >>>> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > >>>> --- > >>>> drivers/i2c/Kconfig | 17 ++++++++++++++++- > >>>> drivers/i2c/Makefile | 2 +- > >>>> include/linux/i2c.h | 2 +- > >>>> 3 files changed, 18 insertions(+), 3 deletions(-) > >>>> > >>>> diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > >>>> index 7b7ea32..c670d49 100644 > >>>> --- a/drivers/i2c/Kconfig > >>>> +++ b/drivers/i2c/Kconfig > >>>> @@ -2,7 +2,9 @@ > >>>> # I2C subsystem configuration > >>>> # > >>>> > >>>> -menuconfig I2C > >>>> +menu "I2C support" > >>>> + > >>>> +config I2C > >>>> tristate "I2C support" > >>>> select RT_MUTEXES > >>>> ---help--- > >>>> @@ -21,6 +23,17 @@ menuconfig I2C > >>>> This I2C support can also be built as a module. If so, the module > >>>> will be called i2c-core. > >>>> > >>>> +config I2C_ACPI > >>>> + bool "I2C ACPI support" > >>>> + select I2C > >>>> + depends on ACPI > >>>> + default y > >>>> + help > >>>> + Say Y here if you want to enable I2C ACPI function. ACPI table > >>>> + provides I2C slave devices' information to enumerate these devices. > >>>> + This option also allows ACPI AML code to access I2C slave devices > >>>> + via I2C ACPI operation region to fulfill ACPI method. > >>> > >>> I would prefer something like: > >>> > >>> Say Y here if you want to enable ACPI I2C support. This includes support > >>> for automatic enumeration of I2C slave devices and support for ACPI I2C > >>> Operation Regions. Operation Regions allow firmware (BIOS) code to > >>> access I2C slave devices, such as smart batteries through an I2C host > >>> controller driver. > >>> > >>> But it is really up to you so, > >>> > >>> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> > >> > >> How does this fit into the context of > >> 55e71edb81b2b45273e7b284cce13ff24bde846f ("i2c: move ACPI helpers into > >> the core")? > > > > With that commit we moved ACPI code to live inside I2C module (given > > that it was compiled as a module). However, you still can remove that > > module from userspace. > > > > With this patch we make sure that the I2C core can't be removed if you > > have ACPI enabled. This prevents the potential race. > > > > Yes, these are the two patches' purposes. Thanks Mika's explanation. If you > like, I can merge them into one patch. I think that would be easier to follow. Thanks! -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (8 preceding siblings ...) 2014-04-28 14:27 ` [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu @ 2014-04-28 22:51 ` Rafael J. Wysocki 2014-04-29 1:54 ` Lan Tianyu 2014-05-13 13:09 ` Rolf Eike Beer 10 siblings, 1 reply; 79+ messages in thread From: Rafael J. Wysocki @ 2014-04-28 22:51 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Monday, April 28, 2014 10:27:39 PM Lan Tianyu wrote: > ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation > region. It allows ACPI aml code able to access such kind of devices to > implement some ACPI standard method. > > On the Asus T100TA, Bios use GenericSerialBus operation region to access > i2c device to get battery info. So battery function depends on the I2C > operation region support. Here is the bug link. > https://bugzilla.kernel.org/show_bug.cgi?id=69011 > > This patchset is to add I2C ACPI operation region handler support. > > Change Since V1: > Fix some code style and memory leak issues in Patch 7 Is it the only patch that has changed from v1? Rafael ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-04-28 22:51 ` [Patch V2 0/9] I2C ACPI operation region handler support Rafael J. Wysocki @ 2014-04-29 1:54 ` Lan Tianyu 2014-04-29 15:47 ` Rafael J. Wysocki 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-04-29 1:54 UTC (permalink / raw) To: Rafael J. Wysocki Cc: wsa, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 2014年04月29日 06:51, Rafael J. Wysocki wrote: > On Monday, April 28, 2014 10:27:39 PM Lan Tianyu wrote: >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation >> region. It allows ACPI aml code able to access such kind of devices to >> implement some ACPI standard method. >> >> On the Asus T100TA, Bios use GenericSerialBus operation region to access >> i2c device to get battery info. So battery function depends on the I2C >> operation region support. Here is the bug link. >> https://bugzilla.kernel.org/show_bug.cgi?id=69011 >> >> This patchset is to add I2C ACPI operation region handler support. >> >> Change Since V1: >> Fix some code style and memory leak issues in Patch 7 > > Is it the only patch that has changed from v1? I also remove a redundant semicolon in the PATCH 8. Sorry. I didn't notice these patches are already in your tree. I will produce divergence patches based on your bleeding-edge branch. > > Rafael > -- Best regards Tianyu Lan ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-04-29 1:54 ` Lan Tianyu @ 2014-04-29 15:47 ` Rafael J. Wysocki 0 siblings, 0 replies; 79+ messages in thread From: Rafael J. Wysocki @ 2014-04-29 15:47 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On Tuesday, April 29, 2014 09:54:46 AM Lan Tianyu wrote: > On 2014年04月29日 06:51, Rafael J. Wysocki wrote: > > On Monday, April 28, 2014 10:27:39 PM Lan Tianyu wrote: > >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation > >> region. It allows ACPI aml code able to access such kind of devices to > >> implement some ACPI standard method. > >> > >> On the Asus T100TA, Bios use GenericSerialBus operation region to access > >> i2c device to get battery info. So battery function depends on the I2C > >> operation region support. Here is the bug link. > >> https://bugzilla.kernel.org/show_bug.cgi?id=69011 > >> > >> This patchset is to add I2C ACPI operation region handler support. > >> > >> Change Since V1: > >> Fix some code style and memory leak issues in Patch 7 > > > > Is it the only patch that has changed from v1? > > > I also remove a redundant semicolon in the PATCH 8. Sorry. I didn't > notice these patches are already in your tree. I will produce divergence > patches based on your bleeding-edge branch. No need for that, I'll use the new versions. -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu ` (9 preceding siblings ...) 2014-04-28 22:51 ` [Patch V2 0/9] I2C ACPI operation region handler support Rafael J. Wysocki @ 2014-05-13 13:09 ` Rolf Eike Beer 2014-05-13 14:06 ` Lan Tianyu 10 siblings, 1 reply; 79+ messages in thread From: Rolf Eike Beer @ 2014-05-13 13:09 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 2659 bytes --] Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation > region. It allows ACPI aml code able to access such kind of devices to > implement some ACPI standard method. > > On the Asus T100TA, Bios use GenericSerialBus operation region to access > i2c device to get battery info. So battery function depends on the I2C > operation region support. Here is the bug link. > https://bugzilla.kernel.org/show_bug.cgi?id=69011 Hi all, I have tested this series and got some errors, but no additional functionality: [ 0.607442] ACPI Error: Error attaching device[f60238a0] data [ 0.607460] (20140214/bus-143) [ 0.607708] ACPI Error: Error attaching device[f60238a0] data [ 0.607724] (20140214/bus-143) [ 0.607987] ACPI Error: Error attaching device[f60238a0] data [ 0.608003] (20140214/bus-143) [ 0.608251] ACPI Error: Error attaching device[f60238a0] data [ 0.608267] (20140214/bus-143) [ 0.608515] ACPI Error: Error attaching device[f60238a0] data [ 0.608531] (20140214/bus-143) A bit more output, e.g. the error code if such is present or the device path, could probably help when identifyint the device in question. Also this still looks incomplete, as on other places one still gets those warnings: [ 0.314944] pnp 00:08: Plug and Play ACPI device, IDs INT33fc (active) [ 0.316122] pnp 00:09: unknown resource type 19 in _CRS [ 0.316136] pnp 00:09: can't evaluate _CRS: 1 I don't know if looking on them at this place has any value, maybe something like this is correct? commit 52e2822c4c8b09180e5eb3dd94e4e9aea0d25eff Author: Rolf Eike Beer <eb@emlix.com> Date: Tue Feb 18 11:11:10 2014 +0100 ACPI: ignore GPIO and SERIAL_BUS resources in PNP init code diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c index 167f3d0..5b8459b 100644 --- a/drivers/pnp/pnpacpi/rsparser.c +++ b/drivers/pnp/pnpacpi/rsparser.c @@ -240,6 +240,8 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res, break; case ACPI_RESOURCE_TYPE_GENERIC_REGISTER: + case ACPI_RESOURCE_TYPE_GPIO: + case ACPI_RESOURCE_TYPE_SERIAL_BUS: break; default: Greetings, Eike -- Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 Göttingen, Germany Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160 Geschäftsführung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 316 bytes --] ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-13 13:09 ` Rolf Eike Beer @ 2014-05-13 14:06 ` Lan Tianyu 2014-05-15 7:50 ` Rolf Eike Beer 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-05-13 14:06 UTC (permalink / raw) To: Rolf Eike Beer Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) operation >> region. It allows ACPI aml code able to access such kind of devices to >> implement some ACPI standard method. >> >> On the Asus T100TA, Bios use GenericSerialBus operation region to access >> i2c device to get battery info. So battery function depends on the I2C >> operation region support. Here is the bug link. >> https://bugzilla.kernel.org/show_bug.cgi?id=69011 > > Hi all, > > I have tested this series and got some errors, but no additional functionality: > Hi Rolf: Thanks for test. Could you attach the output of dmesg and acpidump? Which machine you are testing on? > [ 0.607442] ACPI Error: Error attaching device[f60238a0] data > [ 0.607460] (20140214/bus-143) > [ 0.607708] ACPI Error: Error attaching device[f60238a0] data > [ 0.607724] (20140214/bus-143) > [ 0.607987] ACPI Error: Error attaching device[f60238a0] data > [ 0.608003] (20140214/bus-143) > [ 0.608251] ACPI Error: Error attaching device[f60238a0] data > [ 0.608267] (20140214/bus-143) > [ 0.608515] ACPI Error: Error attaching device[f60238a0] data > [ 0.608531] (20140214/bus-143) > > A bit more output, e.g. the error code if such is present or the device path, > could probably help when identifyint the device in question. > > Also this still looks incomplete, as on other places one still gets those > warnings: > > [ 0.314944] pnp 00:08: Plug and Play ACPI device, IDs INT33fc (active) > [ 0.316122] pnp 00:09: unknown resource type 19 in _CRS > [ 0.316136] pnp 00:09: can't evaluate _CRS: 1 > > I don't know if looking on them at this place has any value, maybe something > like this is correct? > > commit 52e2822c4c8b09180e5eb3dd94e4e9aea0d25eff > Author: Rolf Eike Beer <eb@emlix.com> > Date: Tue Feb 18 11:11:10 2014 +0100 > > ACPI: ignore GPIO and SERIAL_BUS resources in PNP init code > > diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c > index 167f3d0..5b8459b 100644 > --- a/drivers/pnp/pnpacpi/rsparser.c > +++ b/drivers/pnp/pnpacpi/rsparser.c > @@ -240,6 +240,8 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res, > break; > > case ACPI_RESOURCE_TYPE_GENERIC_REGISTER: > + case ACPI_RESOURCE_TYPE_GPIO: > + case ACPI_RESOURCE_TYPE_SERIAL_BUS: > break; > > default: > > Greetings, > > Eike > ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-13 14:06 ` Lan Tianyu @ 2014-05-15 7:50 ` Rolf Eike Beer 2014-05-15 14:49 ` Lan Tianyu 2014-05-20 14:17 ` Rolf Eike Beer 0 siblings, 2 replies; 79+ messages in thread From: Rolf Eike Beer @ 2014-05-15 7:50 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1.1: Type: text/plain, Size: 113973 bytes --] =2D-nextPart1435871.THQkheyNVN Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Lan Tianyu wrote: > On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > > Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) > >> operation > >> region. It allows ACPI aml code able to access such kind of device= s to > >> implement some ACPI standard method. > >>=20 > >> On the Asus T100TA, Bios use GenericSerialBus operation region to = access > >> i2c device to get battery info. So battery function depends on the= I2C > >> operation region support. Here is the bug link. > >> https://bugzilla.kernel.org/show_bug.cgi?id=3D69011 > >=20 > > Hi all, >=20 > > I have tested this series and got some errors, but no additional=20= functionality: > Hi Rolf: > =09Thanks for test. Could you attach the output of dmesg and acpidump= ? > Which machine you are testing on? Hi, this is an Aava Inari 8 tablet (pre-release hardware). Please find the = DSDT=20 and the dmesg.log attached. In case of any further questions don't hesitate to ask, I'll try to be = more=20 responsible. Regards, Eike =2D-=20 Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 G=F6ttingen, Germany Sitz der Gesellschaft: G=F6ttingen, Amtsgericht G=F6ttingen HR B 3160 Gesch=E4ftsf=FChrung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source =2D-nextPart1435871.THQkheyNVN Content-Disposition: attachment; filename="dsdt.dat" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="dsdt.dat" RFNEVOy6AAACIUlOU1lERUlOU1lERQAAAwAAAEFDUEkAAAQAFAhBREJHCaQACFNQM08KLghJTzRC CyAKCElPNEwKIAhTUDFPCk4IUE1CUwsABAhTTUlQCrIIR1BCUwsABQhBUENCDAAAwP4IQVBDTAsA EAhQRkRSDDQw0P4IUE1DQgwAMND+CFBDTEsMYDDQ/ghQVU5CDABQ0P4ISUJBUwwAgND+CFNSQ0IM AMDR/ghTUkNMCwAQCEhQVEIMAADQ/ghNQ0hCDABA0f4ITUNITAsAQAhFR1BCDACQ0f4IRUdQTAsA EAhETUlCDACA0f4IRE1JTAsAEAhJRlBCDABA0f4ISUZQTAsAEAhQRUJTDAAAAOAIUEVMTgwAAAAQ CEZNQkwBCEZEVFAKAghHQ0REAQhEU1RBCgoIRFNMTwoCCERTTEMKAwhQSVRTChAIU0JDUwoSCFNB TFMKEwhMU1NTCioIUFNTUwpnCFNPT1QKNQhFU0NTCmoIU0RHVgocCEFDUEgK3ghBU1NCAAhBT1RC AAhBQVhCAAhQRUhQAQhTSFBDAAhQRVBNAQhQRUVSAQhQRUNTAQhJVEtFAAhGVEJMCgRbgEdOVlMA DJCKz3gLOwNbgUVaR05WUxBPU1lTEFNNSUYIUFJNMAhQUk0xCFNDSUYIUFJNMghQUk0zCExDS0YI UFJNNAhQUk01CFA4MEQgTElEUwhQV1JTCERCR1MIVEhPRghBQ1QxCEFDVFQIUFNWVAhUQzFWCFRD MlYIVFNQVghDUlRUCERUU0UIRFRTMQhEVFMyCERUU0YIQk5VTQhCMFNDCEIxU0MIQjJTQwhCMFNT CEIxU1MIQjJTUwgAGEFQSUMITVBFTghQQ1AwCFBDUDEIUFBDTQhQUE1GIAAITkFUUAhDTUFQCENN QlAITFBUUAhGRENQCENNQ1AIQ0lSUAhXMzgxCE5QQ0UIAAhJR0RTCFRMU1QIQ0FETAhQQURMCENT VEUQTlNURRBTU1RFEE5ESUQIRElEMSBESUQyIERJRDMgRElENCBESUQ1IEtTVjAgS1NWMQgAOEJM Q1MIQlJUTAhBTFNFCEFMQUYITExPVwhMSElICAAIRU1BRQhFTUFQEEVNQUwQAAhNRUZFCERTVFMI ABBUUE1QCFRQTUUITU9SRAhUQ0dQCFBQUlAgUFBSUQhMUFBSCEdURjA4R1RGMjhJREVNCEdURjE4 AEAEAEAFQVNMQiBJQlRUCElQQVQISVRWRghJVFZNCElQU0MISUJMQwhJQklBCElTU0MISTQwOQhJ NTA5CEk2MDkISTcwOQhJRE1NCElETVMISUYxRQhIVkNPCE5YRDEgTlhEMiBOWEQzIE5YRDQgTlhE NSBOWEQ2IE5YRDcgTlhEOCBHU01JCFBBVlAIAAhPU0NDCE5FWFAIAAgACAAwRFNFTghFQ09OCEdQ SUMIQ1RZUAhMMDFDCFZGTjAIVkZOMQgAQAdOVkdBIE5WSEEgQU1EQSBESUQ2IERJRDcgRElEOCAA IAAgACAAIAAgACAAIAAgACAAIAAgACAAIFVTRUwIUFUxRQhQVTJFCExQRTAgTFBFMSBMUEUyIEFD U1QIQlRTVAhQRkxWCAAIQU9BQwhYSENJCFBNRU4ITFBFRQhJU1BBIElTUEQIUENJQiBQQ0lUIEQx MEEgRDEwTCBEMTFBIEQxMUwgUDEwQSBQMTBMIFAxMUEgUDExTCBQMjBBIFAyMEwgUDIxQSBQMjFM IFUxMEEgVTEwTCBVMTFBIFUxMUwgVTIwQSBVMjBMIFUyMUEgVTIxTCBTUDBBIFNQMEwgU1AxQSBT UDFMIEQyMEEgRDIwTCBEMjFBIEQyMUwgSTEwQSBJMTBMIEkxMUEgSTExTCBJMjBBIEkyMEwgSTIx QSBJMjFMIEkzMEEgSTMwTCBJMzFBIEkzMUwgSTQwQSBJNDBMIEk0MUEgSTQxTCBJNTBBIEk1MEwg STUxQSBJNTFMIEk2MEEgSTYwTCBJNjFBIEk2MUwgSTcwQSBJNzBMIEk3MUEgSTcxTCBFTTBBIEVN MEwgRU0xQSBFTTFMIFNJMEEgU0kwTCBTSTFBIFNJMUwgU0QwQSBTRDBMIFNEMUEgU0QxTCBNSDBB IE1IMEwgTUgxQSBNSDFMIE9TU0wIABhEUFRFCFRITTAIVEhNMQhUSE0yCFRITTMIVEhNNAhDSEdS CEREU1AIRFNPQwhEUFNSCERQQ1QgRFBQVCBER0MwIERHUDAgREdDMSBER1AxIERHQzIgREdQMiBE R0MzIERHUDMgREdDNCBER1A0IERMUE0IRFNDMCBEU0MxIERTQzIgRFNDMyBEU0M0IEREQkcITFBP RSBMUFBTIExQU1QgTFBQQyBMUFBGIERQTUUIQkNTTAhORkNTCAAIVFBNQSBUUE1MIElUU0EIUzBJ WAhTRE1ECEVNVlIIQk1CRCBGU0FTCEJESUQIRkJJRAhPVEdNCFNURVAIU09DUwhBTVRFCFNDUEUI U0FSRQhQU1NECEVEUFYIRElEWCBURldTCEFCSUQIEIMtAV9TQl9bgiJSVENfCF9ISUQMQdALAAhf Q1JTEQ0KCkcBcABwAAEIeQBbgkwESFBFVAhfSElEDEHQAQMIX1VJRAAUCV9TVEEApAoPFCtfQ1JT CAhSQlVGERoKF4YJAAEAAND+AAQAAIkGAAEBCAAAAHkApFJCVUYIUFIwMBJDEBISDQQM//8QAABM TktBABINBAz//xEAAExOS0IAEg0EDP//EgAATE5LQwASDQQM//8UAABMTktFABINBAz//xUAAExO S0YAEg0EDP//FgAATE5LRwASDQQM//8XAABMTktIABINBAz//xgAAExOS0IAEg4EDP//GAAKAkxO S0QAEg4EDP//GAAKA0xOS0MAEg0EDP//GAABTE5LQQASDQQM//8aAABMTktGABINBAz//x0AAExO S0gAEg0EDP//HgAATE5LRAASDgQM//8eAAoDTE5LQQASDQQM//8eAAFMTktCABIOBAz//x4ACgJM TktDABINBAz//wIAAExOS0EACEFSMDASQw0REgsEDP//EAAAAAoQEgsEDP//EQAAAAoREgsEDP// EgAAAAoSEgsEDP//FAAAAAoUEgsEDP//FQAAAAoVEgsEDP//FgAAAAoWEgsEDP//GAAAAAoREgwE DP//GAAKAgAKExIMBAz//xgACgMAChISCwQM//8YAAEAChASCwQM//8aAAAAChUSCwQM//8dAAAA ChcSCwQM//8eAAAAChMSDAQM//8eAAoDAAoQEgsEDP//HgABAAoREgwEDP//HgAKAgAKEhILBAz/ /wIAAAAKEAhQUjA0EjQEEgsEC///AExOS0EAEgsEC///AUxOS0IAEgwEC///CgJMTktDABIMBAv/ /woDTE5LRAAIQVIwNBIsBBIJBAv//wAAChASCQQL//8BAAoREgoEC///CgIAChISCgQL//8KAwAK EwhQUjA1EjQEEgsEC///AExOS0IAEgsEC///AUxOS0MAEgwEC///CgJMTktEABIMBAv//woDTE5L QQAIQVIwNRIsBBIJBAv//wAAChESCQQL//8BAAoSEgoEC///CgIAChMSCgQL//8KAwAKEAhQUjA2 EjQEEgsEC///AExOS0MAEgsEC///AUxOS0QAEgwEC///CgJMTktBABIMBAv//woDTE5LQgAIQVIw NhIsBBIJBAv//wAAChISCQQL//8BAAoTEgoEC///CgIAChASCgQL//8KAwAKEQhQUjA3EjQEEgsE C///AExOS0QAEgsEC///AUxOS0EAEgwEC///CgJMTktCABIMBAv//woDTE5LQwAIQVIwNxIsBBIJ BAv//wAAChMSCQQL//8BAAoQEgoEC///CgIAChESCgQL//8KAwAKEghQUjAxEkMOEBILBAv//wBM TktGABILBAv//wFMTktHABIMBAv//woCTE5LSAASDAQL//8KA0xOS0UAEg0EDP//AQAATE5LRwAS DQQM//8BAAFMTktGABIOBAz//wEACgJMTktFABIOBAz//wEACgNMTktIABINBAz//wIAAExOS0MA Eg0EDP//AgABTE5LRAASDgQM//8CAAoCTE5LQgASDgQM//8CAAoDTE5LQQASDQQM//8DAABMTktE ABINBAz//wMAAUxOS0MAEg4EDP//AwAKAkxOS0YAEg4EDP//AwAKA0xOS0cACEFSMDESQwwQEgkE C///AAAKFRIJBAv//wEAChYSCgQL//8KAgAKFxIKBAv//woDAAoUEgsEDP//AQAAAAoWEgsEDP// AQABAAoVEgwEDP//AQAKAgAKFBIMBAz//wEACgMAChcSCwQM//8CAAAAChISCwQM//8CAAEAChMS DAQM//8CAAoCAAoREgwEDP//AgAKAwAKEBILBAz//wMAAAAKExILBAz//wMAAQAKEhIMBAz//wMA CgIAChUSDAQM//8DAAoDAAoWCFBSU0ERCQoGI3jcGHkABlBSU0FQUlNCBlBSU0FQUlNDBlBSU0FQ UlNEBlBSU0FQUlNFBlBSU0FQUlNGBlBSU0FQUlNHBlBSU0FQUlNIW4JGzFBDSTAIX0hJRAxB0AoI CF9DSUQMQdAKAwhfQURSABQJXkJOMDAApAAUC19CQk4ApEJOMDAIX1VJRAAIX0RFUBIGAVBFUEQU Fl9QUlQAoApQSUNNpEFSMDCkUFIwMFuCRwdWTFZDCF9BRFIAW4BIQlVTAgAK/1uBGEhCVVMDAEBo U01DUiBTTURSIE1DUlggFCJSTUJSCn15aAoQAHlpCggAYH0M8AAAEGBTTUNSpFNNRFIUI1dNQlIL cGpTTURSfXloChAAeWkKCABgfQzwAAARYFNNQ1IUTRJfQ1JTCKAZVFBNUIpSRVMwCwIBVFBNTHAL ABBUUE1MilJFUzAKqElTTU6KUkVTMAqsSVNNWIpSRVMwCrRJU0xOoCeTSVNQRAFwSVNQQUlTTU5y SVNNTklTTE5JU01YdElTTVgBSVNNWKETcABJU01OcABJU01YcABJU0xOilJFUzAK3E0xTU6KUkVT MArgTTFNWIpSRVMwCuhNMUxOe0JNQkQMAAAA/00xTU5wUENJVE0xTVhydE0xTVhNMU1OAAFNMUxO dE0xTVgBTTFNWIpSRVMwCsJHU01OilJFUzAKxkdTTViKUkVTMArOR1NMTnBeLkdGWDBHU1RNR1NN TnleLkdGWDBHVU1BChlHU0xOckdTTU5HU0xOR1NNWHRHU01YAUdTTVikUkVTMAhSRVMwEU0QCwgB iA0AAgwAAAAAAP8AAAAAAUcBcAB3AAEIRwH4DPgMAQiIDQABDAMAAAAAbwAAAHAAiA0AAQwDAAB4 APcMAACADIgNAAEMAwAAAA3//wAAAPOHFwAADAMAAAAAAAAKAP//CwAAAAAAAAACAIcXAAAMAwAA AAAAAAwA//8NAAAAAAAAAAIAhxcAAAwDAAAAAAAADgD//w8AAAAAAAAAAgCHFwAADAMAAAAAAAAA ev//P3oAAAAAAABAAIcXAAAMAwAAAAAAAAB8////fwAAAAAAAAAEhxcAAAwDAAAAAAAAAID////f AAAAAAAAAGCHFwAADAMAAAAAAADU/v8P1P4AAAAAABAAAHkACEdVSUQREwoQW03bM/cfHECWV3RB wD3XZghTVVBQAAhDVFJMABRDC19PU0MMcGtgimAAQ0RXMYpgCgRDRFcyimAKCENEVzOgQgiQk2hH VUlETkVYUHBDRFcyU1VQUHBDRFczQ1RSTKAmgHtDRFcxAQAAoA17Q1RSTAoCAE5IUEegDXtDVFJM CgQATlBNRaAQkpNpAX1DRFcxCghDRFcxoBaSk0NEVzNDVFJMfUNEVzEKEENEVzFwQ1RSTENEVzNw Q1RSTE9TQ0OkYKEOfUNEVzEKBENEVzGkYFuCQo1MUENCCF9BRFIMAAAfABBOV1xfU0JfW4BJTEJS AElCQVMKjFuBQQRJTEJSAABABFBBUkMIUEJSQwhQQ1JDCFBEUkMIUEVSQwhQRlJDCFBHUkMIUEhS QwgAQDwAA1VJM0UBVUk0RQFbgkIKTE5LQQhfSElEDEHQDA8IX1VJRAEUEV9ESVMIfVBBUkMKgFBB UkMUC19QUlMIpFBSU0EUOF9DUlMICFJUTEERCQoGIwAAGHkAi1JUTEEBSVJRMHAASVJRMHkBe1BB UkMKDwBJUlEwpFJUTEEUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQQVJDFBhfU1RBCKAMe1BBUkMK gACkCgmhBKQKC1uCQwpMTktCCF9ISUQMQdAMDwhfVUlECgIUEV9ESVMIfVBCUkMKgFBCUkMUC19Q UlMIpFBSU0IUOF9DUlMICFJUTEIRCQoGIwAAGHkAi1JUTEIBSVJRMHAASVJRMHkBe1BCUkMKDwBJ UlEwpFJUTEIUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQQlJDFBhfU1RBCKAMe1BCUkMKgACkCgmh BKQKC1uCQwpMTktDCF9ISUQMQdAMDwhfVUlECgMUEV9ESVMIfVBDUkMKgFBDUkMUC19QUlMIpFBS U0MUOF9DUlMICFJUTEMRCQoGIwAAGHkAi1JUTEMBSVJRMHAASVJRMHkBe1BDUkMKDwBJUlEwpFJU TEMUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQQ1JDFBhfU1RBCKAMe1BDUkMKgACkCgmhBKQKC1uC QwpMTktECF9ISUQMQdAMDwhfVUlECgQUEV9ESVMIfVBEUkMKgFBEUkMUC19QUlMIpFBSU0QUOF9D UlMICFJUTEQRCQoGIwAAGHkAi1JUTEQBSVJRMHAASVJRMHkBe1BEUkMKDwBJUlEwpFJUTEQUG19T UlMJi2gBSVJRMIJJUlEwYHZgcGBQRFJDFBhfU1RBCKAMe1BEUkMKgACkCgmhBKQKC1uCQwpMTktF CF9ISUQMQdAMDwhfVUlECgUUEV9ESVMIfVBFUkMKgFBFUkMUC19QUlMIpFBSU0UUOF9DUlMICFJU TEURCQoGIwAAGHkAi1JUTEUBSVJRMHAASVJRMHkBe1BFUkMKDwBJUlEwpFJUTEUUG19TUlMJi2gB SVJRMIJJUlEwYHZgcGBQRVJDFBhfU1RBCKAMe1BFUkMKgACkCgmhBKQKC1uCQwpMTktGCF9ISUQM QdAMDwhfVUlECgYUEV9ESVMIfVBGUkMKgFBGUkMUC19QUlMIpFBSU0YUOF9DUlMICFJUTEYRCQoG IwAAGHkAi1JUTEYBSVJRMHAASVJRMHkBe1BGUkMKDwBJUlEwpFJUTEYUG19TUlMJi2gBSVJRMIJJ UlEwYHZgcGBQRlJDFBhfU1RBCKAMe1BGUkMKgACkCgmhBKQKC1uCQwpMTktHCF9ISUQMQdAMDwhf VUlECgcUEV9ESVMIfVBHUkMKgFBHUkMUC19QUlMIpFBSU0cUOF9DUlMICFJUTEcRCQoGIwAAGHkA i1JUTEcBSVJRMHAASVJRMHkBe1BHUkMKDwBJUlEwpFJUTEcUG19TUlMJi2gBSVJRMIJJUlEwYHZg cGBQR1JDFBhfU1RBCKAMe1BHUkMKgACkCgmhBKQKC1uCQwpMTktICF9ISUQMQdAMDwhfVUlECggU EV9ESVMIfVBIUkMKgFBIUkMUC19QUlMIpFBSU0gUOF9DUlMICFJUTEgRCQoGIwAAGHkAi1JUTEgB SVJRMHAASVJRMHkBe1BIUkMKDwBJUlEwpFJUTEgUG19TUlMJi2gBSVJRMIJJUlEwYHZgcGBQSFJD FBhfU1RBCKAMe1BIUkMKgACkCgmhBKQKC1uATFBDMAIACsBbgRhMUEMwAABABFNSSUQIAEg7QzFF TgEAH1uCJkZXSEQIX0hJRAwl1AgACF9DUlMREQoOhgkAAAAAAP8AAAABeQBbgkUKSVBJQwhfSElE C0HQCF9DUlMRQQkKjUcBIAAgAAECRwEkACQAAQJHASgAKAABAkcBLAAsAAECRwEwADAAAQJHATQA NAABAkcBOAA4AAECRwE8ADwAAQJHAaAAoAABAkcBpACkAAECRwGoAKgAAQJHAawArAABAkcBsACw AAECRwG0ALQAAQJHAbgAuAABAkcBvAC8AAECRwHQBNAEAQIiBAB5AFuCSwlMRFJDCF9ISUQMQdAM AghfVUlECgIIX0NSUxFOBwp6RwEuAC4AAQJHAU4ATgABAkcBYQBhAAEBRwFjAGMAAQFHAWUAZQAB AUcBZwBnAAEBRwFwAHAAAQFHAYAAgAABEEcBkgCSAAEBRwGyALIAAQJHAYAGgAYBIEcBAAQABAGA RwEABQAFAf9HAQAGAAYBIEcBThZOFgECeQBbgi1USU1SCF9ISUQMQdABAAhfQ1JTERgKFUcBQABA AAEERwFQAFAAEAQiAQB5AFuCRwpJVVIzCF9ISUQMQdAFAQhfVUlEARQtX1NUQQigJJNVU0VMAKAc k1BVMUUBcAFVSTNFcAFVSTRFcAFDMUVOpAoPpAAUGF9ESVMIcABVSTNFcABVSTRFcABDMUVOFEkE X0NSUwgIQlVGMBEQCg1HAfgD+AMBCCIIAHkACEJVRjEREAoNRwH4A/gDAQgiEAB5AKAOkpRTUklE CgSkQlVGMKEGpEJVRjFbgFBLQlMBCmAKBVuBFlBLQlMRUEtCRAgACAAIAAhQS0JDCFuCRgZQUzJL CF9ISUQMQdADAxQdX1NUQQCgE3uTUEtCRAr/k1BLQkMK/wCkAKQKDwhfQ1JTERkKFkcBYABgAAEB RwFkAGQAAQEjAgABeQAIX1BSUxETChAxAEtgAAFLZAABIgIAOHkAW4JOBFBTMk0IX0hJRAxB0A8T FB1fU1RBAKATe5NQS0JECv+TUEtCQwr/AKQApAoPCF9DUlMRCQoGIwAQAXkACF9QUlMRCwoIMQAi ABA4eQAQRRRcAFuAUE1JTwFQTUJTCkZbgSFQTUlPAQAIUFdCUwEARw8ADVBNRUIBAEIQAAFHUEVD AVuBFVBNSU9BAEAQAARQU0NJAVNDSVMBW4BQTUNSAFBGRFIKBFuBTQhQTUNSE0wxMEQBTDExRAFM MTJEAUwxM0QBTDE0RAFMMTVEAQACU0QxRAFTRDJEAVNEM0QBSFNJRAEAAUxQRUQBT1RHRAEAAQAB AAEAAQABUlAxRAFSUDJEAVJQM0QBUlA0RAFMMjBEAUwyMUQBTDIyRAFMMjNEAUwyNEQBTDI1RAFM MjZEAUwyN0QBW4BDTEtDAFBDTEsKGFuBTwRDTEtDE0NLQzACQ0tGMAEAHUNLQzECQ0tGMQEAHUNL QzICQ0tGMgEAHUNLQzMCQ0tGMwEAHUNLQzQCQ0tGNAEAHUNLQzUCQ0tGNQEAHRBDRF9TQl9bgkQf TFBFQQhfQURSAAhfSElEDTgwODYwRjI4AAhfQ0lEDTgwODYwRjI4AAhfRERODUludGVsKFIpIExv dyBQb3dlciBBdWRpbyBDb250cm9sbGVyIC0gODA4NjBGMjgACF9TVUINODA4NjcyNzAACF9VSUQB CF9ERVASDAFeLkkyQzJSVEVLCF9QUjASBgFQTFBFFBtfU1RBAKASkJNMUEVFCgKTTFBFRACkCg+k ABQGX0RJUwAIUkJVRhFDCAp/hgkAAQAAQP4AACAAhgkAAQAAg/4AEAAAhgkAAapVqlUAABAAiQYA BQEYAAAAiQYABQEZAAAAiQYABQEaAAAAiQYABQEbAAAAiQYABQEcAAAAiQYABQEdAAAAjCAAAQAB ABUAAwAAAAAXAAAZACMAAAAcAFxfU0IuR1BPMgB5ABRIBF9DUlMAilJCVUYKBEIwQkFwTFBFMEIw QkGKUkJVRgoQQjFCQXBMUEUxQjFCQYpSQlVGChxCMkJBcExQRTJCMkJBpFJCVUZbgEtFWVMATFBF MQsAAVuBDktFWVNDAEBCUFNBVCBbhE0EUExQRQUAABQIX1NUQQCkARQeX09OXwB7UFNBVAz8//// UFNBVH1QU0FUAFBTQVQUG19PRkYAfVBTQVQKA1BTQVR9UFNBVABQU0FUW4JIClZJQlIIX0FEUgAI X0hJRA1WSUI4NjAxAAhfQ0lEDVZJQjg2MDEACF9ERE4NSW50ZWwoUikgVmlicmEgRHJpdmVyIC0g VklCODYwMQAIX1VJRAEUPl9DUlMACFJCVUYRLQoqjCUAAQEBAAIAAAAAAAAXAAAZACgAAAAEAFxf U0IuSTJDNy5QTUlDAHkApFJCVUYUFF9TVEEAoAuTQkRJRAoDpAoPpABbgkwQQU1DUghfQURSAAhf SElEDUFNQ1IwRjI4AAhfQ0lEDUFNQ1IwRjI4AAhfRERODUludGVsKFIpIEF1ZGlvIE1hY2hpbmUg RHJpdmVyIC0gQU1DUjBGMjgACF9VSUQBCF9ERVASEAJHUE8yXi5JMkMyUlRFSxRBCF9DUlMACFJC VUYRTwYKa4wgAAEAAQARAAMAAAAAFwAAGQAjAAAABABcX1NCLkdQTzIAjCAAAQABABEAAwAAAAAX AAAZACMAAAAbAFxfU0IuR1BPMgCMIAABAAEAEQADAAAAABcAABkAIwAAABwAXF9TQi5HUE8yAHkA pFJCVUYUFF9TVEEAoAuTQkRJRAoDpAoPpABbgk0ISEFEXwhfQURSAAhfSElEDUhBRDBGMjgACF9D SUQNSEFEMEYyOAAIX0RETg1JbnRlbChSKSBIRE1JIEF1ZGlvIERyaXZlciAtIEhBRAAIX1VJRAEU Il9DUlMACFJCVUYREQoOhgkAAQBYBgBAAQAAeQCkUkJVRhQUX1NUQQCgC5NCRElECgOkCg+kABCH dAEuX1NCX1BDSTBbgoUMAVhIQzEIX0FEUgwAABQACF9ERE4NQmF5dHJhaWwgWEhDSSBjb250cm9s bGVyIChDQ0cgY29yZS9Ib3N0IG9ubHkpAAhfREVQEgYBUEVQRAhfU1RSEUAGClxCAGEAeQB0AHIA YQBpAGwAIABYAEgAQwBJACAAYwBvAG4AdAByAG8AbABsAGUAcgAgACgAQwBDAEcAIABjAG8AcgBl AC8ASABvAHMAdAAgAG8AbgBsAHkAKQAAAAhfUzBXCgMITVNFVAAIRERTVABbgFBDU0wADHQACuAB W4ELUENTTEFQTVBTAluAUENTSAAMdQAK4AFbgQtQQ1NIAVBNQ0gIW4BYTVNFAAwAAArgCwABW4E3 WE1TRQAAIAABQ01TRQEATgVCQVIwIABAMFBNQ1MQAEAdAA1QSFkyAgANVVNIUAEAAVNDRkcBFBNQ V09GCFA4WEgACqpwAVNDRkcUE1BXT04IUDhYSAAKu3AAU0NGR1uAWFBSVAByUEVCUwwAAAoAAAsA AVuBSgRYUFJUAERWSUQQAEA5RDBEMwIABlBNRUUBAAZQTUVTAQBAHQANTUIxMwFNQjE0AQARAEAO UFIyXyBQUjJNIFBSM18gUFIzTSBbgFhIQ1AAclBFQlMMAAAKAAALAAFbgRVYSENQEAAgUERCTRAA QAVNRU1CIAhQQ0hTAAhTUk1CDAAAgJAUS0NfUFMwCEFEQkcNWEhDIEQwAFA4WEgACqCgC5NEVklE C///pAB7TUVNQgzw////U1JNQnBNRU1CYnBQREJNYXtQREJNDvn/////////UERCTXBTUk1CTUVN Qn1QREJNCgJQREJNW4BNQ0ExAFNSTUILAJBbgU4QTUNBMRMAgIgCUjUxMCAAQAZSNTIwIABABlI1 MzAgAEAGUjU0MCAAgIo9AAhDREVTAQAHU1RTUAEAA0NGRUMBACsAGUVQUkUBAEYYAA5DTU1GAQAG RVNTUAEAAURBUEEBAEgkAA9BWDE1AQBADQAZUFBMMQEARggAAUNSTkMBAAZFUFREAQACSFRQUAEA CFRSTUMBAEsWTUlEUwxBV1BDDEVJSFIIAAZTU0lJAVNTSU8BSFNJSQEARwcAH0NMSzIBAEAGRVRC QwFFUkJDAUVTQUkBRVRNQQFFT0FJAUVJQUkBVFRFQQFFQ01BAQA4AAJDTEswAQALQ0xLMQEAQQ0A GEZJREQBAAFGVFNTAXBEMEQzY6APk2MKA3AARDBEM1siCgqgIJNQQ0hTCgJwAE1CMTNwAE1CMTRw AENMSzBwAENMSzFwAUNMSzJwAUNERVNwAVNUU1BwAENGRUNwAUVQUkVwAURBUEFwAUVTU1BwAUNN TUZwAVBQTDFwAENSTkNwAEVQVERwAUhUUFBwAVRSTUNwCjxNSURTcAoPQVdQQ3AK/0VJSFJwAVNT SUlwAVNTSU9wAUhTSUlwAUVSQkNwAUVUQkNwAUVTQUlwAUVUTUFwAUVPQUlwAUVJQUlwAVRURUFw AUVDTUFwAUZJRERwAUZUU1NwAFVTSFCgQBiTUENIUwoCojyRkZN7UjUxMAv7AwAL4AKTe1I1MjAL +wMAC+ACkZN7UjUzMAv7AwAL4AKTe1I1NDAL+wMAC+ACWyEKMnBSNTEwYKBGBJN7YAz7AwIAAAug An1gDAAAAIBSNTEwohKTe1I1MTAMAAAYAAAAWyEKMntSNTEwDv3/////////YH1gDAAA/gBSNTEw cFI1MjBgoEYEk3tgDPsDAgAAC6ACfWAMAAAAgFI1MjCiEpN7UjUyMAwAABgAAABbIQoye1I1MjAO /f////////9gfWAMAAD+AFI1MjBwUjUzMGCgRgSTe2AM+wMCAAALoAJ9YAwAAACAUjUzMKISk3tS NTMwDAAAGAAAAFshCjJ7UjUzMA79/////////2B9YAwAAP4AUjUzMHBSNTQwYKBGBJN7YAz7AwIA AAugAn1gDAAAAIBSNTQwohKTe1I1NDAMAAAYAAAAWyEKMntSNTQwDv3/////////YH1gDAAA/gBS NTQwcAFBWDE1oCCTYwoDQURCRw1QUzAtPkQzAFA4WEgACqFwCgNEMEQzoQhQOFhIAAqie1BEQk0O /f////////9QREJNcGJNRU1CcGFQREJNFEIUX1BTMwhBREJHDVhIQyBEMwBQOFhIAAqwoAuTRFZJ RAv//6QAe01FTUIM8P///1NSTUJwTUVNQmJwUERCTWF7UERCTQ75/////////1BEQk1wU1JNQk1F TUJ9UERCTQoCUERCTVuATUNBMQBTUk1CCwCQW4EuTUNBMRMAgHBAAA9BWDE1AQBAOQAfQ0xLMgEA QAoAAkNMSzABAAtDTEsxAQARcEQwRDNjoAuTYwoDcABEMEQzoCCTUENIUwoCcAFNQjEzcAFNQjE0 cAFDTEswcAFDTEsxcABDTEsyoA6TUENIUwoCcABBWDE1oA2TUE1FRQFwAVVTSFCgIJNjCgNBREJH DVBTMy0+RDMAUDhYSAAKsXAKA0QwRDOhCFA4WEgACrJ7UERCTQ79/////////1BEQk1wYk1FTUJw YVBEQk0UBl9EU1cDFAhfUk1WAKQAFA5fUFIzAKQSBgFVU0JDFBZfU1RBAKALkpNYSENJAKQKD6ED pABbgkOQUkhVQghfQURSAFuCQBFTU1AxCF9BRFIKBxQZX1VQQwgIVVBDUBIIBAr/CgYAAKRVUENQ FCtfUExECAhQTERQEhoBERcKFIIAAAAAAAAASxkAAAMAAAD/////pFBMRFAUTAtfRFNNBEFEQkcN RFNNMTEAoEMKk2gREwoQheMuzuYAy0ifBS7bknxImUFEQkcNRFNNMTIAoE8Hk2kAQURCRw1EU00x MwCgOJNqAEFEQkcNU1NQMSBRVUVSWQBwDU1ldGhvZCBfRFNNIEZ1bmN0aW9uIFF1ZXJ5AFsxpBED AQWgNZNqCgJBREJHDVNTUDEgRFNNAHANTWV0aG9kIF9EU00gRnVuY3Rpb24gSW5kZXgyAFsxpACh A6QApABbgk8QSFMwMQhfQURSARQZX1VQQwgIVVBDUBIIBAr/CgYAAKRVUENQFCtfUExECAhQTERQ EhoBERcKFIIAAAAAAAAASxkAAAMAAAD/////pFBMRFAUTAtfRFNNBEFEQkcNRFNNMjEAoEMKk2gR EwoQheMuzuYAy0ifBS7bknxImUFEQkcNRFNNMjIAoE8Hk2kAQURCRw1EU00yMwCgOJNqAEFEQkcN SFMwMSBRVUVSWQBwDU1ldGhvZCBfRFNNIEZ1bmN0aW9uIFF1ZXJ5AFsxpBEDAQWgNZNqCgJBREJH DUhTMDEgRFNNAHANTWV0aG9kIF9EU00gRnVuY3Rpb24gSW5kZXgyAFsxpAChA6QApABbgk4VSFMw MghfQURSCgIUNl9VUEMICFVQQ1ASCAQK/wr/AAAIVVBDUhIHBAr/AAAAoA2TQkRJRAoCpFVQQ1Kh BqRVUENQFEwFX1BMRAgIUExEUBIaAREXChSCAAAAAAAAAEAIAAAAAAAA/////whQTERSEhoBERcK FIIAAAAAAAAAQQgAAAAAAAD/////oA2TQkRJRAoCpFBMRFKhBqRQTERQFEwLX0RTTQRBREJHDURT TTMxAKBDCpNoERMKEIXjLs7mAMtInwUu25J8SJlBREJHDURTTTMyAKBPB5NpAEFEQkcNRFNNMzMA oDiTagBBREJHDUhTMDIgUVVFUlkAcA1NZXRob2QgX0RTTSBGdW5jdGlvbiBRdWVyeQBbMaQRAwEF oDWTagoCQURCRw1IUzAyIERTTQBwDU1ldGhvZCBfRFNNIEZ1bmN0aW9uIEluZGV4MgBbMaQAoQOk AKQAW4JBI0hTMDMIX0FEUgoDCF9ERVASBgFHUE8yCFBTVFMAW4RAC1dXUFIAAAAIX0RFUBIGAUdQ TzIUK19TVEEAoCKTXC8DX1NCX0dQTzJBVkJMAaRcLwNfU0JfR1BPMldXRDOkABQ9X09OXwCgNpNQ U1RTAKAuk1wvA19TQl9HUE8yQVZCTAFbIgsAAnABXC8DX1NCX0dQTzJXV0QzcAFQU1RTFDBfT0ZG AKApk1wvA19TQl9HUE8yQVZCTAFwAFwvA19TQl9HUE8yV1dEM3AAUFNUUwhfUzBXCgIIX1BSMBIG AVdXUFIIX1BSMhIGAVdXUFIIX1BSMxIGAVdXUFIUGV9VUEMICFVQQ1ASCAQK/wr/AACkVVBDUBQr X1BMRAgIUExEUBIaAREXChSCAAAAAAAAADAIAAAAAAAA/////6RQTERQFEwLX0RTTQRBREJHDURT TTQxAKBDCpNoERMKEIXjLs7mAMtInwUu25J8SJlBREJHDURTTTQyAKBPB5NpAEFEQkcNRFNNNDMA oDiTagBBREJHDUhTMDMgUVVFUlkAcA1NZXRob2QgX0RTTSBGdW5jdGlvbiBRdWVyeQBbMaQRAwEF oDWTagoCQURCRw1IUzAzIERTTQBwDU1ldGhvZCBfRFNNIEZ1bmN0aW9uIEluZGV4MgBbMaQAoQOk AKQAW4IwTU9ETQhfQURSCgMIX1BSMBIGAVdXUFIIX1BSMhIGAVdXUFIIX1BSMxIGAVdXUFJbgkAR SFMwNAhfQURSCgQUGV9VUEMICFVQQ1ASCAQK/wr/AACkVVBDUBQrX1BMRAgIUExEUBIaAREXChSC AAAAAAAAADAIAAAAAAAA/////6RQTERQFEwLX0RTTQRBREJHDURTTTUxAKBDCpNoERMKEIXjLs7m AMtInwUu25J8SJlBREJHDURTTTUyAKBPB5NpAEFEQkcNRFNNNTMAoDiTagBBREJHDUhTMDQgUVVF UlkAcA1NZXRob2QgX0RTTSBGdW5jdGlvbiBRdWVyeQBbMaQRAwEFoDWTagoCQURCRw1IUzA0IERT TQBwDU1ldGhvZCBfRFNNIEZ1bmN0aW9uIEluZGV4MgBbMaQAoQOkAKQAW4JCEUhTQzEIX0FEUgoF FBlfVVBDCAhVUENQEggECv8K/wAApFVQQ1AUK19QTEQICFBMRFASGgERFwoUggAAAAAAAAAwCAAA AAAAAP////+kUExEUBROC19EU00EQURCRw1EU002MQCgRQqTaBETChCF4y7O5gDLSJ8FLtuSfEiZ QURCRw1EU002MgCgQQiTaQBBREJHDURTTTYzAKA5k2oAQURCRw1IU0lDMSBRVUVSWQBwDU1ldGhv ZCBfRFNNIEZ1bmN0aW9uIFF1ZXJ5AFsxpBEDAQWgNpNqCgJBREJHDUhTSUMxIERTTQBwDU1ldGhv ZCBfRFNNIEZ1bmN0aW9uIEluZGV4MgBbMaQBoQOkAKQAW4JJEUhTQzIIX0FEUgoGFBlfVVBDCAhV UENQEggECv8K/wAApFVQQ1AUK19QTEQICFBMRFASGgERFwoUggAAAAAAAAAwCAAAAAAAAP////+k UExEUBRFDF9EU00EQURCRw1EU003MQCgTAqTaBETChCF4y7O5gDLSJ8FLtuSfEiZQURCRw1EU003 MgCgSAiTaQBBREJHDURTTTczAKA5k2oAQURCRw1IU0lDMiBRVUVSWQBwDU1ldGhvZCBfRFNNIEZ1 bmN0aW9uIFF1ZXJ5AFsxpBEDAQWgPZNqCgJBREJHDUhTSUMyIERTTSBjYWxsZWQAcA1NZXRob2Qg X0RTTSBGdW5jdGlvbiBJbmRleDIAWzGkAaEDpACkAFuCSxVPVEcxCF9BRFIMAAAWAAhfRERODUJh eXRyYWlsIFhIQ0kgY29udHJvbGxlciAoU3lub3BzeXMgY29yZS9PVEcpAAhfU1RSEU4FClpCAGEA eQB0AHIAYQBpAGwAIABYAEgAQwBJACAAYwBvAG4AdAByAG8AbABsAGUAcgAgACgAUwB5AG4AbwBw AHMAeQBzACAAYwBvAHIAZQAvAE8AVABHACkAAAAIX1MwVwoDW4BQTUVCAgqECgRbgRRQTUVCAgAI UE1FRQEABlBNRVMBW4BHRU5SAgqgChBbgRdHRU5SAgASQ1BNRQFVMkVOAVUzRU4BFBhfUFMzAHAB Q1BNRXABVTJFTnABVTNFThQYX1BTMABwAENQTUVwAFUyRU5wAFUzRU4UBl9EU1cDFAhfUk1WAKQA FA5fUFIzAKQSBgFVU0JDFBZfU1RBAKALkpNPVEdNAKQKD6EDpAAQKFxfU0JfW4QgVVNCQwAAABQJ X1NUQQCkCg8UBl9PTl8AFAZfT0ZGAFuCT0lFSEMxCF9BRFIMAAAdAAhfREVQEgYBUEVQRFuAUFdL RQIKYgoEW4ENUFdLRQMAAVBXVUMIFBdfUFNXAaAIaHD/UFdVQ6EHcABQV1VDW4JGPkhVQk4IX0FE UgBbgkg9UFIwMQhfQURSAQhfVVBDEgcECv8AAAAIX1BMRBIWARETChCBAAAAAAAAADAcAAAAAAAA W4I1UFIxMQhfQURSAQhfVVBDEggECv8K/wAACF9QTEQSFgEREwoQgQAAAAAAAADhHAAAAAAAAFuC NlBSMTIIX0FEUgoCCF9VUEMSCAQK/wr/AAAIX1BMRBIWARETChCBAAAAAAAAAOEdAAAAAAAAW4I2 UFIxMwhfQURSCgMIX1VQQxIIBAr/Cv8AAAhfUExEEhYBERMKEIEAAAAAAAAA4R0AAAAAAABbgk8K UFIxNAhfQURSCgQIX1VQQxIIBAr/Cv8AAAhfUExEEhYBERMKEIEAAAAAAAAA4R4AAAAAAAAURwdf RFNNDAhfVF8wAKBHBpNoERMKEI9w/KV1h6ZLvQy6kKHscviiTgQBcJlqAF9UXzCgGJNfVF8wAKAJ k2kBpBEDAQehBqQRAwEAoSigFpNfVF8wAaAKk1NER1YK/6QAoQOkAaEPoA2TX1RfMAoCpFNER1al pABbgk8KUFIxNQhfQURSCgUIX1VQQxIIBAr/Cv8AAAhfUExEEhYBERMKEIEAAAAAAAAAsR4AAAAA AAAURwdfRFNNDAhfVF8wAKBHBpNoERMKEI9w/KV1h6ZLvQy6kKHscviiTgQBcJlqAF9UXzCgGJNf VF8wAKAJk2kBpBEDAQehBqQRAwEAoSigFpNfVF8wAaAKk1NER1YK/6QAoQOkAaEPoA2TX1RfMAoC pFNER1alpABbgk8KUFIxNghfQURSCgYIX1VQQxIIBAr/Cv8AAAhfUExEEhYBERMKEIEAAAAAAAAA sR4AAAAAAAAURwdfRFNNDAhfVF8wAKBHBpNoERMKEI9w/KV1h6ZLvQy6kKHscviiTgQBcJlqAF9U XzCgGJNfVF8wAKAJk2kBpBEDAQehBqQRAwEAoSigFpNfVF8wAaAKk1NER1YK/6QAoQOkAaEPoA2T X1RfMAoCpFNER1alpABbgk8KUFIxNwhfQURSCgcIX1VQQxIIBAr/Cv8AAAhfUExEEhYBERMKEIEA AAAAAAAAsR4AAAAAAAAURwdfRFNNDAhfVF8wAKBHBpNoERMKEI9w/KV1h6ZLvQy6kKHscviiTgQB cJlqAF9UXzCgGJNfVF8wAKAJk2kBpBEDAQehBqQRAwEAoSigFpNfVF8wAaAKk1NER1YK/6QAoQOk AaEPoA2TX1RfMAoCpFNER1alpABbgjZQUjE4CF9BRFIKCAhfVVBDEggECv8K/wAACF9QTEQSFgER EwoQgQAAAAAAAACxHgAAAAAAAAhfUFJXEgYCCg0KAwhfUzBXCgNbgFVTQlICClQKBFuBFFVTQlIC AAhQTUVFAQAGUE1FUwEUFV9TVEEAoAqTWEhDSQCkCg+hA6QAFAZfRFNXAxQIX1JNVgCkABQOX1BS MwCkEgYBVVNCQ1uCSwRTRUMwCF9BRFIMAAAaAAhfREVQEgYBUEVQRAhfUzBXCgNbgFBNRUICCoQK BFuBFFBNRUICAAhQTUVFAQAGUE1FUwEUBl9EU1cDEIZrAS5fU0JfUENJMFuCiGoBR0ZYMAhfQURS DAAAAgAIX0RFUBIVA1BFUERJMkM3Xl4uSTJDN1BNSUMIUERFUBIGAVBFUEQIX1MwVwoDFBBfRE9T AXB7aAoHAERTRU4USDVfRE9EAHAATkRJRKAVkpNESURMAHBTRERMRElETERJRDGgFZKTRERMMgBw U0RETERETDJESUQyoBWSk0RETDMAcFNERExEREwzRElEM6AVkpNEREw0AHBTRERMRERMNERJRDSg FZKTRERMNQBwU0RETERETDVESUQ1oEcFk05ESUQBCFRNUDESDAIM/////wz/////cH0MAAABAERJ RDEAiFRNUDEAAKAVlVNPQ1MKAnAMOQ8CAIhUTVAxAQChDnAMOA8CAIhUTVAxAQCkVE1QMaBCB5NO RElECgIIVE1QMhIRAwz/////DP////8M/////3B9DAAAAQBESUQxAIhUTVAyAABwfQwAAAEARElE MgCIVE1QMgEAoBaVU09DUwoCcAw5DwIAiFRNUDIKAgChD3AMOA8CAIhUTVAyCgIApFRNUDKgSwiT TkRJRAoDCFRNUDMSFgQM/////wz/////DP////8M/////3B9DAAAAQBESUQxAIhUTVAzAABwfQwA AAEARElEMgCIVE1QMwEAcH0MAAABAERJRDMAiFRNUDMKAgCgFpVTT0NTCgJwDDkPAgCIVE1QMwoD AKEPcAw4DwIAiFRNUDMKAwCkVE1QM6BECpNORElECgQIVE1QNBIbBQz/////DP////8M/////wz/ ////DP////9wfQwAAAEARElEMQCIVE1QNAAAcH0MAAABAERJRDIAiFRNUDQBAHB9DAAAAQBESUQz AIhUTVA0CgIAcH0MAAABAERJRDQAiFRNUDQKAwCgFpVTT0NTCgJwDDkPAgCIVE1QNAoEAKEPcAw4 DwIAiFRNUDQKBACkVE1QNKBNC5RORElECgQIVE1QNRIgBgz/////DP////8M/////wz/////DP// //8M/////3B9DAAAAQBESUQxAIhUTVA1AABwfQwAAAEARElEMgCIVE1QNQEAcH0MAAABAERJRDMA iFRNUDUKAgBwfQwAAAEARElENACIVE1QNQoDAHB9DAAAAQBESUQ1AIhUTVA1CgQAoBaVU09DUwoC cAw5DwIAiFRNUDUKBQChD3AMOA8CAIhUTVA1CgUApFRNUDWgFJVTT0NTCgKkEgoCCwAEDDkPAgCh DaQSCgILAAQMOA8CAFuCQwhERDAxFDxfQURSCKAfk3sLAA9ESUQxAAsABHABRURQVnBESUQxRElE WKQBoAmTRElEMQCkAaELpHsL//9ESUQxABQPX0RDUwCkQ0REU0RJRDEUD19ER1MApE5ERFNESUQx FB9fRFNTAaAYk3toDAAAAMAADAAAAMBwTlNURUNTVEVbgkoYREQwMhQ/X0FEUgigIZN7CwAPRElE MgALAARwCgJFRFBWcERJRDJESURYpAoCoAqTRElEMgCkCgKhC6R7C///RElEMgAUD19EQ1MApENE RFNESUQyFA9fREdTAKRORERTRElEMhQfX0RTUwGgGJN7aAwAAADAAAwAAADAcE5TVEVDU1RFFEgN X0JDTACkEk8MZwpQCjIAAQoCCgMKBAoFCgYKBwoICgkKCgoLCgwKDQoOCg8KEAoRChIKEwoUChUK FgoXChgKGQoaChsKHAodCh4KHwogCiEKIgojCiQKJQomCicKKAopCioKKwosCi0KLgovCjAKMQoy CjMKNAo1CjYKNwo4CjkKOgo7CjwKPQo+Cj8KQApBCkIKQwpECkUKRgpHCkgKSQpKCksKTApNCk4K TwpQClEKUgpTClQKVQpWClcKWApZCloKWwpcCl0KXgpfCmAKYQpiCmMKZBQeX0JDTQGgF5CSlWgA kpRoCmRBSU5UAWhwaEJSVEwUC19CUUMApEJSVExbgkMJREQwMxQ/X0FEUgigIZN7CwAPRElEMwAL AARwCgNFRFBWcERJRDNESURYpAoDoAqTRElEMwCkCgOhC6R7C///RElEMwAUHF9EQ1MAoAqTRElE MwCkCguhCqRDRERTRElEMxQPX0RHUwCkTkREU0RJRDMUH19EU1MBoBiTe2gMAAAAwAAMAAAAwHBO U1RFQ1NURVuCQwlERDA0FD9fQURSCKAhk3sLAA9ESUQ0AAsABHAKBEVEUFZwRElENERJRFikCgSg CpNESUQ0AKQKBKELpHsL//9ESUQ0ABQcX0RDUwCgCpNESUQ0AKQKC6EKpENERFNESUQ0FA9fREdT AKRORERTRElENBQfX0RTUwGgGJN7aAwAAADAAAwAAADAcE5TVEVDU1RFW4JDCUREMDUUP19BRFII oCGTewsAD0RJRDUACwAEcAoFRURQVnBESUQ1RElEWKQKBaAKk0RJRDUApAoFoQukewv//0RJRDUA FBxfRENTAKAKk0RJRDUApAoLoQqkQ0REU0RJRDUUD19ER1MApE5ERFNESUQ1FB9fRFNTAaAYk3to DAAAAMAADAAAAMBwTlNURUNTVEVbgkMJREQwNhQ/X0FEUgigIZN7CwAPRElENgALAARwCgZFRFBW cERJRDZESURYpAoGoAqTRElENgCkCgahC6R7C///RElENgAUHF9EQ1MAoAqTRElENgCkCguhCqRD RERTRElENhQPX0RHUwCkTkREU0RJRDYUH19EU1MBoBiTe2gMAAAAwAAMAAAAwHBOU1RFQ1NURVuC QwlERDA3FD9fQURSCKAhk3sLAA9ESUQ3AAsABHAKB0VEUFZwRElEN0RJRFikCgegCpNESUQ3AKQK B6ELpHsL//9ESUQ3ABQcX0RDUwCgCpNESUQ3AKQKC6EKpENERFNESUQ3FA9fREdTAKRORERTRElE NxQfX0RTUwGgGJN7aAwAAADAAAwAAADAcE5TVEVDU1RFW4JDCUREMDgUP19BRFIIoCGTewsAD0RJ RDgACwAEcAoIRURQVnBESUQ4RElEWKQKCKAKk0RJRDgApAoIoQukewv//0RJRDgAFBxfRENTAKAK k0RJRDgApAoLoQqkQ0REU0RJRDgUD19ER1MApE5ERFNESUQ4FB9fRFNTAaAYk3toDAAAAMAADAAA AMBwTlNURUNTVEVbgkQXREQxRhQdX0FEUgigCpNFRFBWAKQKH6ELpHsL//9ESURYABQbX0RDUwCg CZNFRFBWAKQAoQqkQ0REU0RJRFgUD19ER1MApE5ERFNESURYFB9fRFNTAaAYk3toDAAAAMAADAAA AMBwTlNURUNTVEUUSA1fQkNMAKQSTwxnClAKMgABCgIKAwoECgUKBgoHCggKCQoKCgsKDAoNCg4K DwoQChEKEgoTChQKFQoWChcKGAoZChoKGwocCh0KHgofCiAKIQoiCiMKJAolCiYKJwooCikKKgor CiwKLQouCi8KMAoxCjIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwpACkEKQgpDCkQKRQpGCkcK SApJCkoKSwpMCk0KTgpPClAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KYAphCmIKYwpk FB5fQkNNAaAXkJKVaACSlGgKZEFJTlQBaHBoQlJUTBQLX0JRQwCkQlJUTBROBlNEREwBdU5ESURw e2gLDw8AYH0MAAAAgGBhoAmTRElETGCkYaAJk0RETDJgpGGgCZNEREwzYKRhoAmTRERMNGCkYaAJ k0RETDVgpGGgCZNEREw2YKRhoAmTRERMN2CkYaAJk0RETDhgpGGkABRCB0NERFMBcHtoCw8PAGCg B5MAYKQKHaAKk0NBRExgpAofoAqTQ0FMMmCkCh+gCpNDQUwzYKQKH6AKk0NBTDRgpAofoAqTQ0FM NWCkCh+gCpNDQUw2YKQKH6AKk0NBTDdgpAofoAqTQ0FMOGCkCh+kCh0USAZORERTAXB7aAsPDwBg oAaTAGCkAKAJk05BRExgpAGgCZNOREwyYKQBoAmTTkRMM2CkAaAJk05ETDRgpAGgCZNOREw1YKQB oAmTTkRMNmCkAaAJk05ETDdgpAGgCZNOREw4YKQBpABbgElHRFACAAsAAVuBRwVJR0RQAABACE1B RFIgAEAeAAFHSVZEAQABR1VNQQUACAAQAARHTUZOAQAbACBHU1RNIABAQEdTU0UBR1NTQg5HU0VT AQAQQVNMRQgAGABACkFTTFMgW4BJR01NAE1BRFILADBbgRFJR01NAACAZBAABERDRkUEW4BJR0RN AEFTTEILACBbgUgZSUdETQBTSUdOQAhTSVpFIE9WRVIgU1ZFUkAQVlZFUkAIR1ZFUkAITUJPWCBE TU9EIABAUERSRFkgQ1NUUyBDRVZUIABACkRJREwgRERMMiBEREwzIERETDQgRERMNSBEREw2IERE TDcgRERMOCBDUERMIENQTDIgQ1BMMyBDUEw0IENQTDUgQ1BMNiBDUEw3IENQTDggQ0FEMSBDQUwy IENBTDMgQ0FMNCBDQUw1IENBTDYgQ0FMNyBDQUw4IE5BREwgTkRMMiBOREwzIE5ETDQgTkRMNSBO REw2IE5ETDcgTkRMOCBBU0xQIFRJRFggQ0hQRCBDTElEIENEQ0sgU1hTVyBFVlRTIENOT1QgTlJE WSAAQB5TQ0lFAUdFRkMER1hGQwNHRVNGCAAQUEFSTSBEU0xQIABAekFSRFkgQVNMQyBUQ0hFIEFM U0kgQkNMUCBQRklUIENCTFYgQkNMTUAUQ1BGTSBFUEZNIFBMVVRAJVBGTUIgQ0NEViBQQ0ZUIABA L0dWRDGAAAxQSEVEIEJERENAgAhEQlRCEjIVAAoHCjgLwAELAA4KPwvHAQsHDgv4AQs4DgvADwAA AAAACwBwCwdwCzhwC8BxCwB+CENEQ1QSJAYSBAEKoBIEAQrIEgUBCwsBEgUBC0ABEgUBC2QBEgUB C5ABCFNVQ0MBCE5WTEQKAghDUklUCgQITkNSVAoGFE9PR1NDSQgUQh1HQkRBCKAak0dFU0YAcAt5 AlBBUk1wAEdFU0akU1VDQ6Aak0dFU0YBcAtAAlBBUk1wAEdFU0akU1VDQ6BHBJNHRVNGCgR7UEFS TQwAAP/vUEFSTXtQQVJNeYOIREJUQklCVFQAChAAUEFSTX1JQlRUUEFSTVBBUk1wAEdFU0akU1VD Q6BLB5NHRVNGCgVwSVBTQ1BBUk19UEFSTXlJUEFUCggAUEFSTXJQQVJNCwABUEFSTX1QQVJNeUxJ RFMKEABQQVJNclBBUk0MAAABAFBBUk19UEFSTXlJQkxDChIAUEFSTX1QQVJNeUlCSUEKFABQQVJN cABHRVNGpFNVQ0OgLZNHRVNGCgZwSVRWRlBBUk19UEFSTXlJVFZNCgQAUEFSTXAAR0VTRqRTVUND oEwGk0dFU0YKB3BHSVZEUEFSTX9QQVJNAVBBUk19UEFSTXlHTUZOAQBQQVJNfVBBUk0LABhQQVJN fVBBUk15SURNUwoRAFBBUk19eYOIQ0RDVERDRkUAChUAUEFSTVBBUk1wAUdFU0akU1VDQ6Aqk0dF U0YKCnAAUEFSTaAQSVNTQ31QQVJNCgNQQVJNcABHRVNGpFNVQ0NwAEdFU0akQ1JJVBRGLlNCQ0II oEMEk0dFU0YAcABQQVJNoBSTUEZMVkZNQkxwDP2HDwBQQVJNoBSTUEZMVkZEVFBwDL2HDwBQQVJN cABHRVNGpFNVQ0OgGJNHRVNGAXAAR0VTRnAAUEFSTaRTVUNDoBmTR0VTRgoDcABHRVNGcABQQVJN pFNVQ0OgGZNHRVNGCgRwAEdFU0ZwAFBBUk2kU1VDQ6AZk0dFU0YKBXAAR0VTRnAAUEFSTaRTVUND oDeTR0VTRgoGcHtQQVJNCg8ASVRWRnB6e1BBUk0K8AAKBABJVFZNcABHRVNGcABQQVJNpFNVQ0Og RQSTR0VTRgoHoCqTUEFSTQBwQ0xJRGCgHHsMAAAAgGAAe0NMSUQKD0NMSURHTElEQ0xJRHAAR0VT RnAAUEFSTaRTVUNDoBmTR0VTRgoIcABHRVNGcABQQVJNpFNVQ0OgJJNHRVNGCgl7UEFSTQr/SUJU VHAAR0VTRnAAUEFSTaRTVUNDoEUGk0dFU0YKCntQQVJNCv9JUFNDoCF7elBBUk0KCAAK/wB7elBB Uk0KCAAK/0lQQVR2SVBBVHt6UEFSTQoSAAoDSUJMQ3t6UEFSTQoUAAoHSUJJQXAAR0VTRnAAUEFS TaRTVUNDoDWTR0VTRgoLe3pQQVJNAQABSUYxRXt6UEFSTQoRAAoPSURNU3AAR0VTRnAAUEFSTaRT VUNDoBmTR0VTRgoQcABHRVNGcABQQVJNpFNVQ0OgLJNHRVNGChFweUxJRFMKCABQQVJNclBBUk0L AAFQQVJNcABHRVNGpFNVQ0OgSQSTR0VTRgoSoCZ7UEFSTQEAoBCTelBBUk0BAAFwAUlTU0OhDHAA R0VTRqRDUklUoQdwAElTU0NwAEdFU0ZwAFBBUk2kU1VDQ6AZk0dFU0YKE3AAR0VTRnAAUEFSTaRT VUNDoCSTR0VTRgoUe1BBUk0KD1BBVlBwAEdFU0ZwAFBBUk2kU1VDQ3AAR0VTRqRTVUNDoBGTR0VG QwoEcEdCREFHWEZDoBGTR0VGQwoGcFNCQ0JHWEZDcABHRUZDcAFTQ0lTcABHU1NFcABTQ0lFpAAU GVBEUkQAoAySRFJEWVsiQVNMUKSSRFJEWRQdUFNUUwCgDpRDU1RTCgJbIkFTTFCkk0NTVFMKAxRC BUdOT1QCoAdQRFJEpAFwaENFVlRwCgNDU1RToCyQk0NIUEQAk2kAoBiRlE9TWVML0AeVT1NZUwvW B4ZQQ0kwaaEHhkdGWDBphkdGWDAKgKQAFBNHSERTAXBoVElEWKRHTk9UAQAUFEdMSUQBcGhDTElE pEdOT1QKAgAUFEdEQ0sBcGhDRENLpEdOT1QKBAAUGVBBUkQAoAySQVJEWVsiQVNMUKSSQVJEWRRK EkFJTlQCoA6Se1RDSEV5AWgAAKQBoAdQQVJEpAGgQAyTaAoCoEcJQ1BGTXtDUEZNCg9ge0VQRk0K D2GgKpNgAaANe2EKBgBwCgZQRklUoRegDXthCggAcAoIUEZJVKEHcAFQRklUoCqTYAoGoA17YQoI AHAKCFBGSVShFqALe2EBAHABUEZJVKEIcAoGUEZJVKAqk2AKCKALe2EBAHABUEZJVKEYoA17YQoG AHAKBlBGSVShCHAKCFBGSVShDH9QRklUCgdQRklUfVBGSVQMAAAAgFBGSVRwCgRBU0xDoUIEoCiT aAFweHdpCv8ACmQAAEJDTFB9QkNMUAwAAACAQkNMUHAKAkFTTEOhFqAQk2gAcGlBTFNJcAFBU0xD oQOkAXABQVNMRaQAFBdTQ0lQAKAOkpNPVkVSAKSSR1NNSaQAW4JNDUlTUDAIX0FEUgs4DwhfRERO DVZMVjIgSVNQIC0gODA4NjBGMzgACF9VSUQBCF9ERVASBgFQRVBEFEMFX1NUQQCgGJKVU09DUwoC oAqTSVNQRAGkCg+hA6QAoTJwCzkPX0FEUnANVkxWMiBJU1AgLSA4MDg2MEYzOQBfREROoAqTSVNQ RAGkCg+hA6QACFNCVUYREQoOhgkAAQAAwJAAAEAAeQAUC19DUlMApFNCVUYUBl9TUlMBFAZfRElT ABQdX0RTTQSgBpNoAaQBoQ+gCJNoCgKkCgKhBKQKDxA5X1BSX1uDC0NQVTABAAAAAABbgwtDUFUx AgAAAAAAW4MLQ1BVMgMAAAAAAFuDC0NQVTMEAAAAAABbAU1VVFgAW4BQUlQwAQqACgRbgQtQUlQw E1A4MEggFE4HUDhYSAqgF5NoAHB9e1A4MEQMAP///wBpAFA4MESgG5NoAXB9e1A4MEQM/wD//wB5 aQoIAABQODBEoByTaAoCcH17UDgwRAz//wD/AHlpChAAAFA4MESgHJNoCgNwfXtQODBEDP///wAA eWkKGAAAUDgwRHBQODBEUDgwSFuAU1BSVAEKsgoCW4ELU1BSVBFTU01QCBQSX1BJQwFwaEdQSUNw aFBJQ01bgFNXQzABCxAGCg9bgR5TV0MwAUcxU18IABhHMUVfCAAoRzFTMghHMVMzCFuAU1dDMQFQ TUJTCixbgRVTV0MxAwBAEEcwU18gACBHMEVOIBRCBV9QVFMBcABQODBEUDhYSABocP9HMVMzcP9H MVMycAFHMVNfcAFHMUVfcP9HMFNfoCBbElRDR00AXC8FX1NCX1BDSTBMUENCVFBNX1BUU19oFEYT X1dBSwlQOFhIAQqroDdORVhQoBh7T1NDQwoCAFwvA19TQl9QQ0kwTkhQR6AYe09TQ0MKBABcLwNf U0JfUENJME5QTUWgSQ6Rk2gKA5NoCgSgFJNQRkxWRk1CTKAJk2gKBFBOT1SgDHtDRkdEDAAAAAEA oEsLk09TWVML0gegQAt7Q0ZHRAEAoEsFlFwvA19QUl9DUFUwX1BQQwB0XC8DX1BSX0NQVTBfUFBD AVwvA19QUl9DUFUwX1BQQ1BOT1RyXC8DX1BSX0NQVTBfUFBDAVwvA19QUl9DUFUwX1BQQ1BOT1Sh SgRyXC8DX1BSX0NQVTBfUFBDAVwvA19QUl9DUFUwX1BQQ1BOT1R0XC8DX1BSX0NQVTBfUFBDAVwv A19QUl9DUFUwX1BQQ1BOT1SkEgQCAAAURg9QTk9UCKBODE1QRU6gMXtQREMwCggAhlwuX1BSX0NQ VTAKgKAae1BEQzAKEABbIgpkhlwuX1BSX0NQVTAKgaAxe1BEQzEKCACGXC5fUFJfQ1BVMQqAoBp7 UERDMQoQAFsiCmSGXC5fUFJfQ1BVMQqBoDF7UERDMgoIAIZcLl9QUl9DUFUyCoCgGntQREMyChAA WyIKZIZcLl9QUl9DUFUyCoGgMXtQREMzCggAhlwuX1BSX0NQVTMKgKAae1BEQzMKEABbIgpkhlwu X1BSX0NQVTMKgaEfhlwuX1BSX0NQVTAKgFsiCmSGXC5fUFJfQ1BVMAqBEI2hBV9TQl8IQ1JUVApu CEFDVFQKVQhTQ1IwCwIBCFNDUjELAgEIU0NSMgsCAQhTQ1IzCwIBCEdDUjAKRghHQ1IxCkYIR0NS MgpGCEdDUjMKRghHQ1I0CkYIUFNUMAo8CFBTVDEKPAhQU1QyCjwIUFNUMwo8CFBTVDQKPAhMUE1W CgMIUERCRwAIUERQTQEIUERCUAEIRExQTxIJBgEBAQoZAQEIQlJRRAAIUFNDMQAIUFNDMgAIUFND MwAIUFNBMQAIUFNBMgAIUFNBMwAUQg9fSU5JAHBEUENUQ1JUVHBEUFBUQUNUVHBER0MwR0NSMHBE R0MxR0NSMXBER0MyR0NSMnBER0MzR0NSM3BER0M0R0NSNHBER1AwUFNUMHBER1AxUFNUMXBER1Ay UFNUMnBER1AzUFNUM3BER1A0UFNUNHBEU0MwU0NSMHBEU0MxU0NSMXBEU0MyU0NSMnBEU0MzU0NS M3BETFBNTFBNVnBEREJHUERCR3BMUE9FiERMUE8BAHBMUFBTiERMUE8KAgBwTFBTVIhETFBPCgMA cExQUEOIRExQTwoEAHBMUFBGiERMUE8KBQBwRFBNRVBEUE0QSw9QQ0kwFEYOX0lOSQBwC9AHT1NZ U6BGDVsSXF9PU0lgoBtfT1NJDVdpbmRvd3MgMjAwMQBwC9EHT1NZU6AfX09TSQ1XaW5kb3dzIDIw MDEgU1AxAHAL0QdPU1lToB9fT1NJDVdpbmRvd3MgMjAwMSBTUDIAcAvSB09TWVOgG19PU0kNV2lu ZG93cyAyMDA2AHAL1gdPU1lToBtfT1NJDVdpbmRvd3MgMjAwOQBwC9kHT1NZU6AbX09TSQ1XaW5k b3dzIDIwMTIAcAvcB09TWVOgG19PU0kNV2luZG93cyAyMDEzAHAL3QdPU1lTFAZOSFBHCBQGTlBN RQhbgkM8R1BFRAhfQURSAAhfSElEDUlOVDAwMDIACF9DSUQNSU5UMDAwMgAIX0RETg1WaXJ0dWFs IEdQSU8gY29udHJvbGxlcgAIX1VJRAEISU5TVAEIWFRNUABbgFNDSVMADMAw0P4KBFuBQwRTQ0lT A0xHQkUBTEhBRAFMQVRBAUxESU8BTEFSRAFMSU8xAUxDRVABTEFOQgFMSENJAUxPVEcBTEVDSQFM SFNJARQLX0hSVgCkU09DUxRFBF9EU00EoDaTaBETChBptDiLlW8IS5sCLe/MLSw1oA6TagCgCZNp AaQRAwEDoA2TagGkclBNQlMKIACkAKEGpBEDAQAUH19DUlMACFJCVUYRDgoLiQYAAQEJAAAAeQCk UkJVRhQJX1NUQQCkCg8UOV9BRUkACFJCVUYRKAoljCAAAQABABAAAgAAAAAXAAAZACMAAAACAFxf U0IuR1BFRAB5AKRSQlVGFEEmX0wwMgCgTwSTWEhDSQCgRgSTXl4vA1BDSTBFSEMxUE1FUwFwAF5e LwNQQ0kwRUhDMVBNRUVwXl4vA1BDSTBFSEMxUE1FRWCGXl4uUENJMEVIQzEKAqFPE6A4lFNPQ1MK BXteXi8DUENJMFhIQzFQTUNTCwCAWFRNUKAXk1hUTVALAICGXl4uUENJMFhIQzEKAqFDEKBMBJRT T0NTCgJ7Xl4vA1BDSTBYSEMxUE1DUwsAgFhUTVCgKpNYVE1QCwCAcAqBXl4vA1BDSTBYSEMxUE1D SIZeXi5QQ0kwWEhDMQoCoUMLe15eLwNQQ0kwWEhDMVBNQ1MLAwFYVE1QoE8Hk1hUTVALAwFwCwAB Xl4vA1BDSTBYSEMxUE1DU1siCgp7Xl4vA1BDSTBYSEMxUE1DUwsAgFhUTVCgHJNYVE1QCwCAcAqB Xl4vA1BDSTBYSEMxUE1DSKEVcAsDAV5eLwNQQ0kwWEhDMVBNQ1NbIgoKhl5eLlBDSTBYSEMxCgKh GHAKgV5eLwNQQ0kwWEhDMVBNQ0hbIgoKoEIIkpNPVEdNAKBIB5NeXi8DUENJME9URzFQTUVTAUFE QkcNT1RHIHdha2UAcABeXi8DUENJME9URzFQTUVFcABeXi8DUENJME9URzFDUE1FcABeXi8DUENJ ME9URzFVMkVOcABeXi8DUENJME9URzFVM0VOhl5eLlBDSTBPVEcxCgKgRgSTXl4vA1BDSTBTRUMw UE1FUwFwAF5eLwNQQ0kwU0VDMFBNRUVwXl4vA1BDSTBTRUMwUE1FRWCGXl4uUENJMFNFQzAKAluC RBhHUE8wCF9BRFIACF9ISUQNSU5UMzNGQwAIX0NJRA1JTlQzM0ZDAAhfRERODVZhbGxleVZpZXcg R2VuZXJhbCBQdXJwb3NlIElucHV0L091dHB1dCAoR1BJTykgY29udHJvbGxlcgAIX1VJRAEUK19D UlMACFJCVUYRGgoXhgkAAQDA0P4AEAAAiQYADQExAAAAeQCkUkJVRhQJX1NUQQCkCg8IQVZCTAAU El9SRUcCoAuTaAoIcGlBVkJMW4BHUE9QCAAKDFuBSwtHUE9QAQIRJgojjCAAAQEBAAIAAAAAAAAX AAAZACMAAAA1AFxfU0IuR1BPMABCVEQzAQIRJgojjCAAAQEBAAIAAAAAAAAXAAAZACMAAAA6AFxf U0IuR1BPMABTVVNCAQIRJgojjCAAAQEBAAIAAAAAAAAXAAAZACMAAAA7AFxfU0IuR1BPMABTSEQz AQIRJgojjCAAAQEBAAIAAAAAAAAXAAAZACMAAAA8AFxfU0IuR1BPMABUQ0QzAVuCSQhHUE8xCF9B RFIACF9ISUQNSU5UMzNGQwAIX0NJRA1JTlQzM0ZDAAhfRERODVZhbGxleVZpZXcgR1BOQ09SRSBj b250cm9sbGVyAAhfVUlECgIUK19DUlMACFJCVUYRGgoXhgkAAQDQ0P4AEAAAiQYADQEwAAAAeQCk UkJVRhQJX1NUQQCkCg9bgkp2R1BPMghfQURSAAhfSElEDUlOVDMzRkMACF9DSUQNSU5UMzNGQwAI X0RETg1WYWxsZXlWaWV3IEdQU1VTIGNvbnRyb2xsZXIACF9VSUQKAxQrX0NSUwAIUkJVRhEaCheG CQABAODQ/gAQAACJBgANATIAAAB5AKRSQlVGFAlfU1RBAKQKDxRJCV9BRUkACFJCVUYRKAoljCAA AQABABIAAQAAAAAXAAAZACMAAAASAFxfU0IuR1BPMgB5AAhGQlVGEUwECkiMIAABAAEAEgABAAAA ABcAABkAIwAAAAYAXF9TQi5HUE8yAIwgAAEAAQASAAEAAAAAFwAAGQAjAAAAEgBcX1NCLkdQTzIA eQCgDJNGU0FTAaRGQlVGpFJCVUYIQkZTQREGCgMAAQCMQkZTQQBCWVlZjEJGU0EKAkRBVFQIQkZT QhEGCgMAAQCMQkZTQgBZWVlZjEJGU0IKAkRUVFQUSzxfTDA2AKBDPJCTXl4uSTJDM0FWQkwBkJNe Xi8DSTJDN1BNSUNBVkJMAZNeXi8DSTJDN1BNSUNBVkJHAXBeXi5JMkMzRlNSQ0JGU0F7REFUVAof REFUVHBeXi5JMkMzRlNEVEJGU0J7RFRUVAFEVFRUoBeTREFUVABeXi8DUENJMFhIQzFQV09GoRFe Xi8DUENJMFhIQzFQV09OoEoOk0RBVFQKFqBJBZNEVFRUAKBABZNeXi8DSTJDN1BNSUNBVkJMAXAB Xl4vA0kyQzdQTUlDVkJVU6Apk15eLwNJMkM3UE1JQ0FWQkcBcAFeXi8DSTJDN1BNSUNHQlVTWyIK HnBeXi5JMkMzRlNJTUJGU0J9RFRUVAFEVFRUcEJGU0JeXi5JMkMzRlNJTXtEVFRUCv5EVFRUWyIK ZHBCRlNCXl4uSTJDM0ZTSU1wXl4uSTJDM0ZTSU5CRlNCoC2TQkRJRAoEoCSTRkJJRAoDoBuTXl4u R1BPMEFWQkwBcABeXi5HUE8wU1VTQqBHBZGRk0RBVFQKEZNEQVRUCg2TREFUVAoKcF5eLkkyQzNG U0lOQkZTQqAtk0JESUQKBKAkk0ZCSUQKA6Abk15eLkdQTzBBVkJMAXAAXl4uR1BPMFNVU0KhSx6g QwqTREFUVAoMcF5eLkkyQzNGU01TQkZTQntEVFRUCgNEVFRUoDCTQkRJRAoEoBOTRkJJRAoCfURU VFQKbERUVFSgE5NGQklECgN9RFRUVApIRFRUVHBCRlNCXl4uSTJDM0ZTTVNwXl4uSTJDM0ZTSU5C RlNCoC2TQkRJRAoEoCSTRkJJRAoDoBuTXl4uR1BPMEFWQkwBcABeXi5HUE8wU1VTQqFEFKBNB5NE QVRUCgVwXl4uSTJDM0ZTTVNCRlNCe0RUVFQKA0RUVFR9RFRUVApIRFRUVHBCRlNCXl4uSTJDM0ZT TVNwXl4uSTJDM0ZTSU5CRlNCoC2TQkRJRAoEoCSTRkJJRAoDoBuTXl4uR1BPMEFWQkwBcABeXi5H UE8wU1VTQqFDDKBOCpNEQVRUAKBABZNeXi8DSTJDN1BNSUNBVkJMAXAAXl4vA0kyQzdQTUlDVkJV U6Apk15eLwNJMkM3UE1JQ0FWQkcBcAFeXi8DSTJDN1BNSUNHQlVTWyIKHqAtk0JESUQKBKAkk0ZC SUQKA6Abk15eLkdQTzBBVkJMAXABXl4uR1BPMFNVU0JwCidEVFRUcEJGU0JeXi5JMkMzRlNNU3Be Xi5JMkMzRlNJTkJGU0KhEXBeXi5JMkMzRlNJTkJGU0IIQlVGRhEECgf/jEJVRkYAU1RBVIxCVUZG AUxFTl+MQlVGRgoCVE1QMIxCVUZGCgNBWDAwjEJVRkYKBEFYMDGMQlVGRgoFQVgxMIxCVUZGCgZB WDExFEITX0wxMgBwAGCgTwdbElwvA19TQl9JMkMxQkFUQ2FwXl4vA0kyQzFCQVRDSU5UUmCgGZMK /2BBREJHDUlOVFIgUkQgRkFJTACkAKAGkwBgpABBREJHDVVMUE1DIElOVFIAQURCR2CGQURQMQqA hl5eLkkyQzFCQVRDCoCGXl4uSTJDMUJBVEMKgaBHBpNgCg6GU1RSMwqQoEkFk15eLkkyQzFBVkJM AXBeXi5JMkMxVEhSTUJVRkagOZNTVEFUAHBBWDAxZHtkCu9kcEFYMTFle2UK72VwZEFYMDFwZUFY MTFwQlVGRl5eLkkyQzFUSFJNoD9bElwuX1NCX0RQVEZjoBeRk2ABk2AKAoZEUFRGCoaGVENIRwqA oBiRk2AKB5NgCgiGRFBURgqGhlRDSEcKgAhBVkJMABQSX1JFRwKgC5NoCghwaUFWQkxbgEdQT1AI AAoMW4FOCEdQT1ABAhEmCiOMIAABAQEAAgAAAAAAABcAABkAIwAAABQAXF9TQi5HUE8yAFdGRDMB AhEmCiOMIAABAQEAAgAAAAAAABcAABkAIwAAABYAXF9TQi5HUE8yAFdXRDMBAhEmCiOMIAABAQEA AgAAAAAAABcAABkAIwAAAB0AXF9TQi5HUE8yAFdXUjMBW4JCYFBFUEQIX0hJRA1JTlQzMzk2AAhf Q0lEDEHQDYAIX1VJRAEIUEVQUAAIREVWUxIDAQAIREVWWBJPEhISEwINXF9TQi5QQ0kwLlhIQzEA ARITAg1cX1NCLlBDSTAuRUhDMQABEhMCDVxfU0IuUENJMC5HRlgwAAESGAINXF9TQi5QQ0kwLkdG WDAuSVNQMAABEhMCDVxfU0IuUENJMC5TRUMwAAESDgINXF9TQi5JMkMxAAESDgINXF9TQi5JMkMy AAESDgINXF9TQi5JMkMzAAESDgINXF9TQi5JMkM0AAESDgINXF9TQi5JMkM1AAESDgINXF9TQi5J MkM2AAESDgINXF9TQi5JMkM3AAESDgINXF9TQi5TREhBAAESDgINXF9TQi5TREhCAAESDgINXF9T Qi5TREhDAAESDgINXF9TQi5TUEkxAAESDgINXF9TQi5VUlQxAAESDgINXF9TQi5VUlQyAAEIQ0RN UBICAghERVZZEkQ3FhIYAw1cX1BSLkNQVTAAARIJAgASBQIK/wASGAMNXF9QUi5DUFUxAAESCQIA EgUCCv8AEhgDDVxfUFIuQ1BVMgABEgkCABIFAgr/ABIYAw1cX1BSLkNQVTMAARIJAgASBQIK/wAS HgMNXF9TQi5QQ0kwLkdGWDAAARIKAgASBgIK/woDEiMDDVxfU0IuUENJMC5HRlgwLklTUDAAARIK AgASBgIK/woDEisDDVxfU0IuSTJDMQABEhwFABIEAgAAEgUCAQoDEgYCCgIKAxIGAgoDCgMSKwMN XF9TQi5JMkMyAAESHAUAEgQCAAASBQIBCgMSBgIKAgoDEgYCCgMKAxIrAw1cX1NCLkkyQzMAARIc BQASBAIAABIFAgEKAxIGAgoCCgMSBgIKAwoDEisDDVxfU0IuSTJDNAABEhwFABIEAgAAEgUCAQoD EgYCCgIKAxIGAgoDCgMSKwMNXF9TQi5JMkM1AAESHAUAEgQCAAASBQIBCgMSBgIKAgoDEgYCCgMK AxIrAw1cX1NCLkkyQzYAARIcBQASBAIAABIFAgEKAxIGAgoCCgMSBgIKAwoDEisDDVxfU0IuSTJD NwABEhwFABIEAgAAEgUCAQoDEgYCCgIKAxIGAgoDCgMSMQMNXF9TQi5QQ0kwLlhIQzEAARIdBQAS BQIACgMSBQIBCgMSBgIKAgoDEgYCCgMKAxIwAw1cX1NCLlBDSTAuU0VDMAABEhwFABIEAgAAEgUC AQoDEgYCCgIKAxIGAgoDCgMSKgMNXF9TQi5MUEVBAAESGwUAEgQCAAASBAIBABIGAgoCCgMSBgIK AwoDEisDDVxfU0IuU0RIQQABEhwFABIEAgAAEgUCAQoDEgYCCgIKAxIGAgoDCgMSKwMNXF9TQi5T REhCAAESHAUAEgQCAAASBQIBCgMSBgIKAgoDEgYCCgMKAxIrAw1cX1NCLlNESEMAARIcBQASBAIA ABIFAgEKAxIGAgoCCgMSBgIKAwoDEisDDVxfU0IuU1BJMQABEhwFABIEAgAAEgUCAQoDEgYCCgIK AxIGAgoDCgMSKwMNXF9TQi5VUlQxAAESHAUAEgQCAAASBQIBCgMSBgIKAgoDEgYCCgMKAxIrAw1c X1NCLlVSVDIAARIcBQASBAIAABIFAgEKAxIGAgoCCgMSBgIKAwoDCEJDQ0QSLAESKQINXF9TQi5T REhBABIbARIYAxIJBQAKIAAKA/8SCgMM/P///wAKBAAUCV9TVEEApAoPFEsNX0RTTQygRAeTaBET ChDgv/64+LpLRa7NSfuRE3shoAmTagCkEQMBD6ANk2oBcAFQRVBQpAoPoBmTagoCoAmTaQCkREVW U6AJk2kBpERFVligKZNqCgNwDVxfU0IuU0RIQQCIQ0RNUAAAcEVNMUGIQ0RNUAEApENETVCgTAWT aBETChCgQOvE0mziEbz9CAAgDJpmoAmTagCkEQMBB6AJk2oBpERFVlmgL5NqCgJwRU0xQWByYAqE YHBgiIOIg4iDiIOIQkNDRAAAAQAAAAAACgQApEJDQ0SkAVuCSBxTREhBCF9BRFIACF9ISUQNODA4 NjBGMTQACF9DSUQNUE5QMEQ0MAAIX0RETg1JbnRlbChSKSBlTU1DIENvbnRyb2xsZXIgLSA4MDg2 MEYxNAAIX1VJRAEIX0RFUBIGAVBFUEQIUkJGMREaCheGCQABAAAAAAAQAACJBgAFAS0AAAB5AAhS QkYyERoKF4YJAAEAAAAAABAAAIkGAAUBLAAAAHkAFEkGX0NSUwCKUkJGMQoEQjBCMYpSQkYxCghC MEwxcEVNMEFCMEIxcEVNMExCMEwxilJCRjIKBEIwQjKKUkJGMgoIQjBMMnBFTTBBQjBCMnBFTTBM QjBMMqAMk0VNVlIBpFJCRjKkUkJGMRQJX1NUQQCkCg8UN19QUzMAfVBTQVQKA1BTQVR9UFNBVABQ U0FUoBuRlVNPQ1MKApCTU09DUwoCk0VNVlIBWyIKAhQ6X1BTMAB7UFNBVAz8////UFNBVH1QU0FU AFBTQVSgG5GVU09DUwoCkJNTT0NTCgKTRU1WUgFbIgoCW4BLRVlTAEVNMUELAAFbgQ5LRVlTQwBA QlBTQVQgFAZfRElTAFuCFUVNTUQIX0FEUgoIFAhfUk1WAKQAW4JKQlNESEIIX0FEUgAIX0hJRA1J TlQzM0JCAAhfQ0lEDVBOUDBENDAACF9ERE4NSW50ZWwoUikgU0RJTyBDb250cm9sbGVyIC0gODA4 NjBGMTUACF9VSUQKAghfSFJWCgIIX0RFUBIKAlBFUERHUE8yCFBTVFMACFJCVUYRGgoXhgkAAQAA AAAAEAAAiQYABQEuAAAAeQAUM19DUlMAilJCVUYKBEIwQkGKUkJVRgoIQjBMTnBTSTBBQjBCQXBT STBMQjBMTqRSQlVGFC1fU1RBAKASkpRTVEVQCgRwU0RNRF9IUlagEJGTU0kwQQCTU0QyRAGkAKQK DxQGX0RJUwAUG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FUFEkEX1BTMAB7UFNBVAz8////UFNB VH1QU0FUAFBTQVSgKZNQU1RTAKAhk15eLkdQTzJBVkJMAXABXl4uR1BPMldGRDNwAVBTVFNbgEtF WVMAU0kxQQsAAVuBDktFWVNDAEBCUFNBVCBbgkwMQlJDTQhfQURSAQhfREVQEgYBR1BPMhQUX1NU QQCgCpNCRElECgOkAKQKDxQIX1JNVgCkAAhfUFJXEgQCAAAIX1M0VwoCCF9TMFcKAhQfX0NSUwAI UkJVRhEOCguJBgATAUkAAAB5AKRSQlVGFCpfUFMzAKAjk15eXi5HUE8yQVZCTAFwAF5eXi5HUE8y V0ZEM3AAUFNUUxQyX1BTMACgK5NQU1RTAKAjk15eXi5HUE8yQVZCTAFwAV5eXi5HUE8yV0ZEM3AB UFNUU1uCTgdCUkMyCF9BRFIKAhQUX1NUQQCgCpNCRElECgOkAKQKDxQIX1JNVgCkABRCBV9DUlMA CE5BTV8REgoPXF9TQi5TREhCLkJSQ00ACFNQQl8RDwoMjhgAAQDAAgAAAQAACEVORF8RBQoCeQBz U1BCX05BTV9gc2BFTkRfYaRhW4JHFUJSQzMIX0FEUgEIX0RFUBIGAUdQTzIIX0hJRA1CQ000MzIx AAhfQ0lEDUJDTTQzMjQxAAhHTU9EESgKJYwgAAEBAQACAAAAAAAAFwAAGQAjAAAAFABcX1NCLkdQ TzIAeQBbgEdQT1AIAAoMW4EQR1BPUAECR01PRFdGRDMBFBRfU1RBAKALk0JESUQKA6QKD6QAFAhf Uk1WAKQACF9QUlcSBAIAAAhfUzRXCgIIX1MwVwoCFEMEX0NSUwAIUkJVRhExCi6MIAABAQEAAgAA AAAAABcAABkAIwAAAA8AXF9TQi5HUE8yAIkGABMBSQAAAHkApFJCVUYUKl9QUzMAoCOTXl5eLkdQ TzJBVkJMAXAAXl5eLkdQTzJXRkQzcABQU1RTFDJfUFMwAKArk1BTVFMAoCOTXl5eLkdQTzJBVkJM AXABXl5eLkdQTzJXRkQzcAFQU1RTW4JMF1NESEMIX0FEUgAIX0hJRA04MDg2MEYxNAAIX0NJRA1Q TlAwRDQwAAhfRERODUludGVsKFIpIFNEIENhcmQgQ29udHJvbGxlciAtIDgwODYwRjE2AAhfVUlE CgMIX0RFUBIKAlBFUERHUE8wCFJCVUYRQQYKXYYJAAEAAAAAABAAAIkGAAUBLwAAAIwgAAEAAQAd AAMAABAnFwAAGQAjAAAAJgBcX1NCLkdQTzAAjCAAAQEBAAkAAAAAAAAXAAAZACMAAAAmAFxfU0Iu R1BPMAB5ABQzX0NSUwCKUkJVRgoEQjBCQYpSQlVGCghCMExOcFNEMEFCMEJBcFNEMExCMExOpFJC VUYUGl9TVEEAoBCRk1NEMEEAk1NEM0QBpACkCg8UG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FU FB5fUFMwAHtQU0FUDPz///9QU0FUfVBTQVQAUFNBVFuAS0VZUwBTRDFBCwABW4EOS0VZU0MAQEJQ U0FUIFuCRgtHRE0xCF9ISUQNSU5UTDlDNjAACF9ERE4NSW50ZWwoUikgRE1BIENvbnRyb2xsZXIg IzEgLSBJTlRMOUM2MAAIX1VJRAEIUkJVRhEaCheGCQABAAAAAABAAACJBgAFASoAAAB5ABQzX0NS UwCKUkJVRgoEQjBCQYpSQlVGCghCMExOcEQxMEFCMEJBcEQxMExCMExOpFJCVUYUGl9TVEEAoBCR k0QxMEEAk0wxMEQBpACkCg9bgkcLR0RNMghfSElEDUlOVEw5QzYwAAhfRERODUludGVsKFIpIERN QSBDb250cm9sbGVyICMyIC0gSU5UTDlDNjAACF9VSUQKAghSQlVGERoKF4YJAAEAAAAAAEAAAIkG AAUBKwAAAHkAFDNfQ1JTAIpSQlVGCgRCMEJBilJCVUYKCEIwTE5wRDIwQUIwQkFwRDIwTEIwTE6k UkJVRhQaX1NUQQCgEJGTRDIwQQCTTDIwRAGkAKQKD1uCQgxQV00xCF9BRFIACF9ISUQNODA4NjBG MDkACF9DSUQNODA4NjBGMDkACF9ERE4NSW50ZWwoUikgUFdNIENvbnRyb2xsZXIgIzEgLSA4MDg2 MEYwOAAIX1VJRAEIUkJVRhERCg6GCQABAAAAAAAQAAB5ABQzX0NSUwCKUkJVRgoEQjBCQYpSQlVG CghCMExOcFAxMEFCMEJBcFAxMExCMExOpFJCVUYUGl9TVEEAoBCRk1AxMEEAk0wxMUQBpACkCg9b gkMMUFdNMghfQURSAAhfSElEDTgwODYwRjA5AAhfQ0lEDTgwODYwRjA5AAhfRERODUludGVsKFIp IFBXTSBDb250cm9sbGVyICMyIC0gODA4NjBGMDkACF9VSUQKAghSQlVGEREKDoYJAAEAAAAAABAA AHkAFDNfQ1JTAIpSQlVGCgRCMEJBilJCVUYKCEIwTE5wUDIwQUIwQkFwUDIwTEIwTE6kUkJVRhQa X1NUQQCgEJGTUDIwQQCTTDEyRAGkAKQKD1uCQEJVUlQxCF9BRFIACF9ISUQNODA4NjBGMEEACF9D SUQNODA4NjBGMEEACF9ERE4NSW50ZWwoUikgSFMtVUFSVCBDb250cm9sbGVyICMxIC0gODA4NjBG MEEACF9VSUQBCF9ERVASBgFQRVBECFJCVUYRJgojhgkAAQAAAAAAEAAAiQYABQEnAAAAVQIAAgAC VQMAAwACeQAUC19IUlYApFNPQ1MUM19DUlMAilJCVUYKBEIwQkGKUkJVRgoIQjBMTnBVMTBBQjBC QXBVMTBMQjBMTqRSQlVGFBpfU1RBAKAQkZNVMTBBAJNMMTNEAaQApAoPFBtfUFMzAH1QU0FUCgNQ U0FUfVBTQVQAUFNBVBQeX1BTMAB7UFNBVAz8////UFNBVH1QU0FUAFBTQVRbgEtFWVMAVTExQQsA AVuBDktFWVNDAEBCUFNBVCBbgkIUQlRIMAhfSElEDUJDTTJFM0EAFBRfU1RBAKAKk0JESUQKA6QA pAoPFEgRX0NSUwAIVUJVRhFFBwpxjh0AAQADAjQAAQoAAMIBACAAIAAA/FxfU0IuVVJUMQCJBgAT AUYAAACMIAABAQEAAgAAAAAAABcAABkAIwAAADQAXF9TQi5HUE8wAIwgAAEBAQACAAAAAAAAFwAA GQAjAAAANQBcX1NCLkdQTzAAeQAIUEJVRhFFBwpxjh0AAQADAjQAAQoAAMIBACAAIAAA/FxfU0Iu VVJUMQCJBgATAUYAAACMIAABAQEAAgAAAAAAABcAABkAIwAAADUAXF9TQi5HUE8wAIwgAAEBAQAC AAAAAAAAFwAAGQAjAAAANABcX1NCLkdQTzAAeQCgFZNCRElECgSgDJNGQklEAKRQQlVGpFVCVUZb gk4YQlRIMQhfSElEDUJDTTJFMUEACFVBUlQAFE4VX0NSUwAIVUJVRhFICQqUjh0AAQADAjQAAQoA AMIBACAAIAAA/FxfU0IuVVJUMQCJBgATAUYAAACMIAABAQEAAgAAAAAAABcAABkAIwAAADQAXF9T Qi5HUE8wAIwgAAEBAQACAAAAAAAAFwAAGQAjAAAANQBcX1NCLkdQTzAAjCAAAQEBAAEAAAAAAAAX AAAZACMAAACTAFxfU0IuR1BPMAB5AAhQQlVGEUgJCpSOHQABAAMCNAABCgAAwgEAIAAgAAD8XF9T Qi5VUlQxAIkGABMBRgAAAIwgAAEBAQACAAAAAAAAFwAAGQAjAAAANABcX1NCLkdQTzAAjCAAAQEB AAIAAAAAAAAXAAAZACMAAAA1AFxfU0IuR1BPMACMIAABAQEAAQAAAAAAABcAABkAIwAAAJMAXF9T Qi5HUE8wAHkAoBWTQkRJRAoEoAyTRkJJRACkUEJVRqRVQlVGFBRfU1RBAKALk0JESUQKA6QKD6QA W4JEKFVSVDIIX0FEUgAIX0hJRA04MDg2MEYwQQAIX0NJRA04MDg2MEYwQQAIX0RETg1JbnRlbChS KSBIUy1VQVJUIENvbnRyb2xsZXIgIzIgLSA4MDg2MEYwQwAIX1VJRAoCCF9ERVASBgFQRVBECFJC VUYRJgojhgkAAQAAAAAAEAAAiQYABQEoAAAAVQQABAACVQUABQACeQAUC19IUlYApFNPQ1MUM19D UlMAilJCVUYKBEIwQkGKUkJVRgoIQjBMTnBVMjBBQjBCQXBVMjBMQjBMTqRSQlVGFBpfU1RBAKAQ kZNVMjBBAJNMMTREAaQApAoPFBtfUFMzAH1QU0FUCgNQU0FUfVBTQVQAUFNBVBQeX1BTMAB7UFNB VAz8////UFNBVH1QU0FUAFBTQVRbgEtFWVMAVTIxQQsAAVuBDktFWVNDAEBCUFNBVCBbgksIR1BT MAhfSElEDUFBTTQ3NTIACF9IUlYAFEsFX0NSUwAIVUJVRhFJBApFjh0AAQADAjUAAQoAAMIBACAA IAAA/FxfU0IuVVJUMgCMIAABAQEAAgAAAAAAABcAABkAIwAAAAEAXF9TQi5HUE8wAHkApFVCVUYU FF9TVEEAoAqTQkRJRAoDpACkCg9bgkgKR1BTMQhfSElEDUJDTTQ3NTIAFE4HX0NSUwAIVUJVRhFM Bgpojh0AAQADAjUAAQoAAMIBACAAIAAA/FxfU0IuVVJUMgCMIAABAQEAAgAAAAAAABcAABkAIwAA ADMAXF9TQi5HUE8wAIwgAAEBAQACAAAAAAAAFwAAGQAjAAAAAQBcX1NCLkdQTzAAeQCkVUJVRhQU X1NUQQCgC5NCRElECgOkCg+kAFuCRhtTUEkxCF9BRFIACF9ISUQNODA4NjBGMEUACF9DSUQNODA4 NjBGMEUACF9ERVASBgFQRVBECF9ERE4NSW50ZWwoUikgU1BJIENvbnRyb2xsZXIgLSA4MDg2MEYw RQAIUkJVRhEmCiOGCQABAAAAAAAQAACJBgAFASkAAABVAAAAAAJVAQABAAJ5ABQLX0hSVgCkU09D UxQzX0NSUwCKUkJVRgoEQjBCQYpSQlVGCghCMExOcFNQMEFCMEJBcFNQMExCMExOpFJCVUYUGl9T VEEAoBCRk1NQMEEAk0wxNUQBpACkCg8UG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FUFB5fUFMw AHtQU0FUDPz///9QU0FUfVBTQVQAUFNBVFuAS0VZUwBTUDFBCwABW4EOS0VZU0MAQEJQU0FUIFuC RQdGUE5UCF9ISUQNQVVUSDI3NTAACF9ERE4NQXV0aGVuVGVjIEFFUzI3NTAAFD5fQ1JTAAhVQlVG ES0KKo4cAAEAAgIAAAEJAAASegAIAQABAFxfU0IuU1BJMQCJBgADAUgAAAB5AKRVQlVGFAhfU1RB AKQAW4JBBU5GQzIIX0FEUgAIX0hJRA1OWFA1NDQyAAhfQ0lEDU5YUDU0NDIACF9ERE4NTlhQIE5G QwAIX1VJRAEUFF9TVEEAoAuTTkZDUwoCpAoPpABbgkgUSTJDMQhfQURSAAhfSElEDTgwODYwRjQx AAhfQ0lEDTgwODYwRjQxAAhfREVQEgYBUEVQRAhfRERODUludGVsKFIpIEkyQyBDb250cm9sbGVy ICMxIC0gODA4NjBGNDEACF9VSUQBCFJCVUYRJgojhgkAAQAAAAAAEAAAiQYABQEgAAAAVRAAAAAC VREAAQACeQAUC19IUlYApFNPQ1MUM19DUlMAilJCVUYKBEIwQkGKUkJVRgoIQjBMTnBJMTBBQjBC QXBJMTBMQjBMTqRSQlVGFBpfU1RBAKAQkZNJMTBBAJNMMjFEAaQApAoPFBtfUFMzAH1QU0FUCgNQ U0FUfVBTQVQAUFNBVBQeX1BTMAB7UFNBVAz8////UFNBVH1QU0FUAFBTQVRbgEtFWVMASTExQQsA AVuBDktFWVNDAEBCUFNBVCBbgkshSTJDMghfQURSAAhfSElEDTgwODYwRjQxAAhfQ0lEDTgwODYw RjQxAAhfREVQEgYBUEVQRAhfRERODUludGVsKFIpIEkyQyBDb250cm9sbGVyICMyIC0gODA4NjBG NDIACF9VSUQKAghSQlVGESYKI4YJAAEAAAAAABAAAIkGAAUBIQAAAFUSAAIAAlUTAAMAAnkAFAtf SFJWAKRTT0NTFDNfQ1JTAIpSQlVGCgRCMEJBilJCVUYKCEIwTE5wSTIwQUIwQkFwSTIwTEIwTE6k UkJVRhQaX1NUQQCgEJGTSTIwQQCTTDIyRAGkAKQKDxQbX1BTMwB9UFNBVAoDUFNBVH1QU0FUAFBT QVQUHl9QUzAAe1BTQVQM/P///1BTQVR9UFNBVABQU0FUW4BLRVlTAEkyMUELAAFbgQ5LRVlTQwBA QlBTQVQgW4JADVJURUsIX0FEUgAIX0hJRA0xMEVDNTY0MAAIX0NJRA0xMEVDNTY0MAAIX0RETg1S VEVLIENvZGVjIENvbnRyb2xsZXIgAAhfVUlEARRHBV9DUlMACFNCVUYRRQQKQY4ZAAEAAQIAAAEG AIAaBgAcAFxfU0IuSTJDMgCMIAABAAEAEQADAAAAABcAABkAIwAAAAQAXF9TQi5HUE8yAHkApFNC VUYUCV9TVEEApAoPFAxfUFMzAHAAQ0tDMxQMX1BTMABwAUNLQzMUBl9ESVMAW4JJFEkyQzMIX0FE UgAIX0hJRA04MDg2MEY0MQAIX0NJRA04MDg2MEY0MQAIX0RETg1JbnRlbChSKSBJMkMgQ29udHJv bGxlciAjMyAtIDgwODYwRjQzAAhfVUlECgMIX0RFUBIGAVBFUEQIUkJVRhEmCiOGCQABAAAAAAAQ AACJBgAFASIAAABVFAAEAAJVFQAFAAJ5ABQLX0hSVgCkU09DUxQzX0NSUwCKUkJVRgoEQjBCQYpS QlVGCghCMExOcEkzMEFCMEJBcEkzMExCMExOpFJCVUYUGl9TVEEAoBCRk0kzMEEAk0wyM0QBpACk Cg8UG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FUFB5fUFMwAHtQU0FUDPz///9QU0FUfVBTQVQA UFNBVFuAS0VZUwBJMzFBCwABW4EOS0VZU0MAQEJQU0FUIFuCQN5JMkM0CF9BRFIACF9ISUQNODA4 NjBGNDEACF9DSUQNODA4NjBGNDEACF9ERE4NSW50ZWwoUikgSTJDIENvbnRyb2xsZXIgIzQgLSA4 MDg2MEY0NAAIX1VJRAoECF9ERVASBgFQRVBECFJCVUYRJgojhgkAAQAAAAAAEAAAiQYABQEjAAAA VRYABgACVRcABwACeQAUC19IUlYApFNPQ1MUM19DUlMAilJCVUYKBEIwQkGKUkJVRgoIQjBMTnBJ NDBBQjBCQXBJNDBMQjBMTqRSQlVGFBpfU1RBAKAQkZNJNDBBAJNMMjREAaQApAoPFBtfUFMzAH1Q U0FUCgNQU0FUfVBTQVQAUFNBVBQeX1BTMAB7UFNBVAz8////UFNBVH1QU0FUAFBTQVRbgEtFWVMA STQxQQsAAVuBDktFWVNDAEBCUFNBVCBbhDlDTEswAAAAFAtfU1RBAKRDS0MwFBZfT05fAHABQ0tD MHABQ0tGMFsiCiAUDV9PRkYAcAoCQ0tDMFuEOUNMSzEAAAAUC19TVEEApENLQzEUFl9PTl8AcAFD S0MxcAFDS0YxWyIKIBQNX09GRgBwCgJDS0MxW4JONENBTTEIX0FEUgAIX0hJRA1JTlRDRjFBAAhf Q0lEDUlOVENGMUEACF9TVUINSU5UTDAwMDAACF9ERE4NU29ueSBJTVgxNzUACF9VSUQBCF9ERVAS EQJJMkM3Xl4uSTJDN1BNSUMIX1BSMBIOA1AyOFhQMThYQ0xLMAhQTERCEhoBERcKFIIAAAAAAAAA aQwAAAMAAAD/////FAtfUExECKRQTERCFBRfU1RBAKAKk0JESUQKA6QApAoPFE8IX0NSUwAIU0JV RhFNBwp5jCAAAQEBAAIAAAAAAAAXAAAZACMAAAAYAFxfU0IuR1BPMQCOGQABAAECAAABBgCAGgYA EABcX1NCLkkyQzQAjhkAAQABAgAAAQYAgBoGAAwAXF9TQi5JMkM0AI4ZAAEAAQIAAAEGAIAaBgBU AFxfU0IuSTJDNAB5AKRTQlVGFEIgX0RTTQSgIZNoERMKEGqnezeQ8/9KqzibG/M6MBWkDUlOVENG MUEAoCCTaBETChCqqmI84NgaQITD/AVlb6KMpA1JTVgxNzUAoCOTaBETChCPziqCFCh0QaVrXwKf 4HnupA0xM1AyQkE4MDcAoEkFk2gREwoQKlFZKYwCRka3PU0bVnL62KA0k0JESUQKBKAVk0ZCSUQK AqQNSU5URUxfRkZSRACgFZNGQklECgOkDUlOVEVMX0ZGUkQApA1JTlRFTF9SVlAAoBuTaBETChBC soqRfMMKRZ0P9Hq5fD3qpAsEAaAZk2gREwoQ2Hs76pvgOUKtbu1SXz8mq6QBoCiTaBETChCSxFq2 MJ5gTbWy9JfHkNnPe0FCSUQKBGCgBpNgAKQBpACgGpNoERMKEA+rcOdEJqtLhijWLxaD+52kCgKg GZNoERMKELJKpR6EzcxIndR/WU7DsBWkAKAZk2gREwoQUSa+jcFwb0ysh6N8tG5K9qQAoBmTaBET ChA5psl1ilwASp9IqcO12nifpACgRASTaBETChBJdSUmcZKkTLtDxImdWkiBoAeTagGkCgOgC5Nq CgKkDAAQAASgC5NqCgOkDAEMAASgC5NqCgSkDAJUAASgKpNoERMKEEBGI3kQnupPpcG1qosZdW+g BpNqAaQBoAuTagoCpAwAGAABpABbgk8zQ0FNMwhfQURSAAhfSElEDUlOVENGMUIACF9DSUQNSU5U Q0YxQgAIX1NVQg1JTlRMMDAwMAAIX0RETg1Tb255IElNWDEzNAAIX1VJRAEIX0RFUBIRAkkyQzde Xi5JMkM3UE1JQwhfUFIwEg4DUDI4WFAxOFhDTEswCFBMREISGgERFwoUggAAAAAAAABpDAAAAwAA AP////8UC19QTEQIpFBMREIUFF9TVEEAoAuTQkRJRAoDpAoPpAAUTwhfQ1JTAAhTQlVGEU0HCnmM IAABAQEAAgAAAAAAABcAABkAIwAAABgAXF9TQi5HUE8xAI4ZAAEAAQIAAAEGAIAaBgAQAFxfU0Iu STJDNACOGQABAAECAAABBgCAGgYADABcX1NCLkkyQzQAjhkAAQABAgAAAQYAgBoGAFQAXF9TQi5J MkM0AHkApFNCVUYUQx9fRFNNBKAhk2gREwoQaqd7N5Dz/0qrOJsb8zowFaQNSU5UQ0YxQQCgIJNo ERMKEKqqYjzg2BpAhMP8BWVvooykDUlNWDE3NQCgI5NoERMKEI/OKoIUKHRBpWtfAp/gee6kDTEz UDJCQTgwNwCgSQWTaBETChAqUVkpjAJGRrc9TRtWcvrYoDSTQkRJRAoEoBWTRkJJRAoCpA1JTlRF TF9GRlJEAKAVk0ZCSUQKA6QNSU5URUxfRkZSRACkDUlOVEVMX1JWUACgG5NoERMKEEKyipF8wwpF nQ/0erl8PeqkCwQBoBmTaBETChDYezvqm+A5Qq1u7VJfPyarpAGgGZNoERMKEJLEWrYwnmBNtbL0 l8eQ2c+kAKAak2gREwoQD6tw50Qmq0uGKNYvFoP7naQKAqAZk2gREwoQskqlHoTNzEid1H9ZTsOw FaQAoBmTaBETChBRJr6NwXBvTKyHo3y0bkr2pACgGZNoERMKEDmmyXWKXABKn0ipw7XaeJ+kAKBE BJNoERMKEEl1JSZxkqRMu0PEiZ1aSIGgB5NqAaQKA6ALk2oKAqQMABAABKALk2oKA6QMAQwABKAL k2oKBKQMAlQABKAqk2gREwoQQEYjeRCe6k+lwbWqixl1b6AGk2oBpAGgC5NqCgKkDAAYAAGkAFuC RDNDQU0yCF9BRFIACF9ISUQNSU5UMzNGQgAIX0NJRA1JTlQzM0ZCAAhfU1VCDUlOVEwwMDAwAAhf RERODU9WMjcyMgAIX1VJRAEIX0RFUBIRAkkyQzdeXi5JMkM3UE1JQwhfUFIwEg4DUDI4WFAxOFhD TEsxCFBMREISGgERFwoUggAAAAAAAABhDAAAAwAAAP////8UC19QTEQIpFBMREIUFF9TVEEAoAqT QkRJRAoDpACkCg8USgdfQ1JTAAhTQlVGEUgGCmSMIAABAQEAAgAAAAAAABcAABkAIwAAABYAXF9T Qi5HUE8xAIwgAAEBAQACAAAAAAAAFwAAGQAjAAAAGQBcX1NCLkdQTzEAjhkAAQABAgAAAQYAgBoG ADYAXF9TQi5JMkM0AHkApFNCVUYUQiBfRFNNBKAhk2gREwoQaqd7N5Dz/0qrOJsb8zowFaQNSU5U MzNGQgCgIJNoERMKEKqqYjzg2BpAhMP8BWVvooykDU9WMjcyMgCgI5NoERMKEI/OKoIUKHRBpWtf Ap/gee6kDTEzUDJTRjIwNgCgSQWTaBETChAqUVkpjAJGRrc9TRtWcvrYoDSTQkRJRAoEoBWTRkJJ RAoCpA1JTlRFTF9GRlJEAKAVk0ZCSUQKA6QNSU5URUxfRkZSRACkDUlOVEVMX1JWUACgG5NoERMK EEKyipF8wwpFnQ/0erl8PeqkCwEBoBmTaBETChDYezvqm+A5Qq1u7VJfPyarpACgKJNoERMKEJLE WrYwnmBNtbL0l8eQ2c97QUJJRAoEYKAGk2AApAGkAKAZk2gREwoQD6tw50Qmq0uGKNYvFoP7naQA oBmTaBETChCySqUehM3MSJ3Uf1lOw7AVpACgGZNoERMKEFEmvo3BcG9MrIejfLRuSvakAaAZk2gR EwoQOabJdYpcAEqfSKnDtdp4n6QAoCqTaBETChBJdSUmcZKkTLtDxImdWkiBoAaTagGkAaALk2oK AqQMADYABKBFBJNoERMKEEBGI3kQnupPpcG1qosZdW+gB5NqAaQKAqALk2oKAqQMABYAAaAYk2oK A6AMk0JESUQKA6QLARmkDAEZAAGkAFuCSCVTVFJBCF9BRFIACF9ISUQNSU5UQ0YxQwAIX0NJRA1J TlRDRjFDAAhfU1VCDUlOVEwwMDAwAAhfRERODUZsYXNoIExNMzU1NAAIX1VJRAEUCV9TVEEApAoP FEAMX0NSUwAIU0JVRhFOCgqqjCAAAQEBAAIAAAAAAAAXAAAZACMAAAATAFxfU0IuR1BPMQCMIAAB AQEAAgAAAAAAABcAABkAIwAAABQAXF9TQi5HUE8xAIwgAAEBAQACAAAAAAAAFwAAGQAjAAAAEABc X1NCLkdQTzEAjCAAAQEBAAIAAAAAAAAXAAAZACMAAAARAFxfU0IuR1BPMQCOGQABAAECAAABBgCA GgYAUwBcX1NCLkkyQzQAeQCkU0JVRhRME19EU00EoCGTaBETChBqp3s3kPP/Sqs4mxvzOjAVpA1J TlRDRjFDAKAgk2gREwoQj84qghQodEGla18Cn+B57qQNTE0zNTU0AKBJBZNoERMKECpRWSmMAkZG tz1NG1Zy+tigNJNCRElECgSgFZNGQklECgKkDUlOVEVMX0ZGUkQAoBWTRkJJRAoDpA1JTlRFTF9G RlJEAKQNSU5URUxfUlZQAKAZk2gREwoQOabJdYpcAEqfSKnDtdp4n6QAoCqTaBETChBJdSUmcZKk TLtDxImdWkiBoAaTagGkAaALk2oKAqQMAFMABKBABZNoERMKEEBGI3kQnupPpcG1qosZdW+gB5Nq AaQKBKALk2oKAqQMAhMAAaALk2oKA6QMAxQAAaALk2oKBKQMARAAAaALk2oKBaQMBBEAAaQAW4JD MUkyQzUIX0FEUgAIX0hJRA04MDg2MEY0MQAIX0NJRA04MDg2MEY0MQAIX0RETg1JbnRlbChSKSBJ MkMgQ29udHJvbGxlciAjNSAtIDgwODYwRjQ1AAhfVUlECgUIX0RFUBIGAVBFUEQIUkJVRhEmCiOG CQABAAAAAAAQAACJBgAFASQAAABVGAAAAAJVGQABAAJ5ABQLX0hSVgCkU09DUxQzX0NSUwCKUkJV RgoEQjBCQYpSQlVGCghCMExOcEk1MEFCMEJBcEk1MExCMExOpFJCVUYUGl9TVEEAoBCRk0k1MEEA k0wyNUQBpACkCg8UG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FUFB5fUFMwAHtQU0FUDPz///9Q U0FUfVBTQVQAUFNBVFuAS0VZUwBJNTFBCwABW4EOS0VZU0MAQEJQU0FUIFuCSBRTSFVCCF9BRFIA CF9ISUQNU01POTFEMAAIX0NJRA1QTlAwQzUwAAhfVUlEARQ9X0RTTQSgL5NoERMKEPf23zxnQlVF rQWzCj2JON6gDpNqAKAJk2kBpBEDAQOgBpNqAaQBpAChBqQRAwEAFAlfU1RBAKQKDxQkX1BTMwig HZNeXl4uR1BPMEFWQkwBcABeXl4uR1BPMFNIRDMUKF9QUzAIoCGTXl5eLkdQTzBBVkJMAXABXl5e LkdQTzBTSEQzWyIKMhRDCF9DUlMACFNCVUYRQQcKbY4ZAAEAAQIAAAEGAIAaBgBAAFxfU0IuSTJD NQCJBgABAUQAAACMIAABAQEAAgAAAAAAABcAABkAIwAAAF8AXF9TQi5HUE8wAIwgAAEBAQACAAAA AAAAFwAAGQAjAAAAOwBcX1NCLkdQTzAAeQCkU0JVRluCTgdTQVIxCF9BRFIACF9ISUQNSU5UOTkx OAAIX0NJRA1JTlQ5OTE4AAhfVUlEARQVX1NUQQCgCpNTQVJFAaQKD6EDpAAUOV9DUlMACFJCVUYR KAoljCAAAQABAAUAAgAAAAAXAAAZACMAAABeAFxfU0IuR1BPMAB5AKRSQlVGW4JDUkkyQzYIX0FE UgAIX0hJRA04MDg2MEY0MQAIX0NJRA04MDg2MEY0MQAIX0RETg1JbnRlbChSKSBJMkMgQ29udHJv bGxlciAjNiAtIDgwODYwRjQ2AAhfVUlECgYIX0RFUBIGAVBFUEQIUkJVRhEmCiOGCQABAAAAAAAQ AACJBgAFASUAAABVGgACAAJVGwADAAJ5ABQLX0hSVgCkU09DUxQzX0NSUwCKUkJVRgoEQjBCQYpS QlVGCghCMExOcEk2MEFCMEJBcEk2MExCMExOpFJCVUYUGl9TVEEAoBCRk0k2MEEAk0wyNkQBpACk Cg8UG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FUFB5fUFMwAHtQU0FUDPz///9QU0FUfVBTQVQA UFNBVFuAS0VZUwBJNjFBCwABW4EOS0VZU0MAQEJQU0FUIFuERw9UQ1BSAAAACF9ERVASEQJJMkM3 Xl4uSTJDN1BNSUMUL19TVEEAoCaTXl5eLwNJMkM3UE1JQ0FWQkwBpF5eXi8DSTJDN1BNSUNUQ09O pAAURwdfT05fAKAdk15eXi5HUE8wQVZCTAFwAF5eXi5HUE8wVENEM1siCgWgJ5NeXl4vA0kyQzdQ TUlDQVZCRwFwAV5eXi8DSTJDN1BNSUNUQ09OWyIKCqAdk15eXi5HUE8wQVZCTAFwAV5eXi5HUE8w VENEM1siClAULl9PRkYAoCeTXl5eLwNJMkM3UE1JQ0FWQkcBcABeXl4vA0kyQzdQTUlDVENPTluC QShUQ1MwCF9BRFIACF9ISUQNQVRNTDEwMDAACF9DSUQNUE5QMEM1MAAIX1MwVwAIX0RFUBIKAkdQ TzBJMkM3FC5fUFMzCKAnk15eXi8DSTJDN1BNSUNBVkJHAXAAXl5eLwNJMkM3UE1JQ1RDT04URwdf UFMwCKAdk15eXi5HUE8wQVZCTAFwAF5eXi5HUE8wVENEM1siCgWgJ5NeXl4vA0kyQzdQTUlDQVZC RwFwAV5eXi8DSTJDN1BNSUNUQ09OWyIKHqAdk15eXi5HUE8wQVZCTAFwAV5eXi5HUE8wVENEM1si CngURAxfQ1JTAAhSQlVGEU4ECkqOGQABAAECAAABBgCg8BkASgBcX1NCLkkyQzYAiQYAAQFFAAAA jCAAAQEBAAIAAAAAAAAXAAAZACMAAAA8AFxfU0IuR1BPMAB5AAhQQlVGEU4ECkqOGQABAAECAAAB BgCg8BkASwBcX1NCLkkyQzYAiQYAAQFFAAAAjCAAAQEBAAIAAAAAAAAXAAAZACMAAAA8AFxfU0Iu R1BPMAB5AKANk0lUU0EKS6RQQlVGoQakUkJVRhRLDF9EU00MCF9UXzEACF9UXzAAcA1NZXRob2Qg X0RTTSBiZWdpbgBbMaBKCZNoERMKEPf23zxnQlVFrQWzCj2JON6iQQgBcJlqAF9UXzCgRwSTX1Rf MACiPgFwmWkAX1RfMaArk19UXzEBcA1NZXRob2QgX0RTTSBGdW5jdGlvbiBRdWVyeQBbMaQRAwED oQakEQMBAKWhLKAmk19UXzABcA1NZXRob2QgX0RTTSBGdW5jdGlvbiBISUQAWzGkAKEDpACloQak EQMBABQJX1NUQQCkCg9bgkwFVENGVwhfSElEDUFUTUwyMDAwABQyX0NSUwAIUkJVRhEhCh6OGQAB AAECAAABBgCAGgYAJwBcX1NCLkkyQzYAeQCkUkJVRhQTX1NUQQCgCpNURldTAaQKD6QAW4JJFEky QzcIX0FEUgAIX0hJRA04MDg2MEY0MQAIX0NJRA04MDg2MEY0MQAIX0RETg1JbnRlbChSKSBJMkMg Q29udHJvbGxlciAjNyAtIDgwODYwRjQ3AAhfVUlECgcIX0RFUBIGAVBFUEQIUkJVRhEmCiOGCQAB AAAAAAAQAACJBgAFASYAAABVHAAEAAJVHQAFAAJ5ABQLX0hSVgCkU09DUxQzX0NSUwCKUkJVRgoE QjBCQYpSQlVGCghCMExOcEk3MEFCMEJBcEk3MExCMExOpFJCVUYUGl9TVEEAoBCRk0k3MEEAk0wy N0QBpACkCg8UG19QUzMAfVBTQVQKA1BTQVR9UFNBVABQU0FUFB5fUFMwAHtQU0FUDPz///9QU0FU fVBTQVQAUFNBVFuAS0VZUwBJNzFBCwABW4EOS0VZU0MAQEJQU0FUIBBFz0kyQzdbgk3OUE1JQwhf QURSAAhfSElEDUlOVDMzRkQACF9DSUQNSU5UMzNGRAAIX0RETg1QTUlDIEdQSU8gQ29udHJvbGxl cgAIX0hSVgoCCF9VSUQBCF9ERVASBgFJMkM3FE4EX0NSUwAIU0JVRhE8CjmOGQABAAECAAABBgBA Qg8AbgBcX1NCLkkyQzcAiQYACQFDAAAAiQYACQFDAAAAiQYACQFDAAAAeQCkU0JVRhQTX1NUQQCg CZNQTUVOAKQApAoPW4BEUFRGjAALAAFbgU8HRFBURgNUTVAwIEFYMDAgQVgwMSBUTVAxIEFYMTAg QVgxMSBUTVAyIEFYMjAgQVgyMSBUTVAzIEFYMzAgQVgzMSBUTVA0IEFYNDAgQVg0MSBUTVA1IEFY NTAgQVg1MSBQRU4wIFBFTjEgUEVOMiBQRU4zIFBFTjQgUEVONSBbgFBNT1CNAAsAAVuBSQhQTU9Q A1ZTWVMgU1lTWCBTWVNVIFNZU1MgVjUwUyBIT1NUIFZCVVMgSERNSSBTMjg1IFgyODUgVjMzQSBW MzNTIFYzM1UgVjMzSSBWMThBIFJFRlEgVjEyQSBWMThTIFYxOFggVjE4VSBWMTJYIFYxMlMgVjEw QSBWMTBTIFYxMFggVjEwNSBbgEdQT1AIAAsAAVuBT6JHUE9QAQIRKwoojCUAAQEBAAIAAAAAAAAX AAAZACgAAAAgAFxfU0IuSTJDNy5QTUlDAEdNUDABAhErCiiMJQABAQEAAgAAAAAAABcAABkAKAAA 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 QzFbgkcHSU1QMQhfQURSAAhfSElEDUlNUEowMDAxAAhfQ0lEDUlNUEowMDAxAAhfVUlEARQTX1NU QQCgCpNQU1NEAaQKD6QAFDJfQ1JTAAhTQlVGESEKHo4ZAAEAAQIAAAEGAKCGAQBuAFxfU0IuSTJD MQB5AKRTQlVGW4JHB0lNUDIIX0FEUgAIX0hJRA1JTVBKMDAwMgAIX0NJRA1JTVBKMDAwMgAIX1VJ RAEUE19TVEEAoAqTUFNTRAGkCg+kABQyX0NSUwAIU0JVRhEhCh6OGQABAAECAAABBgCghgEAbwBc X1NCLkkyQzEAeQCkU0JVRluCSAdJTVAzCF9BRFIACF9ISUQNSU1QSjAwMDMACF9DSUQNSU1QSjAw MDMACF9VSUQBFBRfU1RBAKALk1BTU0QKAqQKD6QAFDJfQ1JTAAhTQlVGESEKHo4ZAAEAAQIAAAEG AKCGAQBuAFxfU0IuSTJDMQB5AKRTQlVGW4RHElAyOFgFAAAIX0RFUBIQAkkyQzdeLkkyQzdQTUlD FEUFX1NUQQCgSwSTXl4vA0kyQzdQTUlDQVZCRwFwAF5eLwNJMkM3UE1JQ0cyOFigJJNeXi8DSTJD N1BNSUNBVkJMAaReXi8DSTJDN1BNSUNYMjg1pAAUSAVfT05fAKBABZNeXi8DSTJDN1BNSUNBVkJM AXABXl4vA0kyQzdQTUlDWDI4NaApk15eLwNJMkM3UE1JQ0FWQkcBcAFeXi8DSTJDN1BNSUNHMjhY WyIKHhRIBV9PRkYAoEAFk15eLwNJMkM3UE1JQ0FWQkwBcABeXi8DSTJDN1BNSUNYMjg1oCmTXl4v A0kyQzdQTUlDQVZCRwFwAV5eLwNJMkM3UE1JQ0cyOFhbIgoeW4RHElAxOFgFAAAIX0RFUBIQAkky QzdeLkkyQzdQTUlDFEUFX1NUQQCgSwSTXl4vA0kyQzdQTUlDQVZCRwFwAF5eLwNJMkM3UE1JQ0cx OFigJJNeXi8DSTJDN1BNSUNBVkJMAaReXi8DSTJDN1BNSUNWMThYpAAUSAVfT05fAKBABZNeXi8D STJDN1BNSUNBVkJMAXABXl4vA0kyQzdQTUlDVjE4WKApk15eLwNJMkM3UE1JQ0FWQkcBcAFeXi8D STJDN1BNSUNHMThYWyIKHhRIBV9PRkYAoEAFk15eLwNJMkM3UE1JQ0FWQkwBcABeXi8DSTJDN1BN SUNWMThYoCmTXl4vA0kyQzdQTUlDQVZCRwFwAV5eLwNJMkM3UE1JQ0cxOFhbIgoeW4JHKFRCQUQI X0hJRA1JTlRDRkQ5AAhfQ0lEDVBOUDBDNDAACF9ERE4NS2V5Ym9hcmQgbGVzcyBzeXN0ZW0gLSA1 IEJ1dHRvbiBBcnJheSBEZXZpY2UACF9ERVASGARHUE8wR1BPMkkyQzdeLkkyQzdQTUlDFEQYX0NS UwAIUkJVRhFMCQqYjCAAAQABABUAAAAAAAAXAAAZACMAAAAQAFxfU0IuR1BPMgCMIAABAAEAFQAA AAAAABcAABkAIwAAAAYAXF9TQi5HUE8wAIwlAAEAAQAFAAAAAAAAFwAAGQAoAAAAAABcX1NCLkky QzcuUE1JQwCMJQABAAEABQAAAAAAABcAABkAKAAAAAEAXF9TQi5JMkM3LlBNSUMAeQAIUEJVRhFC CQqOjCAAAQABABUAAAAAAAAXAAAZACMAAAAQAFxfU0IuR1BPMgCMIAABAAEAFQAAAAAAABcAABkA IwAAAAYAXF9TQi5HUE8wAIwgAAEAAQAFAAAAAAAAFwAAGQAjAAAABQBcX1NCLkdQTzAAjCAAAQAB AAUAAAAAAAAXAAAZACMAAAAEAFxfU0IuR1BPMAB5AKAkk0JESUQKBKANk0ZCSUQKAqRQQlVGoA2T RkJJRAoDpFBCVUahGKAWk0JESUQKAqANk0ZCSUQKAqRQQlVGpFJCVUYUCV9TVEEApAoPFEQIX0RT TQwIX1RfMACgG5NPU1lTC90HcAFeXi8DSTJDN1BNSUNGQ09UoRNwAF5eLwNJMkM3UE1JQ0ZDT1Sg PZNoERMKEMXzvN+l5+ZEnB8px29uBZyiJQFwmWoAX1RfMKAMk19UXzAApBEDAQOhDKAKk19UXzAB pAoHpaEGpBEDAQCkAFuCQhNNQklECF9ISUQNSU5UMzNCRAAIX0NJRA1JTlQzM0JEAAhfSFJWCgII X1VJRAEUIl9DUlMICFJCVUYREQoOhgkAAdAAAOAMAAAAeQCkUkJVRluAUkVHU4cACjBbgSRSRUdT A1BPUlQgUkVHXyBEQVRBIE1BU0sgQkVfXyBPUF9fIAhBVkJMABQSX1JFRwKgC5NoCodwaUFWQkwU NVJFQUQLcAz/////YKAlk0FWQkwBcABPUF9fcGhQT1JUcGlSRUdfcGpCRV9fcERBVEFgpGAULFdS SVQMoCWTQVZCTAFwAU9QX19waFBPUlRwaVJFR19wakJFX19wa0RBVEEUM01PREkNoCyTQVZCTAFw CgJPUF9fcGhQT1JUcGlSRUdfcGpCRV9fcGtEQVRBcGxNQVNLW4JHBlBBR0QIX0hJRA1BQ1BJMDAw QwAIX0NJRA1BQ1BJMDAwQwAISURDTgAIUFVSUBIEAgEAFBdfUFVSCHBJRENOiFBVUlABAKRQVVJQ FBpfT1NUC3ANX09TVCBpcyBpbnZva2VkAFsxCFBJQ00AW4JBEU1ETV8IX0hJRAw0ZAABCF9DSUQN TUNEMDAwMQAIQ1BVXw1WYWxsZXlWaWV3MgAITURNTg1YTU1fNzE2MAAUFF9TVEEAoAuTQkRJRAoD pAoPpAAURApfQ1JTAAhVQlVGEUIJCo6MIAABAQEAAgAAAAAAABcAABkAIwAAABoAXF9TQi5HUE8x AIwgAAEBAQABAAAAAAAAFwAAGQAjAAAAHgBcX1NCLkdQTzIAjCAAAQEBAAEAAAAAAAAXAAAZACMA AAAcAFxfU0IuR1BPMgCMIAABAQEAAgAAAAAAABcAABkAIwAAAB0AXF9TQi5HUE8yAHkApFVCVUYI UE1JQxIIBAopAQAK/AhFUFdSEgQCAAEQQwlfVFpfW4VLCFRaMDAIX0RFUBIbAlwuX1NCX0kyQzdc LwNfU0JfSTJDN1BNSUMUQwZfVE1QCKBHBZNcLwRfU0JfSTJDN1BNSUNBVkJHAXAAXC8EX1NCX0ky QzdQTUlDR01QMqAqk1wvBF9TQl9JMkM3UE1JQ0FWQkQBpFwvBF9TQl9JMkM3UE1JQ1RNUDKkC6wK EEsJLl9TQl9QQ0kwW4JOCFBEUkMIX0hJRAxB0AwCCF9VSUQBCEJVRjARQgcKboYJAAEAAADgAAAA EIYJAAEAEND+ABAAAIYJAAEAMND+ABAAAIYJAAEAQND+ABAAAIYJAAEAwND+AEAAAIYJAAEAgND+ ABAAAIYJAAEAwNH+ABAAAIYJAAAAAOD+AAAQAIYJAAEAAPD+AAAQAHkAFEkMQlJUTgmgI5N7RElE MQsADwALAASGXC8EX1NCX1BDSTBHRlgwREQwMWigI5N7RElEMgsADwALAASGXC8EX1NCX1BDSTBH RlgwREQwMmigI5N7RElEMwsADwALAASGXC8EX1NCX1BDSTBHRlgwREQwM2igI5N7RElENAsADwAL AASGXC8EX1NCX1BDSTBHRlgwREQwNGigI5N7RElENQsADwALAASGXC8EX1NCX1BDSTBHRlgwREQw NWigDVsSTkROMwBORE4zaBBEIi5fU0JfSTJDMwhBVkJMABQSX1JFRwKgC5NoCglwaUFWQkwIRlNB VxEhCh6OGQABAAECAAABBgCAGgYAJQBcX1NCLkkyQzMAeQBbgEZTQU8JAAsAAVuBFUZTQU8FAkZT QVcAEAEFBkZTSU0IW4EVRlNBTwUCRlNBVwAYAQUGRlNJTghbgRVGU0FPBQJGU0FXADgBBQZGU1JD CFuBFkZTQU8FAkZTQVcAQAUBBQZGU0RUCFuBFkZTQU8FAkZTQVcASAkBBQZGU01TCFuCRxVTRlNB CF9BRFIACF9ISUQNU0ZTQTkyODUACF9DSUQNU0ZTQTkyODUACF9ERE4NRlNBIFVTQiBTV0lUQ0gA CF9ERVASBgFJMkMzFEYPX0NSUwAIQlVGMBFFBApBjhkAAQABAgAAAQYAgBoGACUAXF9TQi5JMkMz AIwgAAEAAQARAAMAAAAAFwAAGQAjAAAAAQBcX1NCLkdQTzIAeQAIQlVGMRFLCAqHjhkAAQABAgAA AQYAgBoGACUAXF9TQi5JMkMzAIwgAAEAAQARAAMAAAAAFwAAGQAjAAAABgBcX1NCLkdQTzIAjCAA AQEBAAIAAAAAAAAXAAAZACMAAAADAFxfU0IuR1BPMgCMIAABAQEAAgAAAAAAABcAABkAIwAAADoA XF9TQi5HUE8yAHkAoA2TQkRJRAoDpEJVRjCkQlVGMRQUX1NUQQCgC5NCRElECgOkCg+kABBJmC5f U0JfSTJDMVuCTApTTUZHCF9ISUQNTUFYMTcwNDcACF9DSUQNTUFYMTcwNDcACF9ERE4NRnVlbCBH YXVnZSBDb250cm9sbGVyAAhSQlVGEUUECkGOGQABAAECAAABBgCghgEANgBcX1NCLkkyQzEAjCAA AQABABEAAAAAAAAXAAAZACMAAAASAFxfU0IuR1BPMgB5ABQLX0NSUwCkUkJVRhQUX1NUQQCgC5NC RElECgOkCg+kAFuCTAlTTUNHCF9ISUQNU01CMDM0OQAIX0NJRA1TTUIwMzQ5AAhfRERODUNoYXJn ZXIACFJCVUYRRQQKQY4ZAAEAAQIAAAEGAKCGAQA1AFxfU0IuSTJDMQCMIAABAAEAEQAAAAAAABcA ABkAIwAAAAIAXF9TQi5HUE8yAHkAFAtfQ1JTAKRSQlVGFBRfU1RBAKALk0JESUQKA6QKD6QACFVN UEMRIQoejhkAAQABAgAAAQYAoIYBAHgAXF9TQi5JMkMxAHkACEFWQkwAFBJfUkVHAqALk2gKCXBp QVZCTFuARFZVTQkACwABW4EURFZVTQUCVU1QQwMFCzlGR0MwCFuBFkRWVU0FAlVNUEMASBcBBQZG TDJGCFuBF0RWVU0FAlVNUEMAQBgDBQsERkwzMAhbgRZEVlVNBQJVTVBDAEAnAQUGRkw0RQhbgRZE VlVNBQJVTVBDAEgnAQUGRkw0RghbgSVEVlVNBQJVTVBDAEAoAQUGRkw1MAhGTDUxCEZMNTIIRkw1 MwhbgRdEVlVNBQJVTVBDAEAaAwULBVRIUk0IW4JOckJBVEMIX0hJRAxB0AwKCF9VSUQBCEJDQ0MK gAhCQ0NFAQhCQ0NWCjcIQkNDTAz/////CEJDTFALBBAIRFNDUAsEEAhEU1ZPC6YOCEJUUEMACFNP Q0MACF9ERVASBgFJMkMxCEJGRkcRBApA/4xCRkZHAFNUQVSMQkZGRwFMRU5fi0JGRkcKAkNOVEyL QkZGRwoEQVRSQYtCRkZHCgZBUlRFi0JGRkcKCFRFTVCLQkZGRwoKVk9MVItCRkZHCgxGTEFHi0JG RkcKDk5BQ1SLQkZGRwoQRkFDVItCRkZHChJSRUNUi0JGRkcKFEZDQ1SLQkZGRwoWQVZSQ4tCRkZH ChhUVEVUi0JGRkcKGlRURkyLQkZGRwocU1REQ4tCRkZHCh5TVFRFi0JGRkcKIE1BTEOLQkZGRwoi TUxURYtCRkZHCiRBVkVFi0JGRkcKJkFWRVCLQkZGRwooVEVDUItCRkZHCipEU1NQi0JGRkcKLENZ TEOLQkZGRwouU09DSIxCRkZHCjBDSFNUjEJGRkcKMUNIQ1WKQkZGRwoyQlRSUIxCRkZHCjZTS1Qw i0JGRkcKN1NUMDCLQkZGRwo5U1QwMQhCVUZGEQYKAwABAIxCVUZGAEJZQVSMQlVGRgoCREFUQQhC VUYxEQkKBgAAAAAAAIxCVUYxAEJTVEGMQlVGMQFCTEVOikJVRjEKAkRBVDEIQklYUBJPBRQAAQz/ ////DP////8BDP////8KCgoEAAwYcwEADP////8M/////wu4iAuoYQEBDVNSIFJlYWwgQmF0dGVy eQANMTIzNDU2Nzg5AA1MSU9OAA1JbnRlbCBTUiAxAAhCU1RQEhIEAAz/////DP////8M/////xRC C19CSVgAoEUGk0FWQkwBcEZHQzBCRkZHoEEEkpNTVEFUAaAdkpNDWUxDQkNDTHBDWUxDQkNDTHBG Q0NUQkNMUHBCQ0xQiEJJWFAKAwBwQ1lMQ4hCSVhQCggAoBGSk0RTU1AAcERTU1BEU0NQcERTQ1CI QklYUAoCAHBEU1ZPiEJJWFAKBQB4RFNDUAoKYGFwYYhCSVhQCgYAeERTQ1AKFGBhcGGIQklYUAoH AKRCSVhQFEIPX0JTVACgRQ6TQVZCTAFwRkdDMEJGRkegQw2Sk1NUQVQBekNIU1QKBGB7YAoDYKAN kZNgAZNgCgJwCgJhoAeTYABwAWGgCJNgCgNwAGFwYYhCU1RQAABwQVZSQ2GgDXthCwCAAHQL//9h YXBhiEJTVFABAHBSRUNUiEJTVFAKAgBwVk9MVIhCU1RQCgMAcFNPQ0hTT0NDcEZMNTNCVUZGoDmS k0JZQVQBoBqTQkNDRQF9REFUQQFEQVRBcEJVRkZGTDUzoRV7REFUQQr+REFUQXBCVUZGRkw1M3BC Q0NDREFUQXBCVUZGRkwyRqRCU1RQFCtJTlRSAKAhk0FWQkwBcEZMNEZCVUZGoA2Sk0JZQVQBpERB VEGkCv+kCv8USgRfQlRQAXBoQlRQQ0FEQkcNQlRQAEFEQkdooB2TQVZCTAFwaERBVDFwCgRCTEVO cEJVRjFGTDMwcEZHQzBCRkZHQURCR1JFQ1QUTwRfQlRNAaAIlGgLMHWkAKA4k0FWQkwBcEZHQzBC RkZHoCeSk1NUQVQBoA6TaAB3VFRFVAo8YKRgd1JFQ1QLEA5geGBoYWKkYqQM/////xRJBl9CQ1QB oAuRlGgKZJVoAaQAoE8Ek0FWQkwBcEZHQzBCRkZHoD2Sk1NUQVQBoAmVaFJFQ1SkAHBBVlJDYaAJ e2ELAIAApAB3QkNMUGhgdGBSRUNUYHdgCxAOYHhgYWJjpGOkDP////8UMF9EU00EoCeTaBETChDj ZyBMfYhcR5cgSvHT7WAuoA+TagoCoAmTaQCkEQMBAKQAFEwFX1NUQQCgQgWTQVZCTAFwRkdDMEJG RkegCpKTU1RBVACkAKAUk0JESUQKBKALlUZCSUQKAqQKH3BGTDRFQlVGRqAVk0JZQVQAoAuTREFU QQoCpAofpACkAKQAFAtfUENMAKRfU0JfFAtQU09DAKRTT0NDFD9QTUFYAKA2k0FWQkwBcEZHQzBC RkZHoCWSk1NUQVQBcE1BTENhoA17YQsAgAB0C///YWF3RFNWT2FhpGGkABQKVk1JTgCkC6wNFAxB UFdSAKQMQMBlAxRKBE5QV1IAcEFQV1JgoDqTQVZCTAFwRkdDMEJGRkegKZKTU1RBVAFwQVZSQ2Gg DXthCwCAAHQL//9hYXdWT0xUYWJ0YGJgpGCkYBRJBlBTUkMAoE8Fk0FWQkwBcEZHQzBCRkZHoE0E kpNTVEFUAXBDSFNUYEFEQkcNQkFUQy5QU1JDAEFEQkdgemAKBmB7YAoDYKAGk2AApACgB5NgCgKk AaAHk2ABpAoCoAiTYAoDpAoEpAEUCUNUWVAApAoCFAxBUlRHAKQMQMBlAxBDBl9TQl9bgksFQURQ MQhfSElEDUFDUEkwMDAzABQ5X1BTUgCgMFsSXC8DX1NCX0kyQzFCQVRDYXBeXi8DSTJDMUJBVENQ U1JDYKAGk2ABpAGhA6QApAEUC19QQ0wApF9TQl8= =2D-nextPart1435871.THQkheyNVN Content-Disposition: attachment; filename="dmesg.log-3.15-rc5-inari" Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8"; name="dmesg.log-3.15-rc5-inari" [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.0-rc5-Inari (root@devpool02) (gcc version 4.6.4 (Emlix Linux Inari) ) #1 SMP Tue May 13 08:40:31 UTC 2014 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable [ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009dfff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078345fff] usable [ 0.000000] BIOS-e820: [mem 0x0000000078346000-0x0000000078c45fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000078c46000-0x0000000078d45fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000078d46000-0x0000000078d85fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000078d86000-0x00000000794c7fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000794c8000-0x0000000079dc7fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000079dc8000-0x0000000079ffffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] efi: EFI v2.31 by INSYDE Corp. [ 0.000000] efi: ACPI 2.0=0x78d85014 SMBIOS=0x78c45000 [ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB) [ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB) [ 0.000000] efi: mem02: type=7, attr=0xf, range=[0x0000000000007000-0x000000000008f000) (0MB) [ 0.000000] efi: mem03: type=10, attr=0xf, range=[0x000000000008f000-0x0000000000090000) (0MB) [ 0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x000000000009e000) (0MB) [ 0.000000] efi: mem05: type=0, attr=0xf, range=[0x000000000009e000-0x00000000000a0000) (0MB) [ 0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000000100000-0x0000000001000000) (15MB) [ 0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000001000000-0x0000000001ded000) (13MB) [ 0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000001ded000-0x0000000020000000) (482MB) [ 0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020100000) (1MB) [ 0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000020100000-0x0000000071dc0000) (1308MB) [ 0.000000] efi: mem11: type=4, attr=0xf, range=[0x0000000071dc0000-0x0000000071de0000) (0MB) [ 0.000000] efi: mem12: type=7, attr=0xf, range=[0x0000000071de0000-0x0000000073356000) (21MB) [ 0.000000] efi: mem13: type=2, attr=0xf, range=[0x0000000073356000-0x0000000073358000) (0MB) [ 0.000000] efi: mem14: type=1, attr=0xf, range=[0x0000000073358000-0x0000000073b46000) (7MB) [ 0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000073b46000-0x0000000076a92000) (47MB) [ 0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000076a92000-0x00000000774ec000) (10MB) [ 0.000000] efi: mem17: type=7, attr=0xf, range=[0x00000000774ec000-0x00000000774f9000) (0MB) [ 0.000000] efi: mem18: type=4, attr=0xf, range=[0x00000000774f9000-0x0000000077d46000) (8MB) [ 0.000000] efi: mem19: type=7, attr=0xf, range=[0x0000000077d46000-0x0000000078161000) (4MB) [ 0.000000] efi: mem20: type=3, attr=0xf, range=[0x0000000078161000-0x0000000078346000) (1MB) [ 0.000000] efi: mem21: type=5, attr=0x800000000000000f, range=[0x0000000078346000-0x0000000078546000) (2MB) [ 0.000000] efi: mem22: type=6, attr=0x800000000000000f, range=[0x0000000078546000-0x0000000078846000) (3MB) [ 0.000000] efi: mem23: type=0, attr=0xf, range=[0x0000000078846000-0x0000000078c46000) (4MB) [ 0.000000] efi: mem24: type=10, attr=0xf, range=[0x0000000078c46000-0x0000000078d46000) (1MB) [ 0.000000] efi: mem25: type=9, attr=0xf, range=[0x0000000078d46000-0x0000000078d86000) (0MB) [ 0.000000] efi: mem26: type=4, attr=0xf, range=[0x0000000078d86000-0x00000000794c8000) (7MB) [ 0.000000] efi: mem27: type=10, attr=0xf, range=[0x00000000794c8000-0x0000000079dc8000) (9MB) [ 0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000079dc8000-0x000000007a000000) (2MB) [ 0.000000] efi: mem29: type=11, attr=0x8000000000000001, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB) [ 0.000000] efi: mem30: type=11, attr=0x8000000000000000, range=[0x00000000fed01000-0x00000000fed02000) (0MB) [ 0.000000] efi: mem31: type=11, attr=0x8000000000000000, range=[0x00000000ffd00000-0x0000000100000000) (3MB) [ 0.000000] SMBIOS 2.7 present. [ 0.000000] DMI: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0FFD00000 mask FFFC00000 write-protect [ 0.000000] 1 base 000000000 mask FC0000000 write-back [ 0.000000] 2 base 040000000 mask FE0000000 write-back [ 0.000000] 3 base 060000000 mask FF0000000 write-back [ 0.000000] 4 base 070000000 mask FF8000000 write-back [ 0.000000] 5 base 078000000 mask FFC000000 write-back [ 0.000000] 6 base 07B000000 mask FFF000000 uncachable [ 0.000000] 7 base 07AE00000 mask FFFE00000 uncachable [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] initial memory mapped: [mem 0x00000000-0x01ffffff] [ 0.000000] Base memory trampoline at [c009a000] 9a000 size 16384 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] [mem 0x00000000-0x000fffff] page 4k [ 0.000000] init_memory_mapping: [mem 0x37000000-0x373fffff] [ 0.000000] [mem 0x37000000-0x373fffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x30000000-0x36ffffff] [ 0.000000] [mem 0x30000000-0x36ffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.000000] [mem 0x00100000-0x003fffff] page 4k [ 0.000000] [mem 0x00400000-0x1fffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x20100000-0x2fffffff] [ 0.000000] [mem 0x20100000-0x203fffff] page 4k [ 0.000000] [mem 0x20400000-0x2fffffff] page 2M [ 0.000000] BRK [0x01cd0000, 0x01cd0fff] PGTABLE [ 0.000000] init_memory_mapping: [mem 0x37400000-0x377fdfff] [ 0.000000] [mem 0x37400000-0x377fdfff] page 4k [ 0.000000] BRK [0x01cd1000, 0x01cd1fff] PGTABLE [ 0.000000] ACPI: RSDP 0x78D85014 000024 (v02 INSYDE) [ 0.000000] ACPI: XSDT 0x78D61188 0000D4 (v01 INSYDE INSYDE 00000003 01000013) [ 0.000000] ACPI: FACP 0x78D7F000 00010C (v05 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: DSDT 0x78D6E000 00BAEC (v02 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D84000 000236 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: TCPA 0x78D83000 000032 (v02 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D81000 000042 (v01 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: DBG2 0x78D80000 000072 (v00 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: HPET 0x78D7E000 000038 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: LPIT 0x78D7D000 000104 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: APIC 0x78D7C000 00006C (v03 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: MCFG 0x78D7B000 00003C (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SLIC 0x78D7A000 000176 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6D000 0005FB (v01 INSYDE CpuDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6B000 0018C2 (v01 INSYDE DptfTab 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6A000 000058 (v01 INSYDE LowPwrM 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D69000 0000FF (v01 INSYDE SoCDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D68000 00043A (v01 INSYDE Tpm2Tabl 00001000 ACPI 00040000) [ 0.000000] ACPI: TPM2 0x78D67000 000034 (v03 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D66000 000763 (v01 INSYDE CpuPm 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D65000 000290 (v01 INSYDE Cpu0Tst 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D64000 00017A (v01 INSYDE ApTst 00003000 ACPI 00040000) [ 0.000000] ACPI: FPDT 0x78D63000 000044 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: CSRT 0x78D62000 00014C (v00 INSYDE INSYDE 00000005 ACPI 00040000) [ 0.000000] ACPI: BGRT 0x78D60000 000038 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] 1064MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] BRK [0x01cd2000, 0x01cd2fff] PGTABLE [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00001000-0x00ffffff] [ 0.000000] Normal [mem 0x01000000-0x377fdfff] [ 0.000000] HighMem [mem 0x377fe000-0x79ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00001000-0x0008efff] [ 0.000000] node 0: [mem 0x00090000-0x0009dfff] [ 0.000000] node 0: [mem 0x00100000-0x1fffffff] [ 0.000000] node 0: [mem 0x20100000-0x78345fff] [ 0.000000] node 0: [mem 0x78d86000-0x794c7fff] [ 0.000000] node 0: [mem 0x79dc8000-0x79ffffff] [ 0.000000] On node 0 totalpages: 494428 [ 0.000000] free_area_init_node: node 0, pgdat c17500c0, node_mem_map f68be020 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3996 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 222974 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2129 pages used for memmap [ 0.000000] HighMem zone: 267458 pages, LIFO batch:31 [ 0.000000] Using APIC driver default [ 0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable [ 0.000000] Reserving Intel graphics stolen memory at 0x7af00000-0x7eefffff [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-86 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.000000] nr_irqs_gsi: 103 [ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff] [ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x200fffff] [ 0.000000] e820: [mem 0x7ef00000-0xe00f7fff] available for PCI devices [ 0.000000] setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 12 pages/cpu @f6882000 s27200 r0 d21952 u49152 [ 0.000000] pcpu-alloc: s27200 r0 d21952 u49152 alloc=12*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 492652 [ 0.000000] Kernel command line: root=/dev/sda2 video=HDMI-A-1:1200x1920e drm_kms_helper.edid_firmware=HDMI-A-1:edid/1200x1920.bin [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0007a000) [ 0.000000] Initializing Movable for node 0 (00000000:00000000) [ 0.000000] Memory: 1916980K/1977712K available (5569K kernel code, 331K rwdata, 1640K rodata, 4280K init, 1232K bss, 60732K reserved, 1038956K highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfff66000 - 0xfffff000 ( 612 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1760000 - 0xc1b8e000 (4280 kB) [ 0.000000] .data : 0xc1570a99 - 0xc175eec0 (1977 kB) [ 0.000000] .text : 0xc1000000 - 0xc1570a99 (5570 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:1024 16 [ 0.000000] CPU 0 irqstacks, hard=f600c000 soft=f600e000 [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Maximum core-clock to bus-clock ratio: 0xa [ 0.000000] Resolved frequency ID: 2, frequency: 133200 KHz [ 0.000000] TSC runs at 1332000 KHz [ 0.000000] lapic_timer_frequency = 133200 [ 0.000000] tsc: Detected 1332.000 MHz processor [ 0.000038] Calibrating delay loop (skipped), value calculated using timer frequency.. 2664.00 BogoMIPS (lpj=1332000) [ 0.000056] pid_max: default: 32768 minimum: 301 [ 0.000073] ACPI: Core revision 20140214 [ 0.045134] ACPI: All ACPI Tables successfully acquired [ 0.048115] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.048134] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.048462] Initializing cgroup subsys freezer [ 0.048505] CPU: Physical Processor ID: 0 [ 0.048515] CPU: Processor Core ID: 0 [ 0.048525] ENERGY_PERF_BIAS: Set to 'normal', was 'performance' [ 0.048525] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8) [ 0.060656] mce: CPU supports 6 MCE banks [ 0.060675] CPU0: Thermal monitoring enabled (TM1) [ 0.060696] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0 [ 0.060696] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0 [ 0.060696] tlb_flushall_shift: 6 [ 0.060903] Freeing SMP alternatives memory: 20K (c1b8e000 - c1b93000) [ 0.060940] ------------[ cut here ]------------ [ 0.060959] WARNING: CPU: 0 PID: 0 at /tmp/e2/build/linux-git/mm/early_ioremap.c:136 __early_ioremap+0xbe/0x1c2() [ 0.060972] Modules linked in: [ 0.060985] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc5-Inari #1 [ 0.060995] Hardware name: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.061009] 00000000 00000000 c170df00 c1564914 c16631ec c170df30 c103e4aa c165b654 [ 0.061047] 00000000 00000000 c16631ec 00000088 c177cdf5 c177cdf5 00041ee6 00005800 [ 0.061069] c1b97800 c170df40 c103e4ed 00000009 00000000 c170df98 c177cdf5 00000000 [ 0.061090] Call Trace: [ 0.061105] [<c1564914>] dump_stack+0x41/0x52 [ 0.061119] [<c103e4aa>] warn_slowpath_common+0x7a/0xa0 [ 0.061132] [<c177cdf5>] ? __early_ioremap+0xbe/0x1c2 [ 0.061144] [<c177cdf5>] ? __early_ioremap+0xbe/0x1c2 [ 0.061156] [<c103e4ed>] warn_slowpath_null+0x1d/0x20 [ 0.061168] [<c177cdf5>] __early_ioremap+0xbe/0x1c2 [ 0.061182] [<c10c4b42>] ? __get_free_pages+0x22/0x30 [ 0.061196] [<c10f217a>] ? __kmalloc+0xea/0xf0 [ 0.061209] [<c177d0b8>] early_memremap+0xd/0xf [ 0.061221] [<c1773828>] efi_bgrt_init+0xf0/0x135 [ 0.061234] [<c1773150>] efi_late_init+0x8/0xa [ 0.061247] [<c1760a34>] start_kernel+0x34f/0x35f [ 0.061259] [<c1760520>] ? repair_env_string+0x51/0x51 [ 0.061272] [<c176036b>] i386_start_kernel+0x139/0x13c [ 0.061294] ---[ end trace d7b23e2954b99569 ]--- [ 0.064345] Enabling APIC mode: Flat. Using 1 I/O APICs [ 0.065379] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.075406] ..MP-BIOS bug: 8254 timer not connected to IO-APIC [ 0.075416] ...trying to set up timer (IRQ0) through the 8259A ... [ 0.075425] ..... (found apic 0 pin 2) ... [ 0.085441] ....... works. [ 0.085450] smpboot: CPU0: Intel(R) Atom(TM) CPU Z3745 @ 1.33GHz (fam: 06, model: 37, stepping: 08) [ 0.085489] TSC deadline timer enabled [ 0.085505] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, full-width counters, Intel PMU driver. [ 0.085531] ... version: 3 [ 0.085539] ... bit width: 40 [ 0.085547] ... generic registers: 2 [ 0.085555] ... value mask: 000000ffffffffff [ 0.085563] ... max period: 000000ffffffffff [ 0.085571] ... fixed-purpose events: 3 [ 0.085579] ... event mask: 0000000700000003 [ 0.087178] CPU 1 irqstacks, hard=f60a6000 soft=f60b0000 [ 0.087184] x86: Booting SMP configuration: [ 0.087195] .... node #0, CPUs: #1 [ 0.097309] Initializing CPU#1 [ 0.112526] CPU 2 irqstacks, hard=f60ba000 soft=f60bc000 [ 0.112545] #2 [ 0.122597] Initializing CPU#2 [ 0.137915] CPU 3 irqstacks, hard=f60c6000 soft=f60c8000 [ 0.137929] #3 [ 0.147984] Initializing CPU#3 [ 0.163166] x86: Booted up 1 node, 4 CPUs [ 0.163186] smpboot: Total of 4 processors activated (10656.00 BogoMIPS) [ 0.164201] devtmpfs: initialized [ 0.164699] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes) [ 0.164716] PM: Registering ACPI NVS region [mem 0x78c46000-0x78d45fff] (1048576 bytes) [ 0.164769] PM: Registering ACPI NVS region [mem 0x794c8000-0x79dc7fff] (9437184 bytes) [ 0.165321] pinctrl core: initialized pinctrl subsystem [ 0.165383] RTC time: 2:41:48, date: 05/13/14 [ 0.165472] NET: Registered protocol family 16 [ 0.165800] cpuidle: using governor ladder [ 0.165812] cpuidle: using governor menu [ 0.165887] ACPI: bus type PCI registered [ 0.166044] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.166062] PCI: not using MMCONFIG [ 0.166410] PCI: Using configuration type 1 for base access [ 0.171661] ACPI: Added _OSI(Module Device) [ 0.171676] ACPI: Added _OSI(Processor Device) [ 0.171686] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.171695] ACPI: Added _OSI(Processor Aggregator Device) [ 0.207365] ACPI: SSDT 0x78BCAA90 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.208929] ACPI: Dynamic OEM Table Load: [ 0.208943] ACPI: SSDT 0x00000000 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.209485] ACPI: SSDT 0x78BC9910 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.211341] ACPI: Dynamic OEM Table Load: [ 0.211354] ACPI: SSDT 0x00000000 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.219899] ACPI: SSDT 0x78BCBD90 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.221480] ACPI: Dynamic OEM Table Load: [ 0.221494] ACPI: SSDT 0x00000000 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.224032] ACPI: SSDT 0x78BCBF10 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.225433] ACPI: Dynamic OEM Table Load: [ 0.225447] ACPI: SSDT 0x00000000 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.231309] ACPI: Interpreter enabled [ 0.231344] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140214/hwxface-580) [ 0.231369] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140214/hwxface-580) [ 0.231391] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20140214/hwxface-580) [ 0.231413] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20140214/hwxface-580) [ 0.231434] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S5_] (20140214/hwxface-580) [ 0.231452] ACPI: (supports S0) [ 0.231461] ACPI: Using IOAPIC for interrupt routing [ 0.231553] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.239081] [Firmware Info]: PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] not reserved in ACPI motherboard resources [ 0.239099] PCI: not using MMCONFIG [ 0.239157] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.242534] ACPI: Power Resource [USBC] (on) [ 0.246624] ACPI: Power Resource [WWPR] (off) [ 0.257294] ACPI: Power Resource [PLPE] (on) [ 0.269398] ACPI: Power Resource [CLK0] (on) [ 0.269544] ACPI: Power Resource [CLK1] (on) [ 0.269912] ACPI: Power Resource [P28X] (off) [ 0.270071] ACPI: Power Resource [P18X] (off) [ 0.272628] ACPI: Power Resource [TCPR] (off) [ 0.279832] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.279860] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments MSI] [ 0.280083] \_SB_.PCI0:_OSC invalid UUID [ 0.280088] _OSC request data:1 1e 0 [ 0.280100] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM [ 0.281420] acpi PNP0A08:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. [ 0.281505] PCI host bridge to bus 0000:00 [ 0.281520] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.281533] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] [ 0.281545] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] [ 0.281557] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] [ 0.281569] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] [ 0.281581] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] [ 0.281593] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] [ 0.281606] pci_bus 0000:00: root bus resource [mem 0x90c00000-0x90ffffff] [ 0.281618] pci_bus 0000:00: root bus resource [mem 0x7af00001-0x7ef00000] [ 0.281630] pci_bus 0000:00: root bus resource [mem 0x80000000-0x908ffffe] [ 0.281642] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] [ 0.281667] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 [ 0.281861] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 [ 0.281886] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] [ 0.281906] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] [ 0.281924] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] [ 0.282151] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 [ 0.282182] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] [ 0.282262] pci 0000:00:14.0: PME# supported from D3hot D3cold [ 0.282440] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 [ 0.282472] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] [ 0.282489] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] [ 0.282590] pci 0000:00:1a.0: PME# supported from D0 D3hot [ 0.282765] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 [ 0.282991] pci_bus 0000:00: on NUMA node 0 [ 0.284118] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.284441] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.284761] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.285090] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.285410] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.285730] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.286050] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.286379] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.298870] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels [ 0.299585] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels [ 0.300369] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none [ 0.300387] vgaarb: loaded [ 0.300394] vgaarb: bridge control possible 0000:00:02.0 [ 0.300615] SCSI subsystem initialized [ 0.300634] ACPI: bus type USB registered [ 0.300722] usbcore: registered new interface driver usbfs [ 0.300766] usbcore: registered new interface driver hub [ 0.300847] usbcore: registered new device driver usb [ 0.310724] pps_core: LinuxPPS API ver. 1 registered [ 0.310737] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.310766] PTP clock support registered [ 0.311025] Advanced Linux Sound Architecture Driver Initialized. [ 0.311037] PCI: Using ACPI for IRQ routing [ 0.311047] PCI: pci_cache_line_size set to 64 bytes [ 0.311072] Expanded resource reserved due to conflict with PCI Bus 0000:00 [ 0.311085] e820: reserve RAM buffer [mem 0x0008f000-0x0008ffff] [ 0.311090] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff] [ 0.311095] e820: reserve RAM buffer [mem 0x78346000-0x7bffffff] [ 0.311100] e820: reserve RAM buffer [mem 0x794c8000-0x7bffffff] [ 0.311105] e820: reserve RAM buffer [mem 0x7a000000-0x7bffffff] [ 0.311559] cfg80211: Calling CRDA to update world regulatory domain [ 0.311786] Switched to clocksource refined-jiffies [ 0.311915] pnp: PnP ACPI init [ 0.311939] ACPI: bus type PNP registered [ 0.312056] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.312247] pnp 00:01: Plug and Play ACPI device, IDs PNP0103 (active) [ 0.312343] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active) [ 0.312471] system 00:03: [io 0x0680-0x069f] has been reserved [ 0.312487] system 00:03: [io 0x0400-0x047f] has been reserved [ 0.312500] system 00:03: [io 0x0500-0x05fe] has been reserved [ 0.312513] system 00:03: [io 0x0600-0x061f] has been reserved [ 0.312525] system 00:03: [io 0x164e-0x164f] has been reserved [ 0.312539] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active) [ 0.312898] pnp 00:04: Plug and Play ACPI device, IDs PNP0501 (active) [ 0.314419] pnp 00:05: Plug and Play ACPI device, IDs INT0002 (active) [ 0.314596] pnp 00:06: Plug and Play ACPI device, IDs INT33fc (active) [ 0.314770] pnp 00:07: Plug and Play ACPI device, IDs INT33fc (active) [ 0.314944] pnp 00:08: Plug and Play ACPI device, IDs INT33fc (active) [ 0.316122] pnp 00:09: unknown resource type 19 in _CRS [ 0.316136] pnp 00:09: can't evaluate _CRS: 1 [ 0.316211] pnp 00:09: Plug and Play ACPI device, IDs BCM2e3a (active) [ 0.323337] pnp 00:0a: unknown resource type 17 in _CRS [ 0.323352] pnp 00:0a: can't evaluate _CRS: 1 [ 0.323447] pnp 00:0a: Plug and Play ACPI device, IDs INTcfd9 PNP0c40 (active) [ 0.323599] pnp 00:0b: Plug and Play ACPI device, IDs INT33bd (active) [ 0.323947] pnp 00:0c: Plug and Play ACPI device, IDs INT3401 (active) [ 0.324267] pnp 00:0d: unknown resource type 17 in _CRS [ 0.324281] pnp 00:0d: can't evaluate _CRS: 1 [ 0.324361] pnp 00:0d: Plug and Play ACPI device, IDs INT3403 (active) [ 0.324502] pnp 00:0e: unknown resource type 17 in _CRS [ 0.324515] pnp 00:0e: can't evaluate _CRS: 1 [ 0.324594] pnp 00:0e: Plug and Play ACPI device, IDs INT3403 (active) [ 0.324790] pnp 00:0f: unknown resource type 17 in _CRS [ 0.324804] pnp 00:0f: can't evaluate _CRS: 1 [ 0.324888] pnp 00:0f: Plug and Play ACPI device, IDs INT3409 (active) [ 0.325189] pnp: PnP ACPI: found 16 devices [ 0.325200] ACPI: bus type PNP unregistered [ 0.330327] pci_bus 0000:00: resource 4 [io 0x0000-0x006f] [ 0.330335] pci_bus 0000:00: resource 5 [io 0x0078-0x0cf7] [ 0.330342] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff] [ 0.330348] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff] [ 0.330354] pci_bus 0000:00: resource 8 [mem 0x000c0000-0x000dffff] [ 0.330361] pci_bus 0000:00: resource 9 [mem 0x000e0000-0x000fffff] [ 0.330367] pci_bus 0000:00: resource 10 [mem 0x90c00000-0x90ffffff] [ 0.330373] pci_bus 0000:00: resource 11 [mem 0x7af00001-0x7ef00000] [ 0.330379] pci_bus 0000:00: resource 12 [mem 0x80000000-0x908ffffe] [ 0.330386] pci_bus 0000:00: resource 13 [mem 0xfed40000-0xfed40fff] [ 0.330439] NET: Registered protocol family 2 [ 0.330776] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.330825] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.330892] TCP: Hash tables configured (established 8192 bind 8192) [ 0.330933] TCP: reno registered [ 0.330945] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.330967] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.331076] NET: Registered protocol family 1 [ 0.331114] pci 0000:00:02.0: Boot video device [ 0.331512] PCI: CLS 0 bytes, default 64 [ 0.514091] microcode: CPU0 sig=0x30678, pf=0x2, revision=0x808 [ 0.514123] microcode: CPU1 sig=0x30678, pf=0x2, revision=0x808 [ 0.514152] microcode: CPU2 sig=0x30678, pf=0x2, revision=0x808 [ 0.514181] microcode: CPU3 sig=0x30678, pf=0x2, revision=0x808 [ 0.514325] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 0.515032] Scanning for low memory corruption every 60 seconds [ 0.515717] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.515772] audit: initializing netlink subsys (disabled) [ 0.515816] audit: type=2000 audit(1399948908.496:1): initialized [ 0.553602] bounce pool size: 64 pages [ 0.553620] HugeTLB registered 4 MB page size, pre-allocated 0 pages [ 0.559083] msgmni has been set to 1775 [ 0.559837] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.559853] io scheduler noop registered [ 0.559862] io scheduler deadline registered [ 0.560024] io scheduler cfq registered (default) [ 0.560385] intel_idle: MWAIT substates: 0x33000020 [ 0.560391] intel_idle: v0.4 model 0x37 [ 0.560395] intel_idle: lapic_timer_reliable_states 0xffffffff [ 0.567555] ACPI: AC Adapter [ADP1] (on-line) [ 0.567897] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 0.567919] ACPI: Power Button [PWRF] [ 0.567932] ACPI Warning: Could not enable fixed event - PowerButton (2) (20140214/evxface-628) [ 0.571549] button: probe of LNXPWRBN:00 failed with error -22 [ 0.577570] [Firmware Bug]: No valid trip found [ 0.577864] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.598273] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.599334] 80860F0A:00: ttyS1 at MMIO 0x9091d000 (irq = 39, base_baud = 2764800) is a 16550A [ 0.599604] 80860F0A:01: ttyS2 at MMIO 0x9091f000 (irq = 40, base_baud = 2764800) is a 16550A [ 0.599962] hpet: number irqs doesn't agree with number of timers [ 0.600113] Non-volatile memory driver v1.3 [ 0.600193] [drm] Initialized drm 1.1.0 20060810 [ 0.602197] [drm] Memory usable by graphics device = 2048M [ 0.607442] ACPI Error: Error attaching device[f60238a0] data [ 0.607460] (20140214/bus-143) [ 0.607708] ACPI Error: Error attaching device[f60238a0] data [ 0.607724] (20140214/bus-143) [ 0.607987] ACPI Error: Error attaching device[f60238a0] data [ 0.608003] (20140214/bus-143) [ 0.608251] ACPI Error: Error attaching device[f60238a0] data [ 0.608267] (20140214/bus-143) [ 0.608515] ACPI Error: Error attaching device[f60238a0] data [ 0.608531] (20140214/bus-143) [ 0.610972] i915 0000:00:02.0: irq 103 for MSI/MSI-X [ 0.610990] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.611001] [drm] Driver supports precise vblank timestamp query. [ 0.661459] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 0.662265] ACPI Error: Error attaching device[f60238a0] data [ 0.662282] (20140214/bus-143) [ 0.662679] ACPI Error: Error attaching device[f60238a0] data [ 0.662696] (20140214/bus-143) [ 1.172920] [drm] forcing HDMI-A-1 connector ON [ 1.246457] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ 1.267084] [drm] Got external EDID base block and 0 extensions from "edid/1200x1920.bin" for connector "HDMI-A-1" [ 1.408227] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4 [ 1.501620] fbcon: inteldrmfb (fb0) is primary device [ 1.624664] Switched to clocksource tsc [ 2.012203] Console: switching to colour frame buffer device 150x120 [ 2.041805] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device [ 2.041936] i915 0000:00:02.0: registered panic notifier [ 2.046235] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 2.048005] acpi device:1a: registered as cooling_device4 [ 2.049449] acpi device:21: registered as cooling_device5 [ 2.049750] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1 [ 2.050029] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 2.050526] brd: module loaded [ 2.051083] loop: module loaded [ 2.051814] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.052059] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1 [ 2.052384] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 2.052427] xhci_hcd 0000:00:14.0: irq 104 for MSI/MSI-X [ 2.052569] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.052718] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.052870] usb usb1: Product: xHCI Host Controller [ 2.052985] usb usb1: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.053119] usb usb1: SerialNumber: 0000:00:14.0 [ 2.053529] hub 1-0:1.0: USB hub found [ 2.053640] hub 1-0:1.0: 6 ports detected [ 2.055344] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.055551] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2 [ 2.055801] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2.055948] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.056173] usb usb2: Product: xHCI Host Controller [ 2.056281] usb usb2: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.056414] usb usb2: SerialNumber: 0000:00:14.0 [ 2.056825] hub 2-0:1.0: USB hub found [ 2.056928] hub 2-0:1.0: 1 port detected [ 2.057430] usbcore: registered new interface driver usb-storage [ 2.057694] i8042: PNP: No PS/2 controller found. Probing ports directly. [ 2.825230] [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off [ 3.101867] i8042: No controller found [ 3.102091] mousedev: PS/2 mouse device common for all mice [ 3.102390] ACPI Warning: Could not enable fixed event - RealTimeClock (4) (20140214/evxface-628) [ 3.102794] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0 [ 3.102963] rtc_cmos 00:00: alarms up to one day, 242 bytes nvram [ 3.103164] i2c /dev entries driver [ 3.104656] Intel P-state driver initializing. [ 3.104782] Intel pstate controlling: cpu 0 [ 3.104913] Intel pstate controlling: cpu 1 [ 3.105039] Intel pstate controlling: cpu 2 [ 3.105167] Intel pstate controlling: cpu 3 [ 3.105381] sdhci: Secure Digital Host Controller Interface driver [ 3.105514] sdhci: Copyright(c) Pierre Ossman [ 3.106808] mmc0: no vqmmc regulator found [ 3.106900] mmc0: no vmmc regulator found [ 3.108138] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA [ 3.109672] mmc1: no vqmmc regulator found [ 3.109765] mmc1: no vmmc regulator found [ 3.111002] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 3.111624] sdhci-acpi 80860F14:01: failed to setup card detect gpio [ 3.112767] mmc2: no vqmmc regulator found [ 3.112857] mmc2: no vmmc regulator found [ 3.114086] mmc2: SDHCI controller on ACPI [80860F14:01] using ADMA [ 3.114270] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.114403] EFI Variables Facility v0.08 2004-May-17 [ 3.124197] hidraw: raw HID events driver (C) Jiri Kosina [ 3.124699] usbcore: registered new interface driver usbhid [ 3.124801] usbhid: USB HID core driver [ 3.125249] TCP: cubic registered [ 3.125328] Initializing XFRM netlink socket [ 3.125678] NET: Registered protocol family 10 [ 3.126149] sit: IPv6 over IPv4 tunneling driver [ 3.126519] NET: Registered protocol family 17 [ 3.128471] Using IPI No-Shortcut mode [ 3.128835] registered taskstats version 1 [ 3.129457] Magic number: 14:311:662 [ 3.129606] console [netcon0] enabled [ 3.129673] netconsole: network logging started [ 3.129949] PM: Hibernation image not present or could not be loaded. [ 3.129958] ALSA device list: [ 3.130014] No soundcards found. [ 3.130135] Warning: unable to open an initial console. [ 3.132093] Freeing unused kernel memory: 4280K (c1760000 - c1b8e000) [ 3.152787] udevd[950]: starting version 173 [ 3.221479] mmc0: BKOPS_EN bit is not set [ 3.291604] mmc0: new HS200 MMC card at address 0001 [ 3.293171] mmcblk0: mmc0:0001 HCG8e\x04 58.2 GiB [ 3.299431] mmcblk0boot0: mmc0:0001 HCG8e\x04 partition 1 4.00 MiB [ 3.306618] mmcblk0boot1: mmc0:0001 HCG8e\x04 partition 2 4.00 MiB [ 3.308595] mmcblk0rpmb: mmc0:0001 HCG8e\x04 partition 3 4.00 MiB [ 3.310774] mmcblk0: p1 p2 [ 3.314502] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 3.315181] mmcblk0boot1: unknown partition table [ 3.318619] mmcblk0boot0: [ 3.325628] usb 2-1: New USB device found, idVendor=0451, idProduct=8046 [ 3.325736] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.326706] hub 2-1:1.0: USB hub found [ 3.326807] hub 2-1:1.0: 4 ports detected [ 3.457397] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 3.614821] usb 1-1: New USB device found, idVendor=0451, idProduct=8044 [ 3.638906] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 3.662978] usb 1-1: SerialNumber: 420208698DA1 [ 3.687826] hub 1-1:1.0: USB hub found [ 3.711486] Clocksource tsc unstable (delta = 86056090 ns) [ 3.735632] Switched to clocksource refined-jiffies [ 3.735695] hub 1-1:1.0: 4 ports detected [ 3.871722] usb 1-3: new high-speed USB device number 3 using xhci_hcd [ 4.046409] usb 1-3: New USB device found, idVendor=12d1, idProduct=1570 [ 4.070299] usb 1-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0 [ 4.094161] usb 1-3: Product: HUAWEI Mobile Broadband Module [ 4.117914] usb 1-3: Manufacturer: Huawei Technologies Co., Ltd. [ 4.287085] usb 1-4: new high-speed USB device number 4 using xhci_hcd [ 4.469915] usb 1-4: New USB device found, idVendor=0951, idProduct=1603 [ 4.493603] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.517281] usb 1-4: Product: DataTraveler 2.0 [ 4.540866] usb 1-4: Manufacturer: Kingston [ 4.564397] usb 1-4: SerialNumber: 89900000000000000000017E [ 4.588912] usb-storage 1-4:1.0: USB Mass Storage device detected [ 4.612720] scsi0 : usb-storage 1-4:1.0 [ 4.707537] usb 1-1.2: new high-speed USB device number 5 using xhci_hcd [ 4.814374] usb 1-1.2: New USB device found, idVendor=0424, idProduct=7500 [ 4.837670] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.860860] usb 1-1.2: Product: LAN7500 [ 4.883907] usb 1-1.2: Manufacturer: SMSC [ 4.906875] usb 1-1.2: SerialNumber: 00800f11700e [ 5.005944] usb 1-1.3: new low-speed USB device number 6 using xhci_hcd [ 5.120893] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c312 [ 5.143940] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.166934] usb 1-1.3: Product: USB Multimedia Keyboard [ 5.189795] usb 1-1.3: Manufacturer: LITEON Technology [ 5.213180] usb 1-1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 192 microframes [ 5.240839] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C312.0001/input/input2 [ 5.288118] hid-generic 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:14.0-1.3/input0 [ 6.046665] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 [ 6.072550] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 6.097262] sd 0:0:0:0: [sda] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB) [ 6.122493] sd 0:0:0:0: [sda] Write Protect is off [ 6.147054] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00 [ 6.147419] sd 0:0:0:0: [sda] No Caching mode page found [ 6.171970] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 6.199476] sda: sda1 sda2 [ 6.234277] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 6.565533] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities [ 6.594874] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities [ 6.633506] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 6.912041] random: nonblocking pool is initialized [ 7.850402] udevd[1663]: starting version 173 [ 7.985774] sst-acpi 80860F28:00: Direct firmware load failed with error -2 [ 7.996052] sst-acpi 80860F28:00: Falling back to user helper [ 8.073790] smsc75xx v1.0.0 [ 8.088302] sst-acpi 80860F28:00: Cannot load firmware intel/fw_sst_0f28.bin-i2s_master [ 8.088802] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 8.088820] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 8.097125] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 8.097140] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 8.136577] smsc75xx 1-1.2:1.0 eth0: register 'smsc75xx' at usb-0000:00:14.0-1.2, smsc75xx USB 2.0 Gigabit Ethernet, 70:2f:97:00:22:4f [ 8.145263] usbcore: registered new interface driver smsc75xx [ 8.145392] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 8.145429] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 16.314692] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 16.343169] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 16.369905] mmcblk0rpmb: retrying using single block read [ 16.398887] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.428174] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.457259] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.486166] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.514941] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.543616] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.569984] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 16.596349] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 24.832319] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 24.861222] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 24.888253] mmcblk0rpmb: retrying using single block read [ 24.917282] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.946559] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.975652] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.004522] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.033198] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.061704] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.087896] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 25.114126] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 33.349878] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 33.378699] mmcblk0rpmb: error -110 transferring data, sector 0, nr 16, cmd response 0x900, card status 0xb00 [ 33.405713] mmcblk0rpmb: retrying using single block read [ 33.434832] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.464123] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.493276] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.522318] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.551240] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.580067] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.606641] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 33.633265] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 33.660054] end_request: I/O error, dev mmcblk0rpmb, sector 8 [ 33.686867] Buffer I/O error on device mmcblk0rpmb, logical block 1 [ 41.927437] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 41.956639] mmcblk0rpmb: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 41.984021] mmcblk0rpmb: retrying using single block read [ 42.013480] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.043118] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.072609] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.102063] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.131355] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.160452] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.187206] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 42.213908] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 46.035190] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 47.575941] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 47.602582] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 47.633581] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 =2D-nextPart1435871.THQkheyNVN-- This is a multi-part message in MIME format. [-- Attachment #1.2: Type: text/plain, Size: 1388 bytes --] Lan Tianyu wrote: > On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > > Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) > >> operation > >> region. It allows ACPI aml code able to access such kind of devices to > >> implement some ACPI standard method. > >> > >> On the Asus T100TA, Bios use GenericSerialBus operation region to access > >> i2c device to get battery info. So battery function depends on the I2C > >> operation region support. Here is the bug link. > >> https://bugzilla.kernel.org/show_bug.cgi?id=69011 > > > > Hi all, > > > I have tested this series and got some errors, but no additional functionality: > Hi Rolf: > Thanks for test. Could you attach the output of dmesg and acpidump? > Which machine you are testing on? Hi, this is an Aava Inari 8 tablet (pre-release hardware). Please find the DSDT and the dmesg.log attached. In case of any further questions don't hesitate to ask, I'll try to be more responsible. Regards, Eike -- Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 Göttingen, Germany Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160 Geschäftsführung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source [-- Attachment #1.3: dsdt.dat --] [-- Type: application/octet-stream, Size: 47852 bytes --] [-- Attachment #1.4: dmesg.log-3.15-rc5-inari --] [-- Type: text/plain, Size: 47350 bytes --] [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.0-rc5-Inari (root@devpool02) (gcc version 4.6.4 (Emlix Linux Inari) ) #1 SMP Tue May 13 08:40:31 UTC 2014 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable [ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009dfff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078345fff] usable [ 0.000000] BIOS-e820: [mem 0x0000000078346000-0x0000000078c45fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000078c46000-0x0000000078d45fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000078d46000-0x0000000078d85fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000078d86000-0x00000000794c7fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000794c8000-0x0000000079dc7fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000079dc8000-0x0000000079ffffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] efi: EFI v2.31 by INSYDE Corp. [ 0.000000] efi: ACPI 2.0=0x78d85014 SMBIOS=0x78c45000 [ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB) [ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB) [ 0.000000] efi: mem02: type=7, attr=0xf, range=[0x0000000000007000-0x000000000008f000) (0MB) [ 0.000000] efi: mem03: type=10, attr=0xf, range=[0x000000000008f000-0x0000000000090000) (0MB) [ 0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x000000000009e000) (0MB) [ 0.000000] efi: mem05: type=0, attr=0xf, range=[0x000000000009e000-0x00000000000a0000) (0MB) [ 0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000000100000-0x0000000001000000) (15MB) [ 0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000001000000-0x0000000001ded000) (13MB) [ 0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000001ded000-0x0000000020000000) (482MB) [ 0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020100000) (1MB) [ 0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000020100000-0x0000000071dc0000) (1308MB) [ 0.000000] efi: mem11: type=4, attr=0xf, range=[0x0000000071dc0000-0x0000000071de0000) (0MB) [ 0.000000] efi: mem12: type=7, attr=0xf, range=[0x0000000071de0000-0x0000000073356000) (21MB) [ 0.000000] efi: mem13: type=2, attr=0xf, range=[0x0000000073356000-0x0000000073358000) (0MB) [ 0.000000] efi: mem14: type=1, attr=0xf, range=[0x0000000073358000-0x0000000073b46000) (7MB) [ 0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000073b46000-0x0000000076a92000) (47MB) [ 0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000076a92000-0x00000000774ec000) (10MB) [ 0.000000] efi: mem17: type=7, attr=0xf, range=[0x00000000774ec000-0x00000000774f9000) (0MB) [ 0.000000] efi: mem18: type=4, attr=0xf, range=[0x00000000774f9000-0x0000000077d46000) (8MB) [ 0.000000] efi: mem19: type=7, attr=0xf, range=[0x0000000077d46000-0x0000000078161000) (4MB) [ 0.000000] efi: mem20: type=3, attr=0xf, range=[0x0000000078161000-0x0000000078346000) (1MB) [ 0.000000] efi: mem21: type=5, attr=0x800000000000000f, range=[0x0000000078346000-0x0000000078546000) (2MB) [ 0.000000] efi: mem22: type=6, attr=0x800000000000000f, range=[0x0000000078546000-0x0000000078846000) (3MB) [ 0.000000] efi: mem23: type=0, attr=0xf, range=[0x0000000078846000-0x0000000078c46000) (4MB) [ 0.000000] efi: mem24: type=10, attr=0xf, range=[0x0000000078c46000-0x0000000078d46000) (1MB) [ 0.000000] efi: mem25: type=9, attr=0xf, range=[0x0000000078d46000-0x0000000078d86000) (0MB) [ 0.000000] efi: mem26: type=4, attr=0xf, range=[0x0000000078d86000-0x00000000794c8000) (7MB) [ 0.000000] efi: mem27: type=10, attr=0xf, range=[0x00000000794c8000-0x0000000079dc8000) (9MB) [ 0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000079dc8000-0x000000007a000000) (2MB) [ 0.000000] efi: mem29: type=11, attr=0x8000000000000001, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB) [ 0.000000] efi: mem30: type=11, attr=0x8000000000000000, range=[0x00000000fed01000-0x00000000fed02000) (0MB) [ 0.000000] efi: mem31: type=11, attr=0x8000000000000000, range=[0x00000000ffd00000-0x0000000100000000) (3MB) [ 0.000000] SMBIOS 2.7 present. [ 0.000000] DMI: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0FFD00000 mask FFFC00000 write-protect [ 0.000000] 1 base 000000000 mask FC0000000 write-back [ 0.000000] 2 base 040000000 mask FE0000000 write-back [ 0.000000] 3 base 060000000 mask FF0000000 write-back [ 0.000000] 4 base 070000000 mask FF8000000 write-back [ 0.000000] 5 base 078000000 mask FFC000000 write-back [ 0.000000] 6 base 07B000000 mask FFF000000 uncachable [ 0.000000] 7 base 07AE00000 mask FFFE00000 uncachable [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] initial memory mapped: [mem 0x00000000-0x01ffffff] [ 0.000000] Base memory trampoline at [c009a000] 9a000 size 16384 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] [mem 0x00000000-0x000fffff] page 4k [ 0.000000] init_memory_mapping: [mem 0x37000000-0x373fffff] [ 0.000000] [mem 0x37000000-0x373fffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x30000000-0x36ffffff] [ 0.000000] [mem 0x30000000-0x36ffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.000000] [mem 0x00100000-0x003fffff] page 4k [ 0.000000] [mem 0x00400000-0x1fffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x20100000-0x2fffffff] [ 0.000000] [mem 0x20100000-0x203fffff] page 4k [ 0.000000] [mem 0x20400000-0x2fffffff] page 2M [ 0.000000] BRK [0x01cd0000, 0x01cd0fff] PGTABLE [ 0.000000] init_memory_mapping: [mem 0x37400000-0x377fdfff] [ 0.000000] [mem 0x37400000-0x377fdfff] page 4k [ 0.000000] BRK [0x01cd1000, 0x01cd1fff] PGTABLE [ 0.000000] ACPI: RSDP 0x78D85014 000024 (v02 INSYDE) [ 0.000000] ACPI: XSDT 0x78D61188 0000D4 (v01 INSYDE INSYDE 00000003 01000013) [ 0.000000] ACPI: FACP 0x78D7F000 00010C (v05 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: DSDT 0x78D6E000 00BAEC (v02 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D84000 000236 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: TCPA 0x78D83000 000032 (v02 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D81000 000042 (v01 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: DBG2 0x78D80000 000072 (v00 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: HPET 0x78D7E000 000038 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: LPIT 0x78D7D000 000104 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: APIC 0x78D7C000 00006C (v03 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: MCFG 0x78D7B000 00003C (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SLIC 0x78D7A000 000176 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6D000 0005FB (v01 INSYDE CpuDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6B000 0018C2 (v01 INSYDE DptfTab 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6A000 000058 (v01 INSYDE LowPwrM 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D69000 0000FF (v01 INSYDE SoCDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D68000 00043A (v01 INSYDE Tpm2Tabl 00001000 ACPI 00040000) [ 0.000000] ACPI: TPM2 0x78D67000 000034 (v03 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D66000 000763 (v01 INSYDE CpuPm 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D65000 000290 (v01 INSYDE Cpu0Tst 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D64000 00017A (v01 INSYDE ApTst 00003000 ACPI 00040000) [ 0.000000] ACPI: FPDT 0x78D63000 000044 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: CSRT 0x78D62000 00014C (v00 INSYDE INSYDE 00000005 ACPI 00040000) [ 0.000000] ACPI: BGRT 0x78D60000 000038 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] 1064MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] BRK [0x01cd2000, 0x01cd2fff] PGTABLE [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00001000-0x00ffffff] [ 0.000000] Normal [mem 0x01000000-0x377fdfff] [ 0.000000] HighMem [mem 0x377fe000-0x79ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00001000-0x0008efff] [ 0.000000] node 0: [mem 0x00090000-0x0009dfff] [ 0.000000] node 0: [mem 0x00100000-0x1fffffff] [ 0.000000] node 0: [mem 0x20100000-0x78345fff] [ 0.000000] node 0: [mem 0x78d86000-0x794c7fff] [ 0.000000] node 0: [mem 0x79dc8000-0x79ffffff] [ 0.000000] On node 0 totalpages: 494428 [ 0.000000] free_area_init_node: node 0, pgdat c17500c0, node_mem_map f68be020 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3996 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 222974 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2129 pages used for memmap [ 0.000000] HighMem zone: 267458 pages, LIFO batch:31 [ 0.000000] Using APIC driver default [ 0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable [ 0.000000] Reserving Intel graphics stolen memory at 0x7af00000-0x7eefffff [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-86 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.000000] nr_irqs_gsi: 103 [ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff] [ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x200fffff] [ 0.000000] e820: [mem 0x7ef00000-0xe00f7fff] available for PCI devices [ 0.000000] setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 12 pages/cpu @f6882000 s27200 r0 d21952 u49152 [ 0.000000] pcpu-alloc: s27200 r0 d21952 u49152 alloc=12*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 492652 [ 0.000000] Kernel command line: root=/dev/sda2 video=HDMI-A-1:1200x1920e drm_kms_helper.edid_firmware=HDMI-A-1:edid/1200x1920.bin [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0007a000) [ 0.000000] Initializing Movable for node 0 (00000000:00000000) [ 0.000000] Memory: 1916980K/1977712K available (5569K kernel code, 331K rwdata, 1640K rodata, 4280K init, 1232K bss, 60732K reserved, 1038956K highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfff66000 - 0xfffff000 ( 612 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1760000 - 0xc1b8e000 (4280 kB) [ 0.000000] .data : 0xc1570a99 - 0xc175eec0 (1977 kB) [ 0.000000] .text : 0xc1000000 - 0xc1570a99 (5570 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:1024 16 [ 0.000000] CPU 0 irqstacks, hard=f600c000 soft=f600e000 [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Maximum core-clock to bus-clock ratio: 0xa [ 0.000000] Resolved frequency ID: 2, frequency: 133200 KHz [ 0.000000] TSC runs at 1332000 KHz [ 0.000000] lapic_timer_frequency = 133200 [ 0.000000] tsc: Detected 1332.000 MHz processor [ 0.000038] Calibrating delay loop (skipped), value calculated using timer frequency.. 2664.00 BogoMIPS (lpj=1332000) [ 0.000056] pid_max: default: 32768 minimum: 301 [ 0.000073] ACPI: Core revision 20140214 [ 0.045134] ACPI: All ACPI Tables successfully acquired [ 0.048115] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.048134] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.048462] Initializing cgroup subsys freezer [ 0.048505] CPU: Physical Processor ID: 0 [ 0.048515] CPU: Processor Core ID: 0 [ 0.048525] ENERGY_PERF_BIAS: Set to 'normal', was 'performance' [ 0.048525] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8) [ 0.060656] mce: CPU supports 6 MCE banks [ 0.060675] CPU0: Thermal monitoring enabled (TM1) [ 0.060696] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0 [ 0.060696] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0 [ 0.060696] tlb_flushall_shift: 6 [ 0.060903] Freeing SMP alternatives memory: 20K (c1b8e000 - c1b93000) [ 0.060940] ------------[ cut here ]------------ [ 0.060959] WARNING: CPU: 0 PID: 0 at /tmp/e2/build/linux-git/mm/early_ioremap.c:136 __early_ioremap+0xbe/0x1c2() [ 0.060972] Modules linked in: [ 0.060985] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc5-Inari #1 [ 0.060995] Hardware name: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.061009] 00000000 00000000 c170df00 c1564914 c16631ec c170df30 c103e4aa c165b654 [ 0.061047] 00000000 00000000 c16631ec 00000088 c177cdf5 c177cdf5 00041ee6 00005800 [ 0.061069] c1b97800 c170df40 c103e4ed 00000009 00000000 c170df98 c177cdf5 00000000 [ 0.061090] Call Trace: [ 0.061105] [<c1564914>] dump_stack+0x41/0x52 [ 0.061119] [<c103e4aa>] warn_slowpath_common+0x7a/0xa0 [ 0.061132] [<c177cdf5>] ? __early_ioremap+0xbe/0x1c2 [ 0.061144] [<c177cdf5>] ? __early_ioremap+0xbe/0x1c2 [ 0.061156] [<c103e4ed>] warn_slowpath_null+0x1d/0x20 [ 0.061168] [<c177cdf5>] __early_ioremap+0xbe/0x1c2 [ 0.061182] [<c10c4b42>] ? __get_free_pages+0x22/0x30 [ 0.061196] [<c10f217a>] ? __kmalloc+0xea/0xf0 [ 0.061209] [<c177d0b8>] early_memremap+0xd/0xf [ 0.061221] [<c1773828>] efi_bgrt_init+0xf0/0x135 [ 0.061234] [<c1773150>] efi_late_init+0x8/0xa [ 0.061247] [<c1760a34>] start_kernel+0x34f/0x35f [ 0.061259] [<c1760520>] ? repair_env_string+0x51/0x51 [ 0.061272] [<c176036b>] i386_start_kernel+0x139/0x13c [ 0.061294] ---[ end trace d7b23e2954b99569 ]--- [ 0.064345] Enabling APIC mode: Flat. Using 1 I/O APICs [ 0.065379] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.075406] ..MP-BIOS bug: 8254 timer not connected to IO-APIC [ 0.075416] ...trying to set up timer (IRQ0) through the 8259A ... [ 0.075425] ..... (found apic 0 pin 2) ... [ 0.085441] ....... works. [ 0.085450] smpboot: CPU0: Intel(R) Atom(TM) CPU Z3745 @ 1.33GHz (fam: 06, model: 37, stepping: 08) [ 0.085489] TSC deadline timer enabled [ 0.085505] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, full-width counters, Intel PMU driver. [ 0.085531] ... version: 3 [ 0.085539] ... bit width: 40 [ 0.085547] ... generic registers: 2 [ 0.085555] ... value mask: 000000ffffffffff [ 0.085563] ... max period: 000000ffffffffff [ 0.085571] ... fixed-purpose events: 3 [ 0.085579] ... event mask: 0000000700000003 [ 0.087178] CPU 1 irqstacks, hard=f60a6000 soft=f60b0000 [ 0.087184] x86: Booting SMP configuration: [ 0.087195] .... node #0, CPUs: #1 [ 0.097309] Initializing CPU#1 [ 0.112526] CPU 2 irqstacks, hard=f60ba000 soft=f60bc000 [ 0.112545] #2 [ 0.122597] Initializing CPU#2 [ 0.137915] CPU 3 irqstacks, hard=f60c6000 soft=f60c8000 [ 0.137929] #3 [ 0.147984] Initializing CPU#3 [ 0.163166] x86: Booted up 1 node, 4 CPUs [ 0.163186] smpboot: Total of 4 processors activated (10656.00 BogoMIPS) [ 0.164201] devtmpfs: initialized [ 0.164699] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes) [ 0.164716] PM: Registering ACPI NVS region [mem 0x78c46000-0x78d45fff] (1048576 bytes) [ 0.164769] PM: Registering ACPI NVS region [mem 0x794c8000-0x79dc7fff] (9437184 bytes) [ 0.165321] pinctrl core: initialized pinctrl subsystem [ 0.165383] RTC time: 2:41:48, date: 05/13/14 [ 0.165472] NET: Registered protocol family 16 [ 0.165800] cpuidle: using governor ladder [ 0.165812] cpuidle: using governor menu [ 0.165887] ACPI: bus type PCI registered [ 0.166044] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.166062] PCI: not using MMCONFIG [ 0.166410] PCI: Using configuration type 1 for base access [ 0.171661] ACPI: Added _OSI(Module Device) [ 0.171676] ACPI: Added _OSI(Processor Device) [ 0.171686] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.171695] ACPI: Added _OSI(Processor Aggregator Device) [ 0.207365] ACPI: SSDT 0x78BCAA90 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.208929] ACPI: Dynamic OEM Table Load: [ 0.208943] ACPI: SSDT 0x00000000 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.209485] ACPI: SSDT 0x78BC9910 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.211341] ACPI: Dynamic OEM Table Load: [ 0.211354] ACPI: SSDT 0x00000000 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.219899] ACPI: SSDT 0x78BCBD90 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.221480] ACPI: Dynamic OEM Table Load: [ 0.221494] ACPI: SSDT 0x00000000 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.224032] ACPI: SSDT 0x78BCBF10 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.225433] ACPI: Dynamic OEM Table Load: [ 0.225447] ACPI: SSDT 0x00000000 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.231309] ACPI: Interpreter enabled [ 0.231344] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140214/hwxface-580) [ 0.231369] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140214/hwxface-580) [ 0.231391] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20140214/hwxface-580) [ 0.231413] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20140214/hwxface-580) [ 0.231434] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S5_] (20140214/hwxface-580) [ 0.231452] ACPI: (supports S0) [ 0.231461] ACPI: Using IOAPIC for interrupt routing [ 0.231553] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.239081] [Firmware Info]: PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] not reserved in ACPI motherboard resources [ 0.239099] PCI: not using MMCONFIG [ 0.239157] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.242534] ACPI: Power Resource [USBC] (on) [ 0.246624] ACPI: Power Resource [WWPR] (off) [ 0.257294] ACPI: Power Resource [PLPE] (on) [ 0.269398] ACPI: Power Resource [CLK0] (on) [ 0.269544] ACPI: Power Resource [CLK1] (on) [ 0.269912] ACPI: Power Resource [P28X] (off) [ 0.270071] ACPI: Power Resource [P18X] (off) [ 0.272628] ACPI: Power Resource [TCPR] (off) [ 0.279832] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.279860] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments MSI] [ 0.280083] \_SB_.PCI0:_OSC invalid UUID [ 0.280088] _OSC request data:1 1e 0 [ 0.280100] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM [ 0.281420] acpi PNP0A08:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. [ 0.281505] PCI host bridge to bus 0000:00 [ 0.281520] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.281533] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] [ 0.281545] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] [ 0.281557] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] [ 0.281569] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] [ 0.281581] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] [ 0.281593] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] [ 0.281606] pci_bus 0000:00: root bus resource [mem 0x90c00000-0x90ffffff] [ 0.281618] pci_bus 0000:00: root bus resource [mem 0x7af00001-0x7ef00000] [ 0.281630] pci_bus 0000:00: root bus resource [mem 0x80000000-0x908ffffe] [ 0.281642] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] [ 0.281667] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 [ 0.281861] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 [ 0.281886] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] [ 0.281906] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] [ 0.281924] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] [ 0.282151] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 [ 0.282182] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] [ 0.282262] pci 0000:00:14.0: PME# supported from D3hot D3cold [ 0.282440] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 [ 0.282472] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] [ 0.282489] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] [ 0.282590] pci 0000:00:1a.0: PME# supported from D0 D3hot [ 0.282765] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 [ 0.282991] pci_bus 0000:00: on NUMA node 0 [ 0.284118] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.284441] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.284761] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.285090] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.285410] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.285730] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.286050] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.286379] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.298870] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels [ 0.299585] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels [ 0.300369] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none [ 0.300387] vgaarb: loaded [ 0.300394] vgaarb: bridge control possible 0000:00:02.0 [ 0.300615] SCSI subsystem initialized [ 0.300634] ACPI: bus type USB registered [ 0.300722] usbcore: registered new interface driver usbfs [ 0.300766] usbcore: registered new interface driver hub [ 0.300847] usbcore: registered new device driver usb [ 0.310724] pps_core: LinuxPPS API ver. 1 registered [ 0.310737] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.310766] PTP clock support registered [ 0.311025] Advanced Linux Sound Architecture Driver Initialized. [ 0.311037] PCI: Using ACPI for IRQ routing [ 0.311047] PCI: pci_cache_line_size set to 64 bytes [ 0.311072] Expanded resource reserved due to conflict with PCI Bus 0000:00 [ 0.311085] e820: reserve RAM buffer [mem 0x0008f000-0x0008ffff] [ 0.311090] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff] [ 0.311095] e820: reserve RAM buffer [mem 0x78346000-0x7bffffff] [ 0.311100] e820: reserve RAM buffer [mem 0x794c8000-0x7bffffff] [ 0.311105] e820: reserve RAM buffer [mem 0x7a000000-0x7bffffff] [ 0.311559] cfg80211: Calling CRDA to update world regulatory domain [ 0.311786] Switched to clocksource refined-jiffies [ 0.311915] pnp: PnP ACPI init [ 0.311939] ACPI: bus type PNP registered [ 0.312056] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.312247] pnp 00:01: Plug and Play ACPI device, IDs PNP0103 (active) [ 0.312343] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active) [ 0.312471] system 00:03: [io 0x0680-0x069f] has been reserved [ 0.312487] system 00:03: [io 0x0400-0x047f] has been reserved [ 0.312500] system 00:03: [io 0x0500-0x05fe] has been reserved [ 0.312513] system 00:03: [io 0x0600-0x061f] has been reserved [ 0.312525] system 00:03: [io 0x164e-0x164f] has been reserved [ 0.312539] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active) [ 0.312898] pnp 00:04: Plug and Play ACPI device, IDs PNP0501 (active) [ 0.314419] pnp 00:05: Plug and Play ACPI device, IDs INT0002 (active) [ 0.314596] pnp 00:06: Plug and Play ACPI device, IDs INT33fc (active) [ 0.314770] pnp 00:07: Plug and Play ACPI device, IDs INT33fc (active) [ 0.314944] pnp 00:08: Plug and Play ACPI device, IDs INT33fc (active) [ 0.316122] pnp 00:09: unknown resource type 19 in _CRS [ 0.316136] pnp 00:09: can't evaluate _CRS: 1 [ 0.316211] pnp 00:09: Plug and Play ACPI device, IDs BCM2e3a (active) [ 0.323337] pnp 00:0a: unknown resource type 17 in _CRS [ 0.323352] pnp 00:0a: can't evaluate _CRS: 1 [ 0.323447] pnp 00:0a: Plug and Play ACPI device, IDs INTcfd9 PNP0c40 (active) [ 0.323599] pnp 00:0b: Plug and Play ACPI device, IDs INT33bd (active) [ 0.323947] pnp 00:0c: Plug and Play ACPI device, IDs INT3401 (active) [ 0.324267] pnp 00:0d: unknown resource type 17 in _CRS [ 0.324281] pnp 00:0d: can't evaluate _CRS: 1 [ 0.324361] pnp 00:0d: Plug and Play ACPI device, IDs INT3403 (active) [ 0.324502] pnp 00:0e: unknown resource type 17 in _CRS [ 0.324515] pnp 00:0e: can't evaluate _CRS: 1 [ 0.324594] pnp 00:0e: Plug and Play ACPI device, IDs INT3403 (active) [ 0.324790] pnp 00:0f: unknown resource type 17 in _CRS [ 0.324804] pnp 00:0f: can't evaluate _CRS: 1 [ 0.324888] pnp 00:0f: Plug and Play ACPI device, IDs INT3409 (active) [ 0.325189] pnp: PnP ACPI: found 16 devices [ 0.325200] ACPI: bus type PNP unregistered [ 0.330327] pci_bus 0000:00: resource 4 [io 0x0000-0x006f] [ 0.330335] pci_bus 0000:00: resource 5 [io 0x0078-0x0cf7] [ 0.330342] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff] [ 0.330348] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff] [ 0.330354] pci_bus 0000:00: resource 8 [mem 0x000c0000-0x000dffff] [ 0.330361] pci_bus 0000:00: resource 9 [mem 0x000e0000-0x000fffff] [ 0.330367] pci_bus 0000:00: resource 10 [mem 0x90c00000-0x90ffffff] [ 0.330373] pci_bus 0000:00: resource 11 [mem 0x7af00001-0x7ef00000] [ 0.330379] pci_bus 0000:00: resource 12 [mem 0x80000000-0x908ffffe] [ 0.330386] pci_bus 0000:00: resource 13 [mem 0xfed40000-0xfed40fff] [ 0.330439] NET: Registered protocol family 2 [ 0.330776] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.330825] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.330892] TCP: Hash tables configured (established 8192 bind 8192) [ 0.330933] TCP: reno registered [ 0.330945] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.330967] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.331076] NET: Registered protocol family 1 [ 0.331114] pci 0000:00:02.0: Boot video device [ 0.331512] PCI: CLS 0 bytes, default 64 [ 0.514091] microcode: CPU0 sig=0x30678, pf=0x2, revision=0x808 [ 0.514123] microcode: CPU1 sig=0x30678, pf=0x2, revision=0x808 [ 0.514152] microcode: CPU2 sig=0x30678, pf=0x2, revision=0x808 [ 0.514181] microcode: CPU3 sig=0x30678, pf=0x2, revision=0x808 [ 0.514325] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 0.515032] Scanning for low memory corruption every 60 seconds [ 0.515717] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.515772] audit: initializing netlink subsys (disabled) [ 0.515816] audit: type=2000 audit(1399948908.496:1): initialized [ 0.553602] bounce pool size: 64 pages [ 0.553620] HugeTLB registered 4 MB page size, pre-allocated 0 pages [ 0.559083] msgmni has been set to 1775 [ 0.559837] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.559853] io scheduler noop registered [ 0.559862] io scheduler deadline registered [ 0.560024] io scheduler cfq registered (default) [ 0.560385] intel_idle: MWAIT substates: 0x33000020 [ 0.560391] intel_idle: v0.4 model 0x37 [ 0.560395] intel_idle: lapic_timer_reliable_states 0xffffffff [ 0.567555] ACPI: AC Adapter [ADP1] (on-line) [ 0.567897] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 0.567919] ACPI: Power Button [PWRF] [ 0.567932] ACPI Warning: Could not enable fixed event - PowerButton (2) (20140214/evxface-628) [ 0.571549] button: probe of LNXPWRBN:00 failed with error -22 [ 0.577570] [Firmware Bug]: No valid trip found [ 0.577864] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.598273] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.599334] 80860F0A:00: ttyS1 at MMIO 0x9091d000 (irq = 39, base_baud = 2764800) is a 16550A [ 0.599604] 80860F0A:01: ttyS2 at MMIO 0x9091f000 (irq = 40, base_baud = 2764800) is a 16550A [ 0.599962] hpet: number irqs doesn't agree with number of timers [ 0.600113] Non-volatile memory driver v1.3 [ 0.600193] [drm] Initialized drm 1.1.0 20060810 [ 0.602197] [drm] Memory usable by graphics device = 2048M [ 0.607442] ACPI Error: Error attaching device[f60238a0] data [ 0.607460] (20140214/bus-143) [ 0.607708] ACPI Error: Error attaching device[f60238a0] data [ 0.607724] (20140214/bus-143) [ 0.607987] ACPI Error: Error attaching device[f60238a0] data [ 0.608003] (20140214/bus-143) [ 0.608251] ACPI Error: Error attaching device[f60238a0] data [ 0.608267] (20140214/bus-143) [ 0.608515] ACPI Error: Error attaching device[f60238a0] data [ 0.608531] (20140214/bus-143) [ 0.610972] i915 0000:00:02.0: irq 103 for MSI/MSI-X [ 0.610990] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.611001] [drm] Driver supports precise vblank timestamp query. [ 0.661459] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 0.662265] ACPI Error: Error attaching device[f60238a0] data [ 0.662282] (20140214/bus-143) [ 0.662679] ACPI Error: Error attaching device[f60238a0] data [ 0.662696] (20140214/bus-143) [ 1.172920] [drm] forcing HDMI-A-1 connector ON [ 1.246457] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ 1.267084] [drm] Got external EDID base block and 0 extensions from "edid/1200x1920.bin" for connector "HDMI-A-1" [ 1.408227] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4 [ 1.501620] fbcon: inteldrmfb (fb0) is primary device [ 1.624664] Switched to clocksource tsc [ 2.012203] Console: switching to colour frame buffer device 150x120 [ 2.041805] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device [ 2.041936] i915 0000:00:02.0: registered panic notifier [ 2.046235] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 2.048005] acpi device:1a: registered as cooling_device4 [ 2.049449] acpi device:21: registered as cooling_device5 [ 2.049750] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1 [ 2.050029] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 2.050526] brd: module loaded [ 2.051083] loop: module loaded [ 2.051814] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.052059] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1 [ 2.052384] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 2.052427] xhci_hcd 0000:00:14.0: irq 104 for MSI/MSI-X [ 2.052569] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.052718] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.052870] usb usb1: Product: xHCI Host Controller [ 2.052985] usb usb1: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.053119] usb usb1: SerialNumber: 0000:00:14.0 [ 2.053529] hub 1-0:1.0: USB hub found [ 2.053640] hub 1-0:1.0: 6 ports detected [ 2.055344] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.055551] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2 [ 2.055801] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2.055948] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.056173] usb usb2: Product: xHCI Host Controller [ 2.056281] usb usb2: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.056414] usb usb2: SerialNumber: 0000:00:14.0 [ 2.056825] hub 2-0:1.0: USB hub found [ 2.056928] hub 2-0:1.0: 1 port detected [ 2.057430] usbcore: registered new interface driver usb-storage [ 2.057694] i8042: PNP: No PS/2 controller found. Probing ports directly. [ 2.825230] [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off [ 3.101867] i8042: No controller found [ 3.102091] mousedev: PS/2 mouse device common for all mice [ 3.102390] ACPI Warning: Could not enable fixed event - RealTimeClock (4) (20140214/evxface-628) [ 3.102794] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0 [ 3.102963] rtc_cmos 00:00: alarms up to one day, 242 bytes nvram [ 3.103164] i2c /dev entries driver [ 3.104656] Intel P-state driver initializing. [ 3.104782] Intel pstate controlling: cpu 0 [ 3.104913] Intel pstate controlling: cpu 1 [ 3.105039] Intel pstate controlling: cpu 2 [ 3.105167] Intel pstate controlling: cpu 3 [ 3.105381] sdhci: Secure Digital Host Controller Interface driver [ 3.105514] sdhci: Copyright(c) Pierre Ossman [ 3.106808] mmc0: no vqmmc regulator found [ 3.106900] mmc0: no vmmc regulator found [ 3.108138] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA [ 3.109672] mmc1: no vqmmc regulator found [ 3.109765] mmc1: no vmmc regulator found [ 3.111002] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 3.111624] sdhci-acpi 80860F14:01: failed to setup card detect gpio [ 3.112767] mmc2: no vqmmc regulator found [ 3.112857] mmc2: no vmmc regulator found [ 3.114086] mmc2: SDHCI controller on ACPI [80860F14:01] using ADMA [ 3.114270] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.114403] EFI Variables Facility v0.08 2004-May-17 [ 3.124197] hidraw: raw HID events driver (C) Jiri Kosina [ 3.124699] usbcore: registered new interface driver usbhid [ 3.124801] usbhid: USB HID core driver [ 3.125249] TCP: cubic registered [ 3.125328] Initializing XFRM netlink socket [ 3.125678] NET: Registered protocol family 10 [ 3.126149] sit: IPv6 over IPv4 tunneling driver [ 3.126519] NET: Registered protocol family 17 [ 3.128471] Using IPI No-Shortcut mode [ 3.128835] registered taskstats version 1 [ 3.129457] Magic number: 14:311:662 [ 3.129606] console [netcon0] enabled [ 3.129673] netconsole: network logging started [ 3.129949] PM: Hibernation image not present or could not be loaded. [ 3.129958] ALSA device list: [ 3.130014] No soundcards found. [ 3.130135] Warning: unable to open an initial console. [ 3.132093] Freeing unused kernel memory: 4280K (c1760000 - c1b8e000) [ 3.152787] udevd[950]: starting version 173 [ 3.221479] mmc0: BKOPS_EN bit is not set [ 3.291604] mmc0: new HS200 MMC card at address 0001 [ 3.293171] mmcblk0: mmc0:0001 HCG8e\x04 58.2 GiB [ 3.299431] mmcblk0boot0: mmc0:0001 HCG8e\x04 partition 1 4.00 MiB [ 3.306618] mmcblk0boot1: mmc0:0001 HCG8e\x04 partition 2 4.00 MiB [ 3.308595] mmcblk0rpmb: mmc0:0001 HCG8e\x04 partition 3 4.00 MiB [ 3.310774] mmcblk0: p1 p2 [ 3.314502] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 3.315181] mmcblk0boot1: unknown partition table [ 3.318619] mmcblk0boot0: [ 3.325628] usb 2-1: New USB device found, idVendor=0451, idProduct=8046 [ 3.325736] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.326706] hub 2-1:1.0: USB hub found [ 3.326807] hub 2-1:1.0: 4 ports detected [ 3.457397] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 3.614821] usb 1-1: New USB device found, idVendor=0451, idProduct=8044 [ 3.638906] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 3.662978] usb 1-1: SerialNumber: 420208698DA1 [ 3.687826] hub 1-1:1.0: USB hub found [ 3.711486] Clocksource tsc unstable (delta = 86056090 ns) [ 3.735632] Switched to clocksource refined-jiffies [ 3.735695] hub 1-1:1.0: 4 ports detected [ 3.871722] usb 1-3: new high-speed USB device number 3 using xhci_hcd [ 4.046409] usb 1-3: New USB device found, idVendor=12d1, idProduct=1570 [ 4.070299] usb 1-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0 [ 4.094161] usb 1-3: Product: HUAWEI Mobile Broadband Module [ 4.117914] usb 1-3: Manufacturer: Huawei Technologies Co., Ltd. [ 4.287085] usb 1-4: new high-speed USB device number 4 using xhci_hcd [ 4.469915] usb 1-4: New USB device found, idVendor=0951, idProduct=1603 [ 4.493603] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.517281] usb 1-4: Product: DataTraveler 2.0 [ 4.540866] usb 1-4: Manufacturer: Kingston [ 4.564397] usb 1-4: SerialNumber: 89900000000000000000017E [ 4.588912] usb-storage 1-4:1.0: USB Mass Storage device detected [ 4.612720] scsi0 : usb-storage 1-4:1.0 [ 4.707537] usb 1-1.2: new high-speed USB device number 5 using xhci_hcd [ 4.814374] usb 1-1.2: New USB device found, idVendor=0424, idProduct=7500 [ 4.837670] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.860860] usb 1-1.2: Product: LAN7500 [ 4.883907] usb 1-1.2: Manufacturer: SMSC [ 4.906875] usb 1-1.2: SerialNumber: 00800f11700e [ 5.005944] usb 1-1.3: new low-speed USB device number 6 using xhci_hcd [ 5.120893] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c312 [ 5.143940] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.166934] usb 1-1.3: Product: USB Multimedia Keyboard [ 5.189795] usb 1-1.3: Manufacturer: LITEON Technology [ 5.213180] usb 1-1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 192 microframes [ 5.240839] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C312.0001/input/input2 [ 5.288118] hid-generic 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:14.0-1.3/input0 [ 6.046665] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 [ 6.072550] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 6.097262] sd 0:0:0:0: [sda] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB) [ 6.122493] sd 0:0:0:0: [sda] Write Protect is off [ 6.147054] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00 [ 6.147419] sd 0:0:0:0: [sda] No Caching mode page found [ 6.171970] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 6.199476] sda: sda1 sda2 [ 6.234277] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 6.565533] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities [ 6.594874] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities [ 6.633506] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 6.912041] random: nonblocking pool is initialized [ 7.850402] udevd[1663]: starting version 173 [ 7.985774] sst-acpi 80860F28:00: Direct firmware load failed with error -2 [ 7.996052] sst-acpi 80860F28:00: Falling back to user helper [ 8.073790] smsc75xx v1.0.0 [ 8.088302] sst-acpi 80860F28:00: Cannot load firmware intel/fw_sst_0f28.bin-i2s_master [ 8.088802] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 8.088820] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 8.097125] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 8.097140] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 8.136577] smsc75xx 1-1.2:1.0 eth0: register 'smsc75xx' at usb-0000:00:14.0-1.2, smsc75xx USB 2.0 Gigabit Ethernet, 70:2f:97:00:22:4f [ 8.145263] usbcore: registered new interface driver smsc75xx [ 8.145392] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 8.145429] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 16.314692] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 16.343169] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 16.369905] mmcblk0rpmb: retrying using single block read [ 16.398887] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.428174] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.457259] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.486166] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.514941] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.543616] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.569984] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 16.596349] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 24.832319] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 24.861222] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 24.888253] mmcblk0rpmb: retrying using single block read [ 24.917282] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.946559] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.975652] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.004522] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.033198] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.061704] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 25.087896] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 25.114126] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 33.349878] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 33.378699] mmcblk0rpmb: error -110 transferring data, sector 0, nr 16, cmd response 0x900, card status 0xb00 [ 33.405713] mmcblk0rpmb: retrying using single block read [ 33.434832] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.464123] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.493276] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.522318] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.551240] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.580067] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.606641] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 33.633265] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 33.660054] end_request: I/O error, dev mmcblk0rpmb, sector 8 [ 33.686867] Buffer I/O error on device mmcblk0rpmb, logical block 1 [ 41.927437] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 41.956639] mmcblk0rpmb: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 41.984021] mmcblk0rpmb: retrying using single block read [ 42.013480] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.043118] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.072609] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.102063] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.131355] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.160452] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 42.187206] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 42.213908] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 46.035190] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 47.575941] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 47.602582] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 47.633581] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 316 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-15 7:50 ` Rolf Eike Beer @ 2014-05-15 14:49 ` Lan Tianyu 2014-05-16 8:43 ` Rolf Eike Beer 2014-05-20 14:17 ` Rolf Eike Beer 1 sibling, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-05-15 14:49 UTC (permalink / raw) To: Rolf Eike Beer Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 1206 bytes --] On 05/15/2014 03:50 PM, Rolf Eike Beer wrote: > Lan Tianyu wrote: >> On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: >>> Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: >>>> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) >>>> operation >>>> region. It allows ACPI aml code able to access such kind of devices to >>>> implement some ACPI standard method. >>>> >>>> On the Asus T100TA, Bios use GenericSerialBus operation region to access >>>> i2c device to get battery info. So battery function depends on the I2C >>>> operation region support. Here is the bug link. >>>> https://bugzilla.kernel.org/show_bug.cgi?id=69011 >>> >>> Hi all, >> >>> I have tested this series and got some errors, but no additional > functionality: >> Hi Rolf: >> Thanks for test. Could you attach the output of dmesg and acpidump? >> Which machine you are testing on? > > Hi, > > this is an Aava Inari 8 tablet (pre-release hardware). Please find the DSDT > and the dmesg.log attached. > > In case of any further questions don't hesitate to ask, I'll try to be more > responsible. > Hi Eike: Could you apply the patch in the attachment and attach the output of dmesg? > Regards, > > Eike > [-- Attachment #2: debug.patch --] [-- Type: text/x-patch, Size: 499 bytes --] diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 4ed8d48..cc8c132 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -139,8 +139,7 @@ int acpi_bus_attach_private_data(acpi_handle handle, void *data) status = acpi_attach_data(handle, acpi_bus_private_data_handler, data); if (ACPI_FAILURE(status)) { - ACPI_ERROR((AE_INFO, "Error attaching device[%p] data\n", - handle)); + acpi_handle_err(handle, "Error attaching device data %d\n", status); return -ENODEV; } ^ permalink raw reply related [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-15 14:49 ` Lan Tianyu @ 2014-05-16 8:43 ` Rolf Eike Beer 0 siblings, 0 replies; 79+ messages in thread From: Rolf Eike Beer @ 2014-05-16 8:43 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1.1: Type: text/plain, Size: 49779 bytes --] =2D-nextPart9796051.zhVmkHVF2l Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Am Donnerstag, 15. Mai 2014, 22:49:37 schrieb Lan Tianyu: > On 05/15/2014 03:50 PM, Rolf Eike Beer wrote: > > Lan Tianyu wrote: > >> On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > >>> Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > >>>> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart= ) > >>>> operation > >>>> region. It allows ACPI aml code able to access such kind of devi= ces to > >>>> implement some ACPI standard method. > >>>>=20 > >>>> On the Asus T100TA, Bios use GenericSerialBus operation region t= o > >>>> access > >>>> i2c device to get battery info. So battery function depends on t= he I2C > >>>> operation region support. Here is the bug link. > >>>> https://bugzilla.kernel.org/show_bug.cgi?id=3D69011 > >>>=20 > >>> Hi all, > >>>=20 > >>> I have tested this series and got some errors, but no additional > >=20 > > functionality: > >> Hi Rolf: > >> =09Thanks for test. Could you attach the output of dmesg and acpid= ump? > >>=20 > >> Which machine you are testing on? > >=20 > > Hi, > >=20 > > this is an Aava Inari 8 tablet (pre-release hardware). Please find = the > > DSDT > > and the dmesg.log attached. > >=20 > > In case of any further questions don't hesitate to ask, I'll try to= be > > more > > responsible. >=20 > Hi Eike: > =09Could you apply the patch in the attachment and attach the output = of > =09dmesg? Sure, here it is. Regards, Eike =2D-=20 Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 G=F6ttingen, Germany Sitz der Gesellschaft: G=F6ttingen, Amtsgericht G=F6ttingen HR B 3160 Gesch=E4ftsf=FChrung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source =2D-nextPart9796051.zhVmkHVF2l Content-Disposition: attachment; filename="dmesg.debug" Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8"; name="dmesg.debug" [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.0-rc5-Inari (root@devpool02) (gcc version 4.8.2 (Emlix Linux Inari) ) #1 SMP Fri May 16 08:25:11 UTC 2014 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable [ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009dfff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078345fff] usable [ 0.000000] BIOS-e820: [mem 0x0000000078346000-0x0000000078c45fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000078c46000-0x0000000078d45fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000078d46000-0x0000000078d85fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000078d86000-0x00000000794c7fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000794c8000-0x0000000079dc7fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000079dc8000-0x0000000079ffffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] efi: EFI v2.31 by INSYDE Corp. [ 0.000000] efi: ACPI 2.0=0x78d85014 SMBIOS=0x78c45000 [ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB) [ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB) [ 0.000000] efi: mem02: type=7, attr=0xf, range=[0x0000000000007000-0x000000000008f000) (0MB) [ 0.000000] efi: mem03: type=10, attr=0xf, range=[0x000000000008f000-0x0000000000090000) (0MB) [ 0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x000000000009e000) (0MB) [ 0.000000] efi: mem05: type=0, attr=0xf, range=[0x000000000009e000-0x00000000000a0000) (0MB) [ 0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000000100000-0x0000000001000000) (15MB) [ 0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000001000000-0x000000000257f000) (21MB) [ 0.000000] efi: mem08: type=7, attr=0xf, range=[0x000000000257f000-0x0000000020000000) (474MB) [ 0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020100000) (1MB) [ 0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000020100000-0x0000000071dc0000) (1308MB) [ 0.000000] efi: mem11: type=4, attr=0xf, range=[0x0000000071dc0000-0x0000000071de0000) (0MB) [ 0.000000] efi: mem12: type=7, attr=0xf, range=[0x0000000071de0000-0x0000000072bca000) (13MB) [ 0.000000] efi: mem13: type=2, attr=0xf, range=[0x0000000072bca000-0x0000000072bcc000) (0MB) [ 0.000000] efi: mem14: type=1, attr=0xf, range=[0x0000000072bcc000-0x0000000073b46000) (15MB) [ 0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000073b46000-0x0000000076a92000) (47MB) [ 0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000076a92000-0x00000000774ec000) (10MB) [ 0.000000] efi: mem17: type=7, attr=0xf, range=[0x00000000774ec000-0x00000000774f9000) (0MB) [ 0.000000] efi: mem18: type=4, attr=0xf, range=[0x00000000774f9000-0x0000000077d46000) (8MB) [ 0.000000] efi: mem19: type=7, attr=0xf, range=[0x0000000077d46000-0x0000000078161000) (4MB) [ 0.000000] efi: mem20: type=3, attr=0xf, range=[0x0000000078161000-0x0000000078346000) (1MB) [ 0.000000] efi: mem21: type=5, attr=0x800000000000000f, range=[0x0000000078346000-0x0000000078546000) (2MB) [ 0.000000] efi: mem22: type=6, attr=0x800000000000000f, range=[0x0000000078546000-0x0000000078846000) (3MB) [ 0.000000] efi: mem23: type=0, attr=0xf, range=[0x0000000078846000-0x0000000078c46000) (4MB) [ 0.000000] efi: mem24: type=10, attr=0xf, range=[0x0000000078c46000-0x0000000078d46000) (1MB) [ 0.000000] efi: mem25: type=9, attr=0xf, range=[0x0000000078d46000-0x0000000078d86000) (0MB) [ 0.000000] efi: mem26: type=4, attr=0xf, range=[0x0000000078d86000-0x00000000794c8000) (7MB) [ 0.000000] efi: mem27: type=10, attr=0xf, range=[0x00000000794c8000-0x0000000079dc8000) (9MB) [ 0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000079dc8000-0x000000007a000000) (2MB) [ 0.000000] efi: mem29: type=11, attr=0x8000000000000001, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB) [ 0.000000] efi: mem30: type=11, attr=0x8000000000000000, range=[0x00000000fed01000-0x00000000fed02000) (0MB) [ 0.000000] efi: mem31: type=11, attr=0x8000000000000000, range=[0x00000000ffd00000-0x0000000100000000) (3MB) [ 0.000000] SMBIOS 2.7 present. [ 0.000000] DMI: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0FFD00000 mask FFFC00000 write-protect [ 0.000000] 1 base 000000000 mask FC0000000 write-back [ 0.000000] 2 base 040000000 mask FE0000000 write-back [ 0.000000] 3 base 060000000 mask FF0000000 write-back [ 0.000000] 4 base 070000000 mask FF8000000 write-back [ 0.000000] 5 base 078000000 mask FFC000000 write-back [ 0.000000] 6 base 07B000000 mask FFF000000 uncachable [ 0.000000] 7 base 07AE00000 mask FFFE00000 uncachable [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] initial memory mapped: [mem 0x00000000-0x027fffff] [ 0.000000] Base memory trampoline at [c009a000] 9a000 size 16384 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] [mem 0x00000000-0x000fffff] page 4k [ 0.000000] init_memory_mapping: [mem 0x37000000-0x373fffff] [ 0.000000] [mem 0x37000000-0x373fffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x30000000-0x36ffffff] [ 0.000000] [mem 0x30000000-0x36ffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.000000] [mem 0x00100000-0x003fffff] page 4k [ 0.000000] [mem 0x00400000-0x1fffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x20100000-0x2fffffff] [ 0.000000] [mem 0x20100000-0x203fffff] page 4k [ 0.000000] [mem 0x20400000-0x2fffffff] page 2M [ 0.000000] BRK [0x02464000, 0x02464fff] PGTABLE [ 0.000000] init_memory_mapping: [mem 0x37400000-0x377fdfff] [ 0.000000] [mem 0x37400000-0x377fdfff] page 4k [ 0.000000] BRK [0x02465000, 0x02465fff] PGTABLE [ 0.000000] ACPI: RSDP 0x78D85014 000024 (v02 INSYDE) [ 0.000000] ACPI: XSDT 0x78D61188 0000D4 (v01 INSYDE INSYDE 00000003 01000013) [ 0.000000] ACPI: FACP 0x78D7F000 00010C (v05 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: DSDT 0x78D6E000 00BAEC (v02 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D84000 000236 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: TCPA 0x78D83000 000032 (v02 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D81000 000042 (v01 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: DBG2 0x78D80000 000072 (v00 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: HPET 0x78D7E000 000038 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: LPIT 0x78D7D000 000104 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: APIC 0x78D7C000 00006C (v03 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: MCFG 0x78D7B000 00003C (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SLIC 0x78D7A000 000176 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6D000 0005FB (v01 INSYDE CpuDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6B000 0018C2 (v01 INSYDE DptfTab 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6A000 000058 (v01 INSYDE LowPwrM 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D69000 0000FF (v01 INSYDE SoCDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D68000 00043A (v01 INSYDE Tpm2Tabl 00001000 ACPI 00040000) [ 0.000000] ACPI: TPM2 0x78D67000 000034 (v03 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D66000 000763 (v01 INSYDE CpuPm 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D65000 000290 (v01 INSYDE Cpu0Tst 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D64000 00017A (v01 INSYDE ApTst 00003000 ACPI 00040000) [ 0.000000] ACPI: FPDT 0x78D63000 000044 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: CSRT 0x78D62000 00014C (v00 INSYDE INSYDE 00000005 ACPI 00040000) [ 0.000000] ACPI: BGRT 0x78D60000 000038 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] 1064MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] BRK [0x02466000, 0x02466fff] PGTABLE [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00001000-0x00ffffff] [ 0.000000] Normal [mem 0x01000000-0x377fdfff] [ 0.000000] HighMem [mem 0x377fe000-0x79ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00001000-0x0008efff] [ 0.000000] node 0: [mem 0x00090000-0x0009dfff] [ 0.000000] node 0: [mem 0x00100000-0x1fffffff] [ 0.000000] node 0: [mem 0x20100000-0x78345fff] [ 0.000000] node 0: [mem 0x78d86000-0x794c7fff] [ 0.000000] node 0: [mem 0x79dc8000-0x79ffffff] [ 0.000000] On node 0 totalpages: 494428 [ 0.000000] free_area_init_node: node 0, pgdat c17401c0, node_mem_map f68be020 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3996 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 222974 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2129 pages used for memmap [ 0.000000] HighMem zone: 267458 pages, LIFO batch:31 [ 0.000000] Using APIC driver default [ 0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable [ 0.000000] Reserving Intel graphics stolen memory at 0x7af00000-0x7eefffff [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-86 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.000000] nr_irqs_gsi: 103 [ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff] [ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x200fffff] [ 0.000000] e820: [mem 0x7ef00000-0xe00f7fff] available for PCI devices [ 0.000000] setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 12 pages/cpu @f6882000 s27264 r0 d21888 u49152 [ 0.000000] pcpu-alloc: s27264 r0 d21888 u49152 alloc=12*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 492652 [ 0.000000] Kernel command line: root=/dev/sda2 video=HDMI-A-1:1200x1920e drm_kms_helper.edid_firmware=HDMI-A-1:edid/1200x1920.bin [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0007a000) [ 0.000000] Initializing Movable for node 0 (00000000:00000000) [ 0.000000] Memory: 1909220K/1977712K available (5505K kernel code, 331K rwdata, 1640K rodata, 12092K init, 1236K bss, 68492K reserved, 1038956K highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfff66000 - 0xfffff000 ( 612 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1750000 - 0xc231f000 (12092 kB) [ 0.000000] .data : 0xc1560b12 - 0xc174efc0 (1977 kB) [ 0.000000] .text : 0xc1000000 - 0xc1560b12 (5506 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:1024 16 [ 0.000000] CPU 0 irqstacks, hard=f600c000 soft=f600e000 [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Maximum core-clock to bus-clock ratio: 0xa [ 0.000000] Resolved frequency ID: 2, frequency: 133200 KHz [ 0.000000] TSC runs at 1332000 KHz [ 0.000000] lapic_timer_frequency = 133200 [ 0.000000] tsc: Detected 1332.000 MHz processor [ 0.000037] Calibrating delay loop (skipped), value calculated using timer frequency.. 2664.00 BogoMIPS (lpj=1332000) [ 0.000054] pid_max: default: 32768 minimum: 301 [ 0.000071] ACPI: Core revision 20140214 [ 0.044032] ACPI: All ACPI Tables successfully acquired [ 0.046878] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.046898] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.047248] Initializing cgroup subsys freezer [ 0.047290] CPU: Physical Processor ID: 0 [ 0.047300] CPU: Processor Core ID: 0 [ 0.047311] ENERGY_PERF_BIAS: Set to 'normal', was 'performance' [ 0.047311] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8) [ 0.059441] mce: CPU supports 6 MCE banks [ 0.059460] CPU0: Thermal monitoring enabled (TM1) [ 0.059480] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0 [ 0.059480] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0 [ 0.059480] tlb_flushall_shift: 6 [ 0.059673] Freeing SMP alternatives memory: 20K (c231f000 - c2324000) [ 0.059708] ------------[ cut here ]------------ [ 0.059727] WARNING: CPU: 0 PID: 0 at /tmp/e2/build/linux-git/mm/early_ioremap.c:136 __early_ioremap+0xee/0x1a6() [ 0.059739] Modules linked in: [ 0.059752] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc5-Inari #1 [ 0.059762] Hardware name: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.059775] 00000000 00000000 c16fdf0c c155483e 00000000 c16fdf3c c103d194 c164be20 [ 0.059797] 00000000 00000000 c16539b8 00000088 c176cc03 c176cc03 00000042 77526000 [ 0.059819] 00000000 c16fdf4c c103d22d 00000009 00000000 c16fdfa0 c176cc03 c1740ec0 [ 0.059840] Call Trace: [ 0.059854] [<c155483e>] dump_stack+0x41/0x52 [ 0.059867] [<c103d194>] warn_slowpath_common+0x74/0x90 [ 0.059880] [<c176cc03>] ? __early_ioremap+0xee/0x1a6 [ 0.059892] [<c176cc03>] ? __early_ioremap+0xee/0x1a6 [ 0.059903] [<c103d22d>] warn_slowpath_null+0x1d/0x20 [ 0.059915] [<c176cc03>] __early_ioremap+0xee/0x1a6 [ 0.059928] [<c10368df>] ? __native_set_fixmap+0x1f/0x30 [ 0.059941] [<c176ce70>] early_memremap+0xd/0xf [ 0.059953] [<c1763743>] efi_bgrt_init+0xe6/0x129 [ 0.059965] [<c1763067>] efi_late_init+0x8/0xa [ 0.059978] [<c1750a3b>] start_kernel+0x34f/0x35f [ 0.059990] [<c1750523>] ? repair_env_string+0x51/0x51 [ 0.060003] [<c1750369>] i386_start_kernel+0x137/0x13a [ 0.060040] ---[ end trace 27ffb688a5381019 ]--- [ 0.062989] Enabling APIC mode: Flat. Using 1 I/O APICs [ 0.064018] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.074045] ..MP-BIOS bug: 8254 timer not connected to IO-APIC [ 0.074054] ...trying to set up timer (IRQ0) through the 8259A ... [ 0.074063] ..... (found apic 0 pin 2) ... [ 0.084079] ....... works. [ 0.084087] smpboot: CPU0: Intel(R) Atom(TM) CPU Z3745 @ 1.33GHz (fam: 06, model: 37, stepping: 08) [ 0.084126] TSC deadline timer enabled [ 0.084141] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, full-width counters, Intel PMU driver. [ 0.084168] ... version: 3 [ 0.084176] ... bit width: 40 [ 0.084183] ... generic registers: 2 [ 0.084191] ... value mask: 000000ffffffffff [ 0.084199] ... max period: 000000ffffffffff [ 0.084207] ... fixed-purpose events: 3 [ 0.084214] ... event mask: 0000000700000003 [ 0.085792] CPU 1 irqstacks, hard=f60a6000 soft=f60b0000 [ 0.085798] x86: Booting SMP configuration: [ 0.085809] .... node #0, CPUs: #1 [ 0.095924] Initializing CPU#1 [ 0.111134] CPU 2 irqstacks, hard=f60ba000 soft=f60bc000 [ 0.111153] #2 [ 0.121206] Initializing CPU#2 [ 0.136519] CPU 3 irqstacks, hard=f60c6000 soft=f60c8000 [ 0.136533] #3 [ 0.146587] Initializing CPU#3 [ 0.161772] x86: Booted up 1 node, 4 CPUs [ 0.161791] smpboot: Total of 4 processors activated (10656.00 BogoMIPS) [ 0.162741] devtmpfs: initialized [ 0.163227] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes) [ 0.163242] PM: Registering ACPI NVS region [mem 0x78c46000-0x78d45fff] (1048576 bytes) [ 0.163294] PM: Registering ACPI NVS region [mem 0x794c8000-0x79dc7fff] (9437184 bytes) [ 0.163841] pinctrl core: initialized pinctrl subsystem [ 0.163902] RTC time: 0:40:53, date: 05/16/14 [ 0.163989] NET: Registered protocol family 16 [ 0.164313] cpuidle: using governor ladder [ 0.164324] cpuidle: using governor menu [ 0.164398] ACPI: bus type PCI registered [ 0.164551] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.164568] PCI: not using MMCONFIG [ 0.164920] PCI: Using configuration type 1 for base access [ 0.170069] ACPI: Added _OSI(Module Device) [ 0.170084] ACPI: Added _OSI(Processor Device) [ 0.170094] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.170103] ACPI: Added _OSI(Processor Aggregator Device) [ 0.204674] ACPI: SSDT 0x78BCAA90 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.206249] ACPI: Dynamic OEM Table Load: [ 0.206264] ACPI: SSDT 0x00000000 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.206799] ACPI: SSDT 0x78BC9910 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.208647] ACPI: Dynamic OEM Table Load: [ 0.208661] ACPI: SSDT 0x00000000 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.215236] ACPI: SSDT 0x78BCBD90 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.216837] ACPI: Dynamic OEM Table Load: [ 0.216851] ACPI: SSDT 0x00000000 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.219400] ACPI: SSDT 0x78BCBF10 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.220819] ACPI: Dynamic OEM Table Load: [ 0.220832] ACPI: SSDT 0x00000000 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.226624] ACPI: Interpreter enabled [ 0.226659] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140214/hwxface-580) [ 0.226683] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140214/hwxface-580) [ 0.226705] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20140214/hwxface-580) [ 0.226726] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20140214/hwxface-580) [ 0.226746] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S5_] (20140214/hwxface-580) [ 0.226764] ACPI: (supports S0) [ 0.226773] ACPI: Using IOAPIC for interrupt routing [ 0.226862] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.234470] [Firmware Info]: PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] not reserved in ACPI motherboard resources [ 0.234487] PCI: not using MMCONFIG [ 0.234540] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.237741] ACPI: Power Resource [USBC] (on) [ 0.241990] ACPI: Power Resource [WWPR] (off) [ 0.252641] ACPI: Power Resource [PLPE] (on) [ 0.264429] ACPI: Power Resource [CLK0] (on) [ 0.264566] ACPI: Power Resource [CLK1] (on) [ 0.264924] ACPI: Power Resource [P28X] (off) [ 0.265067] ACPI: Power Resource [P18X] (off) [ 0.267582] ACPI: Power Resource [TCPR] (off) [ 0.274577] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.274601] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments MSI] [ 0.274806] \_SB_.PCI0:_OSC invalid UUID [ 0.274811] _OSC request data:1 1e 0 [ 0.274824] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM [ 0.276129] acpi PNP0A08:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. [ 0.276204] PCI host bridge to bus 0000:00 [ 0.276218] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.276231] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] [ 0.276242] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] [ 0.276254] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] [ 0.276266] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] [ 0.276277] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] [ 0.276289] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] [ 0.276301] pci_bus 0000:00: root bus resource [mem 0x90c00000-0x90ffffff] [ 0.276313] pci_bus 0000:00: root bus resource [mem 0x7af00001-0x7ef00000] [ 0.276325] pci_bus 0000:00: root bus resource [mem 0x80000000-0x908ffffe] [ 0.276337] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] [ 0.276361] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 [ 0.276562] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 [ 0.276588] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] [ 0.276607] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] [ 0.276625] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] [ 0.276833] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 [ 0.276864] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] [ 0.276943] pci 0000:00:14.0: PME# supported from D3hot D3cold [ 0.277123] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 [ 0.277154] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] [ 0.277171] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] [ 0.277272] pci 0000:00:1a.0: PME# supported from D0 D3hot [ 0.277437] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 [ 0.277671] pci_bus 0000:00: on NUMA node 0 [ 0.278783] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.279101] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.279417] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.279746] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280062] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280378] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280706] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281031] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.293311] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels [ 0.294019] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels [ 0.294793] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none [ 0.294809] vgaarb: loaded [ 0.294817] vgaarb: bridge control possible 0000:00:02.0 [ 0.295019] SCSI subsystem initialized [ 0.295037] ACPI: bus type USB registered [ 0.295110] usbcore: registered new interface driver usbfs [ 0.295156] usbcore: registered new interface driver hub [ 0.295258] usbcore: registered new device driver usb [ 0.302206] pps_core: LinuxPPS API ver. 1 registered [ 0.302219] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.302246] PTP clock support registered [ 0.302485] Advanced Linux Sound Architecture Driver Initialized. [ 0.302497] PCI: Using ACPI for IRQ routing [ 0.302507] PCI: pci_cache_line_size set to 64 bytes [ 0.302532] Expanded resource reserved due to conflict with PCI Bus 0000:00 [ 0.302544] e820: reserve RAM buffer [mem 0x0008f000-0x0008ffff] [ 0.302549] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff] [ 0.302554] e820: reserve RAM buffer [mem 0x78346000-0x7bffffff] [ 0.302559] e820: reserve RAM buffer [mem 0x794c8000-0x7bffffff] [ 0.302564] e820: reserve RAM buffer [mem 0x7a000000-0x7bffffff] [ 0.303000] cfg80211: Calling CRDA to update world regulatory domain [ 0.303235] Switched to clocksource refined-jiffies [ 0.303367] pnp: PnP ACPI init [ 0.303389] ACPI: bus type PNP registered [ 0.303499] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.303670] pnp 00:01: Plug and Play ACPI device, IDs PNP0103 (active) [ 0.303776] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active) [ 0.303895] system 00:03: [io 0x0680-0x069f] has been reserved [ 0.303911] system 00:03: [io 0x0400-0x047f] has been reserved [ 0.303923] system 00:03: [io 0x0500-0x05fe] has been reserved [ 0.303935] system 00:03: [io 0x0600-0x061f] has been reserved [ 0.303947] system 00:03: [io 0x164e-0x164f] has been reserved [ 0.303961] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active) [ 0.304307] pnp 00:04: Plug and Play ACPI device, IDs PNP0501 (active) [ 0.305812] pnp 00:05: Plug and Play ACPI device, IDs INT0002 (active) [ 0.305988] pnp 00:06: Plug and Play ACPI device, IDs INT33fc (active) [ 0.306155] pnp 00:07: Plug and Play ACPI device, IDs INT33fc (active) [ 0.306328] pnp 00:08: Plug and Play ACPI device, IDs INT33fc (active) [ 0.307495] pnp 00:09: unknown resource type 19 in _CRS [ 0.307509] pnp 00:09: can't evaluate _CRS: 1 [ 0.307579] pnp 00:09: Plug and Play ACPI device, IDs BCM2e3a (active) [ 0.314223] pnp 00:0a: unknown resource type 17 in _CRS [ 0.314237] pnp 00:0a: can't evaluate _CRS: 1 [ 0.314321] pnp 00:0a: Plug and Play ACPI device, IDs INTcfd9 PNP0c40 (active) [ 0.314481] pnp 00:0b: Plug and Play ACPI device, IDs INT33bd (active) [ 0.314809] pnp 00:0c: Plug and Play ACPI device, IDs INT3401 (active) [ 0.315136] pnp 00:0d: unknown resource type 17 in _CRS [ 0.315150] pnp 00:0d: can't evaluate _CRS: 1 [ 0.315224] pnp 00:0d: Plug and Play ACPI device, IDs INT3403 (active) [ 0.315362] pnp 00:0e: unknown resource type 17 in _CRS [ 0.315375] pnp 00:0e: can't evaluate _CRS: 1 [ 0.315448] pnp 00:0e: Plug and Play ACPI device, IDs INT3403 (active) [ 0.315643] pnp 00:0f: unknown resource type 17 in _CRS [ 0.315656] pnp 00:0f: can't evaluate _CRS: 1 [ 0.315730] pnp 00:0f: Plug and Play ACPI device, IDs INT3409 (active) [ 0.316029] pnp: PnP ACPI: found 16 devices [ 0.316040] ACPI: bus type PNP unregistered [ 0.321422] pci_bus 0000:00: resource 4 [io 0x0000-0x006f] [ 0.321433] pci_bus 0000:00: resource 5 [io 0x0078-0x0cf7] [ 0.321440] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff] [ 0.321446] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff] [ 0.321453] pci_bus 0000:00: resource 8 [mem 0x000c0000-0x000dffff] [ 0.321459] pci_bus 0000:00: resource 9 [mem 0x000e0000-0x000fffff] [ 0.321466] pci_bus 0000:00: resource 10 [mem 0x90c00000-0x90ffffff] [ 0.321472] pci_bus 0000:00: resource 11 [mem 0x7af00001-0x7ef00000] [ 0.321479] pci_bus 0000:00: resource 12 [mem 0x80000000-0x908ffffe] [ 0.321485] pci_bus 0000:00: resource 13 [mem 0xfed40000-0xfed40fff] [ 0.321549] NET: Registered protocol family 2 [ 0.321890] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.321938] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.322013] TCP: Hash tables configured (established 8192 bind 8192) [ 0.322056] TCP: reno registered [ 0.322068] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.322090] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.322183] NET: Registered protocol family 1 [ 0.322218] pci 0000:00:02.0: Boot video device [ 0.322632] PCI: CLS 0 bytes, default 64 [ 0.800023] microcode: CPU0 sig=0x30678, pf=0x2, revision=0x808 [ 0.800048] microcode: CPU1 sig=0x30678, pf=0x2, revision=0x808 [ 0.800075] microcode: CPU2 sig=0x30678, pf=0x2, revision=0x808 [ 0.800104] microcode: CPU3 sig=0x30678, pf=0x2, revision=0x808 [ 0.800208] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 0.800940] Scanning for low memory corruption every 60 seconds [ 0.801569] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.801616] audit: initializing netlink subsys (disabled) [ 0.801648] audit: type=2000 audit(1400200853.766:1): initialized [ 0.837558] bounce pool size: 64 pages [ 0.837578] HugeTLB registered 4 MB page size, pre-allocated 0 pages [ 0.843189] msgmni has been set to 1760 [ 0.843903] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.843919] io scheduler noop registered [ 0.843928] io scheduler deadline registered [ 0.844106] io scheduler cfq registered (default) [ 0.844447] intel_idle: MWAIT substates: 0x33000020 [ 0.844452] intel_idle: v0.4 model 0x37 [ 0.844457] intel_idle: lapic_timer_reliable_states 0xffffffff [ 0.852001] ACPI: AC Adapter [ADP1] (on-line) [ 0.852326] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 0.852347] ACPI: Power Button [PWRF] [ 0.852359] ACPI Warning: Could not enable fixed event - PowerButton (2) (20140214/evxface-628) [ 0.858350] button: probe of LNXPWRBN:00 failed with error -22 [ 0.864025] [Firmware Bug]: No valid trip found [ 0.864273] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.884668] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.885698] 80860F0A:00: ttyS1 at MMIO 0x9091d000 (irq = 39, base_baud = 2764800) is a 16550A [ 0.885954] 80860F0A:01: ttyS2 at MMIO 0x9091f000 (irq = 40, base_baud = 2764800) is a 16550A [ 0.886308] hpet: number irqs doesn't agree with number of timers [ 0.886438] Non-volatile memory driver v1.3 [ 0.886514] [drm] Initialized drm 1.1.0 20060810 [ 0.888432] [drm] Memory usable by graphics device = 2048M [ 0.893120] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.893372] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.893636] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.893887] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.894138] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.896821] i915 0000:00:02.0: irq 103 for MSI/MSI-X [ 0.896839] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.896849] [drm] Driver supports precise vblank timestamp query. [ 0.949327] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 0.950125] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.950523] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 1.478205] [drm] forcing HDMI-A-1 connector ON [ 1.554441] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ 1.575805] [drm] Got external EDID base block and 0 extensions from "edid/1200x1920.bin" for connector "HDMI-A-1" [ 1.722033] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4 [ 1.818338] fbcon: inteldrmfb (fb0) is primary device [ 1.955080] Switched to clocksource tsc [ 2.331727] Console: switching to colour frame buffer device 150x120 [ 2.365253] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device [ 2.365400] i915 0000:00:02.0: registered panic notifier [ 2.369617] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 2.371353] acpi device:1a: registered as cooling_device4 [ 2.372792] acpi device:21: registered as cooling_device5 [ 2.373108] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1 [ 2.373395] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 2.373911] brd: module loaded [ 2.374464] loop: module loaded [ 2.375205] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.375451] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1 [ 2.375778] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 2.375815] xhci_hcd 0000:00:14.0: irq 104 for MSI/MSI-X [ 2.375961] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.376124] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.376295] usb usb1: Product: xHCI Host Controller [ 2.376412] usb usb1: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.376568] usb usb1: SerialNumber: 0000:00:14.0 [ 2.376973] hub 1-0:1.0: USB hub found [ 2.377087] hub 1-0:1.0: 6 ports detected [ 2.378757] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.378979] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2 [ 2.379241] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2.379405] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.379583] usb usb2: Product: xHCI Host Controller [ 2.379702] usb usb2: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.379850] usb usb2: SerialNumber: 0000:00:14.0 [ 2.380239] hub 2-0:1.0: USB hub found [ 2.380351] hub 2-0:1.0: 1 port detected [ 2.380860] usbcore: registered new interface driver usb-storage [ 2.381142] i8042: PNP: No PS/2 controller found. Probing ports directly. [ 3.425347] i8042: No controller found [ 3.425565] mousedev: PS/2 mouse device common for all mice [ 3.425675] [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off [ 3.426041] ACPI Warning: Could not enable fixed event - RealTimeClock (4) (20140214/evxface-628) [ 3.426464] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0 [ 3.426649] rtc_cmos 00:00: alarms up to one day, 242 bytes nvram [ 3.426883] i2c /dev entries driver [ 3.428313] Intel P-state driver initializing. [ 3.428446] Intel pstate controlling: cpu 0 [ 3.428587] Intel pstate controlling: cpu 1 [ 3.428725] Intel pstate controlling: cpu 2 [ 3.428886] Intel pstate controlling: cpu 3 [ 3.429124] sdhci: Secure Digital Host Controller Interface driver [ 3.429272] sdhci: Copyright(c) Pierre Ossman [ 3.430578] mmc0: no vqmmc regulator found [ 3.430681] mmc0: no vmmc regulator found [ 3.431936] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA [ 3.433476] mmc1: no vqmmc regulator found [ 3.433579] mmc1: no vmmc regulator found [ 3.434830] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 3.435453] sdhci-acpi 80860F14:01: failed to setup card detect gpio [ 3.436623] mmc2: no vqmmc regulator found [ 3.436724] mmc2: no vmmc regulator found [ 3.437966] mmc2: SDHCI controller on ACPI [80860F14:01] using ADMA [ 3.438148] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.438273] EFI Variables Facility v0.08 2004-May-17 [ 3.448100] hidraw: raw HID events driver (C) Jiri Kosina [ 3.448546] usbcore: registered new interface driver usbhid [ 3.448660] usbhid: USB HID core driver [ 3.449146] TCP: cubic registered [ 3.449218] Initializing XFRM netlink socket [ 3.449576] NET: Registered protocol family 10 [ 3.450087] sit: IPv6 over IPv4 tunneling driver [ 3.450438] NET: Registered protocol family 17 [ 3.450890] Using IPI No-Shortcut mode [ 3.451197] registered taskstats version 1 [ 3.451596] Magic number: 14:324:658 [ 3.451761] console [netcon0] enabled [ 3.451837] netconsole: network logging started [ 3.452124] PM: Hibernation image not present or could not be loaded. [ 3.452133] ALSA device list: [ 3.452195] No soundcards found. [ 3.452325] Warning: unable to open an initial console. [ 3.458742] Freeing unused kernel memory: 12092K (c1750000 - c231f000) [ 3.472576] udevd[949]: starting version 173 [ 3.545752] mmc0: BKOPS_EN bit is not set [ 3.622230] mmc0: new HS200 MMC card at address 0001 [ 3.624057] mmcblk0: mmc0:0001 HCG8e\x04 58.2 GiB [ 3.624598] mmcblk0boot0: mmc0:0001 HCG8e\x04 partition 1 4.00 MiB [ 3.624750] mmcblk0boot1: mmc0:0001 HCG8e\x04 partition 2 4.00 MiB [ 3.625057] mmcblk0rpmb: mmc0:0001 HCG8e\x04 partition 3 4.00 MiB [ 3.625994] mmcblk0: p1 p2 [ 3.630611] mmcblk0boot1: unknown partition table [ 3.633735] mmcblk0boot0: [ 3.640096] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 3.651068] usb 2-1: New USB device found, idVendor=0451, idProduct=8046 [ 3.651186] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.651671] hub 2-1:1.0: USB hub found [ 3.651758] hub 2-1:1.0: 4 ports detected [ 3.779948] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 3.943266] usb 1-1: New USB device found, idVendor=0451, idProduct=8044 [ 3.969159] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 3.994984] usb 1-1: SerialNumber: 420208698DA1 [ 4.021771] hub 1-1:1.0: USB hub found [ 4.047612] hub 1-1:1.0: 4 ports detected [ 4.094961] Clocksource tsc unstable (delta = 139070527 ns) [ 4.120773] Switched to clocksource refined-jiffies [ 4.143425] usb 1-3: new high-speed USB device number 3 using xhci_hcd [ 4.235688] usb 1-3: New USB device found, idVendor=12d1, idProduct=1570 [ 4.262187] usb 1-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0 [ 4.288823] usb 1-3: Product: HUAWEI Mobile Broadband Module [ 4.315372] usb 1-3: Manufacturer: Huawei Technologies Co., Ltd. [ 4.454809] usb 1-4: new high-speed USB device number 4 using xhci_hcd [ 4.615088] usb 1-4: New USB device found, idVendor=0951, idProduct=1603 [ 4.641469] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.667779] usb 1-4: Product: DataTraveler 2.0 [ 4.694205] usb 1-4: Manufacturer: Kingston [ 4.720492] usb 1-4: SerialNumber: 89900000000000000000017E [ 4.747830] usb-storage 1-4:1.0: USB Mass Storage device detected [ 4.774449] scsi0 : usb-storage 1-4:1.0 [ 4.833239] usb 1-1.1: new low-speed USB device number 5 using xhci_hcd [ 4.904523] usb 1-1.1: New USB device found, idVendor=046d, idProduct=c03e [ 4.930590] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 4.956550] usb 1-1.1: Product: USB-PS/2 Optical Mouse [ 4.982418] usb 1-1.1: Manufacturer: Logitech [ 5.008663] usb 1-1.1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes [ 5.039453] input: Logitech USB-PS/2 Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/0003:046D:C03E.0001/input/input2 [ 5.067114] hid-generic 0003:046D:C03E.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:14.0-1.1/input0 [ 5.132430] usb 1-1.2: new high-speed USB device number 6 using xhci_hcd [ 5.203734] usb 1-1.2: New USB device found, idVendor=0424, idProduct=7500 [ 5.230739] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.257917] usb 1-1.2: Product: LAN7500 [ 5.284761] usb 1-1.2: Manufacturer: SMSC [ 5.311315] usb 1-1.2: SerialNumber: 00800f11700e [ 5.381679] usb 1-1.3: new low-speed USB device number 7 using xhci_hcd [ 5.462341] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c312 [ 5.489081] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.515839] usb 1-1.3: Product: USB Multimedia Keyboard [ 5.542443] usb 1-1.3: Manufacturer: LITEON Technology [ 5.569572] usb 1-1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 192 microframes [ 5.600996] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C312.0002/input/input3 [ 5.656590] hid-generic 0003:046D:C312.0002: input,hidraw1: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:14.0-1.3/input0 [ 5.768892] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 [ 5.799079] sd 0:0:0:0: [sda] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB) [ 5.799096] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 5.857532] sd 0:0:0:0: [sda] Write Protect is off [ 5.886444] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00 [ 5.886816] sd 0:0:0:0: [sda] No Caching mode page found [ 5.915622] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 5.947408] sda: sda1 sda2 [ 5.986433] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 6.043333] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities [ 6.076814] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities [ 6.119661] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 6.280069] random: nonblocking pool is initialized [ 7.357011] udevd[1689]: starting version 173 [ 7.477008] sst-acpi 80860F28:00: Direct firmware load failed with error -2 [ 7.484948] sst-acpi 80860F28:00: Falling back to user helper [ 7.577743] sst-acpi 80860F28:00: Cannot load firmware intel/fw_sst_0f28.bin-i2s_master [ 7.586076] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 7.592798] smsc75xx v1.0.0 [ 7.601973] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 7.629938] smsc75xx 1-1.2:1.0 eth0: register 'smsc75xx' at usb-0000:00:14.0-1.2, smsc75xx USB 2.0 Gigabit Ethernet, 70:2f:97:00:22:4f [ 7.660544] usbcore: registered new interface driver smsc75xx [ 7.660554] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 7.660598] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 15.786357] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 15.819492] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 15.850882] mmcblk0rpmb: retrying using single block read [ 15.884298] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 15.917928] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 15.951471] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 15.984802] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.017890] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.050737] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.081372] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 16.112006] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 24.373945] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 24.407032] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 24.438318] mmcblk0rpmb: retrying using single block read [ 24.471644] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.505126] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.538515] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.571758] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.604838] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.637751] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.668398] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 24.699120] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 32.940422] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 32.973781] mmcblk0rpmb: error -110 transferring data, sector 0, nr 16, cmd response 0x900, card status 0xb00 [ 33.005431] mmcblk0rpmb: retrying using single block read [ 33.039167] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.073116] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.106965] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.140652] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.174081] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.207244] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.238143] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 33.269079] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 33.300138] end_request: I/O error, dev mmcblk0rpmb, sector 8 [ 33.331221] Buffer I/O error on device mmcblk0rpmb, logical block 1 [ 41.566672] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 41.600468] mmcblk0rpmb: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 41.632451] mmcblk0rpmb: retrying using single block read [ 41.666526] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.700864] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.734945] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.768811] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.802498] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.835947] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.867201] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 41.898423] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 45.972615] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 47.603164] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 47.634111] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 47.668901] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 =2D-nextPart9796051.zhVmkHVF2l-- This is a multi-part message in MIME format. [-- Attachment #1.2: Type: text/plain, Size: 1727 bytes --] Am Donnerstag, 15. Mai 2014, 22:49:37 schrieb Lan Tianyu: > On 05/15/2014 03:50 PM, Rolf Eike Beer wrote: > > Lan Tianyu wrote: > >> On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > >>> Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > >>>> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) > >>>> operation > >>>> region. It allows ACPI aml code able to access such kind of devices to > >>>> implement some ACPI standard method. > >>>> > >>>> On the Asus T100TA, Bios use GenericSerialBus operation region to > >>>> access > >>>> i2c device to get battery info. So battery function depends on the I2C > >>>> operation region support. Here is the bug link. > >>>> https://bugzilla.kernel.org/show_bug.cgi?id=69011 > >>> > >>> Hi all, > >>> > >>> I have tested this series and got some errors, but no additional > > > > functionality: > >> Hi Rolf: > >> Thanks for test. Could you attach the output of dmesg and acpidump? > >> > >> Which machine you are testing on? > > > > Hi, > > > > this is an Aava Inari 8 tablet (pre-release hardware). Please find the > > DSDT > > and the dmesg.log attached. > > > > In case of any further questions don't hesitate to ask, I'll try to be > > more > > responsible. > > Hi Eike: > Could you apply the patch in the attachment and attach the output of > dmesg? Sure, here it is. Regards, Eike -- Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 Göttingen, Germany Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160 Geschäftsführung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source [-- Attachment #1.3: dmesg.debug --] [-- Type: text/plain, Size: 47664 bytes --] [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.0-rc5-Inari (root@devpool02) (gcc version 4.8.2 (Emlix Linux Inari) ) #1 SMP Fri May 16 08:25:11 UTC 2014 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable [ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009dfff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078345fff] usable [ 0.000000] BIOS-e820: [mem 0x0000000078346000-0x0000000078c45fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000078c46000-0x0000000078d45fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000078d46000-0x0000000078d85fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000078d86000-0x00000000794c7fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000794c8000-0x0000000079dc7fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000079dc8000-0x0000000079ffffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] efi: EFI v2.31 by INSYDE Corp. [ 0.000000] efi: ACPI 2.0=0x78d85014 SMBIOS=0x78c45000 [ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB) [ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB) [ 0.000000] efi: mem02: type=7, attr=0xf, range=[0x0000000000007000-0x000000000008f000) (0MB) [ 0.000000] efi: mem03: type=10, attr=0xf, range=[0x000000000008f000-0x0000000000090000) (0MB) [ 0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x000000000009e000) (0MB) [ 0.000000] efi: mem05: type=0, attr=0xf, range=[0x000000000009e000-0x00000000000a0000) (0MB) [ 0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000000100000-0x0000000001000000) (15MB) [ 0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000001000000-0x000000000257f000) (21MB) [ 0.000000] efi: mem08: type=7, attr=0xf, range=[0x000000000257f000-0x0000000020000000) (474MB) [ 0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020100000) (1MB) [ 0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000020100000-0x0000000071dc0000) (1308MB) [ 0.000000] efi: mem11: type=4, attr=0xf, range=[0x0000000071dc0000-0x0000000071de0000) (0MB) [ 0.000000] efi: mem12: type=7, attr=0xf, range=[0x0000000071de0000-0x0000000072bca000) (13MB) [ 0.000000] efi: mem13: type=2, attr=0xf, range=[0x0000000072bca000-0x0000000072bcc000) (0MB) [ 0.000000] efi: mem14: type=1, attr=0xf, range=[0x0000000072bcc000-0x0000000073b46000) (15MB) [ 0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000073b46000-0x0000000076a92000) (47MB) [ 0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000076a92000-0x00000000774ec000) (10MB) [ 0.000000] efi: mem17: type=7, attr=0xf, range=[0x00000000774ec000-0x00000000774f9000) (0MB) [ 0.000000] efi: mem18: type=4, attr=0xf, range=[0x00000000774f9000-0x0000000077d46000) (8MB) [ 0.000000] efi: mem19: type=7, attr=0xf, range=[0x0000000077d46000-0x0000000078161000) (4MB) [ 0.000000] efi: mem20: type=3, attr=0xf, range=[0x0000000078161000-0x0000000078346000) (1MB) [ 0.000000] efi: mem21: type=5, attr=0x800000000000000f, range=[0x0000000078346000-0x0000000078546000) (2MB) [ 0.000000] efi: mem22: type=6, attr=0x800000000000000f, range=[0x0000000078546000-0x0000000078846000) (3MB) [ 0.000000] efi: mem23: type=0, attr=0xf, range=[0x0000000078846000-0x0000000078c46000) (4MB) [ 0.000000] efi: mem24: type=10, attr=0xf, range=[0x0000000078c46000-0x0000000078d46000) (1MB) [ 0.000000] efi: mem25: type=9, attr=0xf, range=[0x0000000078d46000-0x0000000078d86000) (0MB) [ 0.000000] efi: mem26: type=4, attr=0xf, range=[0x0000000078d86000-0x00000000794c8000) (7MB) [ 0.000000] efi: mem27: type=10, attr=0xf, range=[0x00000000794c8000-0x0000000079dc8000) (9MB) [ 0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000079dc8000-0x000000007a000000) (2MB) [ 0.000000] efi: mem29: type=11, attr=0x8000000000000001, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB) [ 0.000000] efi: mem30: type=11, attr=0x8000000000000000, range=[0x00000000fed01000-0x00000000fed02000) (0MB) [ 0.000000] efi: mem31: type=11, attr=0x8000000000000000, range=[0x00000000ffd00000-0x0000000100000000) (3MB) [ 0.000000] SMBIOS 2.7 present. [ 0.000000] DMI: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0FFD00000 mask FFFC00000 write-protect [ 0.000000] 1 base 000000000 mask FC0000000 write-back [ 0.000000] 2 base 040000000 mask FE0000000 write-back [ 0.000000] 3 base 060000000 mask FF0000000 write-back [ 0.000000] 4 base 070000000 mask FF8000000 write-back [ 0.000000] 5 base 078000000 mask FFC000000 write-back [ 0.000000] 6 base 07B000000 mask FFF000000 uncachable [ 0.000000] 7 base 07AE00000 mask FFFE00000 uncachable [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] initial memory mapped: [mem 0x00000000-0x027fffff] [ 0.000000] Base memory trampoline at [c009a000] 9a000 size 16384 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] [mem 0x00000000-0x000fffff] page 4k [ 0.000000] init_memory_mapping: [mem 0x37000000-0x373fffff] [ 0.000000] [mem 0x37000000-0x373fffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x30000000-0x36ffffff] [ 0.000000] [mem 0x30000000-0x36ffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.000000] [mem 0x00100000-0x003fffff] page 4k [ 0.000000] [mem 0x00400000-0x1fffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x20100000-0x2fffffff] [ 0.000000] [mem 0x20100000-0x203fffff] page 4k [ 0.000000] [mem 0x20400000-0x2fffffff] page 2M [ 0.000000] BRK [0x02464000, 0x02464fff] PGTABLE [ 0.000000] init_memory_mapping: [mem 0x37400000-0x377fdfff] [ 0.000000] [mem 0x37400000-0x377fdfff] page 4k [ 0.000000] BRK [0x02465000, 0x02465fff] PGTABLE [ 0.000000] ACPI: RSDP 0x78D85014 000024 (v02 INSYDE) [ 0.000000] ACPI: XSDT 0x78D61188 0000D4 (v01 INSYDE INSYDE 00000003 01000013) [ 0.000000] ACPI: FACP 0x78D7F000 00010C (v05 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: DSDT 0x78D6E000 00BAEC (v02 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D84000 000236 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: TCPA 0x78D83000 000032 (v02 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D81000 000042 (v01 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: DBG2 0x78D80000 000072 (v00 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: HPET 0x78D7E000 000038 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: LPIT 0x78D7D000 000104 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: APIC 0x78D7C000 00006C (v03 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: MCFG 0x78D7B000 00003C (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SLIC 0x78D7A000 000176 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6D000 0005FB (v01 INSYDE CpuDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6B000 0018C2 (v01 INSYDE DptfTab 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6A000 000058 (v01 INSYDE LowPwrM 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D69000 0000FF (v01 INSYDE SoCDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D68000 00043A (v01 INSYDE Tpm2Tabl 00001000 ACPI 00040000) [ 0.000000] ACPI: TPM2 0x78D67000 000034 (v03 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D66000 000763 (v01 INSYDE CpuPm 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D65000 000290 (v01 INSYDE Cpu0Tst 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D64000 00017A (v01 INSYDE ApTst 00003000 ACPI 00040000) [ 0.000000] ACPI: FPDT 0x78D63000 000044 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: CSRT 0x78D62000 00014C (v00 INSYDE INSYDE 00000005 ACPI 00040000) [ 0.000000] ACPI: BGRT 0x78D60000 000038 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] 1064MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] BRK [0x02466000, 0x02466fff] PGTABLE [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00001000-0x00ffffff] [ 0.000000] Normal [mem 0x01000000-0x377fdfff] [ 0.000000] HighMem [mem 0x377fe000-0x79ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00001000-0x0008efff] [ 0.000000] node 0: [mem 0x00090000-0x0009dfff] [ 0.000000] node 0: [mem 0x00100000-0x1fffffff] [ 0.000000] node 0: [mem 0x20100000-0x78345fff] [ 0.000000] node 0: [mem 0x78d86000-0x794c7fff] [ 0.000000] node 0: [mem 0x79dc8000-0x79ffffff] [ 0.000000] On node 0 totalpages: 494428 [ 0.000000] free_area_init_node: node 0, pgdat c17401c0, node_mem_map f68be020 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3996 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 222974 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2129 pages used for memmap [ 0.000000] HighMem zone: 267458 pages, LIFO batch:31 [ 0.000000] Using APIC driver default [ 0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable [ 0.000000] Reserving Intel graphics stolen memory at 0x7af00000-0x7eefffff [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-86 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.000000] nr_irqs_gsi: 103 [ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff] [ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x200fffff] [ 0.000000] e820: [mem 0x7ef00000-0xe00f7fff] available for PCI devices [ 0.000000] setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 12 pages/cpu @f6882000 s27264 r0 d21888 u49152 [ 0.000000] pcpu-alloc: s27264 r0 d21888 u49152 alloc=12*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 492652 [ 0.000000] Kernel command line: root=/dev/sda2 video=HDMI-A-1:1200x1920e drm_kms_helper.edid_firmware=HDMI-A-1:edid/1200x1920.bin [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0007a000) [ 0.000000] Initializing Movable for node 0 (00000000:00000000) [ 0.000000] Memory: 1909220K/1977712K available (5505K kernel code, 331K rwdata, 1640K rodata, 12092K init, 1236K bss, 68492K reserved, 1038956K highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfff66000 - 0xfffff000 ( 612 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1750000 - 0xc231f000 (12092 kB) [ 0.000000] .data : 0xc1560b12 - 0xc174efc0 (1977 kB) [ 0.000000] .text : 0xc1000000 - 0xc1560b12 (5506 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:1024 16 [ 0.000000] CPU 0 irqstacks, hard=f600c000 soft=f600e000 [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Maximum core-clock to bus-clock ratio: 0xa [ 0.000000] Resolved frequency ID: 2, frequency: 133200 KHz [ 0.000000] TSC runs at 1332000 KHz [ 0.000000] lapic_timer_frequency = 133200 [ 0.000000] tsc: Detected 1332.000 MHz processor [ 0.000037] Calibrating delay loop (skipped), value calculated using timer frequency.. 2664.00 BogoMIPS (lpj=1332000) [ 0.000054] pid_max: default: 32768 minimum: 301 [ 0.000071] ACPI: Core revision 20140214 [ 0.044032] ACPI: All ACPI Tables successfully acquired [ 0.046878] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.046898] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.047248] Initializing cgroup subsys freezer [ 0.047290] CPU: Physical Processor ID: 0 [ 0.047300] CPU: Processor Core ID: 0 [ 0.047311] ENERGY_PERF_BIAS: Set to 'normal', was 'performance' [ 0.047311] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8) [ 0.059441] mce: CPU supports 6 MCE banks [ 0.059460] CPU0: Thermal monitoring enabled (TM1) [ 0.059480] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0 [ 0.059480] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0 [ 0.059480] tlb_flushall_shift: 6 [ 0.059673] Freeing SMP alternatives memory: 20K (c231f000 - c2324000) [ 0.059708] ------------[ cut here ]------------ [ 0.059727] WARNING: CPU: 0 PID: 0 at /tmp/e2/build/linux-git/mm/early_ioremap.c:136 __early_ioremap+0xee/0x1a6() [ 0.059739] Modules linked in: [ 0.059752] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc5-Inari #1 [ 0.059762] Hardware name: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.059775] 00000000 00000000 c16fdf0c c155483e 00000000 c16fdf3c c103d194 c164be20 [ 0.059797] 00000000 00000000 c16539b8 00000088 c176cc03 c176cc03 00000042 77526000 [ 0.059819] 00000000 c16fdf4c c103d22d 00000009 00000000 c16fdfa0 c176cc03 c1740ec0 [ 0.059840] Call Trace: [ 0.059854] [<c155483e>] dump_stack+0x41/0x52 [ 0.059867] [<c103d194>] warn_slowpath_common+0x74/0x90 [ 0.059880] [<c176cc03>] ? __early_ioremap+0xee/0x1a6 [ 0.059892] [<c176cc03>] ? __early_ioremap+0xee/0x1a6 [ 0.059903] [<c103d22d>] warn_slowpath_null+0x1d/0x20 [ 0.059915] [<c176cc03>] __early_ioremap+0xee/0x1a6 [ 0.059928] [<c10368df>] ? __native_set_fixmap+0x1f/0x30 [ 0.059941] [<c176ce70>] early_memremap+0xd/0xf [ 0.059953] [<c1763743>] efi_bgrt_init+0xe6/0x129 [ 0.059965] [<c1763067>] efi_late_init+0x8/0xa [ 0.059978] [<c1750a3b>] start_kernel+0x34f/0x35f [ 0.059990] [<c1750523>] ? repair_env_string+0x51/0x51 [ 0.060003] [<c1750369>] i386_start_kernel+0x137/0x13a [ 0.060040] ---[ end trace 27ffb688a5381019 ]--- [ 0.062989] Enabling APIC mode: Flat. Using 1 I/O APICs [ 0.064018] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.074045] ..MP-BIOS bug: 8254 timer not connected to IO-APIC [ 0.074054] ...trying to set up timer (IRQ0) through the 8259A ... [ 0.074063] ..... (found apic 0 pin 2) ... [ 0.084079] ....... works. [ 0.084087] smpboot: CPU0: Intel(R) Atom(TM) CPU Z3745 @ 1.33GHz (fam: 06, model: 37, stepping: 08) [ 0.084126] TSC deadline timer enabled [ 0.084141] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, full-width counters, Intel PMU driver. [ 0.084168] ... version: 3 [ 0.084176] ... bit width: 40 [ 0.084183] ... generic registers: 2 [ 0.084191] ... value mask: 000000ffffffffff [ 0.084199] ... max period: 000000ffffffffff [ 0.084207] ... fixed-purpose events: 3 [ 0.084214] ... event mask: 0000000700000003 [ 0.085792] CPU 1 irqstacks, hard=f60a6000 soft=f60b0000 [ 0.085798] x86: Booting SMP configuration: [ 0.085809] .... node #0, CPUs: #1 [ 0.095924] Initializing CPU#1 [ 0.111134] CPU 2 irqstacks, hard=f60ba000 soft=f60bc000 [ 0.111153] #2 [ 0.121206] Initializing CPU#2 [ 0.136519] CPU 3 irqstacks, hard=f60c6000 soft=f60c8000 [ 0.136533] #3 [ 0.146587] Initializing CPU#3 [ 0.161772] x86: Booted up 1 node, 4 CPUs [ 0.161791] smpboot: Total of 4 processors activated (10656.00 BogoMIPS) [ 0.162741] devtmpfs: initialized [ 0.163227] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes) [ 0.163242] PM: Registering ACPI NVS region [mem 0x78c46000-0x78d45fff] (1048576 bytes) [ 0.163294] PM: Registering ACPI NVS region [mem 0x794c8000-0x79dc7fff] (9437184 bytes) [ 0.163841] pinctrl core: initialized pinctrl subsystem [ 0.163902] RTC time: 0:40:53, date: 05/16/14 [ 0.163989] NET: Registered protocol family 16 [ 0.164313] cpuidle: using governor ladder [ 0.164324] cpuidle: using governor menu [ 0.164398] ACPI: bus type PCI registered [ 0.164551] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.164568] PCI: not using MMCONFIG [ 0.164920] PCI: Using configuration type 1 for base access [ 0.170069] ACPI: Added _OSI(Module Device) [ 0.170084] ACPI: Added _OSI(Processor Device) [ 0.170094] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.170103] ACPI: Added _OSI(Processor Aggregator Device) [ 0.204674] ACPI: SSDT 0x78BCAA90 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.206249] ACPI: Dynamic OEM Table Load: [ 0.206264] ACPI: SSDT 0x00000000 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.206799] ACPI: SSDT 0x78BC9910 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.208647] ACPI: Dynamic OEM Table Load: [ 0.208661] ACPI: SSDT 0x00000000 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.215236] ACPI: SSDT 0x78BCBD90 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.216837] ACPI: Dynamic OEM Table Load: [ 0.216851] ACPI: SSDT 0x00000000 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.219400] ACPI: SSDT 0x78BCBF10 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.220819] ACPI: Dynamic OEM Table Load: [ 0.220832] ACPI: SSDT 0x00000000 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.226624] ACPI: Interpreter enabled [ 0.226659] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140214/hwxface-580) [ 0.226683] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140214/hwxface-580) [ 0.226705] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20140214/hwxface-580) [ 0.226726] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20140214/hwxface-580) [ 0.226746] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S5_] (20140214/hwxface-580) [ 0.226764] ACPI: (supports S0) [ 0.226773] ACPI: Using IOAPIC for interrupt routing [ 0.226862] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.234470] [Firmware Info]: PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] not reserved in ACPI motherboard resources [ 0.234487] PCI: not using MMCONFIG [ 0.234540] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.237741] ACPI: Power Resource [USBC] (on) [ 0.241990] ACPI: Power Resource [WWPR] (off) [ 0.252641] ACPI: Power Resource [PLPE] (on) [ 0.264429] ACPI: Power Resource [CLK0] (on) [ 0.264566] ACPI: Power Resource [CLK1] (on) [ 0.264924] ACPI: Power Resource [P28X] (off) [ 0.265067] ACPI: Power Resource [P18X] (off) [ 0.267582] ACPI: Power Resource [TCPR] (off) [ 0.274577] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.274601] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments MSI] [ 0.274806] \_SB_.PCI0:_OSC invalid UUID [ 0.274811] _OSC request data:1 1e 0 [ 0.274824] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM [ 0.276129] acpi PNP0A08:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. [ 0.276204] PCI host bridge to bus 0000:00 [ 0.276218] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.276231] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] [ 0.276242] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] [ 0.276254] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] [ 0.276266] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] [ 0.276277] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] [ 0.276289] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] [ 0.276301] pci_bus 0000:00: root bus resource [mem 0x90c00000-0x90ffffff] [ 0.276313] pci_bus 0000:00: root bus resource [mem 0x7af00001-0x7ef00000] [ 0.276325] pci_bus 0000:00: root bus resource [mem 0x80000000-0x908ffffe] [ 0.276337] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] [ 0.276361] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 [ 0.276562] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 [ 0.276588] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] [ 0.276607] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] [ 0.276625] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] [ 0.276833] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 [ 0.276864] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] [ 0.276943] pci 0000:00:14.0: PME# supported from D3hot D3cold [ 0.277123] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 [ 0.277154] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] [ 0.277171] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] [ 0.277272] pci 0000:00:1a.0: PME# supported from D0 D3hot [ 0.277437] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 [ 0.277671] pci_bus 0000:00: on NUMA node 0 [ 0.278783] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.279101] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.279417] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.279746] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280062] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280378] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280706] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281031] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.293311] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels [ 0.294019] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels [ 0.294793] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none [ 0.294809] vgaarb: loaded [ 0.294817] vgaarb: bridge control possible 0000:00:02.0 [ 0.295019] SCSI subsystem initialized [ 0.295037] ACPI: bus type USB registered [ 0.295110] usbcore: registered new interface driver usbfs [ 0.295156] usbcore: registered new interface driver hub [ 0.295258] usbcore: registered new device driver usb [ 0.302206] pps_core: LinuxPPS API ver. 1 registered [ 0.302219] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.302246] PTP clock support registered [ 0.302485] Advanced Linux Sound Architecture Driver Initialized. [ 0.302497] PCI: Using ACPI for IRQ routing [ 0.302507] PCI: pci_cache_line_size set to 64 bytes [ 0.302532] Expanded resource reserved due to conflict with PCI Bus 0000:00 [ 0.302544] e820: reserve RAM buffer [mem 0x0008f000-0x0008ffff] [ 0.302549] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff] [ 0.302554] e820: reserve RAM buffer [mem 0x78346000-0x7bffffff] [ 0.302559] e820: reserve RAM buffer [mem 0x794c8000-0x7bffffff] [ 0.302564] e820: reserve RAM buffer [mem 0x7a000000-0x7bffffff] [ 0.303000] cfg80211: Calling CRDA to update world regulatory domain [ 0.303235] Switched to clocksource refined-jiffies [ 0.303367] pnp: PnP ACPI init [ 0.303389] ACPI: bus type PNP registered [ 0.303499] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.303670] pnp 00:01: Plug and Play ACPI device, IDs PNP0103 (active) [ 0.303776] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active) [ 0.303895] system 00:03: [io 0x0680-0x069f] has been reserved [ 0.303911] system 00:03: [io 0x0400-0x047f] has been reserved [ 0.303923] system 00:03: [io 0x0500-0x05fe] has been reserved [ 0.303935] system 00:03: [io 0x0600-0x061f] has been reserved [ 0.303947] system 00:03: [io 0x164e-0x164f] has been reserved [ 0.303961] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active) [ 0.304307] pnp 00:04: Plug and Play ACPI device, IDs PNP0501 (active) [ 0.305812] pnp 00:05: Plug and Play ACPI device, IDs INT0002 (active) [ 0.305988] pnp 00:06: Plug and Play ACPI device, IDs INT33fc (active) [ 0.306155] pnp 00:07: Plug and Play ACPI device, IDs INT33fc (active) [ 0.306328] pnp 00:08: Plug and Play ACPI device, IDs INT33fc (active) [ 0.307495] pnp 00:09: unknown resource type 19 in _CRS [ 0.307509] pnp 00:09: can't evaluate _CRS: 1 [ 0.307579] pnp 00:09: Plug and Play ACPI device, IDs BCM2e3a (active) [ 0.314223] pnp 00:0a: unknown resource type 17 in _CRS [ 0.314237] pnp 00:0a: can't evaluate _CRS: 1 [ 0.314321] pnp 00:0a: Plug and Play ACPI device, IDs INTcfd9 PNP0c40 (active) [ 0.314481] pnp 00:0b: Plug and Play ACPI device, IDs INT33bd (active) [ 0.314809] pnp 00:0c: Plug and Play ACPI device, IDs INT3401 (active) [ 0.315136] pnp 00:0d: unknown resource type 17 in _CRS [ 0.315150] pnp 00:0d: can't evaluate _CRS: 1 [ 0.315224] pnp 00:0d: Plug and Play ACPI device, IDs INT3403 (active) [ 0.315362] pnp 00:0e: unknown resource type 17 in _CRS [ 0.315375] pnp 00:0e: can't evaluate _CRS: 1 [ 0.315448] pnp 00:0e: Plug and Play ACPI device, IDs INT3403 (active) [ 0.315643] pnp 00:0f: unknown resource type 17 in _CRS [ 0.315656] pnp 00:0f: can't evaluate _CRS: 1 [ 0.315730] pnp 00:0f: Plug and Play ACPI device, IDs INT3409 (active) [ 0.316029] pnp: PnP ACPI: found 16 devices [ 0.316040] ACPI: bus type PNP unregistered [ 0.321422] pci_bus 0000:00: resource 4 [io 0x0000-0x006f] [ 0.321433] pci_bus 0000:00: resource 5 [io 0x0078-0x0cf7] [ 0.321440] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff] [ 0.321446] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff] [ 0.321453] pci_bus 0000:00: resource 8 [mem 0x000c0000-0x000dffff] [ 0.321459] pci_bus 0000:00: resource 9 [mem 0x000e0000-0x000fffff] [ 0.321466] pci_bus 0000:00: resource 10 [mem 0x90c00000-0x90ffffff] [ 0.321472] pci_bus 0000:00: resource 11 [mem 0x7af00001-0x7ef00000] [ 0.321479] pci_bus 0000:00: resource 12 [mem 0x80000000-0x908ffffe] [ 0.321485] pci_bus 0000:00: resource 13 [mem 0xfed40000-0xfed40fff] [ 0.321549] NET: Registered protocol family 2 [ 0.321890] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.321938] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.322013] TCP: Hash tables configured (established 8192 bind 8192) [ 0.322056] TCP: reno registered [ 0.322068] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.322090] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.322183] NET: Registered protocol family 1 [ 0.322218] pci 0000:00:02.0: Boot video device [ 0.322632] PCI: CLS 0 bytes, default 64 [ 0.800023] microcode: CPU0 sig=0x30678, pf=0x2, revision=0x808 [ 0.800048] microcode: CPU1 sig=0x30678, pf=0x2, revision=0x808 [ 0.800075] microcode: CPU2 sig=0x30678, pf=0x2, revision=0x808 [ 0.800104] microcode: CPU3 sig=0x30678, pf=0x2, revision=0x808 [ 0.800208] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 0.800940] Scanning for low memory corruption every 60 seconds [ 0.801569] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.801616] audit: initializing netlink subsys (disabled) [ 0.801648] audit: type=2000 audit(1400200853.766:1): initialized [ 0.837558] bounce pool size: 64 pages [ 0.837578] HugeTLB registered 4 MB page size, pre-allocated 0 pages [ 0.843189] msgmni has been set to 1760 [ 0.843903] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.843919] io scheduler noop registered [ 0.843928] io scheduler deadline registered [ 0.844106] io scheduler cfq registered (default) [ 0.844447] intel_idle: MWAIT substates: 0x33000020 [ 0.844452] intel_idle: v0.4 model 0x37 [ 0.844457] intel_idle: lapic_timer_reliable_states 0xffffffff [ 0.852001] ACPI: AC Adapter [ADP1] (on-line) [ 0.852326] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 0.852347] ACPI: Power Button [PWRF] [ 0.852359] ACPI Warning: Could not enable fixed event - PowerButton (2) (20140214/evxface-628) [ 0.858350] button: probe of LNXPWRBN:00 failed with error -22 [ 0.864025] [Firmware Bug]: No valid trip found [ 0.864273] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.884668] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.885698] 80860F0A:00: ttyS1 at MMIO 0x9091d000 (irq = 39, base_baud = 2764800) is a 16550A [ 0.885954] 80860F0A:01: ttyS2 at MMIO 0x9091f000 (irq = 40, base_baud = 2764800) is a 16550A [ 0.886308] hpet: number irqs doesn't agree with number of timers [ 0.886438] Non-volatile memory driver v1.3 [ 0.886514] [drm] Initialized drm 1.1.0 20060810 [ 0.888432] [drm] Memory usable by graphics device = 2048M [ 0.893120] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.893372] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.893636] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.893887] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.894138] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.896821] i915 0000:00:02.0: irq 103 for MSI/MSI-X [ 0.896839] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.896849] [drm] Driver supports precise vblank timestamp query. [ 0.949327] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 0.950125] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.950523] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 1.478205] [drm] forcing HDMI-A-1 connector ON [ 1.554441] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ 1.575805] [drm] Got external EDID base block and 0 extensions from "edid/1200x1920.bin" for connector "HDMI-A-1" [ 1.722033] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4 [ 1.818338] fbcon: inteldrmfb (fb0) is primary device [ 1.955080] Switched to clocksource tsc [ 2.331727] Console: switching to colour frame buffer device 150x120 [ 2.365253] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device [ 2.365400] i915 0000:00:02.0: registered panic notifier [ 2.369617] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 2.371353] acpi device:1a: registered as cooling_device4 [ 2.372792] acpi device:21: registered as cooling_device5 [ 2.373108] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1 [ 2.373395] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 2.373911] brd: module loaded [ 2.374464] loop: module loaded [ 2.375205] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.375451] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1 [ 2.375778] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 2.375815] xhci_hcd 0000:00:14.0: irq 104 for MSI/MSI-X [ 2.375961] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.376124] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.376295] usb usb1: Product: xHCI Host Controller [ 2.376412] usb usb1: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.376568] usb usb1: SerialNumber: 0000:00:14.0 [ 2.376973] hub 1-0:1.0: USB hub found [ 2.377087] hub 1-0:1.0: 6 ports detected [ 2.378757] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.378979] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2 [ 2.379241] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2.379405] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.379583] usb usb2: Product: xHCI Host Controller [ 2.379702] usb usb2: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.379850] usb usb2: SerialNumber: 0000:00:14.0 [ 2.380239] hub 2-0:1.0: USB hub found [ 2.380351] hub 2-0:1.0: 1 port detected [ 2.380860] usbcore: registered new interface driver usb-storage [ 2.381142] i8042: PNP: No PS/2 controller found. Probing ports directly. [ 3.425347] i8042: No controller found [ 3.425565] mousedev: PS/2 mouse device common for all mice [ 3.425675] [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off [ 3.426041] ACPI Warning: Could not enable fixed event - RealTimeClock (4) (20140214/evxface-628) [ 3.426464] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0 [ 3.426649] rtc_cmos 00:00: alarms up to one day, 242 bytes nvram [ 3.426883] i2c /dev entries driver [ 3.428313] Intel P-state driver initializing. [ 3.428446] Intel pstate controlling: cpu 0 [ 3.428587] Intel pstate controlling: cpu 1 [ 3.428725] Intel pstate controlling: cpu 2 [ 3.428886] Intel pstate controlling: cpu 3 [ 3.429124] sdhci: Secure Digital Host Controller Interface driver [ 3.429272] sdhci: Copyright(c) Pierre Ossman [ 3.430578] mmc0: no vqmmc regulator found [ 3.430681] mmc0: no vmmc regulator found [ 3.431936] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA [ 3.433476] mmc1: no vqmmc regulator found [ 3.433579] mmc1: no vmmc regulator found [ 3.434830] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 3.435453] sdhci-acpi 80860F14:01: failed to setup card detect gpio [ 3.436623] mmc2: no vqmmc regulator found [ 3.436724] mmc2: no vmmc regulator found [ 3.437966] mmc2: SDHCI controller on ACPI [80860F14:01] using ADMA [ 3.438148] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.438273] EFI Variables Facility v0.08 2004-May-17 [ 3.448100] hidraw: raw HID events driver (C) Jiri Kosina [ 3.448546] usbcore: registered new interface driver usbhid [ 3.448660] usbhid: USB HID core driver [ 3.449146] TCP: cubic registered [ 3.449218] Initializing XFRM netlink socket [ 3.449576] NET: Registered protocol family 10 [ 3.450087] sit: IPv6 over IPv4 tunneling driver [ 3.450438] NET: Registered protocol family 17 [ 3.450890] Using IPI No-Shortcut mode [ 3.451197] registered taskstats version 1 [ 3.451596] Magic number: 14:324:658 [ 3.451761] console [netcon0] enabled [ 3.451837] netconsole: network logging started [ 3.452124] PM: Hibernation image not present or could not be loaded. [ 3.452133] ALSA device list: [ 3.452195] No soundcards found. [ 3.452325] Warning: unable to open an initial console. [ 3.458742] Freeing unused kernel memory: 12092K (c1750000 - c231f000) [ 3.472576] udevd[949]: starting version 173 [ 3.545752] mmc0: BKOPS_EN bit is not set [ 3.622230] mmc0: new HS200 MMC card at address 0001 [ 3.624057] mmcblk0: mmc0:0001 HCG8e\x04 58.2 GiB [ 3.624598] mmcblk0boot0: mmc0:0001 HCG8e\x04 partition 1 4.00 MiB [ 3.624750] mmcblk0boot1: mmc0:0001 HCG8e\x04 partition 2 4.00 MiB [ 3.625057] mmcblk0rpmb: mmc0:0001 HCG8e\x04 partition 3 4.00 MiB [ 3.625994] mmcblk0: p1 p2 [ 3.630611] mmcblk0boot1: unknown partition table [ 3.633735] mmcblk0boot0: [ 3.640096] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 3.651068] usb 2-1: New USB device found, idVendor=0451, idProduct=8046 [ 3.651186] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.651671] hub 2-1:1.0: USB hub found [ 3.651758] hub 2-1:1.0: 4 ports detected [ 3.779948] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 3.943266] usb 1-1: New USB device found, idVendor=0451, idProduct=8044 [ 3.969159] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 3.994984] usb 1-1: SerialNumber: 420208698DA1 [ 4.021771] hub 1-1:1.0: USB hub found [ 4.047612] hub 1-1:1.0: 4 ports detected [ 4.094961] Clocksource tsc unstable (delta = 139070527 ns) [ 4.120773] Switched to clocksource refined-jiffies [ 4.143425] usb 1-3: new high-speed USB device number 3 using xhci_hcd [ 4.235688] usb 1-3: New USB device found, idVendor=12d1, idProduct=1570 [ 4.262187] usb 1-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0 [ 4.288823] usb 1-3: Product: HUAWEI Mobile Broadband Module [ 4.315372] usb 1-3: Manufacturer: Huawei Technologies Co., Ltd. [ 4.454809] usb 1-4: new high-speed USB device number 4 using xhci_hcd [ 4.615088] usb 1-4: New USB device found, idVendor=0951, idProduct=1603 [ 4.641469] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.667779] usb 1-4: Product: DataTraveler 2.0 [ 4.694205] usb 1-4: Manufacturer: Kingston [ 4.720492] usb 1-4: SerialNumber: 89900000000000000000017E [ 4.747830] usb-storage 1-4:1.0: USB Mass Storage device detected [ 4.774449] scsi0 : usb-storage 1-4:1.0 [ 4.833239] usb 1-1.1: new low-speed USB device number 5 using xhci_hcd [ 4.904523] usb 1-1.1: New USB device found, idVendor=046d, idProduct=c03e [ 4.930590] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 4.956550] usb 1-1.1: Product: USB-PS/2 Optical Mouse [ 4.982418] usb 1-1.1: Manufacturer: Logitech [ 5.008663] usb 1-1.1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes [ 5.039453] input: Logitech USB-PS/2 Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/0003:046D:C03E.0001/input/input2 [ 5.067114] hid-generic 0003:046D:C03E.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:14.0-1.1/input0 [ 5.132430] usb 1-1.2: new high-speed USB device number 6 using xhci_hcd [ 5.203734] usb 1-1.2: New USB device found, idVendor=0424, idProduct=7500 [ 5.230739] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.257917] usb 1-1.2: Product: LAN7500 [ 5.284761] usb 1-1.2: Manufacturer: SMSC [ 5.311315] usb 1-1.2: SerialNumber: 00800f11700e [ 5.381679] usb 1-1.3: new low-speed USB device number 7 using xhci_hcd [ 5.462341] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c312 [ 5.489081] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.515839] usb 1-1.3: Product: USB Multimedia Keyboard [ 5.542443] usb 1-1.3: Manufacturer: LITEON Technology [ 5.569572] usb 1-1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 192 microframes [ 5.600996] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C312.0002/input/input3 [ 5.656590] hid-generic 0003:046D:C312.0002: input,hidraw1: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:14.0-1.3/input0 [ 5.768892] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 [ 5.799079] sd 0:0:0:0: [sda] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB) [ 5.799096] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 5.857532] sd 0:0:0:0: [sda] Write Protect is off [ 5.886444] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00 [ 5.886816] sd 0:0:0:0: [sda] No Caching mode page found [ 5.915622] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 5.947408] sda: sda1 sda2 [ 5.986433] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 6.043333] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities [ 6.076814] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities [ 6.119661] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 6.280069] random: nonblocking pool is initialized [ 7.357011] udevd[1689]: starting version 173 [ 7.477008] sst-acpi 80860F28:00: Direct firmware load failed with error -2 [ 7.484948] sst-acpi 80860F28:00: Falling back to user helper [ 7.577743] sst-acpi 80860F28:00: Cannot load firmware intel/fw_sst_0f28.bin-i2s_master [ 7.586076] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 7.592798] smsc75xx v1.0.0 [ 7.601973] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 7.629938] smsc75xx 1-1.2:1.0 eth0: register 'smsc75xx' at usb-0000:00:14.0-1.2, smsc75xx USB 2.0 Gigabit Ethernet, 70:2f:97:00:22:4f [ 7.660544] usbcore: registered new interface driver smsc75xx [ 7.660554] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 7.660598] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 15.786357] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 15.819492] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 15.850882] mmcblk0rpmb: retrying using single block read [ 15.884298] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 15.917928] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 15.951471] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 15.984802] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.017890] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.050737] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 16.081372] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 16.112006] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 24.373945] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 24.407032] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 24.438318] mmcblk0rpmb: retrying using single block read [ 24.471644] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.505126] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.538515] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.571758] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.604838] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.637751] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 24.668398] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 24.699120] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 32.940422] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 32.973781] mmcblk0rpmb: error -110 transferring data, sector 0, nr 16, cmd response 0x900, card status 0xb00 [ 33.005431] mmcblk0rpmb: retrying using single block read [ 33.039167] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.073116] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.106965] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.140652] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.174081] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.207244] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 33.238143] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 33.269079] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 33.300138] end_request: I/O error, dev mmcblk0rpmb, sector 8 [ 33.331221] Buffer I/O error on device mmcblk0rpmb, logical block 1 [ 41.566672] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 41.600468] mmcblk0rpmb: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 41.632451] mmcblk0rpmb: retrying using single block read [ 41.666526] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.700864] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.734945] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.768811] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.802498] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.835947] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 41.867201] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 41.898423] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 45.972615] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 47.603164] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 47.634111] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 47.668901] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 316 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-15 7:50 ` Rolf Eike Beer 2014-05-15 14:49 ` Lan Tianyu @ 2014-05-20 14:17 ` Rolf Eike Beer 2014-05-22 15:14 ` Lan Tianyu 1 sibling, 1 reply; 79+ messages in thread From: Rolf Eike Beer @ 2014-05-20 14:17 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1.1: Type: text/plain, Size: 155843 bytes --] =2D-nextPart3540697.JozLVkjM1S Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Rolf Eike Beer wrote: > Lan Tianyu wrote: > > On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > > > Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > > >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart= ) > > >> operation > > >> region. It allows ACPI aml code able to access such kind of devi= ces to > > >> implement some ACPI standard method. > > >>=20 > > >> On the Asus T100TA, Bios use GenericSerialBus operation region t= o > > >> access > > >> i2c device to get battery info. So battery function depends on t= he I2C > > >> operation region support. Here is the bug link. > > >> https://bugzilla.kernel.org/show_bug.cgi?id=3D69011 > > > I have tested this series and got some errors, but no additional > > > functionality: > this is an Aava Inari 8 tablet (pre-release hardware). Please find th= e DSDT > and the dmesg.log attached. It may be that I have taken the wrong ACPI files. This is the result of= a=20 fresh run of acpidump, together with the most recent dmesg.log, just in= case=20 I messed it up. Kernel now is at 60b5f90+some patches: 8e7bd6f pinctrl: baytrail: Register GPIO chip after chip->to_irq is set= c4b2230 pinctrl: baytrail: Add back Baytrail-T ACPI ID 32f3364 gpio: Add support for Intel SoC PMIC (Crystal Cove) 088ee81 mfd: intel_soc_pmic: Build files 5315135 mfd: intel_soc_pmic: Crystal Cove support 8b5ed0b mfd: intel_soc_pmic: I2C interface b18979f mfd: intel_soc_pmic: Core driver 5200b75 add debugging (This is the debug patch Lan Tianyu sent as reply to the previous mai= l) bd3e6c6 I2C/ACPI: Add CONFIG_I2C_ACPI config 947f0a1 I2C/ACPI: Move ACPI related code to i2c-acpi.c 534f182 I2C/ACPI: Add i2c ACPI operation region support 32384d4 I2C: Add smbus word/block process call helper function aa6459e I2C: Add smbus quick read/write helper function 51825ed ACPI/Thermal: Use acpi_bus_attach_private_data() to attach priv= ate data 95e9e92 ACPI: Add acpi_bus_attach_private_data() to facilitate to attac= h data to ACPI handle cc6fecb ACPICA: Export acpi_buffer_to_resource symbol ad38de6 ACPI / LPSS: custom power domain for LPSS b0caadf ACPI / PM: Export rest of the subsys functions 22a7210 ACPI / platform: add another ID for Broadcom Bluetooth and GPS = chips (this just adds AAM4752 as another platform id) 000627d ACPI / platform: add IDs for Broadcom Bluetooth and GPS chips Eike =2D-=20 Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 G=F6ttingen, Germany Sitz der Gesellschaft: G=F6ttingen, Amtsgericht G=F6ttingen HR B 3160 Gesch=E4ftsf=FChrung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source =2D-nextPart3540697.JozLVkjM1S Content-Disposition: attachment; filename="acpi_fw10.dat.gz" Content-Transfer-Encoding: base64 Content-Type: application/x-gzip; name="acpi_fw10.dat.gz" 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 =2D-nextPart3540697.JozLVkjM1S Content-Disposition: attachment; filename="dmesg.log-3.15-rc5-inari2" Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8"; name="dmesg.log-3.15-rc5-inari2" [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.0-rc5-Inari (root@devpool02) (gcc version 4.8.2 (Emlix Linux Inari) ) #1 SMP Tue May 20 13:33:31 UTC 2014 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable [ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009dfff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078345fff] usable [ 0.000000] BIOS-e820: [mem 0x0000000078346000-0x0000000078c45fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000078c46000-0x0000000078d45fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000078d46000-0x0000000078d85fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000078d86000-0x00000000794c7fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000794c8000-0x0000000079dc7fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000079dc8000-0x0000000079ffffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] efi: EFI v2.31 by INSYDE Corp. [ 0.000000] efi: ACPI 2.0=0x78d85014 SMBIOS=0x78c45000 [ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB) [ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB) [ 0.000000] efi: mem02: type=7, attr=0xf, range=[0x0000000000007000-0x000000000008f000) (0MB) [ 0.000000] efi: mem03: type=10, attr=0xf, range=[0x000000000008f000-0x0000000000090000) (0MB) [ 0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x000000000009e000) (0MB) [ 0.000000] efi: mem05: type=0, attr=0xf, range=[0x000000000009e000-0x00000000000a0000) (0MB) [ 0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000000100000-0x0000000001000000) (15MB) [ 0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000001000000-0x0000000002585000) (21MB) [ 0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000002585000-0x0000000020000000) (474MB) [ 0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020100000) (1MB) [ 0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000020100000-0x0000000071dc0000) (1308MB) [ 0.000000] efi: mem11: type=4, attr=0xf, range=[0x0000000071dc0000-0x0000000071de0000) (0MB) [ 0.000000] efi: mem12: type=7, attr=0xf, range=[0x0000000071de0000-0x0000000072bc7000) (13MB) [ 0.000000] efi: mem13: type=2, attr=0xf, range=[0x0000000072bc7000-0x0000000072bc9000) (0MB) [ 0.000000] efi: mem14: type=1, attr=0xf, range=[0x0000000072bc9000-0x0000000073b46000) (15MB) [ 0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000073b46000-0x0000000076a92000) (47MB) [ 0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000076a92000-0x00000000774ec000) (10MB) [ 0.000000] efi: mem17: type=7, attr=0xf, range=[0x00000000774ec000-0x00000000774f9000) (0MB) [ 0.000000] efi: mem18: type=4, attr=0xf, range=[0x00000000774f9000-0x0000000077d46000) (8MB) [ 0.000000] efi: mem19: type=7, attr=0xf, range=[0x0000000077d46000-0x0000000078161000) (4MB) [ 0.000000] efi: mem20: type=3, attr=0xf, range=[0x0000000078161000-0x0000000078346000) (1MB) [ 0.000000] efi: mem21: type=5, attr=0x800000000000000f, range=[0x0000000078346000-0x0000000078546000) (2MB) [ 0.000000] efi: mem22: type=6, attr=0x800000000000000f, range=[0x0000000078546000-0x0000000078846000) (3MB) [ 0.000000] efi: mem23: type=0, attr=0xf, range=[0x0000000078846000-0x0000000078c46000) (4MB) [ 0.000000] efi: mem24: type=10, attr=0xf, range=[0x0000000078c46000-0x0000000078d46000) (1MB) [ 0.000000] efi: mem25: type=9, attr=0xf, range=[0x0000000078d46000-0x0000000078d86000) (0MB) [ 0.000000] efi: mem26: type=4, attr=0xf, range=[0x0000000078d86000-0x00000000794c8000) (7MB) [ 0.000000] efi: mem27: type=10, attr=0xf, range=[0x00000000794c8000-0x0000000079dc8000) (9MB) [ 0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000079dc8000-0x000000007a000000) (2MB) [ 0.000000] efi: mem29: type=11, attr=0x8000000000000001, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB) [ 0.000000] efi: mem30: type=11, attr=0x8000000000000000, range=[0x00000000fed01000-0x00000000fed02000) (0MB) [ 0.000000] efi: mem31: type=11, attr=0x8000000000000000, range=[0x00000000ffd00000-0x0000000100000000) (3MB) [ 0.000000] SMBIOS 2.7 present. [ 0.000000] DMI: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0FFD00000 mask FFFC00000 write-protect [ 0.000000] 1 base 000000000 mask FC0000000 write-back [ 0.000000] 2 base 040000000 mask FE0000000 write-back [ 0.000000] 3 base 060000000 mask FF0000000 write-back [ 0.000000] 4 base 070000000 mask FF8000000 write-back [ 0.000000] 5 base 078000000 mask FFC000000 write-back [ 0.000000] 6 base 07B000000 mask FFF000000 uncachable [ 0.000000] 7 base 07AE00000 mask FFFE00000 uncachable [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] initial memory mapped: [mem 0x00000000-0x027fffff] [ 0.000000] Base memory trampoline at [c009a000] 9a000 size 16384 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] [mem 0x00000000-0x000fffff] page 4k [ 0.000000] init_memory_mapping: [mem 0x37000000-0x373fffff] [ 0.000000] [mem 0x37000000-0x373fffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x30000000-0x36ffffff] [ 0.000000] [mem 0x30000000-0x36ffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.000000] [mem 0x00100000-0x003fffff] page 4k [ 0.000000] [mem 0x00400000-0x1fffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x20100000-0x2fffffff] [ 0.000000] [mem 0x20100000-0x203fffff] page 4k [ 0.000000] [mem 0x20400000-0x2fffffff] page 2M [ 0.000000] BRK [0x0246a000, 0x0246afff] PGTABLE [ 0.000000] init_memory_mapping: [mem 0x37400000-0x377fdfff] [ 0.000000] [mem 0x37400000-0x377fdfff] page 4k [ 0.000000] BRK [0x0246b000, 0x0246bfff] PGTABLE [ 0.000000] ACPI: RSDP 0x78D85014 000024 (v02 INSYDE) [ 0.000000] ACPI: XSDT 0x78D61188 0000D4 (v01 INSYDE INSYDE 00000003 01000013) [ 0.000000] ACPI: FACP 0x78D7F000 00010C (v05 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: DSDT 0x78D6E000 00BAEC (v02 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D84000 000236 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: TCPA 0x78D83000 000032 (v02 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D81000 000042 (v01 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: DBG2 0x78D80000 000072 (v00 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: HPET 0x78D7E000 000038 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: LPIT 0x78D7D000 000104 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: APIC 0x78D7C000 00006C (v03 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: MCFG 0x78D7B000 00003C (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SLIC 0x78D7A000 000176 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6D000 0005FB (v01 INSYDE CpuDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6B000 0018C2 (v01 INSYDE DptfTab 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6A000 000058 (v01 INSYDE LowPwrM 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D69000 0000FF (v01 INSYDE SoCDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D68000 00043A (v01 INSYDE Tpm2Tabl 00001000 ACPI 00040000) [ 0.000000] ACPI: TPM2 0x78D67000 000034 (v03 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D66000 000763 (v01 INSYDE CpuPm 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D65000 000290 (v01 INSYDE Cpu0Tst 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D64000 00017A (v01 INSYDE ApTst 00003000 ACPI 00040000) [ 0.000000] ACPI: FPDT 0x78D63000 000044 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: CSRT 0x78D62000 00014C (v00 INSYDE INSYDE 00000005 ACPI 00040000) [ 0.000000] ACPI: BGRT 0x78D60000 000038 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] 1064MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] BRK [0x0246c000, 0x0246cfff] PGTABLE [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00001000-0x00ffffff] [ 0.000000] Normal [mem 0x01000000-0x377fdfff] [ 0.000000] HighMem [mem 0x377fe000-0x79ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00001000-0x0008efff] [ 0.000000] node 0: [mem 0x00090000-0x0009dfff] [ 0.000000] node 0: [mem 0x00100000-0x1fffffff] [ 0.000000] node 0: [mem 0x20100000-0x78345fff] [ 0.000000] node 0: [mem 0x78d86000-0x794c7fff] [ 0.000000] node 0: [mem 0x79dc8000-0x79ffffff] [ 0.000000] On node 0 totalpages: 494428 [ 0.000000] free_area_init_node: node 0, pgdat c17447c0, node_mem_map f68be020 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3996 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 222974 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2129 pages used for memmap [ 0.000000] HighMem zone: 267458 pages, LIFO batch:31 [ 0.000000] Using APIC driver default [ 0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable [ 0.000000] Reserving Intel graphics stolen memory at 0x7af00000-0x7eefffff [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-86 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.000000] nr_irqs_gsi: 103 [ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff] [ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x200fffff] [ 0.000000] e820: [mem 0x7ef00000-0xe00f7fff] available for PCI devices [ 0.000000] setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 12 pages/cpu @f6882000 s27264 r0 d21888 u49152 [ 0.000000] pcpu-alloc: s27264 r0 d21888 u49152 alloc=12*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 492652 [ 0.000000] Kernel command line: root=/dev/sda2 video=HDMI-A-1:1200x1920e drm_kms_helper.edid_firmware=HDMI-A-1:edid/1200x1920.bin [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0007a000) [ 0.000000] Initializing Movable for node 0 (00000000:00000000) [ 0.000000] Memory: 1909196K/1977712K available (5512K kernel code, 337K rwdata, 1644K rodata, 12096K init, 1236K bss, 68516K reserved, 1038956K highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfff66000 - 0xfffff000 ( 612 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1755000 - 0xc2325000 (12096 kB) [ 0.000000] .data : 0xc1562492 - 0xc1753640 (1988 kB) [ 0.000000] .text : 0xc1000000 - 0xc1562492 (5513 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:1024 16 [ 0.000000] CPU 0 irqstacks, hard=f600c000 soft=f600e000 [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Maximum core-clock to bus-clock ratio: 0xa [ 0.000000] Resolved frequency ID: 2, frequency: 133200 KHz [ 0.000000] TSC runs at 1332000 KHz [ 0.000000] lapic_timer_frequency = 133200 [ 0.000000] tsc: Detected 1332.000 MHz processor [ 0.000037] Calibrating delay loop (skipped), value calculated using timer frequency.. 2664.00 BogoMIPS (lpj=1332000) [ 0.000055] pid_max: default: 32768 minimum: 301 [ 0.000071] ACPI: Core revision 20140214 [ 0.044283] ACPI: All ACPI Tables successfully acquired [ 0.046946] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.046966] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.047312] Initializing cgroup subsys freezer [ 0.047355] CPU: Physical Processor ID: 0 [ 0.047365] CPU: Processor Core ID: 0 [ 0.047376] ENERGY_PERF_BIAS: Set to 'normal', was 'performance' [ 0.047376] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8) [ 0.059505] mce: CPU supports 6 MCE banks [ 0.059523] CPU0: Thermal monitoring enabled (TM1) [ 0.059544] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0 [ 0.059544] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0 [ 0.059544] tlb_flushall_shift: 6 [ 0.059737] Freeing SMP alternatives memory: 20K (c2325000 - c232a000) [ 0.059772] ------------[ cut here ]------------ [ 0.059792] WARNING: CPU: 0 PID: 0 at /tmp/e2/build/linux-git/mm/early_ioremap.c:136 __early_ioremap+0xee/0x1a6() [ 0.059804] Modules linked in: [ 0.059817] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc5-Inari #1 [ 0.059827] Hardware name: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.059840] 00000000 00000000 c1701f0c c15561be 00000000 c1701f3c c103d194 c164e24c [ 0.059862] 00000000 00000000 c1655de4 00000088 c1771c13 c1771c13 00000042 77526000 [ 0.059883] 00000000 c1701f4c c103d22d 00000009 00000000 c1701fa0 c1771c13 c17454c0 [ 0.059904] Call Trace: [ 0.059919] [<c15561be>] dump_stack+0x41/0x52 [ 0.059932] [<c103d194>] warn_slowpath_common+0x74/0x90 [ 0.059945] [<c1771c13>] ? __early_ioremap+0xee/0x1a6 [ 0.059957] [<c1771c13>] ? __early_ioremap+0xee/0x1a6 [ 0.059968] [<c103d22d>] warn_slowpath_null+0x1d/0x20 [ 0.059981] [<c1771c13>] __early_ioremap+0xee/0x1a6 [ 0.059993] [<c10368df>] ? __native_set_fixmap+0x1f/0x30 [ 0.060021] [<c1771e80>] early_memremap+0xd/0xf [ 0.060034] [<c1768753>] efi_bgrt_init+0xe6/0x129 [ 0.060046] [<c1768077>] efi_late_init+0x8/0xa [ 0.060058] [<c1755a3b>] start_kernel+0x34f/0x35f [ 0.060070] [<c1755523>] ? repair_env_string+0x51/0x51 [ 0.060081] [<c1755369>] i386_start_kernel+0x137/0x13a [ 0.060104] ---[ end trace 840e1cff9080aa63 ]--- [ 0.063071] Enabling APIC mode: Flat. Using 1 I/O APICs [ 0.064118] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.074144] ..MP-BIOS bug: 8254 timer not connected to IO-APIC [ 0.074153] ...trying to set up timer (IRQ0) through the 8259A ... [ 0.074162] ..... (found apic 0 pin 2) ... [ 0.084178] ....... works. [ 0.084186] smpboot: CPU0: Intel(R) Atom(TM) CPU Z3745 @ 1.33GHz (fam: 06, model: 37, stepping: 08) [ 0.084226] TSC deadline timer enabled [ 0.084241] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, full-width counters, Intel PMU driver. [ 0.084267] ... version: 3 [ 0.084275] ... bit width: 40 [ 0.084283] ... generic registers: 2 [ 0.084290] ... value mask: 000000ffffffffff [ 0.084299] ... max period: 000000ffffffffff [ 0.084306] ... fixed-purpose events: 3 [ 0.084314] ... event mask: 0000000700000003 [ 0.085895] CPU 1 irqstacks, hard=f60a6000 soft=f60b0000 [ 0.085901] x86: Booting SMP configuration: [ 0.085911] .... node #0, CPUs: #1 [ 0.096027] Initializing CPU#1 [ 0.111238] CPU 2 irqstacks, hard=f60ba000 soft=f60bc000 [ 0.111257] #2 [ 0.121310] Initializing CPU#2 [ 0.136523] CPU 3 irqstacks, hard=f60c6000 soft=f60c8000 [ 0.136537] #3 [ 0.146591] Initializing CPU#3 [ 0.161676] x86: Booted up 1 node, 4 CPUs [ 0.161696] smpboot: Total of 4 processors activated (10656.00 BogoMIPS) [ 0.162646] devtmpfs: initialized [ 0.163134] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes) [ 0.163150] PM: Registering ACPI NVS region [mem 0x78c46000-0x78d45fff] (1048576 bytes) [ 0.163202] PM: Registering ACPI NVS region [mem 0x794c8000-0x79dc7fff] (9437184 bytes) [ 0.163750] pinctrl core: initialized pinctrl subsystem [ 0.163810] RTC time: 6:00:32, date: 05/20/14 [ 0.163897] NET: Registered protocol family 16 [ 0.164225] cpuidle: using governor ladder [ 0.164236] cpuidle: using governor menu [ 0.164310] ACPI: bus type PCI registered [ 0.164463] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.164480] PCI: not using MMCONFIG [ 0.164835] PCI: Using configuration type 1 for base access [ 0.169934] ACPI: Added _OSI(Module Device) [ 0.169949] ACPI: Added _OSI(Processor Device) [ 0.169958] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.169967] ACPI: Added _OSI(Processor Aggregator Device) [ 0.205576] ACPI: SSDT 0x78BCAA90 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.207151] ACPI: Dynamic OEM Table Load: [ 0.207166] ACPI: SSDT 0x00000000 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.207698] ACPI: SSDT 0x78BC9910 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.209556] ACPI: Dynamic OEM Table Load: [ 0.209570] ACPI: SSDT 0x00000000 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.216146] ACPI: SSDT 0x78BCBD90 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.217742] ACPI: Dynamic OEM Table Load: [ 0.217756] ACPI: SSDT 0x00000000 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.220317] ACPI: SSDT 0x78BCBF10 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.221740] ACPI: Dynamic OEM Table Load: [ 0.221754] ACPI: SSDT 0x00000000 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.227520] ACPI: Interpreter enabled [ 0.227556] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140214/hwxface-580) [ 0.227580] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140214/hwxface-580) [ 0.227601] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20140214/hwxface-580) [ 0.227622] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20140214/hwxface-580) [ 0.227642] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S5_] (20140214/hwxface-580) [ 0.227660] ACPI: (supports S0) [ 0.227668] ACPI: Using IOAPIC for interrupt routing [ 0.227757] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.235389] [Firmware Info]: PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] not reserved in ACPI motherboard resources [ 0.235406] PCI: not using MMCONFIG [ 0.235464] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.238750] ACPI: Power Resource [USBC] (on) [ 0.242935] ACPI: Power Resource [WWPR] (off) [ 0.253593] ACPI: Power Resource [PLPE] (on) [ 0.265552] ACPI: Power Resource [CLK0] (on) [ 0.265698] ACPI: Power Resource [CLK1] (on) [ 0.266063] ACPI: Power Resource [P28X] (off) [ 0.266206] ACPI: Power Resource [P18X] (off) [ 0.268756] ACPI: Power Resource [TCPR] (off) [ 0.275852] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.275877] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments MSI] [ 0.276078] \_SB_.PCI0:_OSC invalid UUID [ 0.276083] _OSC request data:1 1e 0 [ 0.276096] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM [ 0.277397] acpi PNP0A08:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. [ 0.277495] PCI host bridge to bus 0000:00 [ 0.277510] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.277522] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] [ 0.277534] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] [ 0.277545] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] [ 0.277557] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] [ 0.277569] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] [ 0.277581] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] [ 0.277593] pci_bus 0000:00: root bus resource [mem 0x90c00000-0x90ffffff] [ 0.277604] pci_bus 0000:00: root bus resource [mem 0x7af00001-0x7ef00000] [ 0.277616] pci_bus 0000:00: root bus resource [mem 0x80000000-0x908ffffe] [ 0.277628] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] [ 0.277652] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 [ 0.277844] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 [ 0.277870] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] [ 0.277889] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] [ 0.277907] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] [ 0.278123] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 [ 0.278154] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] [ 0.278234] pci 0000:00:14.0: PME# supported from D3hot D3cold [ 0.278409] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 [ 0.278451] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] [ 0.278469] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] [ 0.278570] pci 0000:00:1a.0: PME# supported from D0 D3hot [ 0.278744] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 [ 0.278969] pci_bus 0000:00: on NUMA node 0 [ 0.280068] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280384] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280709] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281023] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281343] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281666] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281977] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.282289] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.296031] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels [ 0.296777] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels [ 0.297560] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none [ 0.297576] vgaarb: loaded [ 0.297584] vgaarb: bridge control possible 0000:00:02.0 [ 0.297838] SCSI subsystem initialized [ 0.297856] ACPI: bus type USB registered [ 0.297942] usbcore: registered new interface driver usbfs [ 0.297987] usbcore: registered new interface driver hub [ 0.298068] usbcore: registered new device driver usb [ 0.308808] intel_soc_pmic_i2c i2c-INT33FD:00: Can't enable IRQ as wake source: -6 [ 0.309261] pps_core: LinuxPPS API ver. 1 registered [ 0.309273] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.309301] PTP clock support registered [ 0.309569] Advanced Linux Sound Architecture Driver Initialized. [ 0.309581] PCI: Using ACPI for IRQ routing [ 0.309591] PCI: pci_cache_line_size set to 64 bytes [ 0.309617] Expanded resource reserved due to conflict with PCI Bus 0000:00 [ 0.309630] e820: reserve RAM buffer [mem 0x0008f000-0x0008ffff] [ 0.309635] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff] [ 0.309640] e820: reserve RAM buffer [mem 0x78346000-0x7bffffff] [ 0.309645] e820: reserve RAM buffer [mem 0x794c8000-0x7bffffff] [ 0.309650] e820: reserve RAM buffer [mem 0x7a000000-0x7bffffff] [ 0.310156] cfg80211: Calling CRDA to update world regulatory domain [ 0.310342] Switched to clocksource refined-jiffies [ 0.310498] pnp: PnP ACPI init [ 0.310525] ACPI: bus type PNP registered [ 0.310655] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.310880] pnp 00:01: Plug and Play ACPI device, IDs PNP0103 (active) [ 0.310971] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active) [ 0.311091] system 00:03: [io 0x0680-0x069f] has been reserved [ 0.311106] system 00:03: [io 0x0400-0x047f] has been reserved [ 0.311118] system 00:03: [io 0x0500-0x05fe] has been reserved [ 0.311130] system 00:03: [io 0x0600-0x061f] has been reserved [ 0.311142] system 00:03: [io 0x164e-0x164f] has been reserved [ 0.311156] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active) [ 0.311511] pnp 00:04: Plug and Play ACPI device, IDs PNP0501 (active) [ 0.313011] pnp 00:05: Plug and Play ACPI device, IDs INT0002 (active) [ 0.314238] pnp 00:06: unknown resource type 19 in _CRS [ 0.314252] pnp 00:06: can't evaluate _CRS: 1 [ 0.314322] pnp 00:06: Plug and Play ACPI device, IDs BCM2e3a (active) [ 0.321212] pnp 00:07: unknown resource type 17 in _CRS [ 0.321227] pnp 00:07: can't evaluate _CRS: 1 [ 0.321349] pnp 00:07: Plug and Play ACPI device, IDs INTcfd9 PNP0c40 (active) [ 0.321500] pnp 00:08: Plug and Play ACPI device, IDs INT33bd (active) [ 0.321847] pnp 00:09: Plug and Play ACPI device, IDs INT3401 (active) [ 0.322163] pnp 00:0a: unknown resource type 17 in _CRS [ 0.322176] pnp 00:0a: can't evaluate _CRS: 1 [ 0.322254] pnp 00:0a: Plug and Play ACPI device, IDs INT3403 (active) [ 0.322393] pnp 00:0b: unknown resource type 17 in _CRS [ 0.322405] pnp 00:0b: can't evaluate _CRS: 1 [ 0.322482] pnp 00:0b: Plug and Play ACPI device, IDs INT3403 (active) [ 0.322677] pnp 00:0c: unknown resource type 17 in _CRS [ 0.322690] pnp 00:0c: can't evaluate _CRS: 1 [ 0.322768] pnp 00:0c: Plug and Play ACPI device, IDs INT3409 (active) [ 0.323066] pnp: PnP ACPI: found 13 devices [ 0.323077] ACPI: bus type PNP unregistered [ 0.328160] pci_bus 0000:00: resource 4 [io 0x0000-0x006f] [ 0.328169] pci_bus 0000:00: resource 5 [io 0x0078-0x0cf7] [ 0.328175] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff] [ 0.328182] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff] [ 0.328188] pci_bus 0000:00: resource 8 [mem 0x000c0000-0x000dffff] [ 0.328195] pci_bus 0000:00: resource 9 [mem 0x000e0000-0x000fffff] [ 0.328201] pci_bus 0000:00: resource 10 [mem 0x90c00000-0x90ffffff] [ 0.328208] pci_bus 0000:00: resource 11 [mem 0x7af00001-0x7ef00000] [ 0.328214] pci_bus 0000:00: resource 12 [mem 0x80000000-0x908ffffe] [ 0.328221] pci_bus 0000:00: resource 13 [mem 0xfed40000-0xfed40fff] [ 0.328276] NET: Registered protocol family 2 [ 0.328574] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.328622] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.328689] TCP: Hash tables configured (established 8192 bind 8192) [ 0.328729] TCP: reno registered [ 0.328741] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.328763] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.328859] NET: Registered protocol family 1 [ 0.328905] pci 0000:00:02.0: Boot video device [ 0.329302] PCI: CLS 0 bytes, default 64 [ 0.603872] byt_gpio INT33FC:02: Gpio 18 interrupt flood, disabling [ 0.809288] microcode: CPU0 sig=0x30678, pf=0x2, revision=0x808 [ 0.809323] microcode: CPU1 sig=0x30678, pf=0x2, revision=0x808 [ 0.809351] microcode: CPU2 sig=0x30678, pf=0x2, revision=0x808 [ 0.809379] microcode: CPU3 sig=0x30678, pf=0x2, revision=0x808 [ 0.809501] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 0.810143] Scanning for low memory corruption every 60 seconds [ 0.810759] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.810811] audit: initializing netlink subsys (disabled) [ 0.810853] audit: type=2000 audit(1400565632.776:1): initialized [ 0.846786] bounce pool size: 64 pages [ 0.846804] HugeTLB registered 4 MB page size, pre-allocated 0 pages [ 0.852277] msgmni has been set to 1760 [ 0.852992] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.853007] io scheduler noop registered [ 0.853016] io scheduler deadline registered [ 0.853177] io scheduler cfq registered (default) [ 0.857446] intel_idle: MWAIT substates: 0x33000020 [ 0.857452] intel_idle: v0.4 model 0x37 [ 0.857457] intel_idle: lapic_timer_reliable_states 0xffffffff [ 0.863915] ACPI: AC Adapter [ADP1] (on-line) [ 0.864239] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 0.864260] ACPI: Power Button [PWRF] [ 0.864272] ACPI Warning: Could not enable fixed event - PowerButton (2) (20140214/evxface-628) [ 0.868088] button: probe of LNXPWRBN:00 failed with error -22 [ 0.873934] ACPI Exception: AE_ERROR, Returned by Handler for [GeneralPurposeIo] (20140214/evregion-282) [ 0.873966] ACPI Error: Method parse/execution failed [\_TZ_.TZ00._TMP] (Node f602ae40), AE_ERROR (20140214/psparse-536) [ 0.874012] [Firmware Bug]: No valid trip found [ 0.874275] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.894687] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.895709] 80860F0A:00: ttyS1 at MMIO 0x9091d000 (irq = 39, base_baud = 2764800) is a 16550A [ 0.895963] 80860F0A:01: ttyS2 at MMIO 0x9091f000 (irq = 40, base_baud = 2764800) is a 16550A [ 0.896298] hpet: number irqs doesn't agree with number of timers [ 0.896437] Non-volatile memory driver v1.3 [ 0.896509] [drm] Initialized drm 1.1.0 20060810 [ 0.898464] [drm] Memory usable by graphics device = 2048M [ 0.904214] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.904467] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.904726] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.904973] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.905220] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.907934] i915 0000:00:02.0: irq 128 for MSI/MSI-X [ 0.907951] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.907962] [drm] Driver supports precise vblank timestamp query. [ 0.960460] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 0.961250] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.961636] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 1.489394] [drm] forcing HDMI-A-1 connector ON [ 1.565640] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ 1.587008] [drm] Got external EDID base block and 0 extensions from "edid/1200x1920.bin" for connector "HDMI-A-1" [ 1.733267] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4 [ 1.829666] fbcon: inteldrmfb (fb0) is primary device [ 1.962432] Switched to clocksource tsc [ 2.342020] Console: switching to colour frame buffer device 150x120 [ 2.375486] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device [ 2.375632] i915 0000:00:02.0: registered panic notifier [ 2.379824] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 2.381561] acpi device:1a: registered as cooling_device4 [ 2.382998] acpi device:21: registered as cooling_device5 [ 2.383305] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1 [ 2.383597] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 2.384114] brd: module loaded [ 2.384656] loop: module loaded [ 2.385372] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.385595] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1 [ 2.385935] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 2.385972] xhci_hcd 0000:00:14.0: irq 129 for MSI/MSI-X [ 2.386111] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.386275] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.386445] usb usb1: Product: xHCI Host Controller [ 2.386562] usb usb1: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.386709] usb usb1: SerialNumber: 0000:00:14.0 [ 2.387133] hub 1-0:1.0: USB hub found [ 2.387248] hub 1-0:1.0: 6 ports detected [ 2.882952] [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off [ 2.902145] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.902373] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2 [ 2.902645] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2.902808] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.902986] usb usb2: Product: xHCI Host Controller [ 2.903106] usb usb2: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.903253] usb usb2: SerialNumber: 0000:00:14.0 [ 2.903648] hub 2-0:1.0: USB hub found [ 2.903759] hub 2-0:1.0: 1 port detected [ 2.904266] usbcore: registered new interface driver usb-storage [ 2.904542] i8042: PNP: No PS/2 controller found. Probing ports directly. [ 3.948735] i8042: No controller found [ 3.948957] mousedev: PS/2 mouse device common for all mice [ 3.949282] ACPI Warning: Could not enable fixed event - RealTimeClock (4) (20140214/evxface-628) [ 3.949709] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0 [ 3.949891] rtc_cmos 00:00: alarms up to one day, 242 bytes nvram [ 3.950106] i2c /dev entries driver [ 3.951549] Intel P-state driver initializing. [ 3.951683] Intel pstate controlling: cpu 0 [ 3.951828] Intel pstate controlling: cpu 1 [ 3.951964] Intel pstate controlling: cpu 2 [ 3.952098] Intel pstate controlling: cpu 3 [ 3.952325] sdhci: Secure Digital Host Controller Interface driver [ 3.952472] sdhci: Copyright(c) Pierre Ossman [ 3.953782] mmc0: no vqmmc regulator found [ 3.953884] mmc0: no vmmc regulator found [ 3.955125] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA [ 3.956666] mmc1: no vqmmc regulator found [ 3.956769] mmc1: no vmmc regulator found [ 3.958012] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 3.959650] mmc2: no vqmmc regulator found [ 3.959753] mmc2: no vmmc regulator found [ 3.961088] mmc2: SDHCI controller on ACPI [80860F14:01] using ADMA [ 3.961302] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.961404] EFI Variables Facility v0.08 2004-May-17 [ 3.970815] hidraw: raw HID events driver (C) Jiri Kosina [ 3.971281] usbcore: registered new interface driver usbhid [ 3.971409] usbhid: USB HID core driver [ 3.971909] TCP: cubic registered [ 3.971966] Initializing XFRM netlink socket [ 3.972273] NET: Registered protocol family 10 [ 3.972656] sit: IPv6 over IPv4 tunneling driver [ 3.972948] NET: Registered protocol family 17 [ 3.973305] Using IPI No-Shortcut mode [ 3.973521] registered taskstats version 1 [ 3.973853] Magic number: 14:92:14 [ 3.973984] console [netcon0] enabled [ 3.974044] netconsole: network logging started [ 3.974282] PM: Hibernation image not present or could not be loaded. [ 3.974290] ALSA device list: [ 3.974340] No soundcards found. [ 3.974452] Warning: unable to open an initial console. [ 3.981024] Freeing unused kernel memory: 12096K (c1755000 - c2325000) [ 4.001010] udevd[966]: starting version 173 [ 4.071412] mmc0: BKOPS_EN bit is not set [ 4.149730] mmc0: new HS200 MMC card at address 0001 [ 4.151250] mmcblk0: mmc0:0001 HCG8e\x04 58.2 GiB [ 4.151465] mmcblk0boot0: mmc0:0001 HCG8e\x04 partition 1 4.00 MiB [ 4.151620] mmcblk0boot1: mmc0:0001 HCG8e\x04 partition 2 4.00 MiB [ 4.151925] mmcblk0rpmb: mmc0:0001 HCG8e\x04 partition 3 4.00 MiB [ 4.152736] mmcblk0: p1 p2 [ 4.157969] mmcblk0boot1: unknown partition table [ 4.161515] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 4.161749] mmcblk0boot0: [ 4.174061] usb 2-1: New USB device found, idVendor=0451, idProduct=8046 [ 4.174187] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 4.174928] hub 2-1:1.0: USB hub found [ 4.175026] hub 2-1:1.0: 4 ports detected [ 4.304448] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 4.445836] usb 1-1: New USB device found, idVendor=0451, idProduct=8044 [ 4.472022] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 4.498081] usb 1-1: SerialNumber: 420208698DA1 [ 4.524922] hub 1-1:1.0: USB hub found [ 4.527445] Clocksource tsc unstable (delta = 64078296 ns) [ 4.575235] Switched to clocksource refined-jiffies [ 4.575303] hub 1-1:1.0: 4 ports detected [ 4.665948] usb 1-3: new high-speed USB device number 3 using xhci_hcd [ 4.812017] usb 1-3: New USB device found, idVendor=12d1, idProduct=1570 [ 4.838515] usb 1-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0 [ 4.865162] usb 1-3: Product: HUAWEI Mobile Broadband Module [ 4.891982] usb 1-3: Manufacturer: Huawei Technologies Co., Ltd. [ 5.057359] usb 1-4: new high-speed USB device number 4 using xhci_hcd [ 5.244834] usb 1-4: New USB device found, idVendor=0951, idProduct=1603 [ 5.271614] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.298249] usb 1-4: Product: DataTraveler 2.0 [ 5.324706] usb 1-4: Manufacturer: Kingston [ 5.351290] usb 1-4: SerialNumber: 89900000000000000000017E [ 5.379013] usb-storage 1-4:1.0: USB Mass Storage device detected [ 5.405930] scsi0 : usb-storage 1-4:1.0 [ 5.472462] usb 1-1.2: new high-speed USB device number 5 using xhci_hcd [ 5.546109] usb 1-1.2: New USB device found, idVendor=0424, idProduct=7500 [ 5.572517] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.598796] usb 1-1.2: Product: LAN7500 [ 5.624817] usb 1-1.2: Manufacturer: SMSC [ 5.650709] usb 1-1.2: SerialNumber: 00800f11700e [ 5.722888] usb 1-1.3: new low-speed USB device number 6 using xhci_hcd [ 5.799500] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c312 [ 5.825439] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.851433] usb 1-1.3: Product: USB Multimedia Keyboard [ 5.877277] usb 1-1.3: Manufacturer: LITEON Technology [ 5.903455] usb 1-1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 192 microframes [ 5.934342] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C312.0001/input/input2 [ 5.987841] hid-generic 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:14.0-1.3/input0 [ 6.283845] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 [ 6.312670] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 6.340500] sd 0:0:0:0: [sda] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB) [ 6.368763] sd 0:0:0:0: [sda] Write Protect is off [ 6.396559] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00 [ 6.396951] sd 0:0:0:0: [sda] No Caching mode page found [ 6.424634] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 6.455250] sda: sda1 sda2 [ 6.493244] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 7.133143] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities [ 7.165576] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities [ 7.377686] random: nonblocking pool is initialized [ 8.465142] EXT4-fs (sda2): recovery complete [ 8.498270] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 9.397075] udevd[1685]: starting version 173 [ 9.575548] sst-acpi 80860F28:00: Direct firmware load failed with error -2 [ 9.586011] sst-acpi 80860F28:00: Falling back to user helper [ 9.659046] smsc75xx v1.0.0 [ 9.663697] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.663727] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.665590] input: gpio-keys as /devices/platform/gpio-keys.0.auto/input/input3 [ 9.665813] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.665830] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.665963] input: gpio-keys as /devices/platform/gpio-keys.1.auto/input/input4 [ 9.666173] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.666201] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.687821] sst-acpi 80860F28:00: Cannot load firmware intel/fw_sst_0f28.bin-i2s_master [ 9.740744] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.748565] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.802203] smsc75xx 1-1.2:1.0 eth0: register 'smsc75xx' at usb-0000:00:14.0-1.2, smsc75xx USB 2.0 Gigabit Ethernet, 70:2f:97:00:22:4f [ 9.832548] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.832576] usbcore: registered new interface driver smsc75xx [ 9.893278] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 17.848198] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 17.881105] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 17.912406] mmcblk0rpmb: retrying using single block read [ 17.945754] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 17.979175] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.012512] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.045642] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.078551] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.111376] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.141842] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 18.172280] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 26.412192] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 26.445097] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 26.476216] mmcblk0rpmb: retrying using single block read [ 26.509384] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.542804] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.576088] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.609213] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.642197] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.675018] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.705569] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 26.736209] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 34.976372] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 35.009672] mmcblk0rpmb: error -110 transferring data, sector 0, nr 16, cmd response 0x900, card status 0xb00 [ 35.041225] mmcblk0rpmb: retrying using single block read [ 35.074866] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.108774] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.142514] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.175989] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.209198] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.242265] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.273048] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 35.303872] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 35.334799] end_request: I/O error, dev mmcblk0rpmb, sector 8 [ 35.365938] Buffer I/O error on device mmcblk0rpmb, logical block 1 [ 43.617294] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 43.650980] mmcblk0rpmb: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 43.682898] mmcblk0rpmb: retrying using single block read [ 43.716786] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.750783] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.784503] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.818029] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.851320] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.884543] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.915400] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 43.946246] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 48.209694] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 49.750189] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 49.780667] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 49.815109] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 =2D-nextPart3540697.JozLVkjM1S-- This is a multi-part message in MIME format. [-- Attachment #1.2: Type: text/plain, Size: 2699 bytes --] Rolf Eike Beer wrote: > Lan Tianyu wrote: > > On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: > > > Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: > > >> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) > > >> operation > > >> region. It allows ACPI aml code able to access such kind of devices to > > >> implement some ACPI standard method. > > >> > > >> On the Asus T100TA, Bios use GenericSerialBus operation region to > > >> access > > >> i2c device to get battery info. So battery function depends on the I2C > > >> operation region support. Here is the bug link. > > >> https://bugzilla.kernel.org/show_bug.cgi?id=69011 > > > I have tested this series and got some errors, but no additional > > > functionality: > this is an Aava Inari 8 tablet (pre-release hardware). Please find the DSDT > and the dmesg.log attached. It may be that I have taken the wrong ACPI files. This is the result of a fresh run of acpidump, together with the most recent dmesg.log, just in case I messed it up. Kernel now is at 60b5f90+some patches: 8e7bd6f pinctrl: baytrail: Register GPIO chip after chip->to_irq is set c4b2230 pinctrl: baytrail: Add back Baytrail-T ACPI ID 32f3364 gpio: Add support for Intel SoC PMIC (Crystal Cove) 088ee81 mfd: intel_soc_pmic: Build files 5315135 mfd: intel_soc_pmic: Crystal Cove support 8b5ed0b mfd: intel_soc_pmic: I2C interface b18979f mfd: intel_soc_pmic: Core driver 5200b75 add debugging (This is the debug patch Lan Tianyu sent as reply to the previous mail) bd3e6c6 I2C/ACPI: Add CONFIG_I2C_ACPI config 947f0a1 I2C/ACPI: Move ACPI related code to i2c-acpi.c 534f182 I2C/ACPI: Add i2c ACPI operation region support 32384d4 I2C: Add smbus word/block process call helper function aa6459e I2C: Add smbus quick read/write helper function 51825ed ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data 95e9e92 ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle cc6fecb ACPICA: Export acpi_buffer_to_resource symbol ad38de6 ACPI / LPSS: custom power domain for LPSS b0caadf ACPI / PM: Export rest of the subsys functions 22a7210 ACPI / platform: add another ID for Broadcom Bluetooth and GPS chips (this just adds AAM4752 as another platform id) 000627d ACPI / platform: add IDs for Broadcom Bluetooth and GPS chips Eike -- Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 Göttingen, Germany Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160 Geschäftsführung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source [-- Attachment #1.3: acpi_fw10.dat.gz --] [-- Type: application/x-gzip, Size: 77616 bytes --] [-- Attachment #1.4: dmesg.log-3.15-rc5-inari2 --] [-- Type: text/plain, Size: 47708 bytes --] [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.15.0-rc5-Inari (root@devpool02) (gcc version 4.8.2 (Emlix Linux Inari) ) #1 SMP Tue May 20 13:33:31 UTC 2014 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable [ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009dfff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078345fff] usable [ 0.000000] BIOS-e820: [mem 0x0000000078346000-0x0000000078c45fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000078c46000-0x0000000078d45fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000078d46000-0x0000000078d85fff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000078d86000-0x00000000794c7fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000794c8000-0x0000000079dc7fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x0000000079dc8000-0x0000000079ffffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved [ 0.000000] Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! [ 0.000000] efi: EFI v2.31 by INSYDE Corp. [ 0.000000] efi: ACPI 2.0=0x78d85014 SMBIOS=0x78c45000 [ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB) [ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB) [ 0.000000] efi: mem02: type=7, attr=0xf, range=[0x0000000000007000-0x000000000008f000) (0MB) [ 0.000000] efi: mem03: type=10, attr=0xf, range=[0x000000000008f000-0x0000000000090000) (0MB) [ 0.000000] efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x000000000009e000) (0MB) [ 0.000000] efi: mem05: type=0, attr=0xf, range=[0x000000000009e000-0x00000000000a0000) (0MB) [ 0.000000] efi: mem06: type=7, attr=0xf, range=[0x0000000000100000-0x0000000001000000) (15MB) [ 0.000000] efi: mem07: type=2, attr=0xf, range=[0x0000000001000000-0x0000000002585000) (21MB) [ 0.000000] efi: mem08: type=7, attr=0xf, range=[0x0000000002585000-0x0000000020000000) (474MB) [ 0.000000] efi: mem09: type=0, attr=0xf, range=[0x0000000020000000-0x0000000020100000) (1MB) [ 0.000000] efi: mem10: type=7, attr=0xf, range=[0x0000000020100000-0x0000000071dc0000) (1308MB) [ 0.000000] efi: mem11: type=4, attr=0xf, range=[0x0000000071dc0000-0x0000000071de0000) (0MB) [ 0.000000] efi: mem12: type=7, attr=0xf, range=[0x0000000071de0000-0x0000000072bc7000) (13MB) [ 0.000000] efi: mem13: type=2, attr=0xf, range=[0x0000000072bc7000-0x0000000072bc9000) (0MB) [ 0.000000] efi: mem14: type=1, attr=0xf, range=[0x0000000072bc9000-0x0000000073b46000) (15MB) [ 0.000000] efi: mem15: type=7, attr=0xf, range=[0x0000000073b46000-0x0000000076a92000) (47MB) [ 0.000000] efi: mem16: type=4, attr=0xf, range=[0x0000000076a92000-0x00000000774ec000) (10MB) [ 0.000000] efi: mem17: type=7, attr=0xf, range=[0x00000000774ec000-0x00000000774f9000) (0MB) [ 0.000000] efi: mem18: type=4, attr=0xf, range=[0x00000000774f9000-0x0000000077d46000) (8MB) [ 0.000000] efi: mem19: type=7, attr=0xf, range=[0x0000000077d46000-0x0000000078161000) (4MB) [ 0.000000] efi: mem20: type=3, attr=0xf, range=[0x0000000078161000-0x0000000078346000) (1MB) [ 0.000000] efi: mem21: type=5, attr=0x800000000000000f, range=[0x0000000078346000-0x0000000078546000) (2MB) [ 0.000000] efi: mem22: type=6, attr=0x800000000000000f, range=[0x0000000078546000-0x0000000078846000) (3MB) [ 0.000000] efi: mem23: type=0, attr=0xf, range=[0x0000000078846000-0x0000000078c46000) (4MB) [ 0.000000] efi: mem24: type=10, attr=0xf, range=[0x0000000078c46000-0x0000000078d46000) (1MB) [ 0.000000] efi: mem25: type=9, attr=0xf, range=[0x0000000078d46000-0x0000000078d86000) (0MB) [ 0.000000] efi: mem26: type=4, attr=0xf, range=[0x0000000078d86000-0x00000000794c8000) (7MB) [ 0.000000] efi: mem27: type=10, attr=0xf, range=[0x00000000794c8000-0x0000000079dc8000) (9MB) [ 0.000000] efi: mem28: type=4, attr=0xf, range=[0x0000000079dc8000-0x000000007a000000) (2MB) [ 0.000000] efi: mem29: type=11, attr=0x8000000000000001, range=[0x00000000e00f8000-0x00000000e00f9000) (0MB) [ 0.000000] efi: mem30: type=11, attr=0x8000000000000000, range=[0x00000000fed01000-0x00000000fed02000) (0MB) [ 0.000000] efi: mem31: type=11, attr=0x8000000000000000, range=[0x00000000ffd00000-0x0000000100000000) (3MB) [ 0.000000] SMBIOS 2.7 present. [ 0.000000] DMI: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0FFD00000 mask FFFC00000 write-protect [ 0.000000] 1 base 000000000 mask FC0000000 write-back [ 0.000000] 2 base 040000000 mask FE0000000 write-back [ 0.000000] 3 base 060000000 mask FF0000000 write-back [ 0.000000] 4 base 070000000 mask FF8000000 write-back [ 0.000000] 5 base 078000000 mask FFC000000 write-back [ 0.000000] 6 base 07B000000 mask FFF000000 uncachable [ 0.000000] 7 base 07AE00000 mask FFFE00000 uncachable [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] initial memory mapped: [mem 0x00000000-0x027fffff] [ 0.000000] Base memory trampoline at [c009a000] 9a000 size 16384 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] [mem 0x00000000-0x000fffff] page 4k [ 0.000000] init_memory_mapping: [mem 0x37000000-0x373fffff] [ 0.000000] [mem 0x37000000-0x373fffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x30000000-0x36ffffff] [ 0.000000] [mem 0x30000000-0x36ffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x00100000-0x1fffffff] [ 0.000000] [mem 0x00100000-0x003fffff] page 4k [ 0.000000] [mem 0x00400000-0x1fffffff] page 2M [ 0.000000] init_memory_mapping: [mem 0x20100000-0x2fffffff] [ 0.000000] [mem 0x20100000-0x203fffff] page 4k [ 0.000000] [mem 0x20400000-0x2fffffff] page 2M [ 0.000000] BRK [0x0246a000, 0x0246afff] PGTABLE [ 0.000000] init_memory_mapping: [mem 0x37400000-0x377fdfff] [ 0.000000] [mem 0x37400000-0x377fdfff] page 4k [ 0.000000] BRK [0x0246b000, 0x0246bfff] PGTABLE [ 0.000000] ACPI: RSDP 0x78D85014 000024 (v02 INSYDE) [ 0.000000] ACPI: XSDT 0x78D61188 0000D4 (v01 INSYDE INSYDE 00000003 01000013) [ 0.000000] ACPI: FACP 0x78D7F000 00010C (v05 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: DSDT 0x78D6E000 00BAEC (v02 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D84000 000236 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: TCPA 0x78D83000 000032 (v02 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: UEFI 0x78D81000 000042 (v01 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: DBG2 0x78D80000 000072 (v00 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: HPET 0x78D7E000 000038 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: LPIT 0x78D7D000 000104 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: APIC 0x78D7C000 00006C (v03 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: MCFG 0x78D7B000 00003C (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SLIC 0x78D7A000 000176 (v01 INSYDE INSYDE 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6D000 0005FB (v01 INSYDE CpuDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6B000 0018C2 (v01 INSYDE DptfTab 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D6A000 000058 (v01 INSYDE LowPwrM 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D69000 0000FF (v01 INSYDE SoCDptf 00000003 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D68000 00043A (v01 INSYDE Tpm2Tabl 00001000 ACPI 00040000) [ 0.000000] ACPI: TPM2 0x78D67000 000034 (v03 INSYDE INSYDE 00000000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D66000 000763 (v01 INSYDE CpuPm 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D65000 000290 (v01 INSYDE Cpu0Tst 00003000 ACPI 00040000) [ 0.000000] ACPI: SSDT 0x78D64000 00017A (v01 INSYDE ApTst 00003000 ACPI 00040000) [ 0.000000] ACPI: FPDT 0x78D63000 000044 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: CSRT 0x78D62000 00014C (v00 INSYDE INSYDE 00000005 ACPI 00040000) [ 0.000000] ACPI: BGRT 0x78D60000 000038 (v01 INSYDE INSYDE 00000001 ACPI 00040000) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] 1064MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] BRK [0x0246c000, 0x0246cfff] PGTABLE [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00001000-0x00ffffff] [ 0.000000] Normal [mem 0x01000000-0x377fdfff] [ 0.000000] HighMem [mem 0x377fe000-0x79ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00001000-0x0008efff] [ 0.000000] node 0: [mem 0x00090000-0x0009dfff] [ 0.000000] node 0: [mem 0x00100000-0x1fffffff] [ 0.000000] node 0: [mem 0x20100000-0x78345fff] [ 0.000000] node 0: [mem 0x78d86000-0x794c7fff] [ 0.000000] node 0: [mem 0x79dc8000-0x79ffffff] [ 0.000000] On node 0 totalpages: 494428 [ 0.000000] free_area_init_node: node 0, pgdat c17447c0, node_mem_map f68be020 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3996 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 222974 pages, LIFO batch:31 [ 0.000000] HighMem zone: 2129 pages used for memmap [ 0.000000] HighMem zone: 267458 pages, LIFO batch:31 [ 0.000000] Using APIC driver default [ 0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable [ 0.000000] Reserving Intel graphics stolen memory at 0x7af00000-0x7eefffff [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-86 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.000000] nr_irqs_gsi: 103 [ 0.000000] PM: Registered nosave memory: [mem 0x0008f000-0x0008ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000fffff] [ 0.000000] PM: Registered nosave memory: [mem 0x20000000-0x200fffff] [ 0.000000] e820: [mem 0x7ef00000-0xe00f7fff] available for PCI devices [ 0.000000] setup_percpu: NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 12 pages/cpu @f6882000 s27264 r0 d21888 u49152 [ 0.000000] pcpu-alloc: s27264 r0 d21888 u49152 alloc=12*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 492652 [ 0.000000] Kernel command line: root=/dev/sda2 video=HDMI-A-1:1200x1920e drm_kms_helper.edid_firmware=HDMI-A-1:edid/1200x1920.bin [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0007a000) [ 0.000000] Initializing Movable for node 0 (00000000:00000000) [ 0.000000] Memory: 1909196K/1977712K available (5512K kernel code, 337K rwdata, 1644K rodata, 12096K init, 1236K bss, 68516K reserved, 1038956K highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfff66000 - 0xfffff000 ( 612 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1755000 - 0xc2325000 (12096 kB) [ 0.000000] .data : 0xc1562492 - 0xc1753640 (1988 kB) [ 0.000000] .text : 0xc1000000 - 0xc1562492 (5513 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:1024 16 [ 0.000000] CPU 0 irqstacks, hard=f600c000 soft=f600e000 [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Maximum core-clock to bus-clock ratio: 0xa [ 0.000000] Resolved frequency ID: 2, frequency: 133200 KHz [ 0.000000] TSC runs at 1332000 KHz [ 0.000000] lapic_timer_frequency = 133200 [ 0.000000] tsc: Detected 1332.000 MHz processor [ 0.000037] Calibrating delay loop (skipped), value calculated using timer frequency.. 2664.00 BogoMIPS (lpj=1332000) [ 0.000055] pid_max: default: 32768 minimum: 301 [ 0.000071] ACPI: Core revision 20140214 [ 0.044283] ACPI: All ACPI Tables successfully acquired [ 0.046946] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.046966] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.047312] Initializing cgroup subsys freezer [ 0.047355] CPU: Physical Processor ID: 0 [ 0.047365] CPU: Processor Core ID: 0 [ 0.047376] ENERGY_PERF_BIAS: Set to 'normal', was 'performance' [ 0.047376] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8) [ 0.059505] mce: CPU supports 6 MCE banks [ 0.059523] CPU0: Thermal monitoring enabled (TM1) [ 0.059544] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0 [ 0.059544] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0 [ 0.059544] tlb_flushall_shift: 6 [ 0.059737] Freeing SMP alternatives memory: 20K (c2325000 - c232a000) [ 0.059772] ------------[ cut here ]------------ [ 0.059792] WARNING: CPU: 0 PID: 0 at /tmp/e2/build/linux-git/mm/early_ioremap.c:136 __early_ioremap+0xee/0x1a6() [ 0.059804] Modules linked in: [ 0.059817] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc5-Inari #1 [ 0.059827] Hardware name: Aava Mobile Oy Inari 8 2GB/Type2 - Board Product Name, BIOS BYT.5.03.47.0033-022 01/16/2014 [ 0.059840] 00000000 00000000 c1701f0c c15561be 00000000 c1701f3c c103d194 c164e24c [ 0.059862] 00000000 00000000 c1655de4 00000088 c1771c13 c1771c13 00000042 77526000 [ 0.059883] 00000000 c1701f4c c103d22d 00000009 00000000 c1701fa0 c1771c13 c17454c0 [ 0.059904] Call Trace: [ 0.059919] [<c15561be>] dump_stack+0x41/0x52 [ 0.059932] [<c103d194>] warn_slowpath_common+0x74/0x90 [ 0.059945] [<c1771c13>] ? __early_ioremap+0xee/0x1a6 [ 0.059957] [<c1771c13>] ? __early_ioremap+0xee/0x1a6 [ 0.059968] [<c103d22d>] warn_slowpath_null+0x1d/0x20 [ 0.059981] [<c1771c13>] __early_ioremap+0xee/0x1a6 [ 0.059993] [<c10368df>] ? __native_set_fixmap+0x1f/0x30 [ 0.060021] [<c1771e80>] early_memremap+0xd/0xf [ 0.060034] [<c1768753>] efi_bgrt_init+0xe6/0x129 [ 0.060046] [<c1768077>] efi_late_init+0x8/0xa [ 0.060058] [<c1755a3b>] start_kernel+0x34f/0x35f [ 0.060070] [<c1755523>] ? repair_env_string+0x51/0x51 [ 0.060081] [<c1755369>] i386_start_kernel+0x137/0x13a [ 0.060104] ---[ end trace 840e1cff9080aa63 ]--- [ 0.063071] Enabling APIC mode: Flat. Using 1 I/O APICs [ 0.064118] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.074144] ..MP-BIOS bug: 8254 timer not connected to IO-APIC [ 0.074153] ...trying to set up timer (IRQ0) through the 8259A ... [ 0.074162] ..... (found apic 0 pin 2) ... [ 0.084178] ....... works. [ 0.084186] smpboot: CPU0: Intel(R) Atom(TM) CPU Z3745 @ 1.33GHz (fam: 06, model: 37, stepping: 08) [ 0.084226] TSC deadline timer enabled [ 0.084241] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, full-width counters, Intel PMU driver. [ 0.084267] ... version: 3 [ 0.084275] ... bit width: 40 [ 0.084283] ... generic registers: 2 [ 0.084290] ... value mask: 000000ffffffffff [ 0.084299] ... max period: 000000ffffffffff [ 0.084306] ... fixed-purpose events: 3 [ 0.084314] ... event mask: 0000000700000003 [ 0.085895] CPU 1 irqstacks, hard=f60a6000 soft=f60b0000 [ 0.085901] x86: Booting SMP configuration: [ 0.085911] .... node #0, CPUs: #1 [ 0.096027] Initializing CPU#1 [ 0.111238] CPU 2 irqstacks, hard=f60ba000 soft=f60bc000 [ 0.111257] #2 [ 0.121310] Initializing CPU#2 [ 0.136523] CPU 3 irqstacks, hard=f60c6000 soft=f60c8000 [ 0.136537] #3 [ 0.146591] Initializing CPU#3 [ 0.161676] x86: Booted up 1 node, 4 CPUs [ 0.161696] smpboot: Total of 4 processors activated (10656.00 BogoMIPS) [ 0.162646] devtmpfs: initialized [ 0.163134] PM: Registering ACPI NVS region [mem 0x0008f000-0x0008ffff] (4096 bytes) [ 0.163150] PM: Registering ACPI NVS region [mem 0x78c46000-0x78d45fff] (1048576 bytes) [ 0.163202] PM: Registering ACPI NVS region [mem 0x794c8000-0x79dc7fff] (9437184 bytes) [ 0.163750] pinctrl core: initialized pinctrl subsystem [ 0.163810] RTC time: 6:00:32, date: 05/20/14 [ 0.163897] NET: Registered protocol family 16 [ 0.164225] cpuidle: using governor ladder [ 0.164236] cpuidle: using governor menu [ 0.164310] ACPI: bus type PCI registered [ 0.164463] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.164480] PCI: not using MMCONFIG [ 0.164835] PCI: Using configuration type 1 for base access [ 0.169934] ACPI: Added _OSI(Module Device) [ 0.169949] ACPI: Added _OSI(Processor Device) [ 0.169958] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.169967] ACPI: Added _OSI(Processor Aggregator Device) [ 0.205576] ACPI: SSDT 0x78BCAA90 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.207151] ACPI: Dynamic OEM Table Load: [ 0.207166] ACPI: SSDT 0x00000000 000353 (v01 PmRef Cpu0Ist 00003000 INTL 20130117) [ 0.207698] ACPI: SSDT 0x78BC9910 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.209556] ACPI: Dynamic OEM Table Load: [ 0.209570] ACPI: SSDT 0x00000000 000433 (v01 PmRef Cpu0Cst 00003001 INTL 20130117) [ 0.216146] ACPI: SSDT 0x78BCBD90 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.217742] ACPI: Dynamic OEM Table Load: [ 0.217756] ACPI: SSDT 0x00000000 00015F (v01 PmRef ApIst 00003000 INTL 20130117) [ 0.220317] ACPI: SSDT 0x78BCBF10 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.221740] ACPI: Dynamic OEM Table Load: [ 0.221754] ACPI: SSDT 0x00000000 00008D (v01 PmRef ApCst 00003000 INTL 20130117) [ 0.227520] ACPI: Interpreter enabled [ 0.227556] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20140214/hwxface-580) [ 0.227580] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20140214/hwxface-580) [ 0.227601] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20140214/hwxface-580) [ 0.227622] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20140214/hwxface-580) [ 0.227642] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S5_] (20140214/hwxface-580) [ 0.227660] ACPI: (supports S0) [ 0.227668] ACPI: Using IOAPIC for interrupt routing [ 0.227757] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) [ 0.235389] [Firmware Info]: PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] not reserved in ACPI motherboard resources [ 0.235406] PCI: not using MMCONFIG [ 0.235464] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.238750] ACPI: Power Resource [USBC] (on) [ 0.242935] ACPI: Power Resource [WWPR] (off) [ 0.253593] ACPI: Power Resource [PLPE] (on) [ 0.265552] ACPI: Power Resource [CLK0] (on) [ 0.265698] ACPI: Power Resource [CLK1] (on) [ 0.266063] ACPI: Power Resource [P28X] (off) [ 0.266206] ACPI: Power Resource [P18X] (off) [ 0.268756] ACPI: Power Resource [TCPR] (off) [ 0.275852] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.275877] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments MSI] [ 0.276078] \_SB_.PCI0:_OSC invalid UUID [ 0.276083] _OSC request data:1 1e 0 [ 0.276096] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM [ 0.277397] acpi PNP0A08:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. [ 0.277495] PCI host bridge to bus 0000:00 [ 0.277510] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.277522] pci_bus 0000:00: root bus resource [io 0x0000-0x006f] [ 0.277534] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7] [ 0.277545] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] [ 0.277557] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] [ 0.277569] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff] [ 0.277581] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000fffff] [ 0.277593] pci_bus 0000:00: root bus resource [mem 0x90c00000-0x90ffffff] [ 0.277604] pci_bus 0000:00: root bus resource [mem 0x7af00001-0x7ef00000] [ 0.277616] pci_bus 0000:00: root bus resource [mem 0x80000000-0x908ffffe] [ 0.277628] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed40fff] [ 0.277652] pci 0000:00:00.0: [8086:0f00] type 00 class 0x060000 [ 0.277844] pci 0000:00:02.0: [8086:0f31] type 00 class 0x030000 [ 0.277870] pci 0000:00:02.0: reg 0x10: [mem 0x90000000-0x903fffff] [ 0.277889] pci 0000:00:02.0: reg 0x18: [mem 0x80000000-0x8fffffff pref] [ 0.277907] pci 0000:00:02.0: reg 0x20: [io 0x1000-0x1007] [ 0.278123] pci 0000:00:14.0: [8086:0f35] type 00 class 0x0c0330 [ 0.278154] pci 0000:00:14.0: reg 0x10: [mem 0x90800000-0x9080ffff 64bit] [ 0.278234] pci 0000:00:14.0: PME# supported from D3hot D3cold [ 0.278409] pci 0000:00:1a.0: [8086:0f18] type 00 class 0x108000 [ 0.278451] pci 0000:00:1a.0: reg 0x10: [mem 0x90700000-0x907fffff] [ 0.278469] pci 0000:00:1a.0: reg 0x14: [mem 0x90600000-0x906fffff] [ 0.278570] pci 0000:00:1a.0: PME# supported from D0 D3hot [ 0.278744] pci 0000:00:1f.0: [8086:0f1c] type 00 class 0x060100 [ 0.278969] pci_bus 0000:00: on NUMA node 0 [ 0.280068] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280384] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.280709] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281023] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281343] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281666] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.281977] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.282289] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled. [ 0.296031] dw_dmac INTL9C60:00: DesignWare DMA Controller, 8 channels [ 0.296777] dw_dmac INTL9C60:01: DesignWare DMA Controller, 8 channels [ 0.297560] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none [ 0.297576] vgaarb: loaded [ 0.297584] vgaarb: bridge control possible 0000:00:02.0 [ 0.297838] SCSI subsystem initialized [ 0.297856] ACPI: bus type USB registered [ 0.297942] usbcore: registered new interface driver usbfs [ 0.297987] usbcore: registered new interface driver hub [ 0.298068] usbcore: registered new device driver usb [ 0.308808] intel_soc_pmic_i2c i2c-INT33FD:00: Can't enable IRQ as wake source: -6 [ 0.309261] pps_core: LinuxPPS API ver. 1 registered [ 0.309273] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.309301] PTP clock support registered [ 0.309569] Advanced Linux Sound Architecture Driver Initialized. [ 0.309581] PCI: Using ACPI for IRQ routing [ 0.309591] PCI: pci_cache_line_size set to 64 bytes [ 0.309617] Expanded resource reserved due to conflict with PCI Bus 0000:00 [ 0.309630] e820: reserve RAM buffer [mem 0x0008f000-0x0008ffff] [ 0.309635] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff] [ 0.309640] e820: reserve RAM buffer [mem 0x78346000-0x7bffffff] [ 0.309645] e820: reserve RAM buffer [mem 0x794c8000-0x7bffffff] [ 0.309650] e820: reserve RAM buffer [mem 0x7a000000-0x7bffffff] [ 0.310156] cfg80211: Calling CRDA to update world regulatory domain [ 0.310342] Switched to clocksource refined-jiffies [ 0.310498] pnp: PnP ACPI init [ 0.310525] ACPI: bus type PNP registered [ 0.310655] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.310880] pnp 00:01: Plug and Play ACPI device, IDs PNP0103 (active) [ 0.310971] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active) [ 0.311091] system 00:03: [io 0x0680-0x069f] has been reserved [ 0.311106] system 00:03: [io 0x0400-0x047f] has been reserved [ 0.311118] system 00:03: [io 0x0500-0x05fe] has been reserved [ 0.311130] system 00:03: [io 0x0600-0x061f] has been reserved [ 0.311142] system 00:03: [io 0x164e-0x164f] has been reserved [ 0.311156] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active) [ 0.311511] pnp 00:04: Plug and Play ACPI device, IDs PNP0501 (active) [ 0.313011] pnp 00:05: Plug and Play ACPI device, IDs INT0002 (active) [ 0.314238] pnp 00:06: unknown resource type 19 in _CRS [ 0.314252] pnp 00:06: can't evaluate _CRS: 1 [ 0.314322] pnp 00:06: Plug and Play ACPI device, IDs BCM2e3a (active) [ 0.321212] pnp 00:07: unknown resource type 17 in _CRS [ 0.321227] pnp 00:07: can't evaluate _CRS: 1 [ 0.321349] pnp 00:07: Plug and Play ACPI device, IDs INTcfd9 PNP0c40 (active) [ 0.321500] pnp 00:08: Plug and Play ACPI device, IDs INT33bd (active) [ 0.321847] pnp 00:09: Plug and Play ACPI device, IDs INT3401 (active) [ 0.322163] pnp 00:0a: unknown resource type 17 in _CRS [ 0.322176] pnp 00:0a: can't evaluate _CRS: 1 [ 0.322254] pnp 00:0a: Plug and Play ACPI device, IDs INT3403 (active) [ 0.322393] pnp 00:0b: unknown resource type 17 in _CRS [ 0.322405] pnp 00:0b: can't evaluate _CRS: 1 [ 0.322482] pnp 00:0b: Plug and Play ACPI device, IDs INT3403 (active) [ 0.322677] pnp 00:0c: unknown resource type 17 in _CRS [ 0.322690] pnp 00:0c: can't evaluate _CRS: 1 [ 0.322768] pnp 00:0c: Plug and Play ACPI device, IDs INT3409 (active) [ 0.323066] pnp: PnP ACPI: found 13 devices [ 0.323077] ACPI: bus type PNP unregistered [ 0.328160] pci_bus 0000:00: resource 4 [io 0x0000-0x006f] [ 0.328169] pci_bus 0000:00: resource 5 [io 0x0078-0x0cf7] [ 0.328175] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff] [ 0.328182] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff] [ 0.328188] pci_bus 0000:00: resource 8 [mem 0x000c0000-0x000dffff] [ 0.328195] pci_bus 0000:00: resource 9 [mem 0x000e0000-0x000fffff] [ 0.328201] pci_bus 0000:00: resource 10 [mem 0x90c00000-0x90ffffff] [ 0.328208] pci_bus 0000:00: resource 11 [mem 0x7af00001-0x7ef00000] [ 0.328214] pci_bus 0000:00: resource 12 [mem 0x80000000-0x908ffffe] [ 0.328221] pci_bus 0000:00: resource 13 [mem 0xfed40000-0xfed40fff] [ 0.328276] NET: Registered protocol family 2 [ 0.328574] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.328622] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.328689] TCP: Hash tables configured (established 8192 bind 8192) [ 0.328729] TCP: reno registered [ 0.328741] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.328763] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.328859] NET: Registered protocol family 1 [ 0.328905] pci 0000:00:02.0: Boot video device [ 0.329302] PCI: CLS 0 bytes, default 64 [ 0.603872] byt_gpio INT33FC:02: Gpio 18 interrupt flood, disabling [ 0.809288] microcode: CPU0 sig=0x30678, pf=0x2, revision=0x808 [ 0.809323] microcode: CPU1 sig=0x30678, pf=0x2, revision=0x808 [ 0.809351] microcode: CPU2 sig=0x30678, pf=0x2, revision=0x808 [ 0.809379] microcode: CPU3 sig=0x30678, pf=0x2, revision=0x808 [ 0.809501] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 0.810143] Scanning for low memory corruption every 60 seconds [ 0.810759] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.810811] audit: initializing netlink subsys (disabled) [ 0.810853] audit: type=2000 audit(1400565632.776:1): initialized [ 0.846786] bounce pool size: 64 pages [ 0.846804] HugeTLB registered 4 MB page size, pre-allocated 0 pages [ 0.852277] msgmni has been set to 1760 [ 0.852992] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.853007] io scheduler noop registered [ 0.853016] io scheduler deadline registered [ 0.853177] io scheduler cfq registered (default) [ 0.857446] intel_idle: MWAIT substates: 0x33000020 [ 0.857452] intel_idle: v0.4 model 0x37 [ 0.857457] intel_idle: lapic_timer_reliable_states 0xffffffff [ 0.863915] ACPI: AC Adapter [ADP1] (on-line) [ 0.864239] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 0.864260] ACPI: Power Button [PWRF] [ 0.864272] ACPI Warning: Could not enable fixed event - PowerButton (2) (20140214/evxface-628) [ 0.868088] button: probe of LNXPWRBN:00 failed with error -22 [ 0.873934] ACPI Exception: AE_ERROR, Returned by Handler for [GeneralPurposeIo] (20140214/evregion-282) [ 0.873966] ACPI Error: Method parse/execution failed [\_TZ_.TZ00._TMP] (Node f602ae40), AE_ERROR (20140214/psparse-536) [ 0.874012] [Firmware Bug]: No valid trip found [ 0.874275] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.894687] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.895709] 80860F0A:00: ttyS1 at MMIO 0x9091d000 (irq = 39, base_baud = 2764800) is a 16550A [ 0.895963] 80860F0A:01: ttyS2 at MMIO 0x9091f000 (irq = 40, base_baud = 2764800) is a 16550A [ 0.896298] hpet: number irqs doesn't agree with number of timers [ 0.896437] Non-volatile memory driver v1.3 [ 0.896509] [drm] Initialized drm 1.1.0 20060810 [ 0.898464] [drm] Memory usable by graphics device = 2048M [ 0.904214] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.904467] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.904726] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.904973] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.905220] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.907934] i915 0000:00:02.0: irq 128 for MSI/MSI-X [ 0.907951] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.907962] [drm] Driver supports precise vblank timestamp query. [ 0.960460] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 0.961250] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 0.961636] ACPI: \_SB_.PCI0.GFX0: Error attaching device data 7 [ 1.489394] [drm] forcing HDMI-A-1 connector ON [ 1.565640] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2 [ 1.587008] [drm] Got external EDID base block and 0 extensions from "edid/1200x1920.bin" for connector "HDMI-A-1" [ 1.733267] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4 [ 1.829666] fbcon: inteldrmfb (fb0) is primary device [ 1.962432] Switched to clocksource tsc [ 2.342020] Console: switching to colour frame buffer device 150x120 [ 2.375486] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device [ 2.375632] i915 0000:00:02.0: registered panic notifier [ 2.379824] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 2.381561] acpi device:1a: registered as cooling_device4 [ 2.382998] acpi device:21: registered as cooling_device5 [ 2.383305] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1 [ 2.383597] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 2.384114] brd: module loaded [ 2.384656] loop: module loaded [ 2.385372] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.385595] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1 [ 2.385935] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 2.385972] xhci_hcd 0000:00:14.0: irq 129 for MSI/MSI-X [ 2.386111] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.386275] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.386445] usb usb1: Product: xHCI Host Controller [ 2.386562] usb usb1: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.386709] usb usb1: SerialNumber: 0000:00:14.0 [ 2.387133] hub 1-0:1.0: USB hub found [ 2.387248] hub 1-0:1.0: 6 ports detected [ 2.882952] [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off [ 2.902145] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 2.902373] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2 [ 2.902645] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2.902808] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.902986] usb usb2: Product: xHCI Host Controller [ 2.903106] usb usb2: Manufacturer: Linux 3.15.0-rc5-Inari xhci_hcd [ 2.903253] usb usb2: SerialNumber: 0000:00:14.0 [ 2.903648] hub 2-0:1.0: USB hub found [ 2.903759] hub 2-0:1.0: 1 port detected [ 2.904266] usbcore: registered new interface driver usb-storage [ 2.904542] i8042: PNP: No PS/2 controller found. Probing ports directly. [ 3.948735] i8042: No controller found [ 3.948957] mousedev: PS/2 mouse device common for all mice [ 3.949282] ACPI Warning: Could not enable fixed event - RealTimeClock (4) (20140214/evxface-628) [ 3.949709] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0 [ 3.949891] rtc_cmos 00:00: alarms up to one day, 242 bytes nvram [ 3.950106] i2c /dev entries driver [ 3.951549] Intel P-state driver initializing. [ 3.951683] Intel pstate controlling: cpu 0 [ 3.951828] Intel pstate controlling: cpu 1 [ 3.951964] Intel pstate controlling: cpu 2 [ 3.952098] Intel pstate controlling: cpu 3 [ 3.952325] sdhci: Secure Digital Host Controller Interface driver [ 3.952472] sdhci: Copyright(c) Pierre Ossman [ 3.953782] mmc0: no vqmmc regulator found [ 3.953884] mmc0: no vmmc regulator found [ 3.955125] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA [ 3.956666] mmc1: no vqmmc regulator found [ 3.956769] mmc1: no vmmc regulator found [ 3.958012] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 3.959650] mmc2: no vqmmc regulator found [ 3.959753] mmc2: no vmmc regulator found [ 3.961088] mmc2: SDHCI controller on ACPI [80860F14:01] using ADMA [ 3.961302] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.961404] EFI Variables Facility v0.08 2004-May-17 [ 3.970815] hidraw: raw HID events driver (C) Jiri Kosina [ 3.971281] usbcore: registered new interface driver usbhid [ 3.971409] usbhid: USB HID core driver [ 3.971909] TCP: cubic registered [ 3.971966] Initializing XFRM netlink socket [ 3.972273] NET: Registered protocol family 10 [ 3.972656] sit: IPv6 over IPv4 tunneling driver [ 3.972948] NET: Registered protocol family 17 [ 3.973305] Using IPI No-Shortcut mode [ 3.973521] registered taskstats version 1 [ 3.973853] Magic number: 14:92:14 [ 3.973984] console [netcon0] enabled [ 3.974044] netconsole: network logging started [ 3.974282] PM: Hibernation image not present or could not be loaded. [ 3.974290] ALSA device list: [ 3.974340] No soundcards found. [ 3.974452] Warning: unable to open an initial console. [ 3.981024] Freeing unused kernel memory: 12096K (c1755000 - c2325000) [ 4.001010] udevd[966]: starting version 173 [ 4.071412] mmc0: BKOPS_EN bit is not set [ 4.149730] mmc0: new HS200 MMC card at address 0001 [ 4.151250] mmcblk0: mmc0:0001 HCG8e\x04 58.2 GiB [ 4.151465] mmcblk0boot0: mmc0:0001 HCG8e\x04 partition 1 4.00 MiB [ 4.151620] mmcblk0boot1: mmc0:0001 HCG8e\x04 partition 2 4.00 MiB [ 4.151925] mmcblk0rpmb: mmc0:0001 HCG8e\x04 partition 3 4.00 MiB [ 4.152736] mmcblk0: p1 p2 [ 4.157969] mmcblk0boot1: unknown partition table [ 4.161515] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 4.161749] mmcblk0boot0: [ 4.174061] usb 2-1: New USB device found, idVendor=0451, idProduct=8046 [ 4.174187] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 4.174928] hub 2-1:1.0: USB hub found [ 4.175026] hub 2-1:1.0: 4 ports detected [ 4.304448] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 4.445836] usb 1-1: New USB device found, idVendor=0451, idProduct=8044 [ 4.472022] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 4.498081] usb 1-1: SerialNumber: 420208698DA1 [ 4.524922] hub 1-1:1.0: USB hub found [ 4.527445] Clocksource tsc unstable (delta = 64078296 ns) [ 4.575235] Switched to clocksource refined-jiffies [ 4.575303] hub 1-1:1.0: 4 ports detected [ 4.665948] usb 1-3: new high-speed USB device number 3 using xhci_hcd [ 4.812017] usb 1-3: New USB device found, idVendor=12d1, idProduct=1570 [ 4.838515] usb 1-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0 [ 4.865162] usb 1-3: Product: HUAWEI Mobile Broadband Module [ 4.891982] usb 1-3: Manufacturer: Huawei Technologies Co., Ltd. [ 5.057359] usb 1-4: new high-speed USB device number 4 using xhci_hcd [ 5.244834] usb 1-4: New USB device found, idVendor=0951, idProduct=1603 [ 5.271614] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.298249] usb 1-4: Product: DataTraveler 2.0 [ 5.324706] usb 1-4: Manufacturer: Kingston [ 5.351290] usb 1-4: SerialNumber: 89900000000000000000017E [ 5.379013] usb-storage 1-4:1.0: USB Mass Storage device detected [ 5.405930] scsi0 : usb-storage 1-4:1.0 [ 5.472462] usb 1-1.2: new high-speed USB device number 5 using xhci_hcd [ 5.546109] usb 1-1.2: New USB device found, idVendor=0424, idProduct=7500 [ 5.572517] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.598796] usb 1-1.2: Product: LAN7500 [ 5.624817] usb 1-1.2: Manufacturer: SMSC [ 5.650709] usb 1-1.2: SerialNumber: 00800f11700e [ 5.722888] usb 1-1.3: new low-speed USB device number 6 using xhci_hcd [ 5.799500] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c312 [ 5.825439] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 5.851433] usb 1-1.3: Product: USB Multimedia Keyboard [ 5.877277] usb 1-1.3: Manufacturer: LITEON Technology [ 5.903455] usb 1-1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 192 microframes [ 5.934342] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C312.0001/input/input2 [ 5.987841] hid-generic 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:14.0-1.3/input0 [ 6.283845] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 [ 6.312670] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 6.340500] sd 0:0:0:0: [sda] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB) [ 6.368763] sd 0:0:0:0: [sda] Write Protect is off [ 6.396559] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00 [ 6.396951] sd 0:0:0:0: [sda] No Caching mode page found [ 6.424634] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 6.455250] sda: sda1 sda2 [ 6.493244] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 7.133143] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities [ 7.165576] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities [ 7.377686] random: nonblocking pool is initialized [ 8.465142] EXT4-fs (sda2): recovery complete [ 8.498270] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 9.397075] udevd[1685]: starting version 173 [ 9.575548] sst-acpi 80860F28:00: Direct firmware load failed with error -2 [ 9.586011] sst-acpi 80860F28:00: Falling back to user helper [ 9.659046] smsc75xx v1.0.0 [ 9.663697] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.663727] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.665590] input: gpio-keys as /devices/platform/gpio-keys.0.auto/input/input3 [ 9.665813] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.665830] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.665963] input: gpio-keys as /devices/platform/gpio-keys.1.auto/input/input4 [ 9.666173] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.666201] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.687821] sst-acpi 80860F28:00: Cannot load firmware intel/fw_sst_0f28.bin-i2s_master [ 9.740744] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.748565] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 9.802203] smsc75xx 1-1.2:1.0 eth0: register 'smsc75xx' at usb-0000:00:14.0-1.2, smsc75xx USB 2.0 Gigabit Ethernet, 70:2f:97:00:22:4f [ 9.832548] byt-rt5640 byt-rt5640: ASoC: CPU DAI Front-cpu-dai not registered [ 9.832576] usbcore: registered new interface driver smsc75xx [ 9.893278] platform byt-rt5640: Driver byt-rt5640 requests probe deferral [ 17.848198] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 17.881105] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 17.912406] mmcblk0rpmb: retrying using single block read [ 17.945754] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 17.979175] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.012512] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.045642] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.078551] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.111376] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 18.141842] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 18.172280] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 26.412192] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 26.445097] mmcblk0rpmb: error -110 transferring data, sector 8064, nr 8, cmd response 0x900, card status 0xb00 [ 26.476216] mmcblk0rpmb: retrying using single block read [ 26.509384] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.542804] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.576088] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.609213] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.642197] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.675018] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 26.705569] end_request: I/O error, dev mmcblk0rpmb, sector 8064 [ 26.736209] Buffer I/O error on device mmcblk0rpmb, logical block 1008 [ 34.976372] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 35.009672] mmcblk0rpmb: error -110 transferring data, sector 0, nr 16, cmd response 0x900, card status 0xb00 [ 35.041225] mmcblk0rpmb: retrying using single block read [ 35.074866] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.108774] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.142514] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.175989] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.209198] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.242265] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 35.273048] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 35.303872] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 35.334799] end_request: I/O error, dev mmcblk0rpmb, sector 8 [ 35.365938] Buffer I/O error on device mmcblk0rpmb, logical block 1 [ 43.617294] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress. [ 43.650980] mmcblk0rpmb: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 43.682898] mmcblk0rpmb: retrying using single block read [ 43.716786] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.750783] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.784503] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.818029] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.851320] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.884543] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900 [ 43.915400] end_request: I/O error, dev mmcblk0rpmb, sector 0 [ 43.946246] Buffer I/O error on device mmcblk0rpmb, logical block 0 [ 48.209694] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 49.750189] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 49.780667] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [ 49.815109] smsc75xx 1-1.2:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 316 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-20 14:17 ` Rolf Eike Beer @ 2014-05-22 15:14 ` Lan Tianyu 2014-05-23 6:55 ` Rolf Eike Beer 0 siblings, 1 reply; 79+ messages in thread From: Lan Tianyu @ 2014-05-22 15:14 UTC (permalink / raw) To: Rolf Eike Beer Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi On 05/20/2014 10:17 PM, Rolf Eike Beer wrote: > Rolf Eike Beer wrote: >> Lan Tianyu wrote: >>> On 05/13/2014 09:09 PM, Rolf Eike Beer wrote: >>>> Am Montag, 28. April 2014, 22:27:39 schrieb Lan Tianyu: >>>>> ACPI 5.0 spec(5.5.2.4.5) defines GenericSerialBus(i2c, spi, uart) >>>>> operation >>>>> region. It allows ACPI aml code able to access such kind of devices to >>>>> implement some ACPI standard method. >>>>> >>>>> On the Asus T100TA, Bios use GenericSerialBus operation region to >>>>> access >>>>> i2c device to get battery info. So battery function depends on the I2C >>>>> operation region support. Here is the bug link. >>>>> https://bugzilla.kernel.org/show_bug.cgi?id=69011 > >>>> I have tested this series and got some errors, but no additional >>>> functionality: > >> this is an Aava Inari 8 tablet (pre-release hardware). Please find the DSDT >> and the dmesg.log attached. > > It may be that I have taken the wrong ACPI files. This is the result of a > fresh run of acpidump, together with the most recent dmesg.log, just in case > I messed it up. Hi Rolf: I have check the log. I2C ACPI operation region targets to I2C controller which has one ACPI node in the ACPI table and is associated with one I2C adapter. Graphic with one ACPI handle registers several I2C adapters. This causes attach data to the ACPI handle with the same handler several time. The ACPICA function will return ALREADY EXIST error code and causes the log you mentioned. There is no I2C ACPI operation region under graphic device node and so not break function. To avoid these noise logs, I make them only appear under dynamic debug mode in the my V3 patchset. > > Kernel now is at 60b5f90+some patches: > > 8e7bd6f pinctrl: baytrail: Register GPIO chip after chip->to_irq is set > c4b2230 pinctrl: baytrail: Add back Baytrail-T ACPI ID > 32f3364 gpio: Add support for Intel SoC PMIC (Crystal Cove) > 088ee81 mfd: intel_soc_pmic: Build files > 5315135 mfd: intel_soc_pmic: Crystal Cove support > 8b5ed0b mfd: intel_soc_pmic: I2C interface > b18979f mfd: intel_soc_pmic: Core driver > 5200b75 add debugging > (This is the debug patch Lan Tianyu sent as reply to the previous mail) > bd3e6c6 I2C/ACPI: Add CONFIG_I2C_ACPI config > 947f0a1 I2C/ACPI: Move ACPI related code to i2c-acpi.c > 534f182 I2C/ACPI: Add i2c ACPI operation region support > 32384d4 I2C: Add smbus word/block process call helper function > aa6459e I2C: Add smbus quick read/write helper function > 51825ed ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data > 95e9e92 ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle > cc6fecb ACPICA: Export acpi_buffer_to_resource symbol > ad38de6 ACPI / LPSS: custom power domain for LPSS > b0caadf ACPI / PM: Export rest of the subsys functions > 22a7210 ACPI / platform: add another ID for Broadcom Bluetooth and GPS chips > (this just adds AAM4752 as another platform id) > 000627d ACPI / platform: add IDs for Broadcom Bluetooth and GPS chips > > Eike > ^ permalink raw reply [flat|nested] 79+ messages in thread
* Re: [Patch V2 0/9] I2C ACPI operation region handler support 2014-05-22 15:14 ` Lan Tianyu @ 2014-05-23 6:55 ` Rolf Eike Beer 0 siblings, 0 replies; 79+ messages in thread From: Rolf Eike Beer @ 2014-05-23 6:55 UTC (permalink / raw) To: Lan Tianyu Cc: wsa, rjw, mika.westerberg, awilliam, lenb, linux-i2c, linux-kernel, linux-acpi [-- Attachment #1: Type: text/plain, Size: 1237 bytes --] Lan Tianyu wrote: > On 05/20/2014 10:17 PM, Rolf Eike Beer wrote: > > It may be that I have taken the wrong ACPI files. This is the result of a > > fresh run of acpidump, together with the most recent dmesg.log, just in > > case I messed it up. > > I have check the log. I2C ACPI operation region targets to I2C controller > which has one ACPI node in the ACPI table and is associated with one I2C > adapter. Graphic with one ACPI handle registers several I2C adapters. This > causes attach data to the ACPI handle with the same handler several time. > The ACPICA function will return ALREADY EXIST error code and causes the log > you mentioned. There is no I2C ACPI operation region under graphic device > node and so not break function. To avoid these noise logs, I make them only > appear under dynamic debug mode in the my V3 patchset. Hi, thanks for the clarification. Greetings, Eike -- Rolf Eike Beer, emlix GmbH, http://www.emlix.com Fon +49 551 30664-0, Fax +49 551 30664-11 Bertha-von-Suttner-Str. 9, 37085 Göttingen, Germany Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160 Geschäftsführung: Dr. Uwe Kracke, Ust-IdNr.: DE 205 198 055 emlix - smart embedded open source [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 316 bytes --] ^ permalink raw reply [flat|nested] 79+ messages in thread
end of thread, other threads:[~2014-05-23 6:56 UTC | newest] Thread overview: 79+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-04-16 13:24 [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu 2014-04-16 13:24 ` [PATCH 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu 2014-04-21 21:38 ` Rafael J. Wysocki 2014-04-22 1:14 ` Lan Tianyu 2014-04-16 13:24 ` [PATCH 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu 2014-04-16 13:24 ` [PATCH 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu 2014-04-16 13:24 ` [PATCH 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu 2014-04-16 13:24 ` [PATCH 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu 2014-04-16 13:24 ` [PATCH 6/9] I2C: Add smbus word/block process call " Lan Tianyu 2014-04-16 13:24 ` [PATCH 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu 2014-04-16 13:24 ` [PATCH 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu 2014-04-16 13:24 ` [PATCH 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu 2014-04-16 13:33 ` [PATCH 0/9] I2C ACPI operation region handler support Lan Tianyu 2014-04-16 16:35 ` Adam Williamson 2014-04-22 6:24 ` [Resend Patch " Lan Tianyu 2014-04-22 6:24 ` [Resend Patch 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu 2014-04-22 11:21 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu 2014-04-22 11:21 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu 2014-04-22 11:23 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu 2014-04-22 11:24 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu 2014-04-22 11:24 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 6/9] I2C: Add smbus word/block process call " Lan Tianyu 2014-04-22 11:26 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu 2014-04-22 11:36 ` Mika Westerberg 2014-04-23 1:53 ` Lan Tianyu 2014-04-23 7:28 ` Mika Westerberg 2014-04-23 7:17 ` Lan Tianyu 2014-04-22 6:24 ` [Resend Patch 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu 2014-04-22 11:38 ` Mika Westerberg 2014-04-22 6:24 ` [Resend Patch 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu 2014-04-22 11:45 ` Mika Westerberg 2014-04-23 5:39 ` Lan Tianyu 2014-04-23 6:47 ` Zheng, Lv 2014-04-23 7:40 ` Mika Westerberg 2014-04-23 23:03 ` [Resend Patch 0/9] I2C ACPI operation region handler support Adam Williamson 2014-04-28 14:27 ` [Patch V2 " Lan Tianyu 2014-04-28 14:27 ` [Patch V2 1/9] ACPICA: Executer: Fix buffer allocation issue for generic_serial_bus region field accesses Lan Tianyu 2014-04-28 17:52 ` Adam Williamson 2014-04-28 18:08 ` Adam Williamson 2014-04-28 22:50 ` Rafael J. Wysocki 2014-04-29 11:31 ` Wolfram Sang 2014-04-29 21:37 ` Rafael J. Wysocki 2014-04-28 14:27 ` [Patch V2 2/9] ACPICA: Export acpi_buffer_to_resource symbol Lan Tianyu 2014-04-28 14:27 ` [Patch V2 3/9] ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle Lan Tianyu 2014-04-28 14:27 ` [Patch V2 4/9] ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data Lan Tianyu 2014-04-28 14:27 ` [Patch V2 5/9] I2C: Add smbus quick read/write helper function Lan Tianyu 2014-05-17 9:41 ` Wolfram Sang 2014-05-17 13:13 ` Lan Tianyu 2014-05-17 17:15 ` Wolfram Sang 2014-04-28 14:27 ` [Patch V2 6/9] I2C: Add smbus word/block process call " Lan Tianyu 2014-05-17 10:21 ` Wolfram Sang 2014-05-17 13:59 ` Lan Tianyu 2014-05-17 17:17 ` Wolfram Sang 2014-05-19 9:23 ` Lan Tianyu 2014-04-28 14:27 ` [Patch V2 7/9] I2C/ACPI: Add i2c ACPI operation region support Lan Tianyu 2014-04-29 8:02 ` Mika Westerberg 2014-04-28 14:27 ` [Patch V2 8/9] I2C/ACPI: Move ACPI related code to i2c-acpi.c Lan Tianyu 2014-04-28 14:27 ` [Patch V2 9/9] I2C/ACPI: Add CONFIG_I2C_ACPI config Lan Tianyu 2014-04-29 8:16 ` Mika Westerberg 2014-05-17 17:48 ` Wolfram Sang 2014-05-19 8:49 ` Mika Westerberg 2014-05-19 9:44 ` Lan Tianyu 2014-05-19 20:23 ` Rafael J. Wysocki 2014-04-28 22:51 ` [Patch V2 0/9] I2C ACPI operation region handler support Rafael J. Wysocki 2014-04-29 1:54 ` Lan Tianyu 2014-04-29 15:47 ` Rafael J. Wysocki 2014-05-13 13:09 ` Rolf Eike Beer 2014-05-13 14:06 ` Lan Tianyu 2014-05-15 7:50 ` Rolf Eike Beer 2014-05-15 14:49 ` Lan Tianyu 2014-05-16 8:43 ` Rolf Eike Beer 2014-05-20 14:17 ` Rolf Eike Beer 2014-05-22 15:14 ` Lan Tianyu 2014-05-23 6:55 ` Rolf Eike Beer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).