summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-01-22 09:49:21 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-01-22 09:49:21 +0100
commit5ebdae4863f64a32826c25c6e0d1dfbc1612d904 (patch)
treef7c8ae79050fd00a708bfcda11f6681ebb9a32ce /drivers
parent034637fbd9dfc5cbcffca1f8f392c6ab0dd6f229 (diff)
parent2f9b25f41362e99e2b31684b5c9a1a02abc1ae8b (diff)
downloadbarebox-5ebdae4863f64a32826c25c6e0d1dfbc1612d904.tar.gz
barebox-5ebdae4863f64a32826c25c6e0d1dfbc1612d904.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'drivers')
-rw-r--r--drivers/efi/Kconfig1
-rw-r--r--drivers/mci/mci-core.c16
-rw-r--r--drivers/of/base.c32
3 files changed, 38 insertions, 11 deletions
diff --git a/drivers/efi/Kconfig b/drivers/efi/Kconfig
index d6beeb07ce..cca1a2e1d6 100644
--- a/drivers/efi/Kconfig
+++ b/drivers/efi/Kconfig
@@ -1,5 +1,4 @@
config EFI_BOOTUP
bool
- select HAS_POWEROFF
select BLOCK
select PARTITION_DISK
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 208b7666d6..c6b4e02cbc 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -396,8 +396,7 @@ int mci_send_ext_csd(struct mci *mci, char *ext_csd)
* @param value FIXME
* @return Transaction status (0 on success)
*/
-int mci_switch(struct mci *mci, unsigned set, unsigned index,
- unsigned value)
+int mci_switch(struct mci *mci, unsigned index, unsigned value)
{
struct mci_cmd cmd;
@@ -471,7 +470,7 @@ static int mmc_change_freq(struct mci *mci)
cardtype = mci->ext_csd[EXT_CSD_DEVICE_TYPE] & EXT_CSD_CARD_TYPE_MASK;
- err = mci_switch(mci, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HS_TIMING, 1);
+ err = mci_switch(mci, EXT_CSD_HS_TIMING, 1);
if (err) {
dev_dbg(&mci->dev, "MMC frequency changing failed: %d\n", err);
@@ -1044,9 +1043,7 @@ static int mci_startup_mmc(struct mci *mci)
* 4bit transfer mode. On success set the corresponding
* bus width on the host.
*/
- err = mci_switch(mci, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_BUS_WIDTH,
- ext_csd_bits[idx]);
+ err = mci_switch(mci, EXT_CSD_BUS_WIDTH, ext_csd_bits[idx]);
if (err) {
if (idx == 0)
dev_warn(&mci->dev, "Changing MMC bus width failed: %d\n", err);
@@ -1253,8 +1250,7 @@ static int mci_blk_part_switch(struct mci_part *part)
part_config &= ~EXT_CSD_PART_CONFIG_ACC_MASK;
part_config |= part->part_cfg;
- ret = mci_switch(mci, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_PARTITION_CONFIG, part_config);
+ ret = mci_switch(mci, EXT_CSD_PARTITION_CONFIG, part_config);
if (ret)
return ret;
@@ -1568,8 +1564,8 @@ static int mci_set_boot(struct param_d *param, void *priv)
mci->ext_csd_part_config &= ~(7 << 3);
mci->ext_csd_part_config |= mci->bootpart << 3;
- return mci_switch(mci, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_PARTITION_CONFIG, mci->ext_csd_part_config);
+ return mci_switch(mci,
+ EXT_CSD_PARTITION_CONFIG, mci->ext_csd_part_config);
}
static const char *mci_boot_names[] = {
diff --git a/drivers/of/base.c b/drivers/of/base.c
index eabbf3d957..6a582177bf 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2360,3 +2360,35 @@ int of_graph_port_is_available(struct device_node *node)
return available;
}
EXPORT_SYMBOL(of_graph_port_is_available);
+
+/**
+ * of_get_machine_compatible - get first compatible string from the root node.
+ *
+ * Returns the string or NULL.
+ */
+const char *of_get_machine_compatible(void)
+{
+ struct property *prop;
+ const char *name, *p;
+
+ if (!root_node)
+ return NULL;
+
+ prop = of_find_property(root_node, "compatible", NULL);
+ name = of_prop_next_string(prop, NULL);
+
+ p = strchr(name, ',');
+ return p ? p + 1 : name;
+}
+EXPORT_SYMBOL(of_get_machine_compatible);
+
+static int of_init_hostname(void)
+{
+ const char *name;
+
+ name = of_get_machine_compatible();
+ barebox_set_hostname_no_overwrite(name ?: "barebox");
+
+ return 0;
+}
+late_initcall(of_init_hostname);