diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-06 09:30:50 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-06 09:30:50 +0200 |
commit | c19efab88606a974c050aa6caa9ec1803f88bdc9 (patch) | |
tree | 552a1520368f3d1500f7ad7d519e8e0d7758f367 /arch | |
parent | da1ada40d27c734ec51f1da924b2ecbbd28115c1 (diff) | |
parent | 2f24a5c33c9b9034e412b52ec88c1019307c14f0 (diff) | |
download | barebox-c19efab88606a974c050aa6caa9ec1803f88bdc9.tar.gz barebox-c19efab88606a974c050aa6caa9ec1803f88bdc9.tar.xz |
Merge branch 'for-next/param'
Conflicts:
drivers/mci/mci-core.c
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boards/at91sam9m10ihd/hw_version.c | 6 | ||||
-rw-r--r-- | arch/arm/boards/at91sam9x5ek/hw_version.c | 6 | ||||
-rw-r--r-- | arch/arm/boards/sama5d3xek/hw_version.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-imx/iim.c | 65 | ||||
-rw-r--r-- | arch/arm/mach-mxs/ocotp.c | 34 |
5 files changed, 24 insertions, 93 deletions
diff --git a/arch/arm/boards/at91sam9m10ihd/hw_version.c b/arch/arm/boards/at91sam9m10ihd/hw_version.c index be910dfbc0..8e729013c7 100644 --- a/arch/arm/boards/at91sam9m10ihd/hw_version.c +++ b/arch/arm/boards/at91sam9m10ihd/hw_version.c @@ -194,10 +194,8 @@ static void at91sam9m10ihd_devices_detect_one(const char *name) dev_add_param_fixed(dev, "board", info.board_name); sprintf(str, "%.2s", info.vendor_country); dev_add_param_fixed(dev, "country", str); - sprintf(str, "%d", info.year); - dev_add_param_fixed(dev, "year", str); - sprintf(str, "%d", info.week); - dev_add_param_fixed(dev, "week", str); + dev_add_param_int_ro(dev, "year", info.year, "%d"); + dev_add_param_int_ro(dev, "week", info.week, "%d"); sprintf(str, "%c", info.revision_code); dev_add_param_fixed(dev, "revision_code", str); sprintf(str, "%c", info.revision_id); diff --git a/arch/arm/boards/at91sam9x5ek/hw_version.c b/arch/arm/boards/at91sam9x5ek/hw_version.c index 76d4e1b8fa..91af331194 100644 --- a/arch/arm/boards/at91sam9x5ek/hw_version.c +++ b/arch/arm/boards/at91sam9x5ek/hw_version.c @@ -219,10 +219,8 @@ static void at91sam9x5ek_devices_detect_one(const char *name) dev_add_param_fixed(dev, "board", info.board_name); sprintf(str, "%.2s", info.vendor_country); dev_add_param_fixed(dev, "country", str); - sprintf(str, "%d", info.year); - dev_add_param_fixed(dev, "year", str); - sprintf(str, "%d", info.week); - dev_add_param_fixed(dev, "week", str); + dev_add_param_int_ro(dev, "year", info.year, "%d"); + dev_add_param_int_ro(dev, "week", info.week, "%d"); sprintf(str, "%c", info.revision_code); dev_add_param_fixed(dev, "revision_code", str); sprintf(str, "%c", info.revision_id); diff --git a/arch/arm/boards/sama5d3xek/hw_version.c b/arch/arm/boards/sama5d3xek/hw_version.c index 79fd63a349..450eb9f8a1 100644 --- a/arch/arm/boards/sama5d3xek/hw_version.c +++ b/arch/arm/boards/sama5d3xek/hw_version.c @@ -226,10 +226,8 @@ static void at91sama5d3xek_devices_detect_one(const char *name) dev_add_param_fixed(dev, "board", bname); sprintf(str, "%.2s", info.vendor_country); dev_add_param_fixed(dev, "country", str); - sprintf(str, "%d", info.year); - dev_add_param_fixed(dev, "year", str); - sprintf(str, "%d", info.week); - dev_add_param_fixed(dev, "week", str); + dev_add_param_int_ro(dev, "year", info.year, "%d"); + dev_add_param_int_ro(dev, "week", info.week, "%d"); sprintf(str, "%c", info.revision_board); dev_add_param_fixed(dev, "revision_board", str); sprintf(str, "%c", info.revision_schema); diff --git a/arch/arm/mach-imx/iim.c b/arch/arm/mach-imx/iim.c index 69ddc4d6a8..ce2bbafc90 100644 --- a/arch/arm/mach-imx/iim.c +++ b/arch/arm/mach-imx/iim.c @@ -33,6 +33,9 @@ static unsigned long mac_addr_base; +static int iim_write_enable; +static int iim_sense_enable; + struct iim_priv { struct cdev cdev; void __iomem *base; @@ -88,14 +91,9 @@ static ssize_t imx_iim_cdev_read(struct cdev *cdev, void *buf, size_t count, { ulong size, i; struct iim_priv *priv = cdev->priv; - const char *sense_param; - unsigned long explicit_sense = 0; - - if ((sense_param = dev_get_param(cdev->dev, "explicit_sense_enable"))) - explicit_sense = simple_strtoul(sense_param, NULL, 0); size = min((loff_t)count, priv->banksize - offset); - if (explicit_sense) { + if (iim_sense_enable) { for (i = 0; i < size; i++) { int row_val; @@ -113,7 +111,6 @@ static ssize_t imx_iim_cdev_read(struct cdev *cdev, void *buf, size_t count, return size; } -#ifdef CONFIG_IMX_IIM_FUSE_BLOW static int do_fuse_blow(void __iomem *reg_base, unsigned int bank, unsigned int row, u8 value) { @@ -173,22 +170,16 @@ out: writeb(0, reg_base + IIM_PREG_P); return ret; } -#endif /* CONFIG_IMX_IIM_FUSE_BLOW */ static ssize_t imx_iim_cdev_write(struct cdev *cdev, const void *buf, size_t count, loff_t offset, ulong flags) { ulong size, i; struct iim_priv *priv = cdev->priv; - const char *write_param; - unsigned int blow_enable = 0; - - if ((write_param = dev_get_param(cdev->dev, "permanent_write_enable"))) - blow_enable = simple_strtoul(write_param, NULL, 0); size = min((loff_t)count, priv->banksize - offset); -#ifdef CONFIG_IMX_IIM_FUSE_BLOW - if (blow_enable) { + + if (IS_ENABLED(CONFIG_IMX_IIM_FUSE_BLOW) && iim_write_enable) { for (i = 0; i < size; i++) { int ret; @@ -197,9 +188,7 @@ static ssize_t imx_iim_cdev_write(struct cdev *cdev, const void *buf, size_t cou if (ret < 0) return ret; } - } else -#endif /* CONFIG_IMX_IIM_FUSE_BLOW */ - { + } else { for (i = 0; i < size; i++) ((u8 *)priv->bankbase)[(offset+i)*4] = ((u8 *)buf)[i]; } @@ -213,21 +202,6 @@ static struct file_operations imx_iim_ops = { .lseek = dev_lseek_default, }; -static int imx_iim_blow_enable_set(struct device_d *dev, struct param_d *param, - const char *val) -{ - unsigned long blow_enable; - - if (val == NULL) - return -EINVAL; - - blow_enable = simple_strtoul(val, NULL, 0); - if (blow_enable > 1) - return -EINVAL; - - return dev_param_set_generic(dev, param, blow_enable ? "1" : "0"); -} - static int imx_iim_add_bank(struct device_d *dev, void __iomem *base, int num) { struct iim_priv *priv; @@ -254,7 +228,6 @@ static int imx_iim_add_bank(struct device_d *dev, void __iomem *base, int num) static int imx_iim_probe(struct device_d *dev) { struct imx_iim_platform_data *pdata = dev->platform_data; - int err; int i; void __iomem *base; @@ -267,23 +240,13 @@ static int imx_iim_probe(struct device_d *dev) imx_iim_add_bank(dev, base, i); } -#ifdef CONFIG_IMX_IIM_FUSE_BLOW - err = dev_add_param(dev, "permanent_write_enable", - imx_iim_blow_enable_set, NULL, 0); - if (err < 0) - return err; - err = dev_set_param(dev, "permanent_write_enable", "0"); - if (err < 0) - return err; -#endif /* CONFIG_IMX_IIM_FUSE_BLOW */ - - err = dev_add_param(dev, "explicit_sense_enable", - imx_iim_blow_enable_set, NULL, 0); - if (err < 0) - return err; - err = dev_set_param(dev, "explicit_sense_enable", "1"); - if (err < 0) - return err; + + if (IS_ENABLED(CONFIG_IMX_IIM_FUSE_BLOW)) + dev_add_param_bool(dev, "permanent_write_enable", + NULL, NULL, &iim_write_enable, NULL); + + dev_add_param_bool(dev, "explicit_sense_enable", + NULL, NULL, &iim_sense_enable, NULL); return 0; } diff --git a/arch/arm/mach-mxs/ocotp.c b/arch/arm/mach-mxs/ocotp.c index 84f38b580f..dd984467ef 100644 --- a/arch/arm/mach-mxs/ocotp.c +++ b/arch/arm/mach-mxs/ocotp.c @@ -44,6 +44,7 @@ struct ocotp_priv { struct cdev cdev; void __iomem *base; + unsigned int write_enable; }; static int mxs_ocotp_wait_busy(struct ocotp_priv *priv) @@ -103,18 +104,12 @@ static ssize_t mxs_ocotp_cdev_write(struct cdev *cdev, const void *buf, size_t c { struct ocotp_priv *priv = cdev->priv; void __iomem *base = priv->base; - const char *write_param; - unsigned int write_enabled = 0; unsigned long old_hclk, aligned_offset; int old_vddio, num_words, num_bytes, i, ret = 0; u8 *work_buf; u32 reg; - write_param = dev_get_param(cdev->dev, "permanent_write_enable"); - if (write_param) - write_enabled = simple_strtoul(write_param, NULL, 0); - - if (!write_param || !write_enabled) + if (!priv->write_enable) return -EPERM; /* we can only work on u32, so calc some helpers */ @@ -179,21 +174,6 @@ static struct file_operations mxs_ocotp_ops = { .lseek = dev_lseek_default, }; -static int mxs_ocotp_write_enable_set(struct device_d *dev, struct param_d *param, - const char *val) -{ - unsigned long write_enable; - - if (!val) - return -EINVAL; - - write_enable = simple_strtoul(val, NULL, 0); - if (write_enable > 1) - return -EINVAL; - - return dev_param_set_generic(dev, param, write_enable ? "1" : "0"); -} - static int mxs_ocotp_probe(struct device_d *dev) { int err; @@ -212,14 +192,8 @@ static int mxs_ocotp_probe(struct device_d *dev) if (IS_ENABLED(CONFIG_MXS_OCOTP_WRITABLE)) { mxs_ocotp_ops.write = mxs_ocotp_cdev_write; - - err = dev_add_param(dev, "permanent_write_enable", - mxs_ocotp_write_enable_set, NULL, 0); - if (err < 0) - return err; - err = dev_set_param(dev, "permanent_write_enable", "0"); - if (err < 0) - return err; + dev_add_param_bool(dev, "permanent_write_enable", + NULL, NULL, &priv->write_enable, NULL); } return 0; |