comparison driver/pt1_i2c.c @ 160:ee69ddb11f93

When it takes too much time to lock the RAM, addresses the problem of failed to initialize.
author Naoya OYAMA <naoya.oyama@gmail.com>
date Mon, 10 Sep 2012 20:56:14 +0900
parents 4303bbfd5d37
children
comparison
equal deleted inserted replaced
159:38f79bcba50d 160:ee69ddb11f93
163 static int i2c_lock_one(void __iomem *regs, __u32 firstval, __u32 lockval) 163 static int i2c_lock_one(void __iomem *regs, __u32 firstval, __u32 lockval)
164 { 164 {
165 165
166 __u32 val ; 166 __u32 val ;
167 __u32 val2 ; 167 __u32 val2 ;
168 int lp ; 168 int lp,lp2 ;
169 169
170 val = (readl(regs) & lockval); 170 val = (readl(regs) & lockval);
171 writel(firstval, regs); 171 writel(firstval, regs);
172 172
173 // RAMがロックされた? 173 // RAMがロックされた?
174 for(lp = 0 ; lp < 10 ; lp++){ 174 for(lp = 0 ; lp < 10 ; lp++){
175 for(lp = 0 ; lp < 1024 ; lp++){ 175 for(lp2 = 0 ; lp2 < 1024 ; lp2++){
176 val2 = readl(regs); 176 val2 = readl(regs);
177 // 最初に取得したデータと逆になればOK 177 // 最初に取得したデータと逆になればOK
178 if(((val2 & lockval) != val)){ 178 if(((val2 & lockval) != val)){
179 return 0 ; 179 return 0 ;
180 } 180 }