mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 15:26:03 +09:00
Merge branch '2021-04-27-assorted-fixes'
- An assortment of bug fixes
This commit is contained in:
commit
27af387e4f
5
Makefile
5
Makefile
|
@ -1854,11 +1854,10 @@ define filechk_timestamp.h
|
|||
endef
|
||||
|
||||
define filechk_defaultenv.h
|
||||
(grep -v '^#' | \
|
||||
grep -v '^$$' | \
|
||||
( { grep -v '^#' | grep -v '^$$' || true ; echo '' ; } | \
|
||||
tr '\n' '\0' | \
|
||||
sed -e 's/\\\x0\s*//g' | \
|
||||
xxd -i ; echo ", 0x00" ; )
|
||||
xxd -i ; )
|
||||
endef
|
||||
|
||||
define filechk_dt.h
|
||||
|
|
|
@ -25,18 +25,16 @@ int bootz_setup(ulong image, ulong *start, ulong *end)
|
|||
|
||||
if (zi->zi_magic != LINUX_ARM_ZIMAGE_MAGIC &&
|
||||
zi->zi_magic != BAREBOX_IMAGE_MAGIC) {
|
||||
#ifndef CONFIG_SPL_FRAMEWORK
|
||||
puts("zimage: Bad magic!\n");
|
||||
#endif
|
||||
if (!IS_ENABLED(CONFIG_SPL_BUILD))
|
||||
puts("zimage: Bad magic!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
*start = zi->zi_start;
|
||||
*end = zi->zi_end;
|
||||
#ifndef CONFIG_SPL_FRAMEWORK
|
||||
printf("Kernel image @ %#08lx [ %#08lx - %#08lx ]\n",
|
||||
image, *start, *end);
|
||||
#endif
|
||||
if (!IS_ENABLED(CONFIG_SPL_BUILD))
|
||||
printf("Kernel image @ %#08lx [ %#08lx - %#08lx ]\n",
|
||||
image, *start, *end);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -997,8 +997,8 @@
|
|||
|
||||
reset-ctl-test {
|
||||
compatible = "sandbox,reset-ctl-test";
|
||||
resets = <&resetc 100>, <&resetc 2>;
|
||||
reset-names = "other", "test";
|
||||
resets = <&resetc 100>, <&resetc 2>, <&resetc 20>, <&resetc 40>;
|
||||
reset-names = "other", "test", "test2", "test3";
|
||||
};
|
||||
|
||||
rng {
|
||||
|
|
|
@ -158,8 +158,12 @@ int iomux_replace_device(const int console, const char *old, const char *new)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
strcat(tmp, ",");
|
||||
strcat(tmp, name);
|
||||
if (arg) {
|
||||
strcat(tmp, ",");
|
||||
strcat(tmp, name);
|
||||
}
|
||||
else
|
||||
strcpy(tmp, name);
|
||||
|
||||
arg = tmp;
|
||||
size = strlen(tmp) + 1;
|
||||
|
|
|
@ -295,7 +295,7 @@ static int single_configure_pins(struct udevice *dev,
|
|||
func->npins = 0;
|
||||
for (n = 0; n < count; n++, pins++) {
|
||||
offset = fdt32_to_cpu(pins->reg);
|
||||
if (offset < 0 || offset > pdata->offset) {
|
||||
if (offset > pdata->offset) {
|
||||
dev_err(dev, " invalid register offset 0x%x\n",
|
||||
offset);
|
||||
continue;
|
||||
|
@ -335,6 +335,10 @@ static int single_configure_bits(struct udevice *dev,
|
|||
phys_addr_t reg;
|
||||
u32 offset, val, mask, bit_pos, val_pos, mask_pos, submask;
|
||||
|
||||
/* If function mask is null, needn't enable it. */
|
||||
if (!pdata->mask)
|
||||
return 0;
|
||||
|
||||
npins_in_reg = pdata->width / priv->bits_per_pin;
|
||||
func = single_allocate_function(dev, count * npins_in_reg);
|
||||
if (IS_ERR(func))
|
||||
|
@ -344,7 +348,7 @@ static int single_configure_bits(struct udevice *dev,
|
|||
func->npins = 0;
|
||||
for (n = 0; n < count; n++, pins++) {
|
||||
offset = fdt32_to_cpu(pins->reg);
|
||||
if (offset < 0 || offset > pdata->offset) {
|
||||
if (offset > pdata->offset) {
|
||||
dev_dbg(dev, " invalid register offset 0x%x\n",
|
||||
offset);
|
||||
continue;
|
||||
|
@ -469,6 +473,11 @@ static int single_probe(struct udevice *dev)
|
|||
|
||||
priv->npins = size / (pdata->width / BITS_PER_BYTE);
|
||||
if (pdata->bits_per_mux) {
|
||||
if (!pdata->mask) {
|
||||
dev_err(dev, "function mask needs to be non-zero\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
priv->bits_per_pin = fls(pdata->mask);
|
||||
priv->npins *= (pdata->width / priv->bits_per_pin);
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ int reset_get_by_index_nodev(ofnode node, int index,
|
|||
int ret;
|
||||
|
||||
ret = ofnode_parse_phandle_with_args(node, "resets", "#reset-cells", 0,
|
||||
index > 0, &args);
|
||||
index, &args);
|
||||
|
||||
return reset_get_by_index_tail(ret, node, &args, "resets",
|
||||
index > 0, reset_ctl);
|
||||
|
|
|
@ -390,10 +390,16 @@ int btrfs_read_extent_inline(struct btrfs_path *path,
|
|||
csize);
|
||||
ret = btrfs_decompress(btrfs_file_extent_compression(leaf, fi),
|
||||
cbuf, csize, dbuf, dsize);
|
||||
if (ret < 0 || ret != dsize) {
|
||||
if (ret == (u32)-1) {
|
||||
ret = -EIO;
|
||||
goto out;
|
||||
}
|
||||
/*
|
||||
* The compressed part ends before sector boundary, the remaining needs
|
||||
* to be zeroed out.
|
||||
*/
|
||||
if (ret < dsize)
|
||||
memset(dbuf + ret, 0, dsize - ret);
|
||||
memcpy(dest, dbuf, dsize);
|
||||
ret = dsize;
|
||||
out:
|
||||
|
@ -494,10 +500,16 @@ int btrfs_read_extent_reg(struct btrfs_path *path,
|
|||
|
||||
ret = btrfs_decompress(btrfs_file_extent_compression(leaf, fi), cbuf,
|
||||
csize, dbuf, dsize);
|
||||
if (ret != dsize) {
|
||||
if (ret == (u32)-1) {
|
||||
ret = -EIO;
|
||||
goto out;
|
||||
}
|
||||
/*
|
||||
* The compressed part ends before sector boundary, the remaining needs
|
||||
* to be zeroed out.
|
||||
*/
|
||||
if (ret < dsize)
|
||||
memset(dbuf + ret, 0, dsize - ret);
|
||||
/* Then copy the needed part */
|
||||
memcpy(dest, dbuf + btrfs_file_extent_offset(leaf, fi), len);
|
||||
ret = len;
|
||||
|
|
|
@ -24,18 +24,47 @@
|
|||
static int dm_test_reset_base(struct unit_test_state *uts)
|
||||
{
|
||||
struct udevice *dev;
|
||||
struct reset_ctl reset_method1;
|
||||
struct reset_ctl reset_method2;
|
||||
struct reset_ctl reset_method1, reset_method1_1;
|
||||
struct reset_ctl reset_method2, reset_method2_1;
|
||||
struct reset_ctl reset_method3, reset_method3_1;
|
||||
struct reset_ctl reset_method4, reset_method4_1;
|
||||
|
||||
/* Get the device using the reset device */
|
||||
ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test",
|
||||
&dev));
|
||||
|
||||
/* Get the same reset port in 2 different ways and compare */
|
||||
ut_assertok(reset_get_by_index(dev, 1, &reset_method1));
|
||||
ut_assertok(reset_get_by_index(dev, 0, &reset_method1));
|
||||
ut_assertok(reset_get_by_index_nodev(dev_ofnode(dev), 0,
|
||||
&reset_method1_1));
|
||||
ut_assertok(reset_get_by_index(dev, 1, &reset_method2));
|
||||
ut_assertok(reset_get_by_index_nodev(dev_ofnode(dev), 1,
|
||||
&reset_method2));
|
||||
ut_asserteq(reset_method1.id, reset_method2.id);
|
||||
&reset_method2_1));
|
||||
ut_assertok(reset_get_by_index(dev, 2, &reset_method3));
|
||||
ut_assertok(reset_get_by_index_nodev(dev_ofnode(dev), 2,
|
||||
&reset_method3_1));
|
||||
ut_assertok(reset_get_by_index(dev, 3, &reset_method4));
|
||||
ut_assertok(reset_get_by_index_nodev(dev_ofnode(dev), 3,
|
||||
&reset_method4_1));
|
||||
|
||||
ut_asserteq(reset_method1.id, reset_method1_1.id);
|
||||
ut_asserteq(reset_method2.id, reset_method2_1.id);
|
||||
ut_asserteq(reset_method3.id, reset_method3_1.id);
|
||||
ut_asserteq(reset_method4.id, reset_method4_1.id);
|
||||
|
||||
ut_asserteq(true, reset_method1.id != reset_method2.id);
|
||||
ut_asserteq(true, reset_method1.id != reset_method3.id);
|
||||
ut_asserteq(true, reset_method1.id != reset_method4.id);
|
||||
ut_asserteq(true, reset_method2.id != reset_method3.id);
|
||||
ut_asserteq(true, reset_method2.id != reset_method4.id);
|
||||
ut_asserteq(true, reset_method3.id != reset_method4.id);
|
||||
|
||||
ut_asserteq(true, reset_method1_1.id != reset_method2_1.id);
|
||||
ut_asserteq(true, reset_method1_1.id != reset_method3_1.id);
|
||||
ut_asserteq(true, reset_method1_1.id != reset_method4_1.id);
|
||||
ut_asserteq(true, reset_method2_1.id != reset_method3_1.id);
|
||||
ut_asserteq(true, reset_method2_1.id != reset_method4_1.id);
|
||||
ut_asserteq(true, reset_method3_1.id != reset_method4_1.id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user