Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sgimips/hpc rename panel to button.



details:   https://anonhg.NetBSD.org/src/rev/b3aaf5accc5b
branches:  trunk
changeset: 321912:b3aaf5accc5b
user:      christos <christos%NetBSD.org@localhost>
date:      Mon Apr 09 20:07:22 2018 +0000

description:
rename panel to button.

diffstat:

 sys/arch/sgimips/hpc/button.c  |  154 +++++++++++++++++++++++++++++++++++++++++
 sys/arch/sgimips/hpc/files.hpc |    4 +-
 sys/arch/sgimips/hpc/panel.c   |  154 -----------------------------------------
 3 files changed, 156 insertions(+), 156 deletions(-)

diffs (truncated from 331 to 300 lines):

diff -r 0b7058f6eb52 -r b3aaf5accc5b sys/arch/sgimips/hpc/button.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/sgimips/hpc/button.c     Mon Apr 09 20:07:22 2018 +0000
@@ -0,0 +1,154 @@
+/*     $NetBSD: button.c,v 1.1 2018/04/09 20:07:22 christos Exp $ */
+
+/*-
+ * Copyright (c) 2009 Michael Lorenz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: button.c,v 1.1 2018/04/09 20:07:22 christos Exp $");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/device.h>
+#include <sys/proc.h>
+#include <sys/kthread.h>
+
+#include <sys/bus.h>
+
+#include <dev/sysmon/sysmonvar.h>
+#include <dev/sysmon/sysmon_taskq.h>
+
+#include <machine/autoconf.h>
+#include <machine/machtype.h>
+
+#include <sgimips/ioc/iocreg.h>
+#include <sgimips/hpc/hpcvar.h>
+#include <sgimips/hpc/hpcreg.h>
+
+struct button_softc {
+       device_t sc_dev;
+       struct sysmon_pswitch sc_pbutton;
+       bus_space_tag_t sc_tag;
+       bus_space_handle_t sc_hreg;
+       int sc_last, sc_fired;
+};
+
+static int button_match(device_t, cfdata_t, void *);
+static void button_attach(device_t, device_t, void *);
+
+static int button_intr(void *);
+static void button_powerbutton(void *);
+
+CFATTACH_DECL_NEW(button, sizeof(struct button_softc), 
+                               button_match, 
+                               button_attach, 
+                               NULL, 
+                               NULL);
+
+static int
+button_match(device_t parent, cfdata_t match, void *aux)
+{
+       struct hpc_attach_args *ha = aux;
+
+       if (strcmp(ha->ha_name, match->cf_name) != 0)
+               return 0;
+
+       if (mach_type == MACH_SGI_IP22)
+               return 1;
+
+       return 0;
+}
+
+static void
+button_attach(device_t parent, device_t self, void *aux)
+{
+       struct button_softc *sc;
+       struct hpc_attach_args *haa;
+
+       sc = device_private(self);
+       sc->sc_dev = self;
+       haa = aux;
+       sc->sc_tag = haa->ha_st;
+       sc->sc_fired = 0;
+       
+       aprint_normal("\n");
+       if (bus_space_subregion(haa->ha_st, haa->ha_sh, haa->ha_devoff,
+                       0x4,            /* just a single register */
+                       &sc->sc_hreg)) {
+               aprint_error(": unable to map button register\n");
+               return;
+       }
+
+       if ((cpu_intr_establish(haa->ha_irq, IPL_BIO,
+            button_intr, sc)) == NULL) {
+               printf(": unable to establish interrupt!\n");
+               return;
+       }
+
+       sc->sc_last = 0;
+
+       sysmon_task_queue_init();
+       memset(&sc->sc_pbutton, 0, sizeof(struct sysmon_pswitch));
+       sc->sc_pbutton.smpsw_name = device_xname(sc->sc_dev);
+       sc->sc_pbutton.smpsw_type = PSWITCH_TYPE_POWER;
+       if (sysmon_pswitch_register(&sc->sc_pbutton) != 0)
+               aprint_error_dev(sc->sc_dev,
+                   "unable to register power button with sysmon\n");
+       pmf_device_register(self, NULL, NULL);
+}
+
+static int
+button_intr(void *cookie)
+{
+       struct button_softc *sc = cookie;
+       uint8_t reg;
+       
+       reg = bus_space_read_4(sc->sc_tag, sc->sc_hreg, 0);
+       bus_space_write_4(sc->sc_tag, sc->sc_hreg, 0,
+           IOC_PANEL_VDOWN_IRQ | IOC_PANEL_VUP_IRQ | IOC_PANEL_POWER_IRQ);
+       if ((reg & IOC_PANEL_POWER_IRQ) == 0) {
+               if (!sc->sc_fired)
+                       sysmon_task_queue_sched(0, button_powerbutton, sc);
+               sc->sc_fired = 1;
+       }
+       if (time_second == sc->sc_last)
+               return 1;
+       sc->sc_last = time_second;
+       if ((reg & IOC_PANEL_VDOWN_HOLD) == 0)
+               pmf_event_inject(NULL, PMFE_AUDIO_VOLUME_DOWN);
+       if ((reg & IOC_PANEL_VUP_HOLD) == 0)
+               pmf_event_inject(NULL, PMFE_AUDIO_VOLUME_UP);
+       
+       return 1;
+}
+
+static void
+button_powerbutton(void *cookie)
+{
+       struct button_softc *sc = cookie;
+
+       sysmon_pswitch_event(&sc->sc_pbutton, PSWITCH_EVENT_PRESSED);
+}
diff -r 0b7058f6eb52 -r b3aaf5accc5b sys/arch/sgimips/hpc/files.hpc
--- a/sys/arch/sgimips/hpc/files.hpc    Mon Apr 09 19:33:14 2018 +0000
+++ b/sys/arch/sgimips/hpc/files.hpc    Mon Apr 09 20:07:22 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: files.hpc,v 1.15 2018/04/09 19:11:38 christos Exp $
+# $NetBSD: files.hpc,v 1.16 2018/04/09 20:07:22 christos Exp $
 
 device sq: arp, ether, ifnet
 attach sq at hpc
