The logic of the return statement in sata_port_status() calls for a bitwise 'AND' operator, not logical 'AND'. Fix the typo.
Reported-by: Jeroen Hofstee <jer...@myspectrum.nl> Cc: Jeroen Hofstee <jer...@myspectrum.nl> Cc: Stefano Babic <sba...@denx.de> Signed-off-by: Nikita Kiryanov <nik...@compulab.co.il> --- drivers/block/dwc_ahsata.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/dwc_ahsata.c b/drivers/block/dwc_ahsata.c index 29f478b..c68fd2f 100644 --- a/drivers/block/dwc_ahsata.c +++ b/drivers/block/dwc_ahsata.c @@ -878,7 +878,7 @@ int sata_port_status(int dev, int port) probe_ent = (struct ahci_probe_ent *)sata_dev_desc[dev].priv; port_mmio = (struct sata_port_regs *)probe_ent->port[port].port_mmio; - return readl(&(port_mmio->ssts)) && SATA_PORT_SSTS_DET_MASK; + return readl(&(port_mmio->ssts)) & SATA_PORT_SSTS_DET_MASK; } /* -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot