Changeset 4c7257b in mainline for kernel/arch


Ignore:
Timestamp:
2009-02-28T18:55:38Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bc18d63
Parents:
c43b1db2
Message:

Do not set sysinfo for uspace drivers directly in the kernel drivers.

Location:
kernel/arch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/amd64.c

    rc43b1db2 r4c7257b  
    6464#include <ddi/irq.h>
    6565#include <ddi/device.h>
     66#include <sysinfo/sysinfo.h>
    6667
    6768
     
    174175void arch_post_smp_init(void)
    175176{
     177        devno_t devno = device_assign_devno();
    176178        /* keyboard controller */
    177         (void) i8042_init((i8042_t *) I8042_BASE, device_assign_devno(),
    178             IRQ_KBD);
     179        (void) i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD);
     180
     181        /*
     182         * This is the necessary evil until the userspace driver is entirely
     183         * self-sufficient.
     184         */
     185        sysinfo_set_item_val("kbd", NULL, true);
     186        sysinfo_set_item_val("kbd.devno", NULL, devno);
     187        sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD);
    179188}
    180189
  • kernel/arch/ia32/src/ia32.c

    rc43b1db2 r4c7257b  
    6363#include <console/console.h>
    6464#include <ddi/device.h>
     65#include <sysinfo/sysinfo.h>
    6566
    6667#ifdef CONFIG_SMP
     
    125126void arch_post_smp_init(void)
    126127{
    127         devno_t kbd = device_assign_devno();
     128        devno_t devno = device_assign_devno();
    128129        /* keyboard controller */
    129         (void) i8042_init((i8042_t *) I8042_BASE, kbd, IRQ_KBD);
     130        (void) i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD);
     131
     132        /*
     133         * This is the necessary evil until the userspace driver is entirely
     134         * self-sufficient.
     135         */
     136        sysinfo_set_item_val("kbd", NULL, true);
     137        sysinfo_set_item_val("kbd.devno", NULL, devno);
     138        sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD);
    130139}
    131140
  • kernel/arch/ia64/src/ia64.c

    rc43b1db2 r4c7257b  
    161161
    162162#ifdef I460GX
    163         devno_t kbd = device_assign_devno();
     163        devno_t devno = device_assign_devno();
     164        inr_t inr;
    164165
    165166#ifdef CONFIG_NS16550
    166         (void) ns16550_init((ns16550_t *)NS16550_BASE, kbd, NS16550_IRQ, NULL,
    167              NULL);
     167        inr = NS16550_IRQ;
     168        (void) ns16550_init((ns16550_t *)NS16550_BASE, devno, inr, NULL, NULL);
     169        sysinfo_set_item_val("kbd.type", NULL, KBD_NS16550);
     170        sysinfo_set_item_val("kbd.port", NULL, (uintptr_t)NS16550_BASE);
    168171#else
    169         (void) i8042_init((i8042_t *)I8042_BASE, kbd, IRQ_KBD);
    170 #endif
     172        inr = IRQ_KBD;
     173        (void) i8042_init((i8042_t *)I8042_BASE, devno, inr);
     174        sysinfo_set_item_val("kbd.type", NULL, KBD_LEGACY);
     175#endif
     176        sysinfo_set_item_val("kbd", NULL, true);
     177        sysinfo_set_item_val("kbd.devno", NULL, devno);
     178        sysinfo_set_item_val("kbd.inr", NULL, inr);
    171179#endif
    172180
  • kernel/arch/sparc64/src/drivers/kbd.c

    rc43b1db2 r4c7257b  
    6767        cir_t cir;
    6868        void *cir_arg;
     69
     70#ifdef CONFIG_NS16550
     71        ns16550_t *ns16550;
     72#endif
     73#ifdef CONFIG_Z8530
     74        z8530_t *z8530;
     75#endif
    6976       
    7077        name = ofw_tree_node_name(node);
     
    101108        uintptr_t pa;
    102109        size_t size;
     110        devno_t devno;
    103111        inr_t inr;
    104112       
     
    149157#ifdef CONFIG_Z8530
    150158        case KBD_Z8530:
    151                 (void) z8530_init((z8530_t *) hw_map(aligned_addr,
    152                     offset + size) + offset, device_assign_devno(), inr, cir,
    153                     cir_arg);
     159                devno = device_assign_devno();
     160                z8530 = (z8530_t *) hw_map(aligned_addr, offset + size) +
     161                    offset;
     162                (void) z8530_init(z8530, devno, inr, cir, cir_arg);
     163               
     164                /*
     165                 * This is the necessary evil until the userspace drivers are
     166                 * entirely self-sufficient.
     167                 */
     168                sysinfo_set_item_val("kbd", NULL, true);
     169                sysinfo_set_item_val("kbd.type", NULL, KBD_Z8530);
     170                sysinfo_set_item_val("kbd.devno", NULL, devno);
     171                sysinfo_set_item_val("kbd.inr", NULL, inr);
     172                sysinfo_set_item_val("kbd.address.virtual", NULL,
     173                    (uintptr_t) z8530);
     174                sysinfo_set_item_val("kbd.address.physical", NULL, pa);
    154175                break;
    155176#endif
    156177#ifdef CONFIG_NS16550
    157178        case KBD_NS16550:
    158                 (void) ns16550_init((ns16550_t *) (hw_map(aligned_addr,
    159                     offset + size) + offset), device_assign_devno(), inr, cir,
    160                     cir_arg);
     179                devno = device_assign_devno();
     180                ns16550 = (ns16550_t *) hw_map(aligned_addr, offset + size) +
     181                    offset;
     182                (void) ns16550_init(ns16550, devno, inr, cir, cir_arg);
     183               
     184                /*
     185                 * This is the necessary evil until the userspace driver is
     186                 * entirely self-sufficient.
     187                 */
     188                sysinfo_set_item_val("kbd", NULL, true);
     189                sysinfo_set_item_val("kbd.type", NULL, KBD_NS16550);
     190                sysinfo_set_item_val("kbd.devno", NULL, devno);
     191                sysinfo_set_item_val("kbd.inr", NULL, inr);
     192                sysinfo_set_item_val("kbd.address.virtual", NULL,
     193                    (uintptr_t) ns16550);
     194                sysinfo_set_item_val("kbd.address.physical", NULL, pa);
    161195                break;
    162196#endif
Note: See TracChangeset for help on using the changeset viewer.