[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1452283193.4028.84.camel@perches.com>
Date: Fri, 08 Jan 2016 11:59:53 -0800
From: Joe Perches <joe@...ches.com>
To: Brijesh Singh <brijesh.singh@....com>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc: robh+dt@...nel.org, pawel.moll@....com, mark.rutland@....com,
ijc+devicetree@...lion.org.uk, galak@...eaurora.org, tj@...nel.org,
devicetree@...r.kernel.org, linux-ide@...r.kernel.org
Subject: Re: [PATCH] ata: add AMD Seattle platform driver
On Thu, 2016-01-07 at 14:53 -0600, Brijesh Singh wrote:
> AMD Seattle SATA controller mostly conforms to AHCI interface with some
> special register to control SGPIO interface. In the case of an AHCI
> controller, the SGPIO feature is ideally implemented using the
> "Enclosure Management" register of the AHCI controller, but those
> registeres are not implemented in the Seattle SoC. Instead SoC
> (Rev B0 onwards) provides a 32-bit SGPIO control register which should
> be programmed to control the activity, locate and fault LEDs.
trivia:
> diff --git a/drivers/ata/ahci_seattle.c b/drivers/ata/ahci_seattle.c
[]
> +static ssize_t seattle_transmit_led_message(struct ata_port *ap, u32 state,
> + ssize_t size)
> +{
> + struct ahci_host_priv *hpriv = ap->host->private_data;
> + struct ahci_port_priv *pp = ap->private_data;
> + struct seattle_plat_data *plat_data = hpriv->plat_data;
> + unsigned long flags;
> + int pmp;
> + struct ahci_em_priv *emp;
> + u32 val;
> +
> + /* get the slot number from the message */
> + pmp = (state & EM_MSG_LED_PMP_SLOT) >> 8;
> + if (pmp < EM_MAX_SLOTS)
> + emp = &pp->em_priv[pmp];
> + else
> + return -EINVAL;
This is generally done using a inverted test that
returns immediately
if (pmp >= EMP_MAX_SLOTS)
return -EINVAL;
emp = &pp->em_priv[pmp];
Powered by blists - more mailing lists