mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
powerpc updates for 4.3
- Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask from Benjamin Herrenschmidt
- EEH fixes for SRIOV from Gavin
- Introduce rtas_get_sensor_fast() for IRQ handlers from Thomas Huth
- Use hardware RNG for arch_get_random_seed_* not arch_get_random_* from Paul Mackerras
- Seccomp filter support from Michael Ellerman
- opal_cec_reboot2() handling for HMIs & machine checks from Mahesh Salgaonkar
- Add powerpc timebase as a trace clock source from Naveen N. Rao
- Misc cleanups in the xmon, signal & SLB code from Anshuman Khandual
- Add an inline function to update POWER8 HID0 from Gautham R. Shenoy
- Fix pte_pagesize_index() crash on 4K w/64K hash from Michael Ellerman
- Drop support for 64K local store on 4K kernels from Michael Ellerman
- move dma_get_required_mask() from pnv_phb to pci_controller_ops from Andrew Donnellan
- Initialize distance lookup table from drconf path from Nikunj A Dadhania
- Enable RTC class support from Vaibhav Jain
- Disable automatically blocked PCI config from Gavin Shan
- Add LEDs driver for PowerNV platform from Vasant Hegde
- Fix endianness issues in the HVSI driver from Laurent Dufour
- Kexec endian fixes from Samuel Mendoza-Jonas
- Fix corrupted pdn list from Gavin Shan
- Fix fenced PHB caused by eeh_slot_error_detail() from Gavin Shan
- Freescale updates from Scott: Highlights include 32-bit memcpy/memset
optimizations, checksum optimizations, 85xx config fragments and updates,
device tree updates, e6500 fixes for non-SMP, and misc cleanup and minor
fixes.
- A ton of cxl updates & fixes:
- Add explicit precision specifiers from Rasmus Villemoes
- use more common format specifier from Rasmus Villemoes
- Destroy cxl_adapter_idr on module_exit from Johannes Thumshirn
- Destroy afu->contexts_idr on release of an afu from Johannes Thumshirn
- Compile with -Werror from Daniel Axtens
- EEH support from Daniel Axtens
- Plug irq_bitmap getting leaked in cxl_context from Vaibhav Jain
- Add alternate MMIO error handling from Ian Munsie
- Allow release of contexts which have been OPENED but not STARTED from Andrew Donnellan
- Remove use of macro DEFINE_PCI_DEVICE_TABLE from Vaishali Thakkar
- Release irqs if memory allocation fails from Vaibhav Jain
- Remove racy attempt to force EEH invocation in reset from Daniel Axtens
- Fix + cleanup error paths in cxl_dev_context_init from Ian Munsie
- Fix force unmapping mmaps of contexts allocated through the kernel api from Ian Munsie
- Set up and enable PSL Timebase from Philippe Bergheaud
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJV5+GzAAoJEFHr6jzI4aWA0iAP/jcd0kNaNBzLgcDKKygKdgz4
xn4EWu81vfMfZYWesb0ATrjlH0hLsRxSXoFUqUMhtJTa5kNAoCIaz/M8WBALS50h
aT+i7br4WEU2j2FcaMyP3iAZx/2hl+2utODJSHPRWPkec1fUDBfEyBf++e520RWM
HUQGIGZXh8yq7KMA96Pwhsvls9vOB8hS2UdU/NS8ff3J5jFvXC1/WmF2qfzJBS1V
8iHyz26Jl8+dJ+et7iC2oD5XQAjIH1oJgOyPVPBzAQttfi8RjuVzRA30TfPBAUwI
lC9nlmPy6bCe4kiQYWVB1z7GegHyW/9vkeuMj/u8mZbqpaayMEMZmd2C3iNDXNHx
i2NSvdln539t4qWYsV2v6lVCfa/ayDHD73Wackj5Dk394tzXnpCPhxNzc2yKEd5v
h7vwYc9jBhsbfSCSogaM+gSHJ1APgCidggHJMYYNA2nN2u6V62RpsMB7zp/1+Q2v
yqYdD8oYF4Dm21x/ujaNFrlizROD46WS0UqdJ3yP6HAqRYIpRXtibmpECJgt1n5h
HjADEci4hQ2UQxdMdp/Q5KZnPTJebBtrZrmkW5r6cZBUaTB5TVkFaEWN44CT/Loh
tMNeA3qOBN06CaQS2WL3UUUWpbZq9fSbWuUZ5lWZDb5AOyRxe5eWVYNLkiyIXozY
L24l1bYdBhXahnjoS/kc
=n9+X
-----END PGP SIGNATURE-----
Merge tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc updates from Michael Ellerman:
- support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask
from Benjamin Herrenschmidt
- EEH fixes for SRIOV from Gavin
- introduce rtas_get_sensor_fast() for IRQ handlers from Thomas Huth
- use hardware RNG for arch_get_random_seed_* not arch_get_random_*
from Paul Mackerras
- seccomp filter support from Michael Ellerman
- opal_cec_reboot2() handling for HMIs & machine checks from Mahesh
Salgaonkar
- add powerpc timebase as a trace clock source from Naveen N. Rao
- misc cleanups in the xmon, signal & SLB code from Anshuman Khandual
- add an inline function to update POWER8 HID0 from Gautham R. Shenoy
- fix pte_pagesize_index() crash on 4K w/64K hash from Michael Ellerman
- drop support for 64K local store on 4K kernels from Michael Ellerman
- move dma_get_required_mask() from pnv_phb to pci_controller_ops from
Andrew Donnellan
- initialize distance lookup table from drconf path from Nikunj A
Dadhania
- enable RTC class support from Vaibhav Jain
- disable automatically blocked PCI config from Gavin Shan
- add LEDs driver for PowerNV platform from Vasant Hegde
- fix endianness issues in the HVSI driver from Laurent Dufour
- kexec endian fixes from Samuel Mendoza-Jonas
- fix corrupted pdn list from Gavin Shan
- fix fenced PHB caused by eeh_slot_error_detail() from Gavin Shan
- Freescale updates from Scott: Highlights include 32-bit memcpy/memset
optimizations, checksum optimizations, 85xx config fragments and
updates, device tree updates, e6500 fixes for non-SMP, and misc
cleanup and minor fixes.
- a ton of cxl updates & fixes:
- add explicit precision specifiers from Rasmus Villemoes
- use more common format specifier from Rasmus Villemoes
- destroy cxl_adapter_idr on module_exit from Johannes Thumshirn
- destroy afu->contexts_idr on release of an afu from Johannes
Thumshirn
- compile with -Werror from Daniel Axtens
- EEH support from Daniel Axtens
- plug irq_bitmap getting leaked in cxl_context from Vaibhav Jain
- add alternate MMIO error handling from Ian Munsie
- allow release of contexts which have been OPENED but not STARTED
from Andrew Donnellan
- remove use of macro DEFINE_PCI_DEVICE_TABLE from Vaishali Thakkar
- release irqs if memory allocation fails from Vaibhav Jain
- remove racy attempt to force EEH invocation in reset from Daniel
Axtens
- fix + cleanup error paths in cxl_dev_context_init from Ian Munsie
- fix force unmapping mmaps of contexts allocated through the kernel
api from Ian Munsie
- set up and enable PSL Timebase from Philippe Bergheaud
* tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (140 commits)
cxl: Set up and enable PSL Timebase
cxl: Fix force unmapping mmaps of contexts allocated through the kernel api
cxl: Fix + cleanup error paths in cxl_dev_context_init
powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail()
powerpc/pseries: Cleanup on pci_dn_reconfig_notifier()
powerpc/pseries: Fix corrupted pdn list
powerpc/powernv: Enable LEDS support
powerpc/iommu: Set default DMA offset in dma_dev_setup
cxl: Remove racy attempt to force EEH invocation in reset
cxl: Release irqs if memory allocation fails
cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE
powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver
powerpc/powernv: Reset HILE before kexec_sequence()
powerpc/kexec: Reset secondary cpu endianness before kexec
powerpc/hvsi: Fix endianness issues in the HVSI driver
leds/powernv: Add driver for PowerNV platform
powerpc/powernv: Create LED platform device
powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states
powerpc/powernv: Fix the log message when disabling VF
cxl: Allow release of contexts which have been OPENED but not STARTED
...
This commit is contained in:
commit
ff474e8ca8
146 changed files with 3560 additions and 1998 deletions
|
|
@ -240,9 +240,9 @@ static void hvsi_recv_control(struct hvsi_struct *hp, uint8_t *packet,
|
|||
{
|
||||
struct hvsi_control *header = (struct hvsi_control *)packet;
|
||||
|
||||
switch (header->verb) {
|
||||
switch (be16_to_cpu(header->verb)) {
|
||||
case VSV_MODEM_CTL_UPDATE:
|
||||
if ((header->word & HVSI_TSCD) == 0) {
|
||||
if ((be32_to_cpu(header->word) & HVSI_TSCD) == 0) {
|
||||
/* CD went away; no more connection */
|
||||
pr_debug("hvsi%i: CD dropped\n", hp->index);
|
||||
hp->mctrl &= TIOCM_CD;
|
||||
|
|
@ -267,6 +267,7 @@ static void hvsi_recv_control(struct hvsi_struct *hp, uint8_t *packet,
|
|||
static void hvsi_recv_response(struct hvsi_struct *hp, uint8_t *packet)
|
||||
{
|
||||
struct hvsi_query_response *resp = (struct hvsi_query_response *)packet;
|
||||
uint32_t mctrl_word;
|
||||
|
||||
switch (hp->state) {
|
||||
case HVSI_WAIT_FOR_VER_RESPONSE:
|
||||
|
|
@ -274,9 +275,10 @@ static void hvsi_recv_response(struct hvsi_struct *hp, uint8_t *packet)
|
|||
break;
|
||||
case HVSI_WAIT_FOR_MCTRL_RESPONSE:
|
||||
hp->mctrl = 0;
|
||||
if (resp->u.mctrl_word & HVSI_TSDTR)
|
||||
mctrl_word = be32_to_cpu(resp->u.mctrl_word);
|
||||
if (mctrl_word & HVSI_TSDTR)
|
||||
hp->mctrl |= TIOCM_DTR;
|
||||
if (resp->u.mctrl_word & HVSI_TSCD)
|
||||
if (mctrl_word & HVSI_TSCD)
|
||||
hp->mctrl |= TIOCM_CD;
|
||||
__set_state(hp, HVSI_OPEN);
|
||||
break;
|
||||
|
|
@ -295,10 +297,10 @@ static int hvsi_version_respond(struct hvsi_struct *hp, uint16_t query_seqno)
|
|||
|
||||
packet.hdr.type = VS_QUERY_RESPONSE_PACKET_HEADER;
|
||||
packet.hdr.len = sizeof(struct hvsi_query_response);
|
||||
packet.hdr.seqno = atomic_inc_return(&hp->seqno);
|
||||
packet.verb = VSV_SEND_VERSION_NUMBER;
|
||||
packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
|
||||
packet.verb = cpu_to_be16(VSV_SEND_VERSION_NUMBER);
|
||||
packet.u.version = HVSI_VERSION;
|
||||
packet.query_seqno = query_seqno+1;
|
||||
packet.query_seqno = cpu_to_be16(query_seqno+1);
|
||||
|
||||
pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
|
||||
dbg_dump_hex((uint8_t*)&packet, packet.hdr.len);
|
||||
|
|
@ -319,7 +321,7 @@ static void hvsi_recv_query(struct hvsi_struct *hp, uint8_t *packet)
|
|||
|
||||
switch (hp->state) {
|
||||
case HVSI_WAIT_FOR_VER_QUERY:
|
||||
hvsi_version_respond(hp, query->hdr.seqno);
|
||||
hvsi_version_respond(hp, be16_to_cpu(query->hdr.seqno));
|
||||
__set_state(hp, HVSI_OPEN);
|
||||
break;
|
||||
default:
|
||||
|
|
@ -555,8 +557,8 @@ static int hvsi_query(struct hvsi_struct *hp, uint16_t verb)
|
|||
|
||||
packet.hdr.type = VS_QUERY_PACKET_HEADER;
|
||||
packet.hdr.len = sizeof(struct hvsi_query);
|
||||
packet.hdr.seqno = atomic_inc_return(&hp->seqno);
|
||||
packet.verb = verb;
|
||||
packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
|
||||
packet.verb = cpu_to_be16(verb);
|
||||
|
||||
pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
|
||||
dbg_dump_hex((uint8_t*)&packet, packet.hdr.len);
|
||||
|
|
@ -596,14 +598,14 @@ static int hvsi_set_mctrl(struct hvsi_struct *hp, uint16_t mctrl)
|
|||
struct hvsi_control packet __ALIGNED__;
|
||||
int wrote;
|
||||
|
||||
packet.hdr.type = VS_CONTROL_PACKET_HEADER,
|
||||
packet.hdr.seqno = atomic_inc_return(&hp->seqno);
|
||||
packet.hdr.type = VS_CONTROL_PACKET_HEADER;
|
||||
packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
|
||||
packet.hdr.len = sizeof(struct hvsi_control);
|
||||
packet.verb = VSV_SET_MODEM_CTL;
|
||||
packet.mask = HVSI_TSDTR;
|
||||
packet.verb = cpu_to_be16(VSV_SET_MODEM_CTL);
|
||||
packet.mask = cpu_to_be32(HVSI_TSDTR);
|
||||
|
||||
if (mctrl & TIOCM_DTR)
|
||||
packet.word = HVSI_TSDTR;
|
||||
packet.word = cpu_to_be32(HVSI_TSDTR);
|
||||
|
||||
pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
|
||||
dbg_dump_hex((uint8_t*)&packet, packet.hdr.len);
|
||||
|
|
@ -680,7 +682,7 @@ static int hvsi_put_chars(struct hvsi_struct *hp, const char *buf, int count)
|
|||
BUG_ON(count > HVSI_MAX_OUTGOING_DATA);
|
||||
|
||||
packet.hdr.type = VS_DATA_PACKET_HEADER;
|
||||
packet.hdr.seqno = atomic_inc_return(&hp->seqno);
|
||||
packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
|
||||
packet.hdr.len = count + sizeof(struct hvsi_header);
|
||||
memcpy(&packet.data, buf, count);
|
||||
|
||||
|
|
@ -697,9 +699,9 @@ static void hvsi_close_protocol(struct hvsi_struct *hp)
|
|||
struct hvsi_control packet __ALIGNED__;
|
||||
|
||||
packet.hdr.type = VS_CONTROL_PACKET_HEADER;
|
||||
packet.hdr.seqno = atomic_inc_return(&hp->seqno);
|
||||
packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
|
||||
packet.hdr.len = 6;
|
||||
packet.verb = VSV_CLOSE_PROTOCOL;
|
||||
packet.verb = cpu_to_be16(VSV_CLOSE_PROTOCOL);
|
||||
|
||||
pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
|
||||
dbg_dump_hex((uint8_t*)&packet, packet.hdr.len);
|
||||
|
|
@ -1180,7 +1182,7 @@ static int __init hvsi_console_init(void)
|
|||
/* search device tree for vty nodes */
|
||||
for_each_compatible_node(vty, "serial", "hvterm-protocol") {
|
||||
struct hvsi_struct *hp;
|
||||
const uint32_t *vtermno, *irq;
|
||||
const __be32 *vtermno, *irq;
|
||||
|
||||
vtermno = of_get_property(vty, "reg", NULL);
|
||||
irq = of_get_property(vty, "interrupts", NULL);
|
||||
|
|
@ -1202,11 +1204,11 @@ static int __init hvsi_console_init(void)
|
|||
hp->index = hvsi_count;
|
||||
hp->inbuf_end = hp->inbuf;
|
||||
hp->state = HVSI_CLOSED;
|
||||
hp->vtermno = *vtermno;
|
||||
hp->virq = irq_create_mapping(NULL, irq[0]);
|
||||
hp->vtermno = be32_to_cpup(vtermno);
|
||||
hp->virq = irq_create_mapping(NULL, be32_to_cpup(irq));
|
||||
if (hp->virq == 0) {
|
||||
printk(KERN_ERR "%s: couldn't create irq mapping for 0x%x\n",
|
||||
__func__, irq[0]);
|
||||
__func__, be32_to_cpup(irq));
|
||||
tty_port_destroy(&hp->port);
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue