static void ds1305_work(struct work_struct *work)
 {
        struct ds1305   *ds1305 = container_of(work, struct ds1305, work);
-       struct mutex    *lock = &ds1305->rtc->ops_lock;
        struct spi_device *spi = ds1305->spi;
        u8              buf[3];
        int             status;
 
        /* lock to protect ds1305->ctrl */
-       mutex_lock(lock);
+       rtc_lock(ds1305->rtc);
 
        /* Disable the IRQ, and clear its status ... for now, we "know"
         * that if more than one alarm is active, they're in sync.
        if (status < 0)
                dev_dbg(&spi->dev, "clear irq --> %d\n", status);
 
-       mutex_unlock(lock);
+       rtc_unlock(ds1305->rtc);
 
        if (!test_bit(FLAG_EXITING, &ds1305->flags))
                enable_irq(spi->irq);