Re: [PATCH] serial: of-serial: Remove device_type = "serial" registration

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

 



Hi Greg,

On 04/13/2015 07:00 PM, Greg Kroah-Hartman wrote:
> On Mon, Apr 13, 2015 at 04:35:27PM +0200, Michal Simek wrote:
>> Do not probe all serial drivers by of_serial.c which are using
>> device_type = "serial"; property. Only drivers which have valid
>> compatible strings listed in the driver should be probed.
> 
> Why?  This was added for some reason, what has changed since then?

I was discussing this patch with Arnd over IRC.

This is what Arnd was saying yesterday.
"when I wrote that driver initially, the idea was that it would get used
as a stub to hook up all other serial drivers
but after that, the common code learned to create platform devices from DT"

and resolution from our discussion was to remove this line because make
no sense to probe all drivers which has device_type = "serial".
It was causing the problem on one system with xilinx_uartps and 16550a
IP where of_serial failed to register for xilinx_uartps and because of
irq_dispose_mapping removed irq_desc. Then when xilinx_uartps was asking
for irq with request_irq() it was returning EINVAL.

The first problem was that of_serial tried to bind driver because of
device_type = "serial"; and the second problem was in xilinx_uartps
driver by incorrectly using platform_get_resources() which doesn't
create irq mapping which is fixed by the second patch.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]