Re: [Bug] GPIO-Rcar: Driver does not work after Unbind-rebind.

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

 



Hi Laurent
Thanks for your replying!

On 08/05/2014 10:05 AM, Laurent Pinchart wrote:
Hello,

On Friday 01 August 2014 16:14:27 カオ ミン ヒェップ wrote:
Hello,

I tested gpio-rcar driver at Linux-upstream-v3.16-rc5 on Lager.
When I tried to unbind and then rebind the device, error messages occur.
Then gpio-rcar did not work and interrupt number did not count up any more.

The error messages is showed as below:
"irq 0, desc: ee005040, depth: 1, cou0
->handle_irq():  c005eea0, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05de7f8, 0xc05de7f8
->action():   (null)
     IRQ_NOPROBE set
   IRQ_NOREQUEST set
irq 0, desc: ee005040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005eea0, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05de7f8, 0xc05de7f8
->action():   (null)
     IRQ_NOPROBE set
   IRQ_NOREQUEST set"

Please see it and fix this bug.
Could you please detail the procedure to follow to reproduce the problem ?

Below is the procedure to follow to reproduce the problem:

1. The first, confirms gpio device:
# cd /sys/bus/platform/drivers/gpio_rcar;find -type l
2. unbind the device:
# cd /sys/bus/platform/drivers/gpio_rcar; echo e6051000.gpio> unbind
3. Confirm unbind status:
#  cd /sys/bus/platform/drivers/gpio_rcar;  ls -d e6051000.gpio
4. rebind the device:
#  cd /sys/bus/platform/drivers/gpio_rcar; echo e6051000.gpio > bind
5. confirm bind status:
#  cd /sys/bus/platform/drivers/gpio_rcar;  ls -d e6051000.gpio
6.# cat /proc/interrupts | grep e6051000.gpio
7. Switch SW2 ON/OFF on the board to ensure that device works normally after rebinding.

I attached the detail log of two cases unbinding-rebinding e6051000.gpio and e6053000.gpio
# uname -a
Linux linaro-nano 3.16.0-rc5-00001-gf522b45 #1 SMP Tue Aug 5 10:25:16 JST 2014 armv7l armv7l armv7l GNU/Linux

# dmesg | grep gpio
gpio-regulator regulator@2: Could not obtain regulator setting GPIOs: -517
platform regulator@2: Driver gpio-regulator requests probe deferral
gpio-regulator regulator@4: Could not obtain regulator setting GPIOs: -517
platform regulator@4: Driver gpio-regulator requests probe deferral
gpio_rcar e6050000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6050000.gpio: driving 32 GPIOs
gpio_rcar e6051000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6051000.gpio: driving 32 GPIOs
gpio_rcar e6052000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6052000.gpio: driving 32 GPIOs
gpio_rcar e6053000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6053000.gpio: driving 32 GPIOs
gpio_rcar e6054000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6054000.gpio: driving 32 GPIOs
gpio_rcar e6055000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6055000.gpio: driving 32 GPIOs
input: gpio_keys as /devices/gpio_keys/input/input0

# cd /sys/bus/platform/drivers/gpio_rcar; ls -d e6051000.gpio
e6051000.gpio

# cd /sys/bus/platform/drivers/gpio_rcar; echo e6051000.gpio> unbind

root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# ls -d e6051000.gpio
ls: cannot access e6051000.gpio: No such file or directory

root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# ls /dev/input/event0                                   
ls: cannot access /dev/input/event0: No such file or directory

#  cd /sys/bus/platform/drivers/gpio_rcar; echo e6051000.gpio > bind
gpio_rcar e6051000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6051000.gpio: driving 32 GPIOs
#  ls -d e6051000.gpio/drivers/gpio_rcar# cd /sys/bus/platform/drive 
e6051000.gpio

# cat /proc/interrupts | grep e6051000.gpio
 37:          0          0          0          0       GIC  37  e6051000.gpio
419:          0          0          0          0  e6051000.gpio  14  SW2-1
420:          0          0          0          0  e6051000.gpio  24  SW2-2
421:          0          0          0          0  e6051000.gpio  26  SW2-3
422:          0          0          0          0  e6051000.gpio  28  SW2-4


When switchs the SW2 ON/OFF, the error messages occur as below:

root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set

# uname -a
Linux linaro-nano 3.16.0-rc5-00001-gf522b45 #1 SMP Tue Aug 5 10:25:16 JST 2014 armv7l armv7l armv7l GNU/Linux
root@linaro-nano:~# cd /sys/bus/platform/drivers/gpio_rcar;find -type l
./e6051000.gpio
./e6053000.gpio
./e6055000.gpio
./e6050000.gpio
./e6052000.gpio
./e6054000.gpio
platform e6053000.gpio: Runtime PM disabled, clock forced off.

#echo e6053000.gpio> unbind

root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# ls -d e6053000.gpio
ls: cannot access e6053000.gpio: No such file or directory

#echo e6053000.gpio > bind
gpio_rcar e6053000.gpio: Runtime PM disabled, clock forced on.
gpio_rcar e6053000.gpio: driving 32 GPIOs

root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# ls -d e6053000.gpio
e6053000.gpio

root@linaro-nano:~# cat /proc/interrupts | grep e6053000.gpio
 39:          0          0          0          0       GIC  39  e6053000.gpio


When Insert/remove mSD into/from SD0 and SD2 slot, the error messages occur as below:

root@linaro-nano:~# irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set
irq 0, desc: eec05040, depth: 1, count: 0, unhandled: 0
->handle_irq():  c005fd0c, handle_bad_irq+0x0/0x21c
->irq_data.chip(): c05ec790, 0xc05ec790
->action():   (null)
   IRQ_NOPROBE set
 IRQ_NOREQUEST set


[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux