<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/ide/pci/sgiioc4.c, branch v3.14.7</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.14.7</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.14.7'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2008-10-21T18:57:23+00:00</updated>
<entry>
<title>ide: remove useless subdirs from drivers/ide/</title>
<updated>2008-10-21T18:57:23+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-21T18:57:23+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=2bfba3c444fe8b2ab1c38112a89d8f03b61136ca'/>
<id>urn:sha1:2bfba3c444fe8b2ab1c38112a89d8f03b61136ca</id>
<content type='text'>
Suggested-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>sgiioc4: kill duplicate ioremap()</title>
<updated>2008-10-17T16:09:17+00:00</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2008-10-17T16:09:17+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=107111d450541df8c2a8d3af1d538cc7cd85e81b'/>
<id>urn:sha1:107111d450541df8c2a8d3af1d538cc7cd85e81b</id>
<content type='text'>
By the time ide_dma_sgiioc4() gets called, sgiioc4_ide_setup_pci_device() will
have called ioremap() on the whole BAR0 region, so calling ioremap() on the DMA
registers means wasting a page. Replace this call by a mere address calculation,
based on the fact that IRQ registers (pointed to by 'hwif-&gt;io_ports.irq_addr')
are situated at offset 0 from BAR0.

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>sgiioc4: kill useless address checks</title>
<updated>2008-10-17T16:09:16+00:00</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2008-10-17T16:09:16+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=8108b882329db7fbf9fbca6559aa36e6174dc91f'/>
<id>urn:sha1:8108b882329db7fbf9fbca6559aa36e6174dc91f</id>
<content type='text'>
The driver performs a number of checks on the virtual/physical addresses which
would always evaluate as true (except ide_dma_sgiioc4() -- always false):

- for sgiioc4_init_hwif_ports(), its caller, sgiioc4_ide_setup_pci_device(),
  guarantees that 'ctrl_port' and 'irq_port' parameters are never 0;

- in sgiioc4_read_status(), we always read the IDE status register, so there's
  no need to check the register's address (must be a leftover from the times
  when this function implemented the INB() method);

- in ide_dma_sgiioc4(), 'dma_base' can never be 0 as IOC4_DMA_OFFSET is not 0.

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>sgiioc4: remove maskproc() method</title>
<updated>2008-10-17T16:09:16+00:00</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2008-10-17T16:09:16+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ea656980f40d599400d2306b23f2fbc707ae7313'/>
<id>urn:sha1:ea656980f40d599400d2306b23f2fbc707ae7313</id>
<content type='text'>
Since the maskproc() method calls either mirror the interrupt en/disable via
the nIEN bit of the device control register done by the IDE core before issuing
a command or unmask the interrupt after a command executed in polled mode (when
interrupt is already not expected), it is pointless to implement this method
by manipulating the nIEN bit...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: switch to DMA-mapping API part #2</title>
<updated>2008-10-13T19:39:47+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-13T19:39:47+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=2bbd57cad3d72334c9fcc4e229a5a5b04dc6aebc'/>
<id>urn:sha1:2bbd57cad3d72334c9fcc4e229a5a5b04dc6aebc</id>
<content type='text'>
Follow-up to commit 5c05ff68b9a9b40a9be949497e0aa980185565cf
("ide: switch to DMA-mapping API"):

* pci_{alloc,free}_consistent() -&gt; dma_{alloc,free}_coherent()
  in ide_{allocate,release}_dma_engine().

* Add -&gt;prd_max_nents and -&gt;prd_ent_size fields to ide_hwif_t
  (+ set default values in ide_allocate_dma_engine()).

* Make ide_{allocate,release}_dma_engine() available also
  for CONFIG_BLK_DEV_IDEDMA_SFF=n.  Then convert au1xxx-ide.c,
  scc_pata.c and sgiioc4.c to use them.

* Add missing -&gt;init_dma method to scc_pata.

