Skip to content

Commit 2ae998d

Browse files
committed
Merge branch 'refs/heads/bits/170-atcphy' into asahi-wip
2 parents 8d66351 + 4931e8e commit 2ae998d

12 files changed

Lines changed: 3559 additions & 18 deletions

File tree

drivers/nvmem/core.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -480,8 +480,8 @@ static int nvmem_cell_info_to_nvmem_cell_entry_nodup(struct nvmem_device *nvmem,
480480
cell->np = info->np;
481481

482482
if (cell->nbits)
483-
cell->bytes = DIV_ROUND_UP(cell->nbits + cell->bit_offset,
484-
BITS_PER_BYTE);
483+
cell->bytes = round_up(DIV_ROUND_UP(cell->nbits + cell->bit_offset,
484+
BITS_PER_BYTE), nvmem->word_size);
485485

486486
if (!IS_ALIGNED(cell->offset, nvmem->stride)) {
487487
dev_err(&nvmem->dev,
@@ -1555,15 +1555,23 @@ EXPORT_SYMBOL_GPL(nvmem_cell_put);
15551555
static void nvmem_shift_read_buffer_in_place(struct nvmem_cell_entry *cell, void *buf)
15561556
{
15571557
u8 *p, *b;
1558-
int i, extra, bit_offset = cell->bit_offset;
1558+
int i, padding, extra, bit_offset = cell->bit_offset;
1559+
int bytes = cell->bytes;
15591560

15601561
p = b = buf;
15611562
if (bit_offset) {
1563+
padding = bit_offset/8;
1564+
if (padding) {
1565+
memmove(buf, buf + padding, bytes - padding);
1566+
bit_offset -= BITS_PER_BYTE * padding;
1567+
bytes -= padding;
1568+
}
1569+
15621570
/* First shift */
15631571
*b++ >>= bit_offset;
15641572

15651573
/* setup rest of the bytes if any */
1566-
for (i = 1; i < cell->bytes; i++) {
1574+
for (i = 1; i < bytes; i++) {
15671575
/* Get bits from next byte and shift them towards msb */
15681576
*p |= *b << (BITS_PER_BYTE - bit_offset);
15691577

@@ -1576,7 +1584,7 @@ static void nvmem_shift_read_buffer_in_place(struct nvmem_cell_entry *cell, void
15761584
}
15771585

15781586
/* result fits in less bytes */
1579-
extra = cell->bytes - DIV_ROUND_UP(cell->nbits, BITS_PER_BYTE);
1587+
extra = bytes - DIV_ROUND_UP(cell->nbits, BITS_PER_BYTE);
15801588
while (--extra >= 0)
15811589
*p-- = 0;
15821590

drivers/phy/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ config PHY_CAN_TRANSCEIVER
7474

7575
source "drivers/phy/allwinner/Kconfig"
7676
source "drivers/phy/amlogic/Kconfig"
77+
source "drivers/phy/apple/Kconfig"
7778
source "drivers/phy/broadcom/Kconfig"
7879
source "drivers/phy/cadence/Kconfig"
7980
source "drivers/phy/freescale/Kconfig"

drivers/phy/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ obj-$(CONFIG_PHY_PISTACHIO_USB) += phy-pistachio-usb.o
1212
obj-$(CONFIG_USB_LGM_PHY) += phy-lgm-usb.o
1313
obj-y += allwinner/ \
1414
amlogic/ \
15+
apple/ \
1516
broadcom/ \
1617
cadence/ \
1718
freescale/ \

drivers/phy/apple/Kconfig

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
config PHY_APPLE_ATC
3+
tristate "Apple Type-C PHY"
4+
depends on ARCH_APPLE || COMPILE_TEST
5+
default ARCH_APPLE
6+
select GENERIC_PHY
7+
select TYPEC
8+
help
9+
Enable this to add support for the Apple Type-C PHY, switch
10+
and mux found in Apple SoCs such as the M1.
11+
This driver currently provides support for USB2 and USB3.
12+
13+
config PHY_APPLE_DPTX
14+
tristate "Apple DPTX PHY"
15+
depends on ARCH_APPLE || COMPILE_TEST
16+
default ARCH_APPLE
17+
select GENERIC_PHY
18+
help
19+
Enable this to add support for the Apple DPTX PHY found on Apple SoCs
20+
such as the M2.
21+
This driver provides support for DisplayPort and is used on the
22+
Mac mini (M2, 2023).

drivers/phy/apple/Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
CFLAGS_trace.o := -I$(src)
3+
4+
obj-$(CONFIG_PHY_APPLE_ATC) += phy-apple-atc.o
5+
phy-apple-atc-y := atc.o
6+
phy-apple-atc-$(CONFIG_TRACING) += trace.o
7+
8+
obj-$(CONFIG_PHY_APPLE_DPTX) += phy-apple-dptx.o
9+
phy-apple-dptx-y += dptx.o

0 commit comments

Comments
 (0)