Lines Matching refs:data

121 	outb(0x04, addr + 2); /* Mailbox AP to first data entry loc. */
248 struct sch56xx_watchdog_data *data = watchdog_get_drvdata(wddev);
263 control = data->watchdog_control | SCH56XX_WDOG_TIME_BASE_SEC;
265 control = data->watchdog_control & ~SCH56XX_WDOG_TIME_BASE_SEC;
267 if (data->watchdog_control != control) {
268 mutex_lock(data->io_lock);
269 ret = sch56xx_write_virtual_reg(data->addr,
272 mutex_unlock(data->io_lock);
276 data->watchdog_control = control;
283 data->watchdog_preset = DIV_ROUND_UP(timeout, resolution);
284 wddev->timeout = data->watchdog_preset * resolution;
291 struct sch56xx_watchdog_data *data = watchdog_get_drvdata(wddev);
314 mutex_lock(data->io_lock);
317 ret = sch56xx_write_virtual_reg(data->addr, SCH56XX_REG_WDOG_PRESET,
318 data->watchdog_preset);
323 val = data->watchdog_output_enable | SCH56XX_WDOG_OUTPUT_ENABLE;
324 ret = sch56xx_write_virtual_reg(data->addr,
329 data->watchdog_output_enable = val;
332 val = inb(data->addr + 9);
334 outb(0x01, data->addr + 9);
337 mutex_unlock(data->io_lock);
343 struct sch56xx_watchdog_data *data = watchdog_get_drvdata(wddev);
347 mutex_lock(data->io_lock);
348 ret = sch56xx_write_virtual_reg(data->addr, SCH56XX_REG_WDOG_PRESET,
349 data->watchdog_preset);
350 mutex_unlock(data->io_lock);
357 struct sch56xx_watchdog_data *data = watchdog_get_drvdata(wddev);
361 val = data->watchdog_output_enable & ~SCH56XX_WDOG_OUTPUT_ENABLE;
362 mutex_lock(data->io_lock);
363 ret = sch56xx_write_virtual_reg(data->addr,
365 mutex_unlock(data->io_lock);
369 data->watchdog_output_enable = val;
384 struct sch56xx_watchdog_data *data;
404 data = kzalloc(sizeof(struct sch56xx_watchdog_data), GFP_KERNEL);
405 if (!data)
408 data->addr = addr;
409 data->io_lock = io_lock;
411 strlcpy(data->wdinfo.identity, "sch56xx watchdog",
412 sizeof(data->wdinfo.identity));
413 data->wdinfo.firmware_version = revision;
414 data->wdinfo.options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT;
416 data->wdinfo.options |= WDIOF_MAGICCLOSE;
418 data->wddev.info = &data->wdinfo;
419 data->wddev.ops = &watchdog_ops;
420 data->wddev.parent = parent;
421 data->wddev.timeout = 60;
422 data->wddev.min_timeout = 1;
423 data->wddev.max_timeout = 255 * 60;
425 set_bit(WDOG_NO_WAY_OUT, &data->wddev.status);
427 set_bit(WDOG_HW_RUNNING, &data->wddev.status);
433 data->watchdog_preset = 60; /* seconds */
435 data->watchdog_preset = 1; /* minute */
437 data->watchdog_control = control;
438 data->watchdog_output_enable = output_enable;
440 watchdog_set_drvdata(&data->wddev, data);
441 err = watchdog_register_device(&data->wddev);
444 kfree(data);
448 return data;
452 void sch56xx_watchdog_unregister(struct sch56xx_watchdog_data *data)
454 watchdog_unregister_device(&data->wddev);
455 kfree(data);