[PATCH 4/4] pata_samsung: Add Samsung PATA controller driver

Kukjin Kim kgene.kim at samsung.com
Wed Jun 2 20:25:24 EDT 2010


Sergei Shtylyov wrote:
> 
> Hello.

Hi ;-)

> Kukjin Kim wrote:
> 
> >>> From: Abhilash Kesavan <a.kesavan at samsung.com>
> >>> Adds support for the Samsung PATA controller. This driver is based on
the
> >>> Libata subsystem and references the earlier patches sent for IDE
subsystem.
> 
>     Where I those I wonder? :-)
>     It's a pity they didn't get accepted.
> 
Was told that that only new libata based drivers would be accepted.

> >>> Signed-off-by: Abhilash Kesavan <a.kesavan at samsung.com>
> >>> Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
> 
> [...]
> 
> >>> +		for (i = 0; i < words; i++, temp_addr++) {
> >>> +			wait_for_host_ready(info);
> >>> +			writel(*temp_addr, data_addr);
> >>> +		}
> >>> +	}
> 
> >>     Well, if this is pere CF case, 'buflen' can't be odd, but otherwise
> 
>     I meant to type "pure". :-)
> 
considering CF in true-ide mode..should I still add the check?

> >> you should handle that case...
> 
> >>> +	uint pio_teoc[5] = { 240, 43, 10, 70, 25 };
> 
> >>     What timing is this? :-O
> 
> > Should have been t2i rec.
> 
>     If it's t2i timing, it is incorrect for the first 3 PIO modes.
> 
Should have been (240, 93, 40, 70, 25)

> >>> +	if (cpu_type == TYPE_S3C6400) {
> >>> +		ap->ops = &pata_s3c_port_ops;
> >>> +		info->sfr_addr = info->ide_addr + 0x1800;
> >>> +		info->ide_addr = info->ide_addr + 0x1900;
> >>> +		info->fifo_status_reg = 0x94;
> >>> +	} else if (cpu_type == TYPE_S5PC100) {
> >>> +		ap->ops = &pata_s5p_port_ops;
> >>> +		info->sfr_addr = info->ide_addr + 0x1800;
> >>> +		info->ide_addr = info->ide_addr + 0x1900;
> 
> >>     Does make sense to assign those before *if*.
> 
> > Offsets not required for S5PV210/S5PC110.
> 
>     pata_s3c_tune_chipset() certainly requires them.
> 
yes..but for V210/C110 just the ioremapped info->ide_addr with 0 offset is
enough.

> >>> +		info->fifo_status_reg = 0x84;
> >>> +	} else {
> >>> +		ap->ops = &pata_s5p_port_ops;
> 
> >>     You don't assign 'info->ide_addr' here but you'll need it in
> >> pata_s3c_tune_chipset() which will be called thru pata_s5p_port_ops!
> 
> > The address received at ioremap() is enough for S5PV210/S5PC110..no
offset
> > needed.
> 
>     I only have to restate that pata_s3c_tune_chipset() does use
> 'info->ide_addr'. Maybe you shouldn't install this method for
S5PV210/S5PC110?
> Or do you mean thgat offset of 0 will work?
> 
V210/C110 requires 0 offset as compared to 6410 and C100 which require
0x1800.

> >>> +release_mem:
> >>> +	release_mem_region(res->start, res->end - res->start + 1);
> 
> >>     But you didn't call request_mem_region()!
> 
> > I didn't..will remove.
> 
>     But you should call request_mem_region() in one or another form...
> 
OK..will request mem_region() before ioremap()..and then the release_mem's
should be fine.


Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.




More information about the linux-arm-kernel mailing list