Lines Matching refs:hd

35 static inline void heartbeat_toggle_bit(struct heartbeat_data *hd,  in heartbeat_toggle_bit()  argument
40 new = (1 << hd->bit_pos[bit]); in heartbeat_toggle_bit()
44 new &= hd->mask; in heartbeat_toggle_bit()
46 switch (hd->regsize) { in heartbeat_toggle_bit()
48 new |= ioread32(hd->base) & ~hd->mask; in heartbeat_toggle_bit()
49 iowrite32(new, hd->base); in heartbeat_toggle_bit()
52 new |= ioread16(hd->base) & ~hd->mask; in heartbeat_toggle_bit()
53 iowrite16(new, hd->base); in heartbeat_toggle_bit()
56 new |= ioread8(hd->base) & ~hd->mask; in heartbeat_toggle_bit()
57 iowrite8(new, hd->base); in heartbeat_toggle_bit()
64 struct heartbeat_data *hd = (struct heartbeat_data *)data; in heartbeat_timer() local
67 heartbeat_toggle_bit(hd, bit, hd->flags & HEARTBEAT_INVERTED); in heartbeat_timer()
70 if ((bit == 0) || (bit == (hd->nr_bits)-1)) in heartbeat_timer()
73 mod_timer(&hd->timer, jiffies + (110 - ((300 << FSHIFT) / in heartbeat_timer()
80 struct heartbeat_data *hd; in heartbeat_drv_probe() local
95 hd = pdev->dev.platform_data; in heartbeat_drv_probe()
97 hd = kzalloc(sizeof(struct heartbeat_data), GFP_KERNEL); in heartbeat_drv_probe()
98 if (unlikely(!hd)) in heartbeat_drv_probe()
102 hd->base = ioremap_nocache(res->start, resource_size(res)); in heartbeat_drv_probe()
103 if (unlikely(!hd->base)) { in heartbeat_drv_probe()
107 kfree(hd); in heartbeat_drv_probe()
112 if (!hd->nr_bits) { in heartbeat_drv_probe()
113 hd->bit_pos = default_bit_pos; in heartbeat_drv_probe()
114 hd->nr_bits = ARRAY_SIZE(default_bit_pos); in heartbeat_drv_probe()
117 hd->mask = 0; in heartbeat_drv_probe()
118 for (i = 0; i < hd->nr_bits; i++) in heartbeat_drv_probe()
119 hd->mask |= (1 << hd->bit_pos[i]); in heartbeat_drv_probe()
121 if (!hd->regsize) { in heartbeat_drv_probe()
124 hd->regsize = 32; in heartbeat_drv_probe()
127 hd->regsize = 16; in heartbeat_drv_probe()
131 hd->regsize = 8; in heartbeat_drv_probe()
136 setup_timer(&hd->timer, heartbeat_timer, (unsigned long)hd); in heartbeat_drv_probe()
137 platform_set_drvdata(pdev, hd); in heartbeat_drv_probe()
139 return mod_timer(&hd->timer, jiffies + 1); in heartbeat_drv_probe()
144 struct heartbeat_data *hd = platform_get_drvdata(pdev); in heartbeat_drv_remove() local
146 del_timer_sync(&hd->timer); in heartbeat_drv_remove()
147 iounmap(hd->base); in heartbeat_drv_remove()
152 kfree(hd); in heartbeat_drv_remove()