Deleted Added
full compact
atrtc.c (331496) atrtc.c (331503)
1/*-
2 * Copyright (c) 2008 Poul-Henning Kamp
3 * Copyright (c) 2010 Alexander Motin <mav@FreeBSD.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 10 unchanged lines hidden (view full) ---

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
1/*-
2 * Copyright (c) 2008 Poul-Henning Kamp
3 * Copyright (c) 2010 Alexander Motin <mav@FreeBSD.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 10 unchanged lines hidden (view full) ---

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
27 * $FreeBSD: stable/11/sys/x86/isa/atrtc.c 331496 2018-03-24 20:40:16Z ian $
27 * $FreeBSD: stable/11/sys/x86/isa/atrtc.c 331503 2018-03-24 23:01:10Z ian $
28 */
29
30#include <sys/cdefs.h>
28 */
29
30#include <sys/cdefs.h>
31__FBSDID("$FreeBSD: stable/11/sys/x86/isa/atrtc.c 331496 2018-03-24 20:40:16Z ian $");
31__FBSDID("$FreeBSD: stable/11/sys/x86/isa/atrtc.c 331503 2018-03-24 23:01:10Z ian $");
32
33#include "opt_isa.h"
34
35#include <sys/param.h>
36#include <sys/systm.h>
37#include <sys/bus.h>
38#include <sys/clock.h>
39#include <sys/lock.h>

--- 271 unchanged lines hidden (view full) ---

311}
312
313static int
314atrtc_settime(device_t dev __unused, struct timespec *ts)
315{
316 struct bcd_clocktime bct;
317
318 clock_ts_to_bcd(ts, &bct, false);
32
33#include "opt_isa.h"
34
35#include <sys/param.h>
36#include <sys/systm.h>
37#include <sys/bus.h>
38#include <sys/clock.h>
39#include <sys/lock.h>

--- 271 unchanged lines hidden (view full) ---

311}
312
313static int
314atrtc_settime(device_t dev __unused, struct timespec *ts)
315{
316 struct bcd_clocktime bct;
317
318 clock_ts_to_bcd(ts, &bct, false);
319 clock_dbgprint_bcd(dev, CLOCK_DBG_WRITE, &bct);
319
320 mtx_lock(&atrtc_time_lock);
321 RTC_LOCK;
322
323 /* Disable RTC updates and interrupts. */
324 rtcout_locked(RTC_STATUSB, RTCSB_HALT | RTCSB_24HR);
325
326 /* Write all the time registers. */

--- 51 unchanged lines hidden (view full) ---

378#ifdef USE_RTC_CENTURY
379 bct.year |= rtcin_locked(RTC_CENTURY) << 8;
380#endif
381 RTC_UNLOCK;
382 mtx_unlock(&atrtc_time_lock);
383 /* dow is unused in timespec conversion and we have no nsec info. */
384 bct.dow = 0;
385 bct.nsec = 0;
320
321 mtx_lock(&atrtc_time_lock);
322 RTC_LOCK;
323
324 /* Disable RTC updates and interrupts. */
325 rtcout_locked(RTC_STATUSB, RTCSB_HALT | RTCSB_24HR);
326
327 /* Write all the time registers. */

--- 51 unchanged lines hidden (view full) ---

379#ifdef USE_RTC_CENTURY
380 bct.year |= rtcin_locked(RTC_CENTURY) << 8;
381#endif
382 RTC_UNLOCK;
383 mtx_unlock(&atrtc_time_lock);
384 /* dow is unused in timespec conversion and we have no nsec info. */
385 bct.dow = 0;
386 bct.nsec = 0;
387 clock_dbgprint_bcd(dev, CLOCK_DBG_READ, &bct);
386 return (clock_bcd_to_ts(&bct, ts, false));
387}
388
389static device_method_t atrtc_methods[] = {
390 /* Device interface */
391 DEVMETHOD(device_probe, atrtc_probe),
392 DEVMETHOD(device_attach, atrtc_attach),
393 DEVMETHOD(device_detach, bus_generic_detach),

--- 14 unchanged lines hidden (view full) ---

408 atrtc_methods,
409 sizeof(struct atrtc_softc),
410};
411
412static devclass_t atrtc_devclass;
413
414DRIVER_MODULE(atrtc, isa, atrtc_driver, atrtc_devclass, 0, 0);
415DRIVER_MODULE(atrtc, acpi, atrtc_driver, atrtc_devclass, 0, 0);
388 return (clock_bcd_to_ts(&bct, ts, false));
389}
390
391static device_method_t atrtc_methods[] = {
392 /* Device interface */
393 DEVMETHOD(device_probe, atrtc_probe),
394 DEVMETHOD(device_attach, atrtc_attach),
395 DEVMETHOD(device_detach, bus_generic_detach),

--- 14 unchanged lines hidden (view full) ---

410 atrtc_methods,
411 sizeof(struct atrtc_softc),
412};
413
414static devclass_t atrtc_devclass;
415
416DRIVER_MODULE(atrtc, isa, atrtc_driver, atrtc_devclass, 0, 0);
417DRIVER_MODULE(atrtc, acpi, atrtc_driver, atrtc_devclass, 0, 0);
416
417#include "opt_ddb.h"
418#ifdef DDB
419#include <ddb/ddb.h>
420
421DB_SHOW_COMMAND(rtc, rtc)
422{
423 printf("%02x/%02x/%02x %02x:%02x:%02x, A = %02x, B = %02x, C = %02x\n",
424 rtcin(RTC_YEAR), rtcin(RTC_MONTH), rtcin(RTC_DAY),
425 rtcin(RTC_HRS), rtcin(RTC_MIN), rtcin(RTC_SEC),
426 rtcin(RTC_STATUSA), rtcin(RTC_STATUSB), rtcin(RTC_INTR));
427}
428#endif /* DDB */