From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yoshinori Sato Subject: Re: H8/300 target support patch Date: Tue, 17 Feb 2004 01:09:49 +0900 Sender: linux-ide-owner@vger.kernel.org Message-ID: References: <200402151540.56377.bzolnier@elka.pw.edu.pl> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=ISO-2022-JP Return-path: Received: from p063229.ppp.asahi-net.or.jp ([221.113.63.229]:60151 "EHLO mitou.ysato.dip.jp") by vger.kernel.org with ESMTP id S265694AbUBPQJw (ORCPT ); Mon, 16 Feb 2004 11:09:52 -0500 In-Reply-To: <200402151540.56377.bzolnier@elka.pw.edu.pl> List-Id: linux-ide@vger.kernel.org To: Bartlomiej Zolnierkiewicz Cc: linux-ide@vger.kernel.org At Sun, 15 Feb 2004 15:40:56 +0100, Bartlomiej Zolnierkiewicz wrote: > > On Sunday 15 of February 2004 07:05, Yoshinori Sato wrote: > > Hello. > > I develop H8/300 support of linux kernel. > > > > I made a patch to use IDE driver with a H8/300 target. > > I want to do merge to source if possible. > > > > How will about it? > > Hi, > > + * reference schematic is http://www.linet.gr.jp/mituiwa/h8/h8osv3/hddprog/hdd.png > > this link is dead > > +#include > +#include > +#include > > why do you include mm.h and blkdev.h? It is code in a thing of 2.4.x I seem to have left that deleted it when shifted to new driver. > +static void _outsw(unsigned long addr, void *buf, u32 len) > +{ > + unsigned volatile short *ap = (unsigned volatile short *)addr; > + unsigned short *bp = (unsigned short *)buf; > + unsigned short d; > + while(len--) { > + d = *bp++; > + *ap = (d << 8) | (d >> 8); > + } > +} > + > +static void _insw(unsigned long addr, void *buf, u32 len) > +{ > + unsigned volatile short *ap = (unsigned volatile short *)addr; > + unsigned short *bp = (unsigned short *)buf; > + unsigned short d; > + while(len--) { > + d = *ap; > + *bp++ = (d << 8) | (d >> 8); > + } > +} > > why you don't use outsw() and insw() from include/asm-h8300/io.h? Because bus turns over, insw/outsw is not usable. > + ide_setup_ports(&hw, IDE_BASE, (int *)offsets, > + IDE_CTRL, 0, NULL,IDE_IRQ); > > ide_setup_ports() is deprecated, please do not use it. > > + hwif->mmio = 0; > > Your driver is doing MMIO, it should request and release resources itself > and set hwif->mmio to 2. > > +void __init h8300_ide_print_resource(char *name, hw_regs_t *hw) > +{ > + printk("%s at 0x%08x-0x%08x,0x%08x on irq %d", name, > + (unsigned int)hw->io_ports[IDE_DATA_OFFSET], > + (unsigned int)hw->io_ports[IDE_DATA_OFFSET]+15, > + (unsigned int)hw->io_ports[IDE_CONTROL_OFFSET], > + hw->irq); > +} > > Is this necessary (this is a reason for extra #ifdefs in ide-probe.c)? > Can't we do what m68k is doing (print only address and IRQ) for now? I can use it. But there is the problem that resource to use cannot output justly. I think that solved if can define a part of +7 with #define. > Both drivers use same IO ops so they can be moved to some include file > or both drivers can be merged (preferred solution) - they are for different > boards and can't work together (plus MAX_HWIFS is defined to 1 for h8300). > > Here is patch (not tested) addressing some of these issues... I identified operation. MMIO and print_resource examine a correction method. Thank you. -- Yoshinori Sato