lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20091001153503.GH10199@sortiz.org>
Date:	Thu, 1 Oct 2009 17:35:04 +0200
From:	Samuel Ortiz <sameo@...ux.intel.com>
To:	Mark Brown <broonie@...nsource.wolfsonmicro.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/4] mfd: Refactor WM831x chip identification

Hi Mark,

On Thu, Oct 01, 2009 at 03:41:04PM +0100, Mark Brown wrote:
> Better support future device revisions by moving some of the output
> around and making the chip ID enumeration be the value expected in
> the ID register.
Patches 1,2 and 4 applied to my for-next branch, thanks a lot.

Cheers,
Samuel.


> Signed-off-by: Mark Brown <broonie@...nsource.wolfsonmicro.com>
> ---
>  drivers/mfd/wm831x-core.c |   58 ++++++++++++++-------------------------------
>  1 files changed, 18 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/mfd/wm831x-core.c b/drivers/mfd/wm831x-core.c
> index 49b7885..143ab83 100644
> --- a/drivers/mfd/wm831x-core.c
> +++ b/drivers/mfd/wm831x-core.c
> @@ -90,9 +90,9 @@ int wm831x_isinkv_values[WM831X_ISINK_MAX_ISEL] = {
>  EXPORT_SYMBOL_GPL(wm831x_isinkv_values);
>  
>  enum wm831x_parent {
> -	WM8310 = 0,
> -	WM8311 = 1,
> -	WM8312 = 2,
> +	WM8310 = 0x8310,
> +	WM8311 = 0x8311,
> +	WM8312 = 0x8312,
>  };
>  
>  static int wm831x_reg_locked(struct wm831x *wm831x, unsigned short reg)
> @@ -1282,50 +1282,28 @@ static int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
>  		goto err;
>  	}
>  
> +	/* Some engineering samples do not have the ID set, rely on
> +	 * the device being registered correctly.
> +	 */
> +	if (ret == 0) {
> +		dev_info(wm831x->dev, "Device is an engineering sample\n");
> +		ret = id;
> +	}
> +
>  	switch (ret) {
> -	case 0x8310:
> +	case WM8310:
>  		parent = WM8310;
> -		switch (rev) {
> -		case 0:
> -			dev_info(wm831x->dev, "WM8310 revision %c\n",
> -				 'A' + rev);
> -			break;
> -		}
> +		dev_info(wm831x->dev, "WM8310 revision %c\n", 'A' + rev);
>  		break;
>  
> -	case 0x8311:
> +	case WM8311:
>  		parent = WM8311;
> -		switch (rev) {
> -		case 0:
> -			dev_info(wm831x->dev, "WM8311 revision %c\n",
> -				 'A' + rev);
> -			break;
> -		}
> +		dev_info(wm831x->dev, "WM8311 revision %c\n", 'A' + rev);
>  		break;
>  
> -	case 0x8312:
> +	case WM8312:
>  		parent = WM8312;
> -		switch (rev) {
> -		case 0:
> -			dev_info(wm831x->dev, "WM8312 revision %c\n",
> -				 'A' + rev);
> -			break;
> -		}
> -		break;
> -
> -	case 0:
> -		/* Some engineering samples do not have the ID set,
> -		 * rely on the device being registered correctly.
> -		 * This will need revisiting for future devices with
> -		 * multiple dies.
> -		 */
> -		parent = id;
> -		switch (rev) {
> -		case 0:
> -			dev_info(wm831x->dev, "WM831%d ES revision %c\n",
> -				 parent, 'A' + rev);
> -			break;
> -		}
> +		dev_info(wm831x->dev, "WM8312 revision %c\n", 'A' + rev);
>  		break;
>  
>  	default:
> @@ -1338,7 +1316,7 @@ static int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
>  	 * current parts.
>  	 */
>  	if (parent != id)
> -		dev_warn(wm831x->dev, "Device was registered as a WM831%lu\n",
> +		dev_warn(wm831x->dev, "Device was registered as a WM%lx\n",
>  			 id);
>  
>  	/* Bootstrap the user key */
> -- 
> 1.6.4.3
> 

-- 
Intel Open Source Technology Centre
http://oss.intel.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