@@ -27,4 +27,4 @@
 
 device button : sysmon_power, sysmon_taskq
 attach button at hpc
-file   arch/sgimips/hpc/panel.c        button
+file   arch/sgimips/hpc/button.c       button
diff -r 0b7058f6eb52 -r b3aaf5accc5b sys/arch/sgimips/hpc/panel.c
--- a/sys/arch/sgimips/hpc/panel.c      Mon Apr 09 19:33:14 2018 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*     $NetBSD: panel.c,v 1.3 2015/02/18 16:47:58 macallan Exp $ */
-
-/*-
- * Copyright (c) 2009 Michael Lorenz
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: panel.c,v 1.3 2015/02/18 16:47:58 macallan Exp $");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/device.h>
-#include <sys/proc.h>
-#include <sys/kthread.h>
-
-#include <sys/bus.h>
-
-#include <dev/sysmon/sysmonvar.h>
-#include <dev/sysmon/sysmon_taskq.h>
-
-#include <machine/autoconf.h>
-#include <machine/machtype.h>
-
-#include <sgimips/ioc/iocreg.h>
-#include <sgimips/hpc/hpcvar.h>
-#include <sgimips/hpc/hpcreg.h>
-
-struct panel_softc {
-       device_t sc_dev;
-       struct sysmon_pswitch sc_pbutton;
-       bus_space_tag_t sc_tag;
-       bus_space_handle_t sc_hreg;
-       int sc_last, sc_fired;
-};
-
-static int panel_match(device_t, cfdata_t, void *);
-static void panel_attach(device_t, device_t, void *);
-
-static int panel_intr(void *);
-static void panel_powerbutton(void *);
-
-CFATTACH_DECL_NEW(panel, sizeof(struct panel_softc), 
-                               panel_match, 
-                               panel_attach, 
-                               NULL, 
-                               NULL);
-
-static int
-panel_match(device_t parent, cfdata_t match, void *aux)
-{
-       struct hpc_attach_args *ha = aux;
-
-       if (strcmp(ha->ha_name, match->cf_name) != 0)
-               return 0;
-
-       if (mach_type == MACH_SGI_IP22)
-               return 1;
-
-       return 0;
-}
-
-static void
-panel_attach(device_t parent, device_t self, void *aux)
-{
-       struct panel_softc *sc;
-       struct hpc_attach_args *haa;
-
-       sc = device_private(self);
-       sc->sc_dev = self;
-       haa = aux;
-       sc->sc_tag = haa->ha_st;
-       sc->sc_fired = 0;
-       
-       aprint_normal("\n");
-       if (bus_space_subregion(haa->ha_st, haa->ha_sh, haa->ha_devoff,
-                       0x4,            /* just a single register */
-                       &sc->sc_hreg)) {
-               aprint_error(": unable to map panel register\n");
-               return;
-       }
-
-       if ((cpu_intr_establish(haa->ha_irq, IPL_BIO,
-            panel_intr, sc)) == NULL) {
-               printf(": unable to establish interrupt!\n");
-               return;
-       }
-
-       sc->sc_last = 0;
-
-       sysmon_task_queue_init();
-       memset(&sc->sc_pbutton, 0, sizeof(struct sysmon_pswitch));
-       sc->sc_pbutton.smpsw_name = device_xname(sc->sc_dev);
-       sc->sc_pbutton.smpsw_type = PSWITCH_TYPE_POWER;
-       if (sysmon_pswitch_register(&sc->sc_pbutton) != 0)
-               aprint_error_dev(sc->sc_dev,
-                   "unable to register power button with sysmon\n");
-       pmf_device_register(self, NULL, NULL);
-}
-
-static int



Home | Main Index | Thread Index | Old Index