Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 751516f0 authored by Len Brown's avatar Len Brown
Browse files

Merge branch 'ec-cleanup' into release

Conflicts:
	drivers/platform/x86/compal-laptop.c
parents 6288cf1e 08b53f0e
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ enum ec_command {

#define ACPI_EC_DELAY		500	/* Wait 500ms max. during EC ops */
#define ACPI_EC_UDELAY_GLK	1000	/* Wait 1ms max. to get global lock */
#define ACPI_EC_CDELAY		10	/* Wait 10us before polling EC */
#define ACPI_EC_MSI_UDELAY	550	/* Wait 550us for MSI EC */

#define ACPI_EC_STORM_THRESHOLD 8	/* number of false interrupts
@@ -433,8 +432,7 @@ EXPORT_SYMBOL(ec_write);

int ec_transaction(u8 command,
		   const u8 * wdata, unsigned wdata_len,
		   u8 * rdata, unsigned rdata_len,
		   int force_poll)
		   u8 * rdata, unsigned rdata_len)
{
	struct transaction t = {.command = command,
				.wdata = wdata, .rdata = rdata,
@@ -592,8 +590,6 @@ static void acpi_ec_gpe_query(void *ec_cxt)
	mutex_unlock(&ec->lock);
}

static void acpi_ec_gpe_query(void *ec_cxt);

static int ec_check_sci(struct acpi_ec *ec, u8 state)
{
	if (state & ACPI_EC_FLAG_SCI) {
@@ -808,8 +804,6 @@ static int acpi_ec_add(struct acpi_device *device)
			return -EINVAL;
	}

	ec->handle = device->handle;

	/* Find and register all query methods */
	acpi_walk_namespace(ACPI_TYPE_METHOD, ec->handle, 1,
			    acpi_ec_register_query_methods, NULL, ec, NULL);
+7 −7
Original line number Diff line number Diff line
@@ -200,8 +200,8 @@ static bool extra_features;
 * watching the output of address 0x4F (do an ec_transaction writing 0x33
 * into 0x4F and read a few bytes from the output, like so:
 *	u8 writeData = 0x33;
 *	ec_transaction(0x4F, &writeData, 1, buffer, 32, 0);
 * That address is labelled "fan1 table information" in the service manual.
 *	ec_transaction(0x4F, &writeData, 1, buffer, 32);
 * That address is labeled "fan1 table information" in the service manual.
 * It should be clear which value in 'buffer' changes). This seems to be
 * related to fan speed. It isn't a proper 'realtime' fan speed value
 * though, because physically stopping or speeding up the fan doesn't
@@ -286,7 +286,7 @@ static int get_backlight_level(void)
static void set_backlight_state(bool on)
{
	u8 data = on ? BACKLIGHT_STATE_ON_DATA : BACKLIGHT_STATE_OFF_DATA;
	ec_transaction(BACKLIGHT_STATE_ADDR, &data, 1, NULL, 0, 0);
	ec_transaction(BACKLIGHT_STATE_ADDR, &data, 1, NULL, 0);
}


@@ -294,24 +294,24 @@ static void set_backlight_state(bool on)
static void pwm_enable_control(void)
{
	unsigned char writeData = PWM_ENABLE_DATA;
	ec_transaction(PWM_ENABLE_ADDR, &writeData, 1, NULL, 0, 0);
	ec_transaction(PWM_ENABLE_ADDR, &writeData, 1, NULL, 0);
}

static void pwm_disable_control(void)
{
	unsigned char writeData = PWM_DISABLE_DATA;
	ec_transaction(PWM_DISABLE_ADDR, &writeData, 1, NULL, 0, 0);
	ec_transaction(PWM_DISABLE_ADDR, &writeData, 1, NULL, 0);
}

static void set_pwm(int pwm)
{
	ec_transaction(PWM_ADDRESS, &pwm_lookup_table[pwm], 1, NULL, 0, 0);
	ec_transaction(PWM_ADDRESS, &pwm_lookup_table[pwm], 1, NULL, 0);
}

static int get_fan_rpm(void)
{
	u8 value, data = FAN_DATA;
	ec_transaction(FAN_ADDRESS, &data, 1, &value, 1, 0);
	ec_transaction(FAN_ADDRESS, &data, 1, &value, 1);
	return 100 * (int)value;
}

+6 −6
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ static int set_lcd_level(int level)
	buf[1] = (u8) (level*31);

	return ec_transaction(MSI_EC_COMMAND_LCD_LEVEL, buf, sizeof(buf),
			      NULL, 0, 1);
			      NULL, 0);
}

static int get_lcd_level(void)
@@ -144,7 +144,7 @@ static int get_lcd_level(void)
	int result;

	result = ec_transaction(MSI_EC_COMMAND_LCD_LEVEL, &wdata, 1,
				&rdata, 1, 1);
				&rdata, 1);
	if (result < 0)
		return result;

@@ -157,7 +157,7 @@ static int get_auto_brightness(void)
	int result;

	result = ec_transaction(MSI_EC_COMMAND_LCD_LEVEL, &wdata, 1,
				&rdata, 1, 1);
				&rdata, 1);
	if (result < 0)
		return result;

@@ -172,7 +172,7 @@ static int set_auto_brightness(int enable)
	wdata[0] = 4;

	result = ec_transaction(MSI_EC_COMMAND_LCD_LEVEL, wdata, 1,
				&rdata, 1, 1);
				&rdata, 1);
	if (result < 0)
		return result;

@@ -180,7 +180,7 @@ static int set_auto_brightness(int enable)
	wdata[1] = (rdata & 0xF7) | (enable ? 8 : 0);

	return ec_transaction(MSI_EC_COMMAND_LCD_LEVEL, wdata, 2,
			      NULL, 0, 1);
			      NULL, 0);
}

static ssize_t set_device_state(const char *buf, size_t count, u8 mask)
@@ -217,7 +217,7 @@ static int get_wireless_state(int *wlan, int *bluetooth)
	u8 wdata = 0, rdata;
	int result;

	result = ec_transaction(MSI_EC_COMMAND_WIRELESS, &wdata, 1, &rdata, 1, 1);
	result = ec_transaction(MSI_EC_COMMAND_WIRELESS, &wdata, 1, &rdata, 1);
	if (result < 0)
		return -1;

+1 −2
Original line number Diff line number Diff line
@@ -150,8 +150,7 @@ extern int ec_read(u8 addr, u8 *val);
extern int ec_write(u8 addr, u8 val);
extern int ec_transaction(u8 command,
                          const u8 *wdata, unsigned wdata_len,
                          u8 *rdata, unsigned rdata_len,
			  int force_poll);
                          u8 *rdata, unsigned rdata_len);

#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)