This patch also fixes:
- -&gt;dmatable_cpu leak for au1xxx-ide
- too early realease of -&gt;dmatable_cpu for scc_pata
- wrong amount of -&gt;dmatable_cpu memory being freed for sgiioc4

While at it:
- remove superfluous -&gt;dma_base check from ide_unregister()
- return -ENOMEM on error in ide_release_dma_engine()
- beautify error message in ide_release_dma_engine()

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>sgiioc4: fix messages</title>
<updated>2008-10-13T19:39:30+00:00</updated>
<author>
<name>Sergei Shtylylov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2008-10-13T19:39:30+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9b5a18e19f8c610c270ee9a0ba03177d737f6aa5'/>
<id>urn:sha1:9b5a18e19f8c610c270ee9a0ba03177d737f6aa5</id>
<content type='text'>
Fix several issues with the log messages printed by ide_dma_sgiioc4() and
sgiioc4_ide_setup_pci_device():

- IOC4 registers are memory-mapped but the "BM-DMA at" format corresponds to
  I/O  mapped registers;

- "%p" format specifiers and type casts used to print non-pointer values;

- using KERN_INFO log level for the error message;

- 'hwif-&gt;name' printed as drive's name.

While at it, also:

- return more fitting -EBUSY if request_mem_region() fails;

- make the error message style consistent;

- fix indentation, put the printk() facility and message on the same line;

- use comparisions with NULL instead of ! operator..

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>sgiioc4: sgiioc4_read_status drive busy check fix</title>
<updated>2008-10-13T19:39:29+00:00</updated>
<author>
<name>Sergei Shtylylov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2008-10-13T19:39:29+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=aa95f0e76571dc1b067d2839c11f2e5589d063d7'/>
<id>urn:sha1:aa95f0e76571dc1b067d2839c11f2e5589d063d7</id>
<content type='text'>
Fix the drive non-busy criterion used by sgiioc4_read_status(): neither of the
bits it expects to be set guarantees that the drive is not busy (and might be
interrupting), only the BSY bit itself being zero gurantees that.
While at it, use ATA_BUSY instead of hardcoded value everywhere...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: include &lt;linux/hdreg.h&gt; only when needed</title>
<updated>2008-10-10T20:39:27+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-10T20:39:27+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=3ceca727fe3a38dd8d7a3adf938fefda83eee8af'/>
<id>urn:sha1:3ceca727fe3a38dd8d7a3adf938fefda83eee8af</id>
<content type='text'>
* Include &lt;linux/ata.h&gt; directly in &lt;linux/ide.h&gt;
  instead of through &lt;linux/hdreg.h&gt;.

* Include &lt;linux/hdreg.h&gt; only when needed.

Cc: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>sgiioc4: fixup message on resource allocation failure</title>
<updated>2008-08-18T19:40:04+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-08-18T19:40:04+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=1b427a33b06ae76c64c1ad9af899a45b682ba6c6'/>
<id>urn:sha1:1b427a33b06ae76c64c1ad9af899a45b682ba6c6</id>
<content type='text'>
There can be more than one sgiioc4 card in the system so print
also PCI device name on resource allocation failure (so we know
which one is the problematic one).

Reported-by: Jeremy Higdon &lt;jeremy@sgi.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: add ide_host_free() helper (take 2)</title>
<updated>2008-07-23T17:55:59+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-07-23T17:55:59+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=8a69580e1ea9516caada5eed202afd39546e9809'/>
<id>urn:sha1:8a69580e1ea9516caada5eed202afd39546e9809</id>
<content type='text'>
* Add ide_host_free() helper and convert ide_host_remove() to use it.

* Fix handling of ide_host_register() failure in ide_host_add(),
  icside.c, ide-generic.c, falconide.c and sgiioc4.c.

While at it:

* Fix handling of ide_host_alloc_all() failure in ide-generic.c.

* Fix handling of ide_host_alloc() failure in falconide.c
  (also return the correct error value if no device is found).

v2:
* falconide build fix. (From Stephen Rothwell)

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
</feed>
