All of lore.kernel.org
 help / color / mirror / Atom feed
* v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff"
@ 2014-03-16 21:41 Paul Bolle
  2014-03-17  0:02 ` Rafael J. Wysocki
  2014-03-18 14:00 ` Bjørn Mork
  0 siblings, 2 replies; 5+ messages in thread
From: Paul Bolle @ 2014-03-16 21:41 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Mika Westerberg, linux-kernel

Rafael,

0) Ever since v3.14-rc1 I've noticed two new boot messages on an,
outdated, ThinkPad X41:
    nsc-ircc, Found chip at base=0x164e
    nsc-ircc, Wrong chip version ff

The first is printed at info level, so I would have ignored it, but the
second is printed at error level.

1) I've finally managed to bisect these messages to commit 202317a573b2
("ACPI / scan: Add acpi_device objects for all device nodes in the
namespace"). That's a rather big commit, so I've not even bothered to
try to revert it on top on v3.14-rc6.

2) What should I do to make that error go away?


Paul Bolle


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff"
  2014-03-16 21:41 v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff" Paul Bolle
@ 2014-03-17  0:02 ` Rafael J. Wysocki
  2014-03-17 12:33   ` Paul Bolle
  2014-03-18 14:00 ` Bjørn Mork
  1 sibling, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki @ 2014-03-17  0:02 UTC (permalink / raw)
  To: Paul Bolle; +Cc: Rafael J. Wysocki, Mika Westerberg, linux-kernel

On Sunday, March 16, 2014 10:41:35 PM Paul Bolle wrote:
> Rafael,
> 
> 0) Ever since v3.14-rc1 I've noticed two new boot messages on an,
> outdated, ThinkPad X41:
>     nsc-ircc, Found chip at base=0x164e
>     nsc-ircc, Wrong chip version ff
> 
> The first is printed at info level, so I would have ignored it, but the
> second is printed at error level.

It looks like one driver thinks there's something interesting for it, but
finds out that there really is nothing and gives up.

> 1) I've finally managed to bisect these messages to commit 202317a573b2
> ("ACPI / scan: Add acpi_device objects for all device nodes in the
> namespace"). That's a rather big commit, so I've not even bothered to
> try to revert it on top on v3.14-rc6.

And there really is no reason to do that, because those messages don't indicate
any real problems. :-)

> 2) What should I do to make that error go away?

This is not an error, but a message whose log level is too high.  It basically
means "I found something, but I don't like it, so I'm not going to handle it."

The messages come from nsc_ircc_setup(), which is called from nsc_ircc_open(),
which in turn is called by nsc_ircc_init(), which is a module intialization
function of the nsc-ircc module.

I *guess* what happens is that the PNP layer creates a PNP device object
for something it didn't create an object for previously, so I wonder if the
patch below makes those messages go away?

Rafael


---
 drivers/acpi/internal.h    |    1 -
 drivers/pnp/pnpacpi/core.c |    5 ++++-
 include/acpi/acpi_bus.h    |    1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

Index: linux-pm/drivers/pnp/pnpacpi/core.c
===================================================================
--- linux-pm.orig/drivers/pnp/pnpacpi/core.c
+++ linux-pm/drivers/pnp/pnpacpi/core.c
@@ -258,7 +258,10 @@ static int __init pnpacpi_add_device(str
 	if (!pnpid)
 		return 0;
 
-	if (is_exclusive_device(device) || !device->status.present)
+	if (acpi_bus_get_status(device))
+		return 0;
+
+	if (is_exclusive_device(device) || !acpi_device_is_present(device))
 		return 0;
 
 	dev = pnp_alloc_dev(&pnpacpi_protocol, num, pnpid);
Index: linux-pm/drivers/acpi/internal.h
===================================================================
--- linux-pm.orig/drivers/acpi/internal.h
+++ linux-pm/drivers/acpi/internal.h
@@ -97,7 +97,6 @@ void acpi_device_add_finalize(struct acp
 void acpi_free_pnp_ids(struct acpi_device_pnp *pnp);
 int acpi_bind_one(struct device *dev, struct acpi_device *adev);
 int acpi_unbind_one(struct device *dev);
-bool acpi_device_is_present(struct acpi_device *adev);
 bool acpi_device_is_battery(struct acpi_device *adev);
 
 /* --------------------------------------------------------------------------
Index: linux-pm/include/acpi/acpi_bus.h
===================================================================
--- linux-pm.orig/include/acpi/acpi_bus.h
+++ linux-pm/include/acpi/acpi_bus.h
@@ -422,6 +422,7 @@ void acpi_bus_put_acpi_device(struct acp
 acpi_status acpi_bus_get_status_handle(acpi_handle handle,
 				       unsigned long long *sta);
 int acpi_bus_get_status(struct acpi_device *device);
+bool acpi_device_is_present(struct acpi_device *adev);
 
 int acpi_bus_set_power(acpi_handle handle, int state);
 const char *acpi_power_state_string(int state);


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff"
  2014-03-17  0:02 ` Rafael J. Wysocki
@ 2014-03-17 12:33   ` Paul Bolle
  2014-03-17 13:24     ` Rafael J. Wysocki
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Bolle @ 2014-03-17 12:33 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Rafael J. Wysocki, Mika Westerberg, linux-kernel

Rafael J. Wysocki schreef op ma 17-03-2014 om 01:02 [+0100]:
> On Sunday, March 16, 2014 10:41:35 PM Paul Bolle wrote:
> > 2) What should I do to make that error go away?
> 
> This is not an error, but a message whose log level is too high.  It basically
> means "I found something, but I don't like it, so I'm not going to handle it."

I see. It's actually quite old and is mentioned rather often on the web.
I must have seen if before, when I actually used IrDA, but that's a few
years ago now.

> The messages come from nsc_ircc_setup(), which is called from nsc_ircc_open(),
> which in turn is called by nsc_ircc_init(), which is a module intialization
> function of the nsc-ircc module.
> 
> I *guess* what happens is that the PNP layer creates a PNP device object
> for something it didn't create an object for previously, so I wonder if the
> patch below makes those messages go away?

No, they're still there (with this patch applied on top of v3.14-rc7).

> ---
>  drivers/acpi/internal.h    |    1 -
>  drivers/pnp/pnpacpi/core.c |    5 ++++-
>  include/acpi/acpi_bus.h    |    1 +
>  3 files changed, 5 insertions(+), 2 deletions(-)
> 
> Index: linux-pm/drivers/pnp/pnpacpi/core.c
> ===================================================================
> --- linux-pm.orig/drivers/pnp/pnpacpi/core.c
> +++ linux-pm/drivers/pnp/pnpacpi/core.c
> @@ -258,7 +258,10 @@ static int __init pnpacpi_add_device(str
>  	if (!pnpid)
>  		return 0;
>  
> -	if (is_exclusive_device(device) || !device->status.present)
> +	if (acpi_bus_get_status(device))
> +		return 0;
> +
> +	if (is_exclusive_device(device) || !acpi_device_is_present(device))
>  		return 0;
>  
>  	dev = pnp_alloc_dev(&pnpacpi_protocol, num, pnpid);
> Index: linux-pm/drivers/acpi/internal.h
> ===================================================================
> --- linux-pm.orig/drivers/acpi/internal.h
> +++ linux-pm/drivers/acpi/internal.h
> @@ -97,7 +97,6 @@ void acpi_device_add_finalize(struct acp
>  void acpi_free_pnp_ids(struct acpi_device_pnp *pnp);
>  int acpi_bind_one(struct device *dev, struct acpi_device *adev);
>  int acpi_unbind_one(struct device *dev);
> -bool acpi_device_is_present(struct acpi_device *adev);
>  bool acpi_device_is_battery(struct acpi_device *adev);
>  
>  /* --------------------------------------------------------------------------

This hunk required a trivial context change in v3.14-rc7.

> Index: linux-pm/include/acpi/acpi_bus.h
> ===================================================================
> --- linux-pm.orig/include/acpi/acpi_bus.h
> +++ linux-pm/include/acpi/acpi_bus.h
> @@ -422,6 +422,7 @@ void acpi_bus_put_acpi_device(struct acp
>  acpi_status acpi_bus_get_status_handle(acpi_handle handle,
>  				       unsigned long long *sta);
>  int acpi_bus_get_status(struct acpi_device *device);
> +bool acpi_device_is_present(struct acpi_device *adev);
>  
>  int acpi_bus_set_power(acpi_handle handle, int state);
>  const char *acpi_power_state_string(int state);

Thanks,


Paul Bolle


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff"
  2014-03-17 12:33   ` Paul Bolle
@ 2014-03-17 13:24     ` Rafael J. Wysocki
  0 siblings, 0 replies; 5+ messages in thread
From: Rafael J. Wysocki @ 2014-03-17 13:24 UTC (permalink / raw)
  To: Paul Bolle; +Cc: Rafael J. Wysocki, Mika Westerberg, linux-kernel

On Monday, March 17, 2014 01:33:33 PM Paul Bolle wrote:
> Rafael J. Wysocki schreef op ma 17-03-2014 om 01:02 [+0100]:
> > On Sunday, March 16, 2014 10:41:35 PM Paul Bolle wrote:
> > > 2) What should I do to make that error go away?
> > 
> > This is not an error, but a message whose log level is too high.  It basically
> > means "I found something, but I don't like it, so I'm not going to handle it."
> 
> I see. It's actually quite old and is mentioned rather often on the web.
> I must have seen if before, when I actually used IrDA, but that's a few
> years ago now.

I see.

> > The messages come from nsc_ircc_setup(), which is called from nsc_ircc_open(),
> > which in turn is called by nsc_ircc_init(), which is a module intialization
> > function of the nsc-ircc module.
> > 
> > I *guess* what happens is that the PNP layer creates a PNP device object
> > for something it didn't create an object for previously, so I wonder if the
> > patch below makes those messages go away?
> 
> No, they're still there (with this patch applied on top of v3.14-rc7).

Beats me then.

I'm sure it can be tracked down, but I'm not sure it's worth spending the time.

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff"
  2014-03-16 21:41 v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff" Paul Bolle
  2014-03-17  0:02 ` Rafael J. Wysocki
@ 2014-03-18 14:00 ` Bjørn Mork
  1 sibling, 0 replies; 5+ messages in thread
From: Bjørn Mork @ 2014-03-18 14:00 UTC (permalink / raw)
  To: Paul Bolle; +Cc: Rafael J. Wysocki, Mika Westerberg, linux-kernel

Paul Bolle <pebolle@tiscali.nl> writes:

> Rafael,
>
> 0) Ever since v3.14-rc1 I've noticed two new boot messages on an,
> outdated, ThinkPad X41:
>     nsc-ircc, Found chip at base=0x164e
>     nsc-ircc, Wrong chip version ff

Looks like that driver calls request_region for its "fir_base" IO ports
too late.

Parts of nsc_ircc_open:

..
        IRDA_MESSAGE("%s, Found chip at base=0x%03x\n", driver_name,
                     info->cfg_base);

        if ((nsc_ircc_setup(info)) == -1)
                return -1;

=> fails while attempting to write to info->fir_base + 3 and then read
   from info->fir_base + 0

..
        /* Initialize IO */
        self->io.cfg_base  = info->cfg_base;
        self->io.fir_base  = info->fir_base;
        self->io.irq       = info->irq;
        self->io.fir_ext   = CHIP_IO_EXTENT;
        self->io.dma       = info->dma;
        self->io.fifo_size = 32;
        
        /* Reserve the ioports that we need */
        ret = request_region(self->io.fir_base, self->io.fir_ext, driver_name);

Maybe reorder this a bit, requesting the fir_base IO ports before
calling nsc_ircc_setup?  You'll have to reorder the error cleanups too.


> The first is printed at info level, so I would have ignored it, but the
> second is printed at error level.
>
> 1) I've finally managed to bisect these messages to commit 202317a573b2
> ("ACPI / scan: Add acpi_device objects for all device nodes in the
> namespace"). That's a rather big commit, so I've not even bothered to
> try to revert it on top on v3.14-rc6.

My guess is that you've got some pnp device now claiming the FIR IO
ports.  cat /proc/ioports may help you find out what to look for?


Bjørn

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-03-18 14:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-16 21:41 v3.14-rc1+: new error: "nsc-ircc, Wrong chip version ff" Paul Bolle
2014-03-17  0:02 ` Rafael J. Wysocki
2014-03-17 12:33   ` Paul Bolle
2014-03-17 13:24     ` Rafael J. Wysocki
2014-03-18 14:00 ` Bjørn Mork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.