summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Beisert <jbe@pengutronix.de>2013-05-08 14:21:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-05-08 23:24:50 +0200
commit6a5e4f0c89d1ef818eee6ba87aab6dd6f1c8f0e4 (patch)
tree26bdeb2ceed2ca1a3bea6367c692af0a5961b79b
parenta7ae099b365295202c2ce02b396e1d9c79a13c67 (diff)
downloadbarebox-6a5e4f0c89d1ef818eee6ba87aab6dd6f1c8f0e4.tar.gz
barebox-6a5e4f0c89d1ef818eee6ba87aab6dd6f1c8f0e4.tar.xz
MCI/MXS: fix signed/unsigned mismatch
Using the MXS MCI driver with an eight bit capable eMMC results into the 'devinfo' message the interface uses '0' bits for data transfer: barebox:/ devinfo mxs_mci0 resources: num : 0 start : 0x80034000 size : 0x00002000 driver: mxs_mci bus: platform Interface Min. bus clock: 1476 Hz Max. bus clock: 48000000 Hz Current bus clock: 24000000 Hz Bus width: 0 bit The eight bit interface width is stored internally as value '2'. And a two bit '2' ends up into 0xfffffffe when used as an array index. Using an unsigned field instead fixes this issue: barebox:/ devinfo mxs_mci0 resources: num : 0 start : 0x80034000 size : 0x00002000 driver: mxs_mci bus: platform Interface Min. bus clock: 1476 Hz Max. bus clock: 48000000 Hz Current bus clock: 24000000 Hz Bus width: 8 bit Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/mci/mxs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mci/mxs.c b/drivers/mci/mxs.c
index c15461cf40..9dee863aaf 100644
--- a/drivers/mci/mxs.c
+++ b/drivers/mci/mxs.c
@@ -55,7 +55,7 @@ struct mxs_mci_host {
unsigned f_min;
unsigned f_max;
#endif
- int bus_width:2; /* 0 = 1 bit, 1 = 4 bit, 2 = 8 bit */
+ unsigned bus_width:2; /* 0 = 1 bit, 1 = 4 bit, 2 = 8 bit */
};
#define to_mxs_mci(mxs) container_of(mxs, struct mxs_mci_host, host)