Re: [PATCH 1/3] ACPI EC: Re-factor EC space handler to avoid using label/goto for cycle.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Applied.

thanks,
-Len

On Tuesday 29 May 2007 08:42, Alexey Starikovskiy wrote:
> Signed-off-by: Alexey Starikovskiy <aystarik@xxxxxxxxx>
> ---
> 
>  drivers/acpi/ec.c |   56 ++++++++++++++++-------------------------------------
>  1 files changed, 17 insertions(+), 39 deletions(-)
> 
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index 82f496c..5534b23 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -454,57 +454,35 @@ acpi_ec_space_setup(acpi_handle region_handle,
>  }
>  
>  static acpi_status
> -acpi_ec_space_handler(u32 function,
> -		      acpi_physical_address address,
> -		      u32 bit_width,
> -		      acpi_integer * value,
> +acpi_ec_space_handler(u32 function, acpi_physical_address address,
> +		      u32 bits, acpi_integer *value,
>  		      void *handler_context, void *region_context)
>  {
> -	int result = 0;
>  	struct acpi_ec *ec = handler_context;
> -	u64 temp = *value;
> -	acpi_integer f_v = 0;
> -	int i = 0;
> +	int result = 0, i = 0;
> +	u8 temp = 0;
>  
>  	if ((address > 0xFF) || !value || !handler_context)
>  		return AE_BAD_PARAMETER;
>  
> -	if (bit_width != 8 && acpi_strict) {
> +	if (function != ACPI_READ && function != ACPI_WRITE)
>  		return AE_BAD_PARAMETER;
> -	}
> -
> -      next_byte:
> -	switch (function) {
> -	case ACPI_READ:
> -		temp = 0;
> -		result = acpi_ec_read(ec, (u8) address, (u8 *) & temp);
> -		break;
> -	case ACPI_WRITE:
> -		result = acpi_ec_write(ec, (u8) address, (u8) temp);
> -		break;
> -	default:
> -		result = -EINVAL;
> -		goto out;
> -		break;
> -	}
>  
> -	bit_width -= 8;
> -	if (bit_width) {
> -		if (function == ACPI_READ)
> -			f_v |= temp << 8 * i;
> -		if (function == ACPI_WRITE)
> -			temp >>= 8;
> -		i++;
> -		address++;
> -		goto next_byte;
> -	}
> +	if (bits != 8 && acpi_strict)
> +		return AE_BAD_PARAMETER;
>  
> -	if (function == ACPI_READ) {
> -		f_v |= temp << 8 * i;
> -		*value = f_v;
> +	while (bits - i > 0) {
> +		if (function == ACPI_READ) {
> +			result = acpi_ec_read(ec, address, &temp);
> +			(*value) |= ((acpi_integer)temp) << i;
> +		} else {
> +			temp = 0xff & ((*value) >> i);
> +			result = acpi_ec_write(ec, address, temp);
> +		}
> +		i += 8;
> +		++address;
>  	}
>  
> -      out:
>  	switch (result) {
>  	case -EINVAL:
>  		return AE_BAD_PARAMETER;
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux