]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/rtc/rtc-msm6242.c
cfg80211: fix memory leak in cfg80211_cqm_rssi_update
[linux.git] / drivers / rtc / rtc-msm6242.c
index 1c2d3c4a49638b6414202f5a5b5045dcea7b6a1d..80e364baac5363eaba32fe2f3b36737ce55aef08 100644 (file)
@@ -88,28 +88,16 @@ static inline void msm6242_write(struct msm6242_priv *priv, unsigned int val,
        __raw_writel(val, &priv->regs[reg]);
 }
 
-static inline void msm6242_set(struct msm6242_priv *priv, unsigned int val,
-                              unsigned int reg)
-{
-       msm6242_write(priv, msm6242_read(priv, reg) | val, reg);
-}
-
-static inline void msm6242_clear(struct msm6242_priv *priv, unsigned int val,
-                                unsigned int reg)
-{
-       msm6242_write(priv, msm6242_read(priv, reg) & ~val, reg);
-}
-
 static void msm6242_lock(struct msm6242_priv *priv)
 {
        int cnt = 5;
 
-       msm6242_set(priv, MSM6242_CD_HOLD, MSM6242_CD);
+       msm6242_write(priv, MSM6242_CD_HOLD|MSM6242_CD_IRQ_FLAG, MSM6242_CD);
 
        while ((msm6242_read(priv, MSM6242_CD) & MSM6242_CD_BUSY) && cnt) {
-               msm6242_clear(priv, MSM6242_CD_HOLD, MSM6242_CD);
+               msm6242_write(priv, MSM6242_CD_IRQ_FLAG, MSM6242_CD);
                udelay(70);
-               msm6242_set(priv, MSM6242_CD_HOLD, MSM6242_CD);
+               msm6242_write(priv, MSM6242_CD_HOLD|MSM6242_CD_IRQ_FLAG, MSM6242_CD);
                cnt--;
        }
 
@@ -120,7 +108,7 @@ static void msm6242_lock(struct msm6242_priv *priv)
 
 static void msm6242_unlock(struct msm6242_priv *priv)
 {
-       msm6242_clear(priv, MSM6242_CD_HOLD, MSM6242_CD);
+       msm6242_write(priv, MSM6242_CD_IRQ_FLAG, MSM6242_CD);
 }
 
 static int msm6242_read_time(struct device *dev, struct rtc_time *tm)
@@ -133,7 +121,8 @@ static int msm6242_read_time(struct device *dev, struct rtc_time *tm)
                      msm6242_read(priv, MSM6242_SECOND1);
        tm->tm_min  = msm6242_read(priv, MSM6242_MINUTE10) * 10 +
                      msm6242_read(priv, MSM6242_MINUTE1);
-       tm->tm_hour = (msm6242_read(priv, MSM6242_HOUR10 & 3)) * 10 +
+       tm->tm_hour = (msm6242_read(priv, MSM6242_HOUR10) &
+                      MSM6242_HOUR10_HR_MASK) * 10 +
                      msm6242_read(priv, MSM6242_HOUR1);
        tm->tm_mday = msm6242_read(priv, MSM6242_DAY10) * 10 +
                      msm6242_read(priv, MSM6242_DAY1);