dev/psm0 not found
Ivan Klymenko
fidaj at ukr.net
Mon Dec 20 20:03:50 UTC 2010
В Mon, 20 Dec 2010 14:51:15 -0500
John Baldwin <jhb at freebsd.org> пишет:
> On Monday, December 20, 2010 1:14:35 pm Ivan Klymenko wrote:
> > В Mon, 20 Dec 2010 12:49:53 -0500
> > John Baldwin <jhb at freebsd.org> пишет:
> >
> > > On Monday, December 20, 2010 11:53:34 am Ivan Klymenko wrote:
> > > > В Mon, 20 Dec 2010 09:58:57 -0500
> > > > John Baldwin <jhb at freebsd.org> пишет:
> > > >
> > > > > On Saturday, December 18, 2010 1:30:20 pm Ivan Klymenko wrote:
> > > > > >
> http://svn.freebsd.org/viewvc/base/head/sys/dev/atkbdc/psm.c?view=log
> > > > > >
> > > > > > after updating svn revision => 216491 system is not
> > > > > > detecting the device psm
> > > > > > http://svn.freebsd.org/viewvc/base?view=revision&revision=216491
> > > > >
> > > > > Can you please get verbose dmesg's from before and after?
> > > > >
> > > >
> > > > Voila.
> > >
> > > Please boot with this and capture the output:
> > >
> > > Index: psm.c
> > > ===================================================================
> > > --- psm.c (revision 216591)
> > > +++ psm.c (working copy)
> > > @@ -1100,11 +1100,17 @@
> > > */
> > > psmc = device_find_child(device_get_parent(parent),
> > > PSMCPNP_DRIVER_NAME, unit);
> > > - if (psmc == NULL)
> > > + if (psmc == NULL) {
> > > + printf("psm%d: could not find %s%d\n", unit,
> > > + PSMCPNP_DRIVER_NAME, unit);
> > > return;
> > > + }
> > > irq = bus_get_resource_start(psmc, SYS_RES_IRQ, 0);
> > > - if (irq <= 0)
> > > + if (irq <= 0) {
> > > + printf("psm%d: no IRQ from %s%d\n", unit,
> > > PSMCPNP_DRIVER_NAME,
> > > + unit);
> > > return;
> > > + }
> > > bus_delete_resource(psmc, SYS_RES_IRQ, 0);
> > > bus_set_resource(psm, SYS_RES_IRQ, KBDC_RID_AUX, irq, 1);
> > > }
>
> Try this instead. You can use a non-verbose dmesg to trim the
> spammage.
>
> Index: psm.c
> ===================================================================
> --- psm.c (revision 216591)
> +++ psm.c (working copy)
> @@ -1080,7 +1080,7 @@
> device_t psmc;
> device_t psm;
> u_long irq;
> - int unit;
> + int error, unit;
>
> unit = device_get_unit(parent);
>
> @@ -1090,8 +1090,10 @@
> return;
>
> irq = bus_get_resource_start(psm, SYS_RES_IRQ, KBDC_RID_AUX);
> - if (irq > 0)
> + if (irq > 0) {
> + printf("psm%d: already has an IRQ?\n", unit);
> return;
> + }
>
> /*
> * If the PS/2 mouse device has already been reported by
> ACPI or @@ -1100,13 +1102,27 @@
> */
> psmc = device_find_child(device_get_parent(parent),
> PSMCPNP_DRIVER_NAME, unit);
> - if (psmc == NULL)
> + if (psmc == NULL) {
> + printf("psm%d: could not find %s%d\n", unit,
> + PSMCPNP_DRIVER_NAME, unit);
> return;
> + }
> irq = bus_get_resource_start(psmc, SYS_RES_IRQ, 0);
> - if (irq <= 0)
> + if (irq <= 0) {
> + printf("psm%d: no IRQ from %s\n", unit,
> + device_get_nameunit(psmc));
> return;
> - bus_delete_resource(psmc, SYS_RES_IRQ, 0);
> - bus_set_resource(psm, SYS_RES_IRQ, KBDC_RID_AUX, irq, 1);
> + }
> + error = bus_delete_resource(psmc, SYS_RES_IRQ, 0);
> + if (error)
> + printf("psm%d: failed to remove IRQ from %s: %d\n",
> unit,
> + device_get_nameunit(psmc), error);
> + error = bus_set_resource(psm, SYS_RES_IRQ, KBDC_RID_AUX,
> irq, 1);
> + if (error)
> + printf("psm%d: failed to add IRQ %lu: %d\n", unit,
> irq,
> + error);
> + else
> + printf("psm%d: added IRQ %lu\n", unit, irq);
> }
>
> #define endprobe(v) do { \
>
/usr/local/libexec/ccache/world-cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=nocona -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror /usr/src/sys/dev/atkbdc/psm.c
distcc[38004] ERROR: compile (null) on localhost failed
/usr/src/sys/dev/atkbdc/psm.c: In function 'psmidentify':
/usr/src/sys/dev/atkbdc/psm.c:1116: error: void value not ignored as it ought to be
*** Error code 1
Stop in /usr/obj/usr/src/sys/mk9.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
More information about the freebsd-current
mailing list