On Tuesday 10 March 2009, Sergei Shtylyov wrote: > I wrote: > > >>>> This is IDE host driver for AT91 (SAM9, CAP9, AT572D940HF) Static > >>>> Memory > >>>> Controller with Compact Flash True IDE Mode logic. > > >>>> Driver have to switch 8/16 bit bus width when accessing Task Tile or > >>>> Data > >>>> Register. Moreover some extra things need to be done when setting > >>>> PIO mode. > >>>> Only PIO mode is used, hardware have no DMA support. If interrupt > >>>> line is > >>>> connected through GPIO extra quirk is needed to cope with fake > >>>> interrupts. > > >>>> Signed-off-by: Stanislaw Gruszka <stf_xl@xxxxx> > > >>> This is prolly only me, but I afil to compile this driver with the > >>> current arch/arm/configs/at91sam9263ek_defconfig: > > >>> CC drivers/ide/at91_ide.o > >>> drivers/ide/at91_ide.c: In function ‘at91_ide_input_data’: > >>> drivers/ide/at91_ide.c:159: error: implicit declaration of function > >>> ‘__ide_mm_insw’ > >>> drivers/ide/at91_ide.c: In function ‘at91_ide_output_data’: > >>> drivers/ide/at91_ide.c:174: error: implicit declaration of function > >>> ‘__ide_mm_outsw’ > >>> drivers/ide/at91_ide.c: In function ‘at91_ide_tf_load’: > >>> drivers/ide/at91_ide.c:192: error: ‘task’ undeclared (first use in > >>> this function) > >>> drivers/ide/at91_ide.c:192: error: (Each undeclared identifier is > >>> reported only > >>> once > >>> drivers/ide/at91_ide.c:192: error: for each function it appears in.) > >>> drivers/ide/at91_ide.c: At top level: > >>> drivers/ide/at91_ide.c:303: warning: initialization from incompatible > >>> pointer type > >>> drivers/ide/at91_ide.c:304: warning: initialization from incompatible > >>> pointer type > >>> make[1]: *** [drivers/ide/at91_ide.o] Error 1 > >>> make: *** [drivers/ide/] Error 2 > > >> Ah, it's only with pata-2.6 series applied. Bart, you clearly need > >> to include this driver to some of your patches... I did and asked people to test the final result (see my mail on merging at91_ide)... unfortunately it seems like I missed few spots... :) > Oops, got muddled in too many follow-ups. :-) > Namely, ide-remove-ide_task_t-typedef.patch is incomplete... Was a bit more than that, I also needed to merge __ide_mm_* fixup below... [ Anyway please verify that I got it right this time, thanks! ] From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> Subject: [PATCH] at91_ide: use readsw()/writesw() directly Use readsw()/writesw() directly intead of __ide_mm_{in,out}sw() macros. Cc: Stanislaw Gruszka <stf_xl@xxxxx> Cc: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> --- needed for "ide: include <asm/ide.h> only when needed" patch in pata tree drivers/ide/at91_ide.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: b/drivers/ide/at91_ide.c =================================================================== --- a/drivers/ide/at91_ide.c +++ b/drivers/ide/at91_ide.c @@ -156,7 +156,7 @@ static void at91_ide_input_data(ide_driv len++; enter_16bit(chipselect, mode); - __ide_mm_insw((void __iomem *) io_ports->data_addr, buf, len / 2); + readsw((void __iomem *)io_ports->data_addr, buf, len / 2); leave_16bit(chipselect, mode); } @@ -171,7 +171,7 @@ static void at91_ide_output_data(ide_dri pdbg("cs %u buf %p len %d\n", chipselect, buf, len); enter_16bit(chipselect, mode); - __ide_mm_outsw((void __iomem *) io_ports->data_addr, buf, len / 2); + writesw((void __iomem *)io_ports->data_addr, buf, len / 2); leave_16bit(chipselect, mode); } -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html