[PATCHSET #upstream] libata: modularize SFF support, take #1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, all.

This humongous patchset modularizes SFF support and cleans up whole
lot of other stuff in the course.  At the end, core layer is leaner
and simpler, SFF support is well modularized and made optional and
LLDs don't have to worry about how it's gonna meet the pseudo SFFism
libata used to require.

This patchset is comprised of the following 27 patches.

  0001-libata-drop-ata_dev_select-from-ata_dev_read_id.patch
  0002-libata-reorder-functions-in-libata-sff.c.patch
  0003-libata-reorganize-SFF-related-stuff.patch
  0004-libata-move-ata_pci_default_filter-out-of-CONFIG_.patch
  0005-libata-kill-ata_chk_status-call-from-ata_dev_conf.patch
  0006-libata-kill-ata_chk_status.patch

  0007-libata-rename-SFF-functions.patch
  0008-libata-rename-SFF-port-ops.patch

  0009-libata-clean-up-port_ops-sff_irq_clear.patch
  0010-libata-separate-out-ata_std_prereset-from-ata_sff.patch
  0011-libata-separate-out-ata_std_postreset-from-ata_sf.patch

  0012-libata-restructure-SFF-post-reset-readiness-waits.patch
  0013-libata-separate-out-ata_wait_ready-and-implement.patch
  0014-ahci-use-ata_wait_after_reset-instead-of-ata_sff_.patch
  0015-libata-move-generic-hardreset-code-from-sata_sff_ha.patch
  0016-libata-implement-and-use-sata_std_hardreset.patch
  0017-libata-clear-SError-after-link-resume.patch
  0018-libata-move-PMP-SCR-access-failure-during-reset-to.patch
  0019-libata-unify-mechanism-to-request-follow-up-SRST.patch

  0020-libata-add-qc_fill_rtf-port-operation.patch
  0021-libata-drop-finish_qc-from-ata_qc_complete_multipl.patch
  0022-libata-replace-tf_read-with-qc_fill_rtf-for-non-SFF.patch
  0023-libata-remove-check_status-from-non-SFF-drivers.patch

  0024-libata-kill-ata_noop_dev_select.patch
  0025-libata-clean-up-dummy-port_ops.patch
  0026-libata-don-t-use-ap-ioaddr-in-non-SFF-drivers.patch

  0027-libata-make-SFF-support-optional.patch

0001-0006 prepare for the soon-to-follow changes by dropping
unncessary stuff and reorganizing code.

0007-0008 mass renames SFF related stuff.  Over the time, the naming
has become quite chaotic.  Core and SFF stuff are mixed and various
prefixes are in use pseudo-randomly.  These two patches make the names
consistent.  By doing so make it clear which belongs where - ie. it
sets the requirements for the soon-to-follow modularization.  Stuff
named with SFF and BMDMA prefixes should only live in libata-sff.c and
can't be directly referenced from core layer.

  0009-0011 separate out SFF specific parts regarding ->sff_irq_clear,
  prereset and postreset.

  0012-0019 refactor post-reset wait code, separate out SFF specific
  parts regarding resets and clean up resulting code.

  0020-0023 separate out TF access code out of core layer.

  0024-0026 separate out what's left of SFF from core layer.

  0027 makes SFF support optional.

The patchset has been tested on the following LLDs.

  ahci, ata_piix, sata_sil, sata_sil24, pdc_adma, pata_hpt366,
  sata_promise, pata_jmicron

sata_fsl, ipr and libsas received good amount of modification but I
couldn't test them.  Especially, I couldn't even compile test
sata_fsl.  If you have access to the above drivers, please verify they
are okay.

On x86_64 w/o any debugging turned on, on-disk size of libata.ko is
reduced from 226k to 193k if SFF is turned off.  The loaded size is
changed from 157k to 133k.

This patchset is on top of

  upstream-fixes (4cde32fc4b32e96a99063af3183acdfd54c563f0)
+ prefer-hardreset (990d6db0af21830681157317ab58c10f80277cb8)
+ cleanup-sht-ops (ed75ba53c883bc7a63fa1b60c63f33fcf395e751)
+ [1] cleanup-pdc_adma

This patchset is available as git tree.

  http://git.kernel.org/?p=linux/kernel/git/tj/libata-dev.git;a=shortlog;h=modularize-SFF
  git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata-dev.git modularize-SFF

Thanks.

--
tejun

[1] http://thread.gmane.org/gmane.linux.ide/29978
--
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux