linux-next: manual merge of the akpm tree with the arm-soc tree

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

 



Hi Andrew,

Today's linux-next merge of the akpm tree got a conflict in
drivers/ata/sata_mv.c between commit eee989902aab ("ARM: Orion: SATA: Add
per channel clk/clkdev support") from the arm-soc tree and commit
"ata/sata_mv: remove conditional compilation of clk code" from the akpm
tree.

I fixed it up (see below) and can carry the fix as necessary.

[I used the arm-soc version with all the conditionals on CONFIG_HAVE_CLK
removed.]

-- 
Cheers,
Stephen Rothwell                    sfr@xxxxxxxxxxxxxxxx

diff --cc drivers/ata/sata_mv.c
index 24712ad,37503b8..0000000
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@@ -551,10 -551,7 +551,8 @@@ struct mv_host_priv 
  	u32			irq_mask_offset;
  	u32			unmask_all_irqs;
  
- #if defined(CONFIG_HAVE_CLK)
  	struct clk		*clk;
 +	struct clk              **port_clks;
- #endif
  	/*
  	 * These consistent DMA memory pools give us guaranteed
  	 * alignment for hardware-accessed data structures,
@@@ -4028,9 -4025,6 +4026,7 @@@ static int mv_platform_probe(struct pla
  	struct resource *res;
  	int n_ports = 0;
  	int rc;
- #if defined(CONFIG_HAVE_CLK)
 +	int port;
- #endif
  
  	ata_print_version_once(&pdev->dev, DRV_VERSION);
  
@@@ -4058,13 -4052,6 +4054,11 @@@
  
  	if (!host || !hpriv)
  		return -ENOMEM;
- #if defined(CONFIG_HAVE_CLK)
 +	hpriv->port_clks = devm_kzalloc(&pdev->dev,
 +					sizeof(struct clk *) * n_ports,
 +					GFP_KERNEL);
 +	if (!hpriv->port_clks)
 +		return -ENOMEM;
- #endif
  	host->private_data = hpriv;
  	hpriv->n_ports = n_ports;
  	hpriv->board_idx = chip_soc;
@@@ -4074,21 -4061,11 +4068,19 @@@
  				   resource_size(res));
  	hpriv->base -= SATAHC0_REG_BASE;
  
- #if defined(CONFIG_HAVE_CLK)
  	hpriv->clk = clk_get(&pdev->dev, NULL);
  	if (IS_ERR(hpriv->clk))
 -		dev_notice(&pdev->dev, "cannot get clkdev\n");
 +		dev_notice(&pdev->dev, "cannot get optional clkdev\n");
  	else
 -		clk_enable(hpriv->clk);
 +		clk_prepare_enable(hpriv->clk);
 +
 +	for (port = 0; port < n_ports; port++) {
 +		char port_number[16];
 +		sprintf(port_number, "%d", port);
 +		hpriv->port_clks[port] = clk_get(&pdev->dev, port_number);
 +		if (!IS_ERR(hpriv->port_clks[port]))
 +			clk_prepare_enable(hpriv->port_clks[port]);
 +	}
- #endif
  
  	/*
  	 * (Re-)program MBUS remapping windows if we are asked to.
@@@ -4115,18 -4092,10 +4107,16 @@@
  		return 0;
  
  err:
- #if defined(CONFIG_HAVE_CLK)
  	if (!IS_ERR(hpriv->clk)) {
 -		clk_disable(hpriv->clk);
 +		clk_disable_unprepare(hpriv->clk);
  		clk_put(hpriv->clk);
  	}
 +	for (port = 0; port < n_ports; port++) {
 +		if (!IS_ERR(hpriv->port_clks[port])) {
 +			clk_disable_unprepare(hpriv->port_clks[port]);
 +			clk_put(hpriv->port_clks[port]);
 +		}
 +	}
- #endif
  
  	return rc;
  }
@@@ -4142,24 -4111,13 +4132,20 @@@
  static int __devexit mv_platform_remove(struct platform_device *pdev)
  {
  	struct ata_host *host = platform_get_drvdata(pdev);
- #if defined(CONFIG_HAVE_CLK)
  	struct mv_host_priv *hpriv = host->private_data;
 +	int port;
- #endif
  	ata_host_detach(host);
  
- #if defined(CONFIG_HAVE_CLK)
  	if (!IS_ERR(hpriv->clk)) {
 -		clk_disable(hpriv->clk);
 +		clk_disable_unprepare(hpriv->clk);
  		clk_put(hpriv->clk);
  	}
 +	for (port = 0; port < host->n_ports; port++) {
 +		if (!IS_ERR(hpriv->port_clks[port])) {
 +			clk_disable_unprepare(hpriv->port_clks[port]);
 +			clk_put(hpriv->port_clks[port]);
 +		}
 +	}
- #endif
  	return 0;
  }
  

Attachment: pgpa6gVxBqgjo.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux