Commit 9d2c7c75f889a3eefad016c71f651b0796e0a6e9

Authored by Alan Cox
Committed by Jeff Garzik
1 parent 432729f0b0

sata_sil: First step to removing ->post_set_mode

Now that we have ata_do_set_mode() available for drivers to use we don't
actually need ->post_set_mode() as the driver can wrap set_mode nicely
and do stuff before or after (eg PCMCIA needs before), so we can kill off
a method in all the structs

While I was at it I added kernel-doc to the function involved.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

Showing 1 changed file with 19 additions and 4 deletions Side-by-side Diff

drivers/ata/sata_sil.c
... ... @@ -46,7 +46,7 @@
46 46 #include <linux/libata.h>
47 47  
48 48 #define DRV_NAME "sata_sil"
49   -#define DRV_VERSION "2.1"
  49 +#define DRV_VERSION "2.2"
50 50  
51 51 enum {
52 52 SIL_MMIO_BAR = 5,
... ... @@ -117,7 +117,7 @@
117 117 static void sil_dev_config(struct ata_device *dev);
118 118 static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg);
119 119 static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
120   -static void sil_post_set_mode (struct ata_port *ap);
  120 +static int sil_set_mode (struct ata_port *ap, struct ata_device **r_failed);
121 121 static irqreturn_t sil_interrupt(int irq, void *dev_instance);
122 122 static void sil_freeze(struct ata_port *ap);
123 123 static void sil_thaw(struct ata_port *ap);
... ... @@ -197,7 +197,7 @@
197 197 .check_status = ata_check_status,
198 198 .exec_command = ata_exec_command,
199 199 .dev_select = ata_std_dev_select,
200   - .post_set_mode = sil_post_set_mode,
  200 + .set_mode = sil_set_mode,
201 201 .bmdma_setup = ata_bmdma_setup,
202 202 .bmdma_start = ata_bmdma_start,
203 203 .bmdma_stop = ata_bmdma_stop,
... ... @@ -297,7 +297,16 @@
297 297 return cache_line;
298 298 }
299 299  
300   -static void sil_post_set_mode (struct ata_port *ap)
  300 +/**
  301 + * sil_set_mode - wrap set_mode functions
  302 + * @ap: port to set up
  303 + * @r_failed: returned device when we fail
  304 + *
  305 + * Wrap the libata method for device setup as after the setup we need
  306 + * to inspect the results and do some configuration work
  307 + */
  308 +
  309 +static int sil_set_mode (struct ata_port *ap, struct ata_device **r_failed)
301 310 {
302 311 struct ata_host *host = ap->host;
303 312 struct ata_device *dev;
... ... @@ -305,6 +314,11 @@
305 314 void __iomem *addr = mmio_base + sil_port[ap->port_no].xfer_mode;
306 315 u32 tmp, dev_mode[2];
307 316 unsigned int i;
  317 + int rc;
  318 +
  319 + rc = ata_do_set_mode(ap, r_failed);
  320 + if (rc)
  321 + return rc;
308 322  
309 323 for (i = 0; i < 2; i++) {
310 324 dev = &ap->device[i];
... ... @@ -323,6 +337,7 @@
323 337 tmp |= (dev_mode[1] << 4);
324 338 writel(tmp, addr);
325 339 readl(addr); /* flush */
  340 + return 0;
326 341 }
327 342  
328 343 static inline void __iomem *sil_scr_addr(struct ata_port *ap, unsigned int sc_reg)