* [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection,
@ 2008-12-09 8:13 Tejun Heo
2008-12-09 8:14 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Tejun Heo
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Tejun Heo @ 2008-12-09 8:13 UTC (permalink / raw)
To: Jeff Garzik, IDE/ATA development list, Sergei Shtylyov, Alan Cox,
Mark Lord
pata_hpt366 is strange in that its two channels occupy two PCI
functions and both are primary channels and bit1 of PCI configuration
register 0x5A indicates cable for both channels.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
---
drivers/ata/pata_hpt366.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Index: work/drivers/ata/pata_hpt366.c
===================================================================
--- work.orig/drivers/ata/pata_hpt366.c
+++ work/drivers/ata/pata_hpt366.c
@@ -211,11 +211,15 @@ static u32 hpt36x_find_mode(struct ata_p
static int hpt36x_cable_detect(struct ata_port *ap)
{
- u8 ata66;
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
+ u8 ata66;
+ /*
+ * Each channel of pata_hpt366 occupies separate PCI function
+ * as the primary channel and bit1 indicates the cable type.
+ */
pci_read_config_byte(pdev, 0x5A, &ata66);
- if (ata66 & (1 << ap->port_no))
+ if (ata66 & 2)
return ATA_CBL_PATA40;
return ATA_CBL_PATA80;
}
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA 2008-12-09 8:13 [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo @ 2008-12-09 8:14 ` Tejun Heo 2008-12-09 8:14 ` [PATCH #upstream-fixes 3/3] pata_hpt366: reimplement mode programming Tejun Heo 2008-12-09 10:28 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Alan Cox 2008-12-09 8:15 ` [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo ` (2 subsequent siblings) 3 siblings, 2 replies; 12+ messages in thread From: Tejun Heo @ 2008-12-09 8:14 UTC (permalink / raw) To: Jeff Garzik, IDE/ATA development list, Sergei Shtylyov, Alan Cox, Mark Lord IDE hpt366 driver doesn't allow DMA for ATAPI devices and MWDMA2 on ATAPI device locks up pata_hpt366. Follow the suit. Signed-off-by: Tejun Heo <tj@kernel.org> --- drivers/ata/pata_hpt366.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) Index: work/drivers/ata/pata_hpt366.c =================================================================== --- work.orig/drivers/ata/pata_hpt366.c +++ work/drivers/ata/pata_hpt366.c @@ -183,7 +183,9 @@ static unsigned long hpt366_filter(struc mask &= ~(0xF8 << ATA_SHIFT_UDMA); if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4)) mask &= ~(0xF0 << ATA_SHIFT_UDMA); - } + } else if (adev->class == ATA_DEV_ATAPI) + mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); + return ata_bmdma_mode_filter(adev, mask); } ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH #upstream-fixes 3/3] pata_hpt366: reimplement mode programming 2008-12-09 8:14 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Tejun Heo @ 2008-12-09 8:14 ` Tejun Heo 2008-12-10 12:01 ` Sergei Shtylyov 2008-12-09 10:28 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Alan Cox 1 sibling, 1 reply; 12+ messages in thread From: Tejun Heo @ 2008-12-09 8:14 UTC (permalink / raw) To: Jeff Garzik, IDE/ATA development list, Sergei Shtylyov, Alan Cox, Mark Lord Reimplement mode programming logic of pata_hpt366 such that it's identical to that of IDE hpt366 driver. The differences were... * pata_hpt366 used 0xCFFF8FFFF to mask pio modes and 0x3FFFFFFF dma modes. IDE hpt366 uses 0xC1F8FFFF for PIO, 0x303800FF for MWDMA and 0x30070000 for UDMA. * pata_hpt366 doesn't set 0x08000000 for PIO unless it's already set and always turns it on for MWDMA/UDMA. IDE hpt366 doesn't bother with the bit. It always uses what was there. * IDE hpt366 always clears 0xC0000000. pata_hpt366 doesn't. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> --- Unified pio/dma paths as per Sergei's suggestion. drivers/ata/pata_hpt366.c | 109 ++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 65 deletions(-) Index: work/drivers/ata/pata_hpt366.c =================================================================== --- work.orig/drivers/ata/pata_hpt366.c +++ work/drivers/ata/pata_hpt366.c @@ -30,7 +30,7 @@ #define DRV_VERSION "0.6.2" struct hpt_clock { - u8 xfer_speed; + u8 xfer_mode; u32 timing; }; @@ -189,28 +189,6 @@ static unsigned long hpt366_filter(struc return ata_bmdma_mode_filter(adev, mask); } -/** - * hpt36x_find_mode - reset the hpt36x bus - * @ap: ATA port - * @speed: transfer mode - * - * Return the 32bit register programming information for this channel - * that matches the speed provided. - */ - -static u32 hpt36x_find_mode(struct ata_port *ap, int speed) -{ - struct hpt_clock *clocks = ap->host->private_data; - - while(clocks->xfer_speed) { - if (clocks->xfer_speed == speed) - return clocks->timing; - clocks++; - } - BUG(); - return 0xffffffffU; /* silence compiler warning */ -} - static int hpt36x_cable_detect(struct ata_port *ap) { u8 ata66; @@ -222,25 +200,16 @@ static int hpt36x_cable_detect(struct at return ATA_CBL_PATA80; } -/** - * hpt366_set_piomode - PIO setup - * @ap: ATA interface - * @adev: device on the interface - * - * Perform PIO mode setup. - */ - -static void hpt366_set_piomode(struct ata_port *ap, struct ata_device *adev) +static void hpt366_set_mode(struct ata_port *ap, struct ata_device *adev, + u8 mode) { + struct hpt_clock *clocks = ap->host->private_data; struct pci_dev *pdev = to_pci_dev(ap->host->dev); - u32 addr1, addr2; - u32 reg; - u32 mode; + u32 addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no); + u32 addr2 = 0x51 + 4 * ap->port_no; + u32 mask, reg; u8 fast; - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no); - addr2 = 0x51 + 4 * ap->port_no; - /* Fast interrupt prediction disable, hold off interrupt disable */ pci_read_config_byte(pdev, addr2, &fast); if (fast & 0x80) { @@ -248,12 +217,43 @@ static void hpt366_set_piomode(struct at pci_write_config_byte(pdev, addr2, fast); } + /* determine timing mask and find matching clock entry */ + if (mode < XFER_MW_DMA_0) + mask = 0xc1f8ffff; + else if (mode < XFER_UDMA_0) + mask = 0x303800ff; + else + mask = 0x30070000; + + while (clocks->xfer_mode) { + if (clocks->xfer_mode == mode) + break; + clocks++; + } + if (!clocks->xfer_mode) + BUG(); + + /* + * Combine new mode bits with old config bits and disable + * on-chip PIO FIFO/buffer (and PIO MST mode as well) to avoid + * problems handling I/O errors later. + */ pci_read_config_dword(pdev, addr1, ®); - mode = hpt36x_find_mode(ap, adev->pio_mode); - mode &= ~0x8000000; /* No FIFO in PIO */ - mode &= ~0x30070000; /* Leave config bits alone */ - reg &= 0x30070000; /* Strip timing bits */ - pci_write_config_dword(pdev, addr1, reg | mode); + reg = ((reg & ~mask) | (clocks->timing & mask)) & ~0xc0000000; + pci_write_config_dword(pdev, addr1, reg); +} + +/** + * hpt366_set_piomode - PIO setup + * @ap: ATA interface + * @adev: device on the interface + * + * Perform PIO mode setup. + */ + +static void hpt366_set_piomode(struct ata_port *ap, struct ata_device *adev) +{ + hpt366_set_mode(ap, adev, adev->pio_mode); } /** @@ -267,28 +267,7 @@ static void hpt366_set_piomode(struct at static void hpt366_set_dmamode(struct ata_port *ap, struct ata_device *adev) { - struct pci_dev *pdev = to_pci_dev(ap->host->dev); - u32 addr1, addr2; - u32 reg; - u32 mode; - u8 fast; - - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no); - addr2 = 0x51 + 4 * ap->port_no; - - /* Fast interrupt prediction disable, hold off interrupt disable */ - pci_read_config_byte(pdev, addr2, &fast); - if (fast & 0x80) { - fast &= ~0x80; - pci_write_config_byte(pdev, addr2, fast); - } - - pci_read_config_dword(pdev, addr1, ®); - mode = hpt36x_find_mode(ap, adev->dma_mode); - mode |= 0x8000000; /* FIFO in MWDMA or UDMA */ - mode &= ~0xC0000000; /* Leave config bits alone */ - reg &= 0xC0000000; /* Strip timing bits */ - pci_write_config_dword(pdev, addr1, reg | mode); + hpt366_set_mode(ap, adev, adev->dma_mode); } static struct scsi_host_template hpt36x_sht = { ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 3/3] pata_hpt366: reimplement mode programming 2008-12-09 8:14 ` [PATCH #upstream-fixes 3/3] pata_hpt366: reimplement mode programming Tejun Heo @ 2008-12-10 12:01 ` Sergei Shtylyov 0 siblings, 0 replies; 12+ messages in thread From: Sergei Shtylyov @ 2008-12-10 12:01 UTC (permalink / raw) To: Tejun Heo Cc: Jeff Garzik, IDE/ATA development list, Alan Cox, Mark Lord, rob.opensuse.linux Hello. Tejun Heo wrote: > Reimplement mode programming logic of pata_hpt366 such that it's > identical to that of IDE hpt366 driver. The differences were... > > * pata_hpt366 used 0xCFFF8FFFF to mask pio modes and 0x3FFFFFFF dma > modes. IDE hpt366 uses 0xC1F8FFFF for PIO, 0x303800FF for MWDMA and > 0x30070000 for UDMA. > Yeah, so it changes only the applicable timing bits for each mode. > * pata_hpt366 doesn't set 0x08000000 for PIO unless it's already set > and always turns it on for MWDMA/UDMA. IDE hpt366 doesn't bother > with the bit. It always uses what was there. > This bit (unless you meant 0x80000000 :-) is just reserved, along with 2 neigboring lower order bits. > * IDE hpt366 always clears 0xC0000000. pata_hpt366 doesn't. > This was indeed a big mistake. The table values have PIO_MST bit set which enables bus mastering support for PIO modes... > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> > Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> > Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> > Index: work/drivers/ata/pata_hpt366.c > =================================================================== > --- work.orig/drivers/ata/pata_hpt366.c > +++ work/drivers/ata/pata_hpt366.c [...] > @@ -222,25 +200,16 @@ static int hpt36x_cable_detect(struct at > return ATA_CBL_PATA80; > } > > -/** > - * hpt366_set_piomode - PIO setup > - * @ap: ATA interface > - * @adev: device on the interface > - * > - * Perform PIO mode setup. > - */ > - > -static void hpt366_set_piomode(struct ata_port *ap, struct ata_device *adev) > +static void hpt366_set_mode(struct ata_port *ap, struct ata_device *adev, > + u8 mode) > { > + struct hpt_clock *clocks = ap->host->private_data; > struct pci_dev *pdev = to_pci_dev(ap->host->dev); > - u32 addr1, addr2; > - u32 reg; > - u32 mode; > + u32 addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no); > + u32 addr2 = 0x51 + 4 * ap->port_no; > Note that ap->port_no can be safely excluded form all the math due to single channel per funcion. MBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA 2008-12-09 8:14 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Tejun Heo 2008-12-09 8:14 ` [PATCH #upstream-fixes 3/3] pata_hpt366: reimplement mode programming Tejun Heo @ 2008-12-09 10:28 ` Alan Cox 1 sibling, 0 replies; 12+ messages in thread From: Alan Cox @ 2008-12-09 10:28 UTC (permalink / raw) To: Tejun Heo Cc: Jeff Garzik, IDE/ATA development list, Sergei Shtylyov, Mark Lord, rob.opensuse.linux On Tue, 09 Dec 2008 17:14:04 +0900 Tejun Heo <tj@kernel.org> wrote: > IDE hpt366 driver doesn't allow DMA for ATAPI devices and MWDMA2 on > ATAPI device locks up pata_hpt366. Follow the suit. > > Signed-off-by: Tejun Heo <tj@kernel.org> > --- > drivers/ata/pata_hpt366.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > Index: work/drivers/ata/pata_hpt366.c > =================================================================== > --- work.orig/drivers/ata/pata_hpt366.c > +++ work/drivers/ata/pata_hpt366.c > @@ -183,7 +183,9 @@ static unsigned long hpt366_filter(struc > mask &= ~(0xF8 << ATA_SHIFT_UDMA); > if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4)) > mask &= ~(0xF0 << ATA_SHIFT_UDMA); > - } > + } else if (adev->class == ATA_DEV_ATAPI) > + mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); Ack this one Alan ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-09 8:13 [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo 2008-12-09 8:14 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Tejun Heo @ 2008-12-09 8:15 ` Tejun Heo 2008-12-09 18:50 ` Sergei Shtylyov 2008-12-09 15:14 ` Sergei Shtylyov 2008-12-16 10:41 ` Jeff Garzik 3 siblings, 1 reply; 12+ messages in thread From: Tejun Heo @ 2008-12-09 8:15 UTC (permalink / raw) To: Jeff Garzik, IDE/ATA development list, Sergei Shtylyov, Alan Cox, Mark Lord Tejun Heo wrote: > pata_hpt366 is strange in that its two channels occupy two PCI > functions and both are primary channels and bit1 of PCI configuration > register 0x5A indicates cable for both channels. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> > Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> I tested this patch for all four combinations of 40/80c cables and it always worked correctly. Thanks. -- tejun ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-09 8:15 ` [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo @ 2008-12-09 18:50 ` Sergei Shtylyov 0 siblings, 0 replies; 12+ messages in thread From: Sergei Shtylyov @ 2008-12-09 18:50 UTC (permalink / raw) To: Tejun Heo Cc: Jeff Garzik, IDE/ATA development list, Alan Cox, Mark Lord, rob.opensuse.linux Hello. Tejun Heo wrote: >>pata_hpt366 is strange in that its two channels occupy two PCI >>functions and both are primary channels and bit1 of PCI configuration >>register 0x5A indicates cable for both channels. >>Signed-off-by: Tejun Heo <tj@kernel.org> >>Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> >>Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> > I tested this patch for all four combinations of 40/80c cables and it > always worked correctly. So that means that the datasheet is wrong. May well be... > Thanks. MBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-09 8:13 [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo 2008-12-09 8:14 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Tejun Heo 2008-12-09 8:15 ` [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo @ 2008-12-09 15:14 ` Sergei Shtylyov 2008-12-09 18:56 ` Sergei Shtylyov 2008-12-16 10:41 ` Jeff Garzik 3 siblings, 1 reply; 12+ messages in thread From: Sergei Shtylyov @ 2008-12-09 15:14 UTC (permalink / raw) To: Tejun Heo Cc: Jeff Garzik, IDE/ATA development list, Alan Cox, Mark Lord, rob.opensuse.linux Tejun Heo wrote: > pata_hpt366 is strange in that its two channels occupy two PCI > functions and both are primary channels and bit1 of PCI configuration > register 0x5A indicates cable for both channels. > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> > Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Alas, NAK. > Index: work/drivers/ata/pata_hpt366.c > =================================================================== > --- work.orig/drivers/ata/pata_hpt366.c > +++ work/drivers/ata/pata_hpt366.c > @@ -211,11 +211,15 @@ static u32 hpt36x_find_mode(struct ata_p > > static int hpt36x_cable_detect(struct ata_port *ap) > { > - u8 ata66; > struct pci_dev *pdev = to_pci_dev(ap->host->dev); > + u8 ata66; > > + /* > + * Each channel of pata_hpt366 occupies separate PCI function > + * as the primary channel and bit1 indicates the cable type. > + */ No, it doesn't for the secondary channel (which is fucntion 1). > pci_read_config_byte(pdev, 0x5A, &ata66); > - if (ata66 & (1 << ap->port_no)) > + if (ata66 & 2) You need to use (pdev->devfn & 1) as a right shift count instead. Not very sophisticated indeed. :-) MBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-09 15:14 ` Sergei Shtylyov @ 2008-12-09 18:56 ` Sergei Shtylyov 2008-12-10 1:58 ` Tejun Heo 0 siblings, 1 reply; 12+ messages in thread From: Sergei Shtylyov @ 2008-12-09 18:56 UTC (permalink / raw) To: Sergei Shtylyov Cc: Tejun Heo, Jeff Garzik, IDE/ATA development list, Alan Cox, Mark Lord, rob.opensuse.linux Hello, I wrote: >> pata_hpt366 is strange in that its two channels occupy two PCI >> functions and both are primary channels and bit1 of PCI configuration >> register 0x5A indicates cable for both channels. >> Signed-off-by: Tejun Heo <tj@kernel.org> >> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> >> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> > Alas, NAK. If you say that it does work, then the datasheet appears to be wrong, so have my: Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> >> Index: work/drivers/ata/pata_hpt366.c >> =================================================================== >> --- work.orig/drivers/ata/pata_hpt366.c >> +++ work/drivers/ata/pata_hpt366.c >> @@ -211,11 +211,15 @@ static u32 hpt36x_find_mode(struct ata_p >> >> static int hpt36x_cable_detect(struct ata_port *ap) >> { >> - u8 ata66; >> struct pci_dev *pdev = to_pci_dev(ap->host->dev); >> + u8 ata66; >> >> + /* >> + * Each channel of pata_hpt366 occupies separate PCI function >> + * as the primary channel and bit1 indicates the cable type. >> + */ > No, it doesn't for the secondary channel (which is fucntion 1). >> pci_read_config_byte(pdev, 0x5A, &ata66); >> - if (ata66 & (1 << ap->port_no)) >> + if (ata66 & 2) > You need to use (pdev->devfn & 1) as a right shift count instead. Not > very sophisticated indeed. :-) Well, then I won't have to fix hpt366.c if that's not needed. :-) MBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-09 18:56 ` Sergei Shtylyov @ 2008-12-10 1:58 ` Tejun Heo 0 siblings, 0 replies; 12+ messages in thread From: Tejun Heo @ 2008-12-10 1:58 UTC (permalink / raw) To: Sergei Shtylyov Cc: Jeff Garzik, IDE/ATA development list, Alan Cox, Mark Lord, rob.opensuse.linux Hello, Sergei. Sergei Shtylyov wrote: >> Alas, NAK. > > If you say that it does work, then the datasheet appears to be wrong, > so have my: > > Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Yeah, AFAICS, it does work. The ata66 register is always 0x3 with 40c cable and 0x1 with 80c regardless of the PCI function. Thanks. -- tejun ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-09 8:13 [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo ` (2 preceding siblings ...) 2008-12-09 15:14 ` Sergei Shtylyov @ 2008-12-16 10:41 ` Jeff Garzik 2008-12-16 11:15 ` Tejun Heo 3 siblings, 1 reply; 12+ messages in thread From: Jeff Garzik @ 2008-12-16 10:41 UTC (permalink / raw) To: Tejun Heo Cc: IDE/ATA development list, Sergei Shtylyov, Alan Cox, Mark Lord, rob.opensuse.linux Tejun Heo wrote: > pata_hpt366 is strange in that its two channels occupy two PCI > functions and both are primary channels and bit1 of PCI configuration > register 0x5A indicates cable for both channels. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> > Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> > --- > drivers/ata/pata_hpt366.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) applied 1-2 of 3 (the last looked risky for -rc?) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, 2008-12-16 10:41 ` Jeff Garzik @ 2008-12-16 11:15 ` Tejun Heo 0 siblings, 0 replies; 12+ messages in thread From: Tejun Heo @ 2008-12-16 11:15 UTC (permalink / raw) To: Jeff Garzik Cc: IDE/ATA development list, Sergei Shtylyov, Alan Cox, Mark Lord, rob.opensuse.linux Jeff Garzik wrote: > Tejun Heo wrote: >> pata_hpt366 is strange in that its two channels occupy two PCI >> functions and both are primary channels and bit1 of PCI configuration >> register 0x5A indicates cable for both channels. >> >> Signed-off-by: Tejun Heo <tj@kernel.org> >> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> >> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> >> --- >> drivers/ata/pata_hpt366.c | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) > > applied 1-2 of 3 (the last looked risky for -rc?) I think it would be better to postpone it till the -rc1 window opens. As it has been broken for so long, I don't think many people will complain much about one more broken release. :-) -- tejun ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2008-12-16 11:15 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-12-09 8:13 [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo 2008-12-09 8:14 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Tejun Heo 2008-12-09 8:14 ` [PATCH #upstream-fixes 3/3] pata_hpt366: reimplement mode programming Tejun Heo 2008-12-10 12:01 ` Sergei Shtylyov 2008-12-09 10:28 ` [PATCH #upstream-fixes 2/3] pata_hpt366: no ATAPI DMA Alan Cox 2008-12-09 8:15 ` [PATCH #upstream-fixes 1/3] pata_hpt366: fix cable detection, Tejun Heo 2008-12-09 18:50 ` Sergei Shtylyov 2008-12-09 15:14 ` Sergei Shtylyov 2008-12-09 18:56 ` Sergei Shtylyov 2008-12-10 1:58 ` Tejun Heo 2008-12-16 10:41 ` Jeff Garzik 2008-12-16 11:15 ` Tejun Heo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).