Revision 8b95599c55ed24b36cf44a4720067cfe67edbcb4 authored by Marek Vasut on 16 October 2019, 13:35:06 UTC, committed by David S. Miller on 17 October 2019, 23:31:51 UTC
The KSZ8051 PHY and the KSZ8794/KSZ8795/KSZ8765 switch share exactly the
same PHY ID. Since KSZ8051 is higher in the ksphy_driver[] list of PHYs
in the micrel PHY driver, it is used even with the KSZ87xx switch. This
is wrong, since the KSZ8051 configures registers of the PHY which are
not present on the simplified KSZ87xx switch PHYs and misconfigures
other registers of the KSZ87xx switch PHYs.

Fortunatelly, it is possible to tell apart the KSZ8051 PHY from the
KSZ87xx switch by checking the Basic Status register Bit 0, which is
read-only and indicates presence of the Extended Capability Registers.
The KSZ8051 PHY has those registers while the KSZ87xx switch does not.

This patch implements simple check for the presence of this bit for
both the KSZ8051 PHY and KSZ87xx switch, to let both use the correct
PHY driver instance.

Fixes: 9d162ed69f51 ("net: phy: micrel: add support for KSZ8795")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: David S. Miller <davem@davemloft.net>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: George McCollister <george.mccollister@gmail.com>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
Cc: Tristram Ha <Tristram.Ha@microchip.com>
Cc: Woojung Huh <woojung.huh@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 013572a
History
File Mode Size
kasan
Kconfig -rw-r--r-- 24.2 KB
Kconfig.debug -rw-r--r-- 4.7 KB
Makefile -rw-r--r-- 3.8 KB
backing-dev.c -rw-r--r-- 28.5 KB
balloon_compaction.c -rw-r--r-- 8.2 KB
cleancache.c -rw-r--r-- 9.8 KB
cma.c -rw-r--r-- 14.3 KB
cma.h -rw-r--r-- 573 bytes
cma_debug.c -rw-r--r-- 4.5 KB
compaction.c -rw-r--r-- 74.8 KB
debug.c -rw-r--r-- 5.9 KB
debug_page_ref.c -rw-r--r-- 1.4 KB
dmapool.c -rw-r--r-- 13.8 KB
early_ioremap.c -rw-r--r-- 6.8 KB
fadvise.c -rw-r--r-- 5.4 KB
failslab.c -rw-r--r-- 1.4 KB
filemap.c -rw-r--r-- 96.3 KB
frame_vector.c -rw-r--r-- 6.5 KB
frontswap.c -rw-r--r-- 14.2 KB
gup.c -rw-r--r-- 65.7 KB
gup_benchmark.c -rw-r--r-- 2.7 KB
highmem.c -rw-r--r-- 11.7 KB
hmm.c -rw-r--r-- 29.3 KB
huge_memory.c -rw-r--r-- 84.8 KB
hugetlb.c -rw-r--r-- 138.3 KB
hugetlb_cgroup.c -rw-r--r-- 10.9 KB
hwpoison-inject.c -rw-r--r-- 2.8 KB
init-mm.c -rw-r--r-- 1.2 KB
internal.h -rw-r--r-- 17.1 KB
interval_tree.c -rw-r--r-- 3.1 KB
khugepaged.c -rw-r--r-- 54.5 KB
kmemleak-test.c -rw-r--r-- 2.6 KB
kmemleak.c -rw-r--r-- 55.7 KB
ksm.c -rw-r--r-- 89.1 KB
list_lru.c -rw-r--r-- 14.6 KB
maccess.c -rw-r--r-- 6.0 KB
madvise.c -rw-r--r-- 28.7 KB
memblock.c -rw-r--r-- 56.5 KB
memcontrol.c -rw-r--r-- 188.2 KB
memfd.c -rw-r--r-- 7.9 KB
memory-failure.c -rw-r--r-- 51.8 KB
memory.c -rw-r--r-- 125.6 KB
memory_hotplug.c -rw-r--r-- 47.6 KB
mempolicy.c -rw-r--r-- 74.2 KB
mempool.c -rw-r--r-- 15.8 KB
memremap.c -rw-r--r-- 12.2 KB
memtest.c -rw-r--r-- 2.8 KB
migrate.c -rw-r--r-- 76.2 KB
mincore.c -rw-r--r-- 7.5 KB
mlock.c -rw-r--r-- 22.7 KB
mm_init.c -rw-r--r-- 4.8 KB
mmap.c -rw-r--r-- 100.5 KB
mmu_context.c -rw-r--r-- 1.3 KB
mmu_gather.c -rw-r--r-- 6.7 KB
mmu_notifier.c -rw-r--r-- 15.8 KB
mmzone.c -rw-r--r-- 2.4 KB
mprotect.c -rw-r--r-- 15.5 KB
mremap.c -rw-r--r-- 19.4 KB
msync.c -rw-r--r-- 2.7 KB
nommu.c -rw-r--r-- 45.4 KB
oom_kill.c -rw-r--r-- 30.1 KB
page-writeback.c -rw-r--r-- 84.7 KB
page_alloc.c -rw-r--r-- 237.6 KB
page_counter.c -rw-r--r-- 6.6 KB
page_ext.c -rw-r--r-- 11.0 KB
page_idle.c -rw-r--r-- 5.5 KB
page_io.c -rw-r--r-- 10.5 KB
page_isolation.c -rw-r--r-- 9.2 KB
page_owner.c -rw-r--r-- 16.2 KB
page_poison.c -rw-r--r-- 3.0 KB
page_vma_mapped.c -rw-r--r-- 7.6 KB
pagewalk.c -rw-r--r-- 9.2 KB
percpu-internal.h -rw-r--r-- 6.3 KB
percpu-km.c -rw-r--r-- 3.0 KB
percpu-stats.c -rw-r--r-- 5.7 KB
percpu-vm.c -rw-r--r-- 10.3 KB
percpu.c -rw-r--r-- 92.3 KB
pgtable-generic.c -rw-r--r-- 5.3 KB
process_vm_access.c -rw-r--r-- 9.8 KB
readahead.c -rw-r--r-- 16.5 KB
rmap.c -rw-r--r-- 54.0 KB
rodata_test.c -rw-r--r-- 1.3 KB
shmem.c -rw-r--r-- 107.4 KB
shuffle.c -rw-r--r-- 5.7 KB
shuffle.h -rw-r--r-- 1.5 KB
slab.c -rw-r--r-- 105.4 KB
slab.h -rw-r--r-- 19.2 KB
slab_common.c -rw-r--r-- 43.8 KB
slob.c -rw-r--r-- 17.0 KB
slub.c -rw-r--r-- 143.2 KB
sparse-vmemmap.c -rw-r--r-- 6.9 KB
sparse.c -rw-r--r-- 25.2 KB
swap.c -rw-r--r-- 29.9 KB
swap_cgroup.c -rw-r--r-- 5.2 KB
swap_slots.c -rw-r--r-- 9.4 KB
swap_state.c -rw-r--r-- 22.4 KB
swapfile.c -rw-r--r-- 94.8 KB
truncate.c -rw-r--r-- 26.4 KB
usercopy.c -rw-r--r-- 9.5 KB
userfaultfd.c -rw-r--r-- 15.8 KB
util.c -rw-r--r-- 22.0 KB
vmacache.c -rw-r--r-- 2.7 KB
vmalloc.c -rw-r--r-- 89.4 KB
vmpressure.c -rw-r--r-- 13.8 KB
vmscan.c -rw-r--r-- 123.1 KB
vmstat.c -rw-r--r-- 51.6 KB
workingset.c -rw-r--r-- 19.1 KB
z3fold.c -rw-r--r-- 40.5 KB
zbud.c -rw-r--r-- 18.2 KB
zpool.c -rw-r--r-- 11.2 KB
zsmalloc.c -rw-r--r-- 61.9 KB
zswap.c -rw-r--r-- 34.2 KB

back to